Collabora vyvíja doplnok pre spustenie OpenCL a OpenGL nad DirectX

Spoločnosť Collabora представила nový ovládač Gallium pre Mesa, ktorý implementuje vrstvu na organizáciu práce API OpenCL 1.2 a OpenGL 3.3 nad ovládačmi podporujúcimi DirectX 12 (D3D12). kód zverejnená pod licenciou MIT.

Navrhovaný ovládač vám umožňuje používať Mesa na zariadeniach, ktoré natívne nepodporujú OpenCL a OpenGL, a tiež ako východiskový bod pre portovanie aplikácií OpenGL/OpenCL na spustenie nad D3D12. Výrobcom GPU umožňuje subsystém poskytnúť podporu pre OpenCL a OpenGL, ak sú dostupné iba ovládače s podporou D3D12.

Medzi bezprostredné plány patrí dosiahnutie úplného absolvovania testov kompatibility OpenCL 1.2 a OpenGL 3.3, kontrola kompatibility s aplikáciami a zahrnutie vývoja do hlavného zloženia Mesa. Vývoj prebieha v spolupráci s vývojovými inžiniermi spoločnosti Microsoft otvorený nástrojov D3D11On12 na prenos hier z D3D11 do D3D12 a knižnice D3D12TranslationLayer, ktorá implementuje štandardné grafické primitíva nad D3D12.

Implementácia zahŕňa ovládač Gallium, OpenCL kompilátor, OpenCL runtime a NIR-to-DXIL shader kompilátor, ktorý prevádza prechodnú reprezentáciu NIR shaderov používaných v Mesa do binárneho formátu DXIL (DirectX Intermediate Language), podporovaného v DirectX 12 a založený na LLVM 3.7 bitový kód (Kompilátor DirectX Shader od Microsoftu je v podstate rozšírený fork LLVM 3.7). Kompilátor OpenCL je pripravený na základe vývoja projektu a nástrojov LLVM SPIRV-LLVM.

Zdroje s rozšíreniami OpenCL sa skompilujú pomocou clang do intermediárneho pseudokódu LLVM (LLVM IR), ktorý sa potom prevedie na prechodnú reprezentáciu jadier OpenCL vo formáte SPIR-V. Jadrá v reprezentácii SPIR-V sú prenesené do Mesa, preložené do formátu NIR, optimalizované a odovzdané do NIR-to-DXIL na generovanie výpočtových shaderov vo formáte DXIL, vhodných na spustenie na GPU pomocou runtime založeného na DirectX 12.
Namiesto Clover, implementácie OpenCL používanej v Mesa, sa navrhuje nový runtime OpenCL, ktorý umožňuje priamejšie konverzie na rozhranie DirectX 12 API.

Collabora vyvíja doplnok pre spustenie OpenCL a OpenGL nad DirectX

Ovládače OpenCL a OpenGL sú pripravené pomocou rozhrania Gallium poskytovaného v Mesa, ktoré vám umožňuje vytvárať ovládače bez toho, aby ste museli ísť do detailov špecifických pre OpenGL, a prekladať volania OpenGL v podstate bližšie ku grafickým primitívom, na ktorých fungujú moderné GPU. Ovládač Gallium, akceptuje príkazy OpenGL a pri použití prekladača NIR-to-DXIL
generuje vyrovnávacie pamäte príkazov, ktoré sa vykonávajú na GPU pomocou ovládača D3D12.

Zdroj: opennet.ru

Pridať komentár