Ettevõte Collabora
Kavandatav draiver võimaldab kasutada Mesat seadmetes, mis algselt OpenCL-i ja OpenGL-i ei toeta, ning samuti lähtepunktina OpenGL-i/OpenCL-i rakenduste portimiseks D3D12 peal töötamiseks. GPU tootjate jaoks võimaldab alamsüsteem pakkuda OpenCL-i ja OpenGL-i tuge, kui saadaval on ainult D3D12 toega draiverid.
Lähimate plaanide hulgas on OpenCL 1.2 ja OpenGL 3.3 ühilduvustestide täieliku läbimise saavutamine, rakendustega ühilduvuse kontrollimine ning arenduste kaasamine Mesa põhikoosseisu. Arendus toimub koostöös Microsofti inseneridega
Rakendus sisaldab Galliumi draiverit, OpenCL-i kompilaatorit, OpenCL-i käitusaega ja NIR-DXIL-i varjundikompilaatorit, mis teisendab Mesas kasutatavate NIR-varjurite vahepealse esituse DXIL-i (DirectX Intermediate Language) binaarvormingusse, mida toetab DirectX 12 ja mis põhineb sellel. LLVM 3.7 bitkood (
OpenCL-i laiendustega allikad kompileeritakse klangi abil LLVM-i vahepealseks pseudokoodiks (LLVM IR), mis seejärel teisendatakse OpenCL-i tuumade vahepealseks esituseks SPIR-V-vormingus. SPIR-V esituse tuumad edastatakse Mesasse, tõlgitakse NIR-vormingusse, optimeeritakse ja edastatakse NIR-vormingusse DXIL-i, et luua DXIL-vormingus arvutusvarjureid, mis sobivad täitmiseks GPU-des, kasutades DirectX 12-põhist käitusaega.
Mesas kasutatava OpenCL-i Cloveri asemel pakutakse välja uus OpenCL-i käituskeskkond, mis võimaldab otsesemaid konversioone DirectX 12 API-le.
OpenCL- ja OpenGL-draiverid on ette valmistatud Mesas pakutava Galliumi liidese abil, mis võimaldab luua draivereid ilma OpenGL-i spetsiifilistesse üksikasjadesse laskumata ja tõlkida OpenGL-i kõned sisuliselt lähemale graafikaprimitiividele, millel kaasaegsed GPU-d töötavad. Galliumi draiver, aktsepteerib OpenGL-i käske ja NIR-DXIL-i tõlkija kasutamisel
genereerib käsupuhvrid, mis käivitatakse GPU-s D3D12 draiveri abil.
Allikas: opennet.ru