شركة كولابورا
يتيح لك برنامج التشغيل المقترح استخدام Mesa على الأجهزة التي لا تدعم OpenCL وOpenGL بشكل أصلي، وأيضًا كنقطة بداية لنقل تطبيقات OpenGL/OpenCL للتشغيل أعلى D3D12. بالنسبة لمصنعي وحدات معالجة الرسومات، يتيح النظام الفرعي توفير الدعم لـ OpenCL وOpenGL، في حالة توفر برامج التشغيل التي تدعم D3D12 فقط.
ومن بين الخطط المباشرة تحقيق النجاح الكامل في اختبارات التوافق لـ OpenCL 1.2 وOpenGL 3.3، والتحقق من التوافق مع التطبيقات وإدراج التطورات في التكوين الرئيسي لـ Mesa. يتم التطوير بالاشتراك مع مهندسي Microsoft الذين يقومون بالتطوير
يتضمن التنفيذ برنامج تشغيل Gallium، ومترجم OpenCL، ووقت تشغيل OpenCL، ومترجم تظليل NIR-to-DXIL، الذي يحول التمثيل المتوسط لتظليل NIR المستخدم في Mesa إلى التنسيق الثنائي DXIL (لغة DirectX الوسيطة)، المدعوم في DirectX 12 واستنادًا إلى LLVM 3.7 رمز البت (
يتم تجميع المصادر ذات امتدادات 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.
يتم إعداد برامج تشغيل OpenCL وOpenGL باستخدام واجهة Gallium المتوفرة في Mesa، والتي تتيح لك إنشاء برامج تشغيل دون الخوض في تفاصيل خاصة بـ OpenGL وترجمة مكالمات OpenGL بشكل أقرب إلى أساسيات الرسومات التي تعمل عليها وحدات معالجة الرسومات الحديثة. برنامج تشغيل الغاليوم، يقبل أوامر OpenGL وعند استخدام مترجم NIR-to-DXIL
يقوم بإنشاء مخازن مؤقتة للأوامر يتم تنفيذها على وحدة معالجة الرسومات باستخدام برنامج التشغيل D3D12.
المصدر: opennet.ru