Collabora develops an extension for working with OpenCL and OpenGL over DirectX

Virksomheden Collabora præsenterede Den nye Gallium-driver til Mesa implementerer et lag til at organisere arbejdet med API'erne OpenCL 1.2 og OpenGL 3.3 oven på drivere, der understøtter DirectX 12 (D3D12). Koden udgivet under MIT-licensen.

Den foreslåede driver gør det muligt at bruge Mesa på enheder, der oprindeligt ikke understøtter OpenCL og OpenGL, samt fungerer som et udgangspunkt for portering af OpenGL/OpenCL-applikationer til at køre oven på D3D12. For GPU-producenter giver subsystemet mulighed for at tilbyde understøttelse af OpenCL og OpenGL, når der kun er tilgængelige drivere med D3D12-understøttelse.

Blandt de nærmeste planer er at opnå fuld gennemgang af tests for kompatibilitet med OpenCL 1.2 og OpenGL 3.3, verificere kompatibilitet med applikationer og inkludere resultaterne i hovedstrukturen af Mesa. Udviklingen sker i samarbejde med ingeniører fra Microsoft, der udvikler åben værktøjer D3D11On12 til at overføre spil fra D3D11 til D3D12 og biblioteks D3D12TranslationLayer, der implementerer standard grafiske primitive oven på D3D12.

Implementeringen inkluderer Gallium-driveren, OpenCL-kompilatoren, OpenCL-runtime og NIR-to-DXIL shaderkompilatoren, der konverterer det anvendte mellemformat af shaders i Mesa (NIR) til det binære format DXIL (DirectX Intermediate Language), som understøttes i DirectX 12 og er baseret på LLVM 3.7-bittkode (DirectX Shader Compiler fra Microsoft, som i bund og grund er en udvidet fork af LLVM 3.7). OpenCL-kompilatoren er baseret på resultaterne fra LLVM-projektet og værktøjerne SPIRV-LLVM.

Kildekoder med OpenCL-udvidelser kompileres ved hjælp af clang til mellemliggende pseudokode (LLVM IR), som derefter konverteres til et mellemformat for OpenCL-kernel i SPIR-V-format. Kerner i SPIR-V-repræsentation sendes til Mesa, oversættes til NIR-format, optimeres og sendes til NIR-to-DXIL for generering af beregningsshaders i DXIL-format, egnet til udførelse på GPU med et runtime baseret på DirectX 12.
I stedet for Clover, som anvendes i Mesas implementering af OpenCL, er der foreslået en ny OpenCL-runtime, der muliggør flere direkte oversættelser til API'en DirectX 12.

Collabora develops an extension for working with OpenCL and OpenGL over DirectX

OpenCL og OpenGL-drivere er forberedt ved hjælp af det tilgængelige Gallium-interface i Mesa, der gør det muligt at fokusere mindre på OpenGL-specifikke detaljer, og at oversætte OpenGL-opkald til entiteter, der er tættere på de grafiske primitive, som moderne GPU'er arbejder med. Gallium-driveren modtager OpenGL-kommandoer og ved inddragelse af NIR-to-DXIL oversætteren.
danner kommando buffere, der køres på GPU'en, ved hjælp af D3D12-driveren.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster