Collabora DirectX ustidagi OpenCL va OpenGL-ni ishga tushirish uchun qo'shimchani ishlab chiqadi

Kompaniya hamkorlik taqdim Mesa uchun yangi Gallium drayveri, DirectX 1.2 (D3.3D12) ni qo'llab-quvvatlaydigan drayverlar ustiga OpenCL 3 va OpenGL 12 API ishini tashkil qilish uchun qatlamni amalga oshiradi. Kod e'lon qilindi MIT litsenziyasi ostida.

Taklif etilayotgan drayver Mesa-dan OpenCL va OpenGL-ni qo'llab-quvvatlamaydigan qurilmalarda, shuningdek, D3D12 ustida ishlash uchun OpenGL/OpenCL ilovalarini ko'chirish uchun boshlang'ich nuqta sifatida foydalanish imkonini beradi. GPU ishlab chiqaruvchilari uchun quyi tizim, agar faqat D3D12-ni qo'llab-quvvatlaydigan drayverlar mavjud bo'lsa, OpenCL va OpenGL-ni qo'llab-quvvatlash imkonini beradi.

Tezkor rejalar qatoriga OpenCL 1.2 va OpenGL 3.3 moslik sinovlaridan toʻliq oʻtishga erishish, ilovalar bilan mosligini tekshirish va ishlanmalarni Mesa asosiy tarkibiga kiritish kiradi. Ishlab chiqish Microsoft muhandislari bilan birgalikda amalga oshiriladi ochiq asboblar D3D11On12 o'yinlarni D3D11 dan D3D12 va kutubxonaga o'tkazish uchun D3D12TranslationLayer, D3D12 ustidagi standart grafik primitivlarni amalga oshiradi.

Amalga oshirish Gallium drayveri, OpenCL kompilyatori, OpenCL ish vaqti va NIR-to-DXIL shader kompilyatorini o'z ichiga oladi, bu Mesa-da qo'llaniladigan NIR shaderlarining oraliq ko'rinishini DirectX 12 da qo'llab-quvvatlanadigan DXIL (DirectX Intermediate Language) ikkilik formatiga aylantiradi. LLVM 3.7 bitkodi (DirectX Shader Compiler Microsoft-dan bu aslida LLVM 3.7 ning kengaytirilgan vilkasidir). OpenCL kompilyatori LLVM loyihasi va vositalari ishlanmalari asosida tayyorlangan SPIRV-LLVM.

OpenCL kengaytmalari bo'lgan manbalar LLVM oraliq psevdokodiga (LLVM IR) clang yordamida kompilyatsiya qilinadi, keyinchalik u SPIR-V formatida OpenCL yadrolarining oraliq tasviriga aylantiriladi. SPIR-V ko'rinishidagi yadrolar Mesa-ga uzatiladi, NIR formatiga tarjima qilinadi, optimallashtiriladi va DirectX 12-ga asoslangan ish vaqtidan foydalangan holda GPU-larda ishlash uchun mos bo'lgan DXIL formatida hisoblash shaderlarini yaratish uchun NIR-DXIL-ga uzatiladi.
Mesa-da qo'llaniladigan OpenCL ilovasi Clover o'rniga DirectX 12 API-ga ko'proq to'g'ridan-to'g'ri konvertatsiya qilish imkonini beruvchi yangi OpenCL ish vaqti taklif etiladi.

Collabora DirectX ustidagi OpenCL va OpenGL-ni ishga tushirish uchun qo'shimchani ishlab chiqadi

OpenCL va OpenGL drayverlari Mesa-da taqdim etilgan Gallium interfeysi yordamida tayyorlanadi, bu sizga OpenGL-ga xos tafsilotlarga kirmasdan drayverlarni yaratish va OpenGL qo'ng'iroqlarini mohiyatan zamonaviy GPUlar ishlaydigan grafik primitivlarga yaqinroq tarjima qilish imkonini beradi. Gallium drayveri, OpenGL buyruqlarini qabul qiladi va NIR-DXIL tarjimonidan foydalanganda
D3D12 drayveri yordamida GPUda bajariladigan buyruq buferlarini yaratadi.

Manba: opennet.ru

a Izoh qo'shish