Selskapet Collabora
Den foreslåtte driveren lar deg bruke Mesa på enheter som ikke støtter OpenCL og OpenGL, og også som et utgangspunkt for portering av OpenGL/OpenCL-applikasjoner til å kjøre på toppen av D3D12. For GPU-produsenter gjør delsystemet det mulig å gi støtte for OpenCL og OpenGL, hvis kun drivere med D3D12-støtte er tilgjengelige.
Blant de umiddelbare planene er oppnåelse av full beståelse av kompatibilitetstestene til OpenCL 1.2 og OpenGL 3.3, kontroll av kompatibilitet med applikasjoner og inkludering av utviklingen i hovedsammensetningen til Mesa. Utviklingen utføres i samarbeid med Microsofts ingeniører som utvikler
Implementeringen inkluderer Gallium-driveren, OpenCL-kompilatoren, OpenCL runtime og NIR-to-DXIL shader-kompilatoren, som konverterer den mellomliggende representasjonen av NIR-shaders brukt i Mesa til DXIL (DirectX Intermediate Language) binærformat, støttet i DirectX 12 og basert på LLVM 3.7 bitkode (
Kilder med OpenCL-utvidelser kompileres ved hjelp av clang til LLVM mellomliggende pseudokode (LLVM IR), som deretter konverteres til en mellomrepresentasjon av OpenCL-kjerner i SPIR-V-format. Kjerner i SPIR-V-representasjonen sendes til Mesa, oversettes til NIR-format, optimaliseres og sendes til NIR-til-DXIL for å generere dataskyggere i DXIL-format, egnet for kjøring på GPUer ved bruk av DirectX 12-basert kjøretid.
I stedet for Clover, OpenCL-implementeringen som brukes i Mesa, foreslås en ny OpenCL-runtime, som tillater flere direkte konverteringer til DirectX 12 API.
OpenCL- og OpenGL-drivere er forberedt ved å bruke Gallium-grensesnittet i Mesa, som lar deg lage drivere uten å gå inn i OpenGL-spesifikke detaljer og oversette OpenGL-anrop i hovedsak nærmere grafikkprimitivene som moderne GPUer opererer på. Gallium-driver, godtar OpenGL-kommandoer og når du bruker NIR-til-DXIL-oversetteren
genererer kommandobuffere som kjøres på GPUen ved hjelp av D3D12-driveren.
Kilde: opennet.ru