Collabora arendab OpenCL ja OpenGL pluginaid DirectX-i peal

Ettevõte Collabora esituse uus Gallium-draiver Mesa jaoks, mis rakendab kihistust API OpenCL 1.2 ja OpenGL 3.3 töötamiseks D3D12 (DirectX 12) toetavate draiverite kohal. Kood avaldatud on MIT litsentsi all.

Pakutud draiver võimaldab kasutada Mesat seadmetes, mis algselt ei toeta OpenCL ja OpenGL, ning teenib ka stardipositiivina OpenGL/OpenCL rakenduste portimiseks D3D12 töötamiseks. GPU tootjatele annab alamsüsteem võimaluse pakkuda tuge OpenCL ja OpenGL, kui olemas on ainult D3D12 toetavad draiverid.

Lähiaja plaanidest mainitakse OpenCL 1.2 ja OpenGL 3.3 ühilduvustestide täielikku läbitöötamist, rakendustega ühilduvuse kontrollimist ja nende arenduste lisamist Mesa põhikoosseisu. Arendus käib koostöös Microsofti inseneridega, kes arendavad avatud tööriistakomplekt D3D11On12 mängude ülekandmiseks D3D11-lt D3D12-ks ning raamatukogu D3D12TranslationLayer, mis rakendab tüüpilisi graafilisi primitiive D3D12 kohal.

Realiseerimine sisaldab Galliumi draiverit, OpenCL kompilaatorit, OpenCL jooksutegurit ja NIR-to-DXIL shaderite kompilaatorit, mis muundab Mesas kasutatava NIR shaderite vahepealse esitusviisi DXIL (DirectX Intermediate Language) binaarvormingusse, mida toetatakse DirectX 12-s ja mis põhineb LLVM 3.7 bitikoodil (DirectX Shader Compiler Microsoftilt, mis on põhimõtteliselt laiendatud forkk LLVM 3.7). OpenCL kompilaator on valmistatud LLVM projekti ja tööriistade põhjal SPIRV-LLVM.

OpenCL laienditega lähtekoodid kompileeritakse clangiga vahepealseks pseudokoodiks LLVM (LLVM IR), mis seejärel muundatakse OpenCL tuumade vahepealseks esituseks SPIR-V formaadis. SPIR-V esituses olevad tuumad edastatakse Mesasse, koonduvad NIR formaati, optimeeritakse ja edastatakse NIR-to-DXIL-le, et genereerida DXIL formaadis arvutusshadereid, mis on sobivad GPU-l töötamiseks DirectX 12 baasil põhineva jooksuteguri abil.
Cloveri, mida kasutatakse Mesas OpenCL rakenduses, asemel on pakutud uus OpenCL jooksutegur, mis võimaldab rohkem otseseid muundamisi DirectX 12 API-sse.

Collabora arendab OpenCL ja OpenGL pluginaid DirectX-i peal

OpenCL ja OpenGL draiverid on koostatud Mesa Gallium liidese abil, mis võimaldab draivereid luua süvenemata OpenGL spetsiifilistesse detailidesse ning tõlkida OpenGL loodud kutseid kaasaegsete GPU-de graafikute elementideks. Gallium-draiver võtab vastu OpenGL käsud ja kasutab NIR-to-DXIL tõlkijat.
see kujundab käsu puusid, mida täidetakse GPU-l, kasutades D3D12 draiverit.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster