Collabora vyvíjí rozšíření pro práci s OpenCL a OpenGL nad DirectX.

Společnost Collabora představila nový Gallium ovladač pro Mesa, který realizuje vrstvu pro organizaci práce API OpenCL 1.2 a OpenGL 3.3 nad ovladači s podporou DirectX 12 (D3D12). Kód byla vydána je licencován pod MIT licencí.

Navrhovaný ovladač umožňuje používat Mesa na zařízeních, která původně nepodporují OpenCL a OpenGL, a také jako výchozí pozici pro portování aplikací OpenGL/OpenCL pro práci nad D3D12. Pro výrobce GPU subsystém poskytuje možnost nabídnout podporu OpenCL a OpenGL, když jsou k dispozici pouze ovladače s podporou D3D12.

Mezi nejbližší plány patří dosažení úplného úspěšného testování kompatibility OpenCL 1.2 a OpenGL 3.3, kontrola kompatibility s aplikacemi a zahrnutí nabytých poznatků do hlavní verze Mesa. Vývoj probíhá ve spolupráci s inženýry Microsoftu, kteří vyvíjejí otevřený nástroje D3D11On12 pro převod her z D3D11 na D3D12 a knihovnu D3D12TranslationLayer, která implementuje typické grafické primitiva nad D3D12.

Realizace zahrnuje Gallium ovladač, kompilátor OpenCL, OpenCL runtime a kompilátor shaderů NIR-to-DXIL, který převádí v Mesě používané mezilehlé reprezentace shaderů NIR do binárního formátu DXIL (DirectX Intermediate Language), podporovaného v DirectX 12 a založeného na bitovém kódu LLVM 3.7 (DirectX Shader Compiler od Microsoftu, což je v podstatě rozšířený fork LLVM 3.7). Kompilátor OpenCL byl vyvinut na základě poznatků z projektu LLVM a nástrojového vybavení SPIRV-LLVM.

Původní kódy s rozšířeními OpenCL jsou kompilovány pomocí clang do mezilehlého pseudokódu LLVM (LLVM IR), který je poté převáděn na mezilehlou reprezentaci OpenCL jader ve formátu SPIR-V. Jádra v reprezentaci SPIR-V jsou předávána do Mesy, transponována do formátu NIR, optimalizována a předávána do NIR-to-DXIL pro generaci výpočetních shaderů ve formátu DXIL, vhodného k provádění na GPU s použitím runtime založeného na DirectX 12.
Namísto Clover, používané v implementaci OpenCL Mesa, byl navržen nový OpenCL runtime, který umožňuje více přímých konverzí do API DirectX 12.

Collabora vyvíjí rozšíření pro práci s OpenCL a OpenGL nad DirectX.

OpenCL a OpenGL ovladače byly připraveny s využitím poskytovaného v Mesě rozhraní Gallium, což umožňuje při vytváření ovladačů nevstupovat do specifických detailů OpenGL a převádět volání OpenGL na entity, které jsou bližší grafickým primitivům, jimiž operují moderní GPU. Gallium ovladač přijímá příkazy OpenGL a s pomocí překladače NIR-to-DXIL.
vytváří příkazy na GPU pomocí D3D12 ovladače.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster