Collabora töötab välja lisandmooduli OpenCL-i ja OpenGL-i käitamiseks DirectX-i peal

Ettevõte Collabora esitatakse uus Mesa Galliumi draiver, mis rakendab DirectX 1.2 (D3.3D12) toetavate draiverite peal OpenCL 3 ja OpenGL 12 API töö korraldamise kihti. Kood avaldatud MIT litsentsi alusel.

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 avatud tööriistad D3D11On12 mängude ülekandmiseks D3D11-st D3D12-sse ja raamatukogusse D3D12TranslationLayer, mis rakendab D3D12 peal standardseid graafilisi primitiive.

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 (DirectX Shader Compiler Microsoftilt on sisuliselt LLVM 3.7 laiendatud hark). OpenCL-i kompilaator on koostatud LLVM projekti ja tööriistade arenduste põhjal SPIRV-LLVM.

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.

Collabora töötab välja lisandmooduli OpenCL-i ja OpenGL-i käitamiseks DirectX-i peal

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

Lisa kommentaar