„Collabora“ kuria priedą, skirtą „OpenCL“ ir „OpenGL“ paleisti „DirectX“ viršuje

Įmonė Collabora pateiktas nauja „Mesa“ skirta „Gallium“ tvarkyklė, kuri įdiegia „OpenCL 1.2“ ir „OpenGL 3.3“ API darbo organizavimo sluoksnį ant „DirectX 12“ (D3D12) palaikančių tvarkyklių. Kodas paskelbti pagal MIT licenciją.

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 atviras įrankiai D3D11On12 žaidimų perkėlimui iš D3D11 į D3D12 ir biblioteką D3D12TranslationLayer, kuris įdiegia standartinius grafinius primityvus D3D12 viršuje.

Į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 („DirectX Shader Compiler“ „Microsoft“ iš esmės yra išplėstinė LLVM 3.7 šakė). OpenCL kompiliatorius parengtas remiantis LLVM projekto ir įrankių raida SPIRV-LLVM.

Š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.

„Collabora“ kuria priedą, skirtą „OpenCL“ ir „OpenGL“ paleisti „DirectX“ viršuje

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

Добавить комментарий