الصدأ GPU ، مجموعة من الأدوات لتطوير المظلات في Rust

شركة تطوير الألعاب أصدرت Embark Studios أول إصدار تجريبي من المشروع الصدأ GPU ، التي تهدف إلى استخدام لغة الصدأ لتطوير كود GPU. 

الرغبة في استخدام الصدأ لكتابة برامج GPU لا ينبع فقط من ميزات الأمان والأداء العالي ، ولكن أيضًا لضرورة الحصول على أدوات حديثة للعمل مع الحزم والوحدات النمطية لتحسين كفاءة عملية التطوير.

الصدأ شركة تطوير GPU Embark Studios يستخدم أيضًا Rust في محرك لعبته وهي تعمل على تسهيل تبادل كود Rust بين CPU و GPU.

وفقا لهم، تاريخيا ، في الألعاب ، تم برمجة GPU عن طريق كتابة HLSL أو ، بدرجة أقل ، GLSL. هذه لغات برمجة بسيطة تطورت جنبًا إلى جنب مع تقديم واجهات برمجة التطبيقات على مر السنين.

ومع ذلك ، مع تطور محركات الألعاب ، لم توفر هذه اللغات آليات للتعامل مع قواعد التعليمات البرمجية الكبيرة ، وبشكل عام ، لقد تأخروا عن الركب مقارنة بلغات البرمجة الأخرى.

في حين أن هناك بدائل أفضل بشكل عام لكلتا اللغتين ، فلا أحد منهما في وضع يمكنه من استبدال HLSL أو GLSL.

إما لأنها محظورة من قبل الموفر أو لأنها غير مدعومة مع خطوط أنابيب الرسومات التقليدية. تتضمن أمثلة ذلك CUDA و OpenCL. وبينما كانت هناك محاولات لإنشاء لغة في هذا الفضاء ، لم يكتسب أي منها قوة جذب ملحوظة في مجتمع gamedev.

تواصل Rust GPU تطوير الأفكار من مشروع RLSL، حيث جرت محاولة لإنشاء مترجم Rust إلى وسيط تظليل عام SPIR-V ، والذي تم اقتراحه في Vulkan API والمدعوم في OpenGL 4.6.

في المرحلة الحالية من التطوير ، تسمح لك Rust GPU بالفعل بتشغيل تظليل رسومية بسيطة وتجميع جزء كبير من مكتبة Rust القياسية الأساسية. في الوقت نفسه ، لا يزال المشروع بعيدًا عن أن يكون جاهزًا للاستخدام على نطاق واسع ، على سبيل المثال الحلقات غير مدعومة بعد بواسطة أدوات تظليل.

في Embark ، قمنا ببناء محرك لعبتنا الخاص من الصفر في Rust. لدينا خبرة سابقة في التطوير الداخلي للنموذج الأولي لـ RLSL ولدينا فريق من مهندسي العرض الممتازين الذين هم على دراية بمشاكل لغات تظليل اليوم ، سواء من الألعاب أو محركات الألعاب أو الصناعات الأخرى. لذلك ، نعتقد أننا في وضع فريد لمحاولة حل هذه المشكلة.

نريد تبسيط تطويرنا الداخلي بلغة واحدة رائعة ، وبناء مجتمع رسوميات مفتوح المصدر ونظام بيئي ، وتسهيل مشاركة الكود بين وحدة معالجة الرسومات ووحدة المعالجة المركزية ، والأهم من ذلك ، تمكين مستخدمينا (في المستقبل) وزملائنا من المطورين الحصول على المزيد من الخبرات التي تمتاز بجاذبيتها وتفاعلها بسرعة.

استنادًا إلى الكود في لغة Rust ، يتم تكوين تمثيل لتظليل SPIR-V ، والذي تم تطويره من أجل جيله خلفية خاصة لمجمع Rust ، والذي يعمل عن طريق القياس مع مولد رمز الرافعة المستخدم للتجميع في التمثيل WebAssembly.

النهج الحالي هو دعم Vulkan Graphics API و SPIR-V وجهات النظر ، ولكن تم التخطيط للمولدات لمستقبل طرق عرض تظليل DXIL (DirectX) و WGSL (WebGPU). بناءً على Cargo and crates.io ، يجري تطوير أدوات لتطوير ونشر حزم مع تظليل بتنسيق SPIR-V.

أخيرًا ، إذا كنت تريد معرفة المزيد عن هذا المشروع ، يمكنك التحقق من التفاصيل في مستودع المشروع ، الرابط هو هذا.

أما بالنسبة للمهتمين بمعرفة الكود فيجب أن يعلموا أن الكود منشور تحت رخصتي MIT و Apache 2.0 ويمكن الحصول عليه من الرابط أدناه.

ويمكنهم أيضًا الرجوع إلى الوثائق ، التي تم إعدادها بالفعل للمطورين حتى يتمكنوا من العمل على Linux و Windows و Mac. راجع الدليل على هذا الرابط.


محتوى المقال يلتزم بمبادئنا أخلاقيات التحرير. للإبلاغ عن خطأ انقر فوق هنا.

تعليق ، اترك لك

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   الطيار الآلي قال

    يبدأ الصدأ ، ونأمل ألا يكون "سكالا مميتًا" آخر