Collabora utvecklar ett lager för att stödja OpenCL och OpenGL ovanpÄ DirectX

Collabora har presenterat ny Gallium-drivrutin för Mesa, som implementerar ett lager för att organisera arbetet med API:erna OpenCL 1.2 och OpenGL 3.3 ovanpÄ drivrutiner som stöder DirectX 12 (D3D12). Koden publicerades licensieras under MIT.

Den föreslagna drivrutinen tillÄter anvÀndning av Mesa pÄ enheter som ursprungligen inte stöder OpenCL och OpenGL, samt fungerar som en startpunkt för portering av OpenGL/OpenCL-applikationer för att arbeta ovanpÄ D3D12. För GPU-tillverkare ger subsystemet möjlighet att erbjuda stöd för OpenCL och OpenGL, med drivrutiner som endast stöder D3D12.

Bland de nÀrmaste planerna finns att uppnÄ fullstÀndig genomgÄng av tester för kompatibilitet med OpenCL 1.2 och OpenGL 3.3, kontroll av kompatibilitet med applikationer och inkludering av resultat i den grundlÀggande sammansÀttningen av Mesa. Utvecklingen sker i samarbete med ingenjörer frÄn Microsoft som utvecklar öppen verktyg D3D11On12 för att översÀtta spel frÄn D3D11 till D3D12 och biblioteket D3D12TranslationLayer, som implementerar typiska grafiska primitiva ovanpÄ D3D12.

Implementeringen inkluderar Gallium-drivrutinen, OpenCL-kompilatorn, OpenCL-runtime och kompilatorn för NIR-to-DXIL, som omvandlar det mellanliggande representationsformatet för shaderna NIR som anvÀnds i Mesa till det binÀra formatet DXIL (DirectX Intermediate Language), som stöds i DirectX 12 och baseras pÄ LLVM 3.7 bitkod (DirectX Shader Compiler frÄn Microsoft som i grunden Àr en utökad fork av LLVM 3.7). OpenCL-kompilatorn Àr förberedd baserat pÄ resultaten av LLVM-projektet och verktygen SPIRV-LLVM.

KÀllkoder med OpenCL-tillÀgg kompileras med clang till mellanliggande pseudokod i LLVM (LLVM IR), som sedan omvandlas till det mellanliggande formatet för OpenCL-kÀrnor i SPIR-V-format. KÀrnorna i SPIR-V-formatet överförs till Mesa, översÀtts till NIR-format, optimeras och överförs till NIR-to-DXIL för att generera berÀkningsshader i DXIL-format, lÀmplig för körning pÄ GPU med hjÀlp av runtime baserad pÄ DirectX 12.
IstÀllet för Clover, som anvÀnds i Mesa-implementationen av OpenCL, föreslÄs en ny OpenCL-runtime, som tillÄter fler direkta omvandlingar till API:et DirectX 12.

Collabora utvecklar ett lager för att stödja OpenCL och OpenGL ovanpÄ DirectX

OpenCL- och OpenGL-drivrutinerna har förberetts med hjÀlp av det grÀnssnitt som erbjuds av Mesa Gallium, vilket gör det möjligt att vid skapandet av drivrutinerna undvika specifika detaljer för OpenGL och översÀtta OpenGL-anrop till entiteter som ligger nÀrmare de grafiska primitiva som moderna GPU:er arbetar med. Gallium-drivrutinen tar emot OpenGL-kommandon och involverar översÀttaren NIR-to-DXIL.
bildar kommandobuffertar som körs pÄ GPU, med hjÀlp av D3D12-drivrutinen.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster