Įmonė Collabora
Siūloma tvarkyklė leidžia naudoti „Mesa“ įrenginiuose, kurie iš esmės nepalaiko „OpenCL“ ir „OpenGL“, taip pat kaip atspirties tašką „OpenGL“ / „OpenCL“ programų perkėlimui, kad jos veiktų D3D12. GPU gamintojams posistemis leidžia teikti OpenCL ir OpenGL palaikymą, jei yra tik tvarkyklės su D3D12 palaikymu.
Tarp artimiausių planų yra visiškai išlaikyti OpenCL 1.2 ir OpenGL 3.3 suderinamumo testus, patikrinti suderinamumą su programomis ir įtraukti naujoves į pagrindinę Mesa sudėtį. Kūrimas vykdomas kartu su „Microsoft“ inžinieriais
Įdiegimas apima „Gallium“ tvarkyklę, „OpenCL“ kompiliatorių, „OpenCL“ vykdymo laiką ir „NIR-to-DXIL“ šešėlių kompiliatorių, kuris konvertuoja tarpinį „Mesa“ naudojamų NIR atspalvių atvaizdą į dvejetainį DXIL (DirectX Intermediate Language) formatą, palaikomą „DirectX 12“ ir pagrįstą LLVM 3.7 bitų kodas (
Šaltiniai su OpenCL plėtiniais kompiliuojami naudojant clang į LLVM tarpinį pseudokodą (LLVM IR), kuris vėliau konvertuojamas į tarpinį OpenCL branduolių atvaizdą SPIR-V formatu. SPIR-V atvaizdo branduoliai perduodami į Mesa, išverčiami į NIR formatą, optimizuojami ir perduodami į NIR į DXIL, kad būtų generuojami DXIL formato skaičiavimo atspalviai, tinkami vykdyti GPU naudojant DirectX 12 pagrįstą vykdymo laiką.
Vietoj „Mesa“ naudojamo „OpenCL“ diegimo „Clover“ siūlomas naujas „OpenCL“ vykdymo laikas, leidžiantis daugiau tiesioginių konversijų į „DirectX 12“ API.
OpenCL ir OpenGL tvarkyklės yra paruoštos naudojant Mesa pateiktą Gallium sąsają, kuri leidžia kurti tvarkykles nesigilinant į su OpenGL susijusias detales ir iš esmės išversti OpenGL iškvietimus arčiau grafikos primityvų, kuriais veikia šiuolaikiniai GPU. Gallium tvarkyklė, priima OpenGL komandas ir naudojant NIR-DXIL vertėją
generuoja komandų buferius, kurie vykdomi GPU naudojant D3D12 tvarkyklę.
Šaltinis: opennet.ru