Collabora rozvíja rozšírenie na prácu s OpenCL a OpenGL nad DirectX

Spoločnosť Collabora predstavila nový Gallium ovládač pre Mesa, implementujúci vrstvu pre organizáciu práce API OpenCL 1.2 a OpenGL 3.3 na vrchole ovládačov s podporou DirectX 12 (D3D12). Kód bol zverejnený pod licenciou MIT.

Navrhnutý ovládač umožňuje používať Mesa na zariadeniach, ktoré pôvodne nepodporujú OpenCL a OpenGL, ako aj ako výchoziu pozíciu pre portovanie aplikácií OpenGL/OpenCL na prácu s D3D12. Pre výrobcov GPU podsystem poskytuje možnosť zabezpečiť podporu OpenCL a OpenGL, ak existujú iba ovládače s podporou D3D12.

Medzi najbližšími plánmi sa uvádza dosiahnutie plného prechodu testami kompatibility OpenCL 1.2 a OpenGL 3.3, overenie kompatibility s aplikáciami a zaradenie dosiahnutých výsledkov do hlavnej štruktúry Mesa. Vývoj sa uskutočňuje spoločne s inžiniermi Microsoftu, ktorí rozvíjajú otvorený nástroj D3D11On12 pre prevod hier z D3D11 na D3D12 a knižnicu D3D12TranslationLayer, implementujúcu typické grafické primitíva na vrchné D3D12.

Implementácia zahŕňa Gallium ovládač, kompilátor OpenCL, OpenCL runtime a kompilátor shaderov NIR-to-DXIL, ktorý prevádza používané v Mesa medzičlánkové reprezentácie shaderov NIR na binárny formát DXIL (DirectX Intermediate Language), podporovaný v DirectX 12 a založený na bitovom kóde LLVM 3.7 (DirectX Shader Compiler od Microsoftu, ktorý je v podstate rozšírenou vetvou LLVM 3.7). Kompilátor OpenCL bol pripravený na základe výsledkov projektu LLVM a nástrojov SPIRV-LLVM.

Zdrojové kódy s rozšíreniami OpenCL sa kompilujú pomocou clang na medzičlánkový pseudokód LLVM (LLVM IR), ktorý sa následne prevádza na medzičlánkovú reprezentáciu OpenCL jadier vo formáte SPIR-V. Jadra v reprezentácii SPIR-V sa odovzdávajú do Mesa, prevádzajú sa na formát NIR, optimalizujú sa a odovzdávajú do NIR-to-DXIL na generovanie výpočtových shaderov vo formáte DXIL, vhodnom na vykonávanie na GPU s použitím runtime založeného na DirectX 12.
Namiesto Clover, používaného v Mesa implementácii OpenCL, bol navrhnutý nový OpenCL runtime, ktorý umožňuje viac priameho prevodu do API DirectX 12.

Collabora rozvíja rozšírenie na prácu s OpenCL a OpenGL nad DirectX

Ovládače OpenCL a OpenGL boli pripravené s použitím poskytovaného v Mesa rozhrania Gallium, ktoré umožňuje pri vytváraní ovládačov nezaoberať sa špecifickými detailami OpenGL a prevádzať volania OpenGL na entity, ktoré sú bližšie k grafickým primitívam, ktorými operujú moderné GPU. Gallium ovládač prijíma príkazy OpenGL a pri využití prevodníka NIR-to-DXIL.
formuje príkazy pre GPU, ktoré sú vykonávané s použitím ovládača D3D12.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster