Collabora-udviklere præsenterede en ny Gallium-controller til Mesa

Collabora-controller

For nylig Collabora-udviklere afslørede Gennem et blogindlæg er ny Gallium driver til Mesa, som implementerer et mellemlag at organisere OpenCL 1.2 og OpenGL 3.3 API om drivere med DirectX 12 (D3D12)-understøttelse, og at dens kildekode er udgivet under MIT-licensen.

Den foreslåede controller giver mulighed for at bruge Mesa på enheder som i første omgang ikke er kompatible med OpenCL og OpenGL og også som udgangspunkt for portering af OpenGL/OpenCL-applikationer til at arbejde oven på D3D12. For GPU-producenter muliggør undersystemet understøttelse af OpenCL og OpenGL, med drivere, der kun understøtter D3D12.

I deres blogindlæg deler udviklerne:

I løbet af de sidste par måneder har vi arbejdet på to spændende nye projekter hos Collabora, og det er endelig tid til at dele information om dem med verden...

af umiddelbare planer, er det observeret opnåelse af den fuldstændige godkendelse af testene af OpenCL 1.2 og OpenGL 3.3 understøtter, verifikation af kompatibilitet med applikationer og medtagelse af bedste praksis i hovedsammensætningen af ​​Mesa.

Om den nye controller

Udviklingen af ​​den nye driver udføres i samarbejde med Microsofts ingeniører at udvikle D3D11On12-værktøjer til at overføre spil til D3D11- og D3D12-biblioteket D3D12TranslationLayer, samt standardgrafik-primitive redskaber oven på D3D12.

Implementeringen inkluderer Gallium-driveren, OpenCL-kompileren, OpenCL runtime og NIR-til-DXIL shader compiler, som konverterer den mellemliggende repræsentation af NIR shaders brugt i Mesa til det bitcode-baserede, DirectX 12-kompatible, binære DXIL (DirectX Intermediate Language) format LLVM 3.7 (Microsofts DirectX Shader Compiler er i det væsentlige en forlænget gaffel af LLVM 3.7). OpenCL-kompileren blev udarbejdet baseret på erfaringerne fra LLVM-projektet og SPIRV-LLVM-værktøjssættet.

Dette værk bygger på mange tidligere værker. Først bygger vi dette ved hjælp af Mesa 3D, med Gallium-grænsefladen som base for OpenGL-laget og NIR som base for OpenCL-kompileren. Vi bruger også LLVM og Khronos SPIRV-LLVM-oversætteren som compiler.

Derudover udnytter vi Microsofts erfaring med at bygge deres D3D12-oversættelseslag samt vores egen erfaring med at udvikle Zink.

OpenCL-kildekoden kompileres med clang til mellemliggende LLVM-pseudokode (LLVM IR), som derefter konverteres til en mellemrepræsentation af OpenCL-kernen i SPIR-V-formatet.

Kernerne i SPIR-V-repræsentationen overføres til Mesa, oversat til NIR-format, optimeret og overført til NIR-til-DXIL for at generere egnede DXIL-format beregnings shaders til udførelse på GPU ved hjælp af DirectX 12 baseret runtime. I stedet for at bruge Clover i OpenCL Mesa-implementeringen 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 leveres i Mesa, som giver dig mulighed for at springe OpenGL-specifikke detaljer over, når du opretter drivere og oversætte OpenGL-kald til enheder, der er tættere på de grafiske primitiver, moderne GPU'er opererer på.

Gallium-driveren accepterer OpenGL-kommandoer og danner med deltagelse af NIR-til-DXIL-oversætteren kommandobuffere, der udføres på GPU'en ved hjælp af D3D12-driveren.

Endelig udviklerne nævner, at dette er tidligt arbejde og at de forventer, at controlleren forbedres over tid:

Dette er kun meddelelsen, og der er meget arbejde, der skal gøres. Vi har noget, der virker i nogle tilfælde lige nu, men vi er kun lige begyndt at ridse overfladen.

Først skal vi nå det niveau af funktioner, vi målretter mod. Vores mål på nuværende tidspunkt er at bestå overensstemmelsestestene for OpenCL 1.2 og OpenGL 3.3. Vi har et stykke vej igen, men med lidt hårdt arbejde og sved er jeg sikker på, at vi når dertil.

Hvis du er interesseret i at vide mere om det, du kan tjekke den originale note i følgende link eller for dem, der er interesseret i at gennemgå kildekoden, kan gøre det fra dette link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.