قدم مطورو Collabora وحدة تحكم Gallium جديدة لـ Mesa

تحكم Collabora

حديثا تم إصدار مطوري Collabora من خلال مشاركة مدونة ، فإن وحدة تحكم الغاليوم الجديدة لـ Mesa ، التي تنفذ طبقة وسيطة لتنظيم OpenCL 1.2 و OpenGL 3.3 API حول برامج التشغيل التي تدعم DirectX 12 (D3D12) وأن رمز المصدر الخاص بها تم إصداره بموجب ترخيص MIT.

المراقب المقترح سوف يسمح لك باستخدام ميسا على الأجهزة التي لا تتوافق في البداية مع OpenCL و OpenGL وأيضًا كنقطة انطلاق لمنفذ تطبيقات OpenGL / OpenCL للعمل على D3D12. بالنسبة لمصنعي وحدة معالجة الرسومات ، يسمح النظام الفرعي بتوفير الدعم لـ OpenCL و OpenGL ، مع وجود برامج تشغيل تدعم D3D12 فقط.

في منشور المدونة الخاص بهم ، يشارك المطورون:

خلال الأشهر القليلة الماضية ، كنا نعمل على مشروعين جديدين ومثيرين في Collabora ، وقد حان الوقت أخيرًا لمشاركة المعلومات حولهما مع العالم ...

من الخطط الفورية، لوحظ تحقيق الموافقة الكاملة لاختبارات دعم OpenCL 1.2 و OpenGL 3.3والتحقق من التوافق مع التطبيقات وإدراج أفضل الممارسات في التكوين الرئيسي لـ Mesa.

حول وحدة التحكم الجديدة

يتم تطوير وحدة التحكم الجديدة بالاشتراك مع مهندسي Microsoft لتطوير أدوات D3D11On12 إلى مجموعات نقل D3D11 ومكتبة D3D12 D3D12TranslationLayer ، بالإضافة إلى الأدوات الرسومية الأولية القياسية أعلى D3D12.

التطبيق يتضمن برنامج جاليوم ، مترجم OpenCL، ووقت تشغيل OpenCL ، ومترجم shader NIR-to-DXIL ، الذي يحول التمثيل الوسيط لتظليل NIR المستخدم في Mesa إلى تنسيق DXIL ثنائي (لغة وسيطة DirectX) ، متوافق مع DirectX 12 ويعتمد على رمز بت LLVM 3.7 (Microsoft's يعد برنامج DirectX Shader Compiler أساسًا تفرعًا ممتدًا لـ LLVM 3.7). تم إعداد مترجم OpenCL بناءً على تجربة مشروع LLVM ومجموعة أدوات SPIRV-LLVM.

يعتمد هذا العمل على العديد من الأعمال السابقة. بادئ ذي بدء ، نقوم ببناء هذا باستخدام Mesa 3D ، مع واجهة Gallium كأساس لطبقة OpenGL و NIR كأساس لمجمع OpenCL. نحن نستخدم أيضًا مترجم LLVM ومترجم Khronos SPIRV-LLVM كمترجم.

بالإضافة إلى ذلك ، فإننا نستفيد من خبرة Microsoft في إنشاء طبقة الترجمة D3D12 الخاصة بهم ، بالإضافة إلى خبرتنا الخاصة في تطوير Zink.

يتم تجميع كود مصدر OpenCL مع clang في الكود الكاذب LLVM الوسيط (LLVM IR) ، والذي يتم تحويله بعد ذلك إلى تمثيل وسيط لنواة OpenCL بتنسيق SPIR-V.

يتم نقل النوى في تمثيل SPIR-V إلى ميسا ، تمت ترجمته إلى تنسيق NIR ، وتحسينه ، ونقله إلى NIR-to-DXIL لإنشاء تظليل حسابي DXIL مناسب لتنفيذ GPU باستخدام وقت التشغيل المستند إلى DirectX 12. بدلاً من استخدام Clover في تطبيق OpenCL Mesa ، تم اقتراح وقت تشغيل OpenCL جديد ، والذي يسمح بمزيد من التحويلات المباشرة إلى DirectX 12 API.

يتم إعداد برامج تشغيل OpenCL و OpenGL باستخدام واجهة Gallium المتوفرة في Mesa ، والتي تتيح لك تجاوز تفاصيل OpenGL عند إنشاء برامج تشغيل وترجمة مكالمات OpenGL إلى كيانات أقرب إلى العناصر الأساسية الرسومية التي تعمل عليها وحدات معالجة الرسومات الحديثة.

يقبل برنامج تشغيل Gallium أوامر OpenGL وبمشاركة مترجم NIR-to-DXIL ، ينشئ مخازن أوامر مؤقتة تعمل على وحدة معالجة الرسومات باستخدام برنامج التشغيل D3D12.

وأخيرا، يذكر المطورون أن هذا عمل مبكر وأنهم يتوقعون أن تتحسن وحدة التحكم بمرور الوقت:

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

بادئ ذي بدء ، نحتاج إلى الوصول إلى مستوى الميزات التي نتجه إليها. أهدافنا في هذا الوقت هي اجتياز اختبار المطابقة لـ OpenCL 1.2 و OpenGL 3.3. أمامنا طريق طويل لنقطعه ، لكن مع القليل من العمل الجاد والعرق ، أنا متأكد من أننا سنصل إلى هناك.

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


اترك تعليقك

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

*

*

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