تقوم Collabora بتطوير وظيفة إضافية لتشغيل OpenCL و OpenGL فوق DirectX

شركة كولابورا مقدم برنامج تشغيل Gallium جديد لـ Mesa، والذي يقوم بتنفيذ طبقة لتنظيم عمل OpenCL 1.2 وOpenGL 3.3 APIs بالإضافة إلى برامج التشغيل التي تدعم DirectX 12 (D3D12). شفرة نشرت بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.

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

ومن بين الخطط المباشرة تحقيق النجاح الكامل في اختبارات التوافق لـ OpenCL 1.2 وOpenGL 3.3، والتحقق من التوافق مع التطبيقات وإدراج التطورات في التكوين الرئيسي لـ Mesa. يتم التطوير بالاشتراك مع مهندسي Microsoft الذين يقومون بالتطوير فتح أدوات D3D11On12 لنقل الألعاب من D3D11 إلى D3D12 والمكتبة D3D12طبقة الترجمة، الذي يطبق الأساسيات الرسومية القياسية أعلى D3D12.

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

يتم تجميع المصادر ذات امتدادات OpenCL باستخدام clang إلى كود زائف متوسط ​​LLVM (LLVM IR)، والذي يتم بعد ذلك تحويله إلى تمثيل وسيط لنواة OpenCL بتنسيق SPIR-V. يتم تمرير النوى في تمثيل SPIR-V إلى Mesa، وترجمتها إلى تنسيق NIR، وتحسينها وتمريرها إلى NIR-to-DXIL لإنشاء تظليل حسابي بتنسيق DXIL، مناسب للتنفيذ على وحدات معالجة الرسومات باستخدام وقت التشغيل المستند إلى DirectX 12.
بدلاً من Clover، تطبيق OpenCL المستخدم في Mesa، تم اقتراح وقت تشغيل OpenCL جديد، مما يسمح بمزيد من التحويلات المباشرة إلى DirectX 12 API.

تقوم Collabora بتطوير وظيفة إضافية لتشغيل OpenCL و OpenGL فوق DirectX

يتم إعداد برامج تشغيل OpenCL وOpenGL باستخدام واجهة Gallium المتوفرة في Mesa، والتي تتيح لك إنشاء برامج تشغيل دون الخوض في تفاصيل خاصة بـ OpenGL وترجمة مكالمات OpenGL بشكل أقرب إلى أساسيات الرسومات التي تعمل عليها وحدات معالجة الرسومات الحديثة. برنامج تشغيل الغاليوم، يقبل أوامر OpenGL وعند استخدام مترجم NIR-to-DXIL
يقوم بإنشاء مخازن مؤقتة للأوامر يتم تنفيذها على وحدة معالجة الرسومات باستخدام برنامج التشغيل D3D12.

المصدر: opennet.ru

إضافة تعليق