Firma Collabora
Den foreslåede driver giver dig mulighed for at bruge Mesa på enheder, der ikke naturligt understøtter OpenCL og OpenGL, og også som udgangspunkt for portering af OpenGL/OpenCL-applikationer til at køre oven på D3D12. For GPU-producenter gør undersystemet det muligt at yde support til OpenCL og OpenGL, hvis kun drivere med D3D12-understøttelse er tilgængelige.
Blandt de umiddelbare planer er opnåelse af fuld beståelse af kompatibilitetstestene af OpenCL 1.2 og OpenGL 3.3, kontrol af kompatibilitet med applikationer og inkludering af udviklinger i hovedsammensætningen af Mesa. Udviklingen udføres i samarbejde med Microsofts ingeniører, der udvikler
Implementeringen inkluderer Gallium-driveren, OpenCL-kompileren, OpenCL runtime og NIR-til-DXIL shader-kompileren, som konverterer den mellemliggende repræsentation af NIR-shaders, der bruges i Mesa, til det binære DXIL-format (DirectX Intermediate Language), understøttet i DirectX 12 og baseret på LLVM 3.7 bitcode (
Kilder med OpenCL-udvidelser kompileres ved hjælp af clang til LLVM mellemliggende pseudokode (LLVM IR), som derefter konverteres til en mellemrepræsentation af OpenCL-kerner i SPIR-V-format. Kerner i SPIR-V-repræsentationen overføres til Mesa, oversættes til NIR-format, optimeres og videregives til NIR-til-DXIL for at generere compute shaders i DXIL-format, velegnet til udførelse på GPU'er ved hjælp af DirectX 12-baseret runtime.
I stedet for Clover, OpenCL-implementeringen, der bruges i Mesa, foreslås en ny OpenCL-runtime, som tillader flere direkte konverteringer til DirectX 12 API.
OpenCL- og OpenGL-drivere er forberedt ved hjælp af Gallium-grænsefladen i Mesa, som giver dig mulighed for at oprette drivere uden at gå ind i OpenGL-specifikke detaljer og oversætte OpenGL-kald i det væsentlige tættere på de grafiske primitiver, som moderne GPU'er opererer på. Gallium-driver, accepterer OpenGL-kommandoer og ved brug af NIR-til-DXIL-oversætteren
genererer kommandobuffere, der udføres på GPU'en ved hjælp af D3D12-driveren.
Kilde: opennet.ru