Collabora-utviklere presenterte en ny Gallium-kontroller for Mesa

Collabora-kontroller

Nylig Collabora-utviklere utgitt gjennom et blogginnlegg, den ny Gallium-kontroller for Mesa, som implementerer et mellomlag å organisere OpenCL 1.2 og OpenGL 3.3 API om drivere med DirectX 12 (D3D12) -støtte og at kildekoden deres er utgitt under MIT-lisensen.

Den foreslåtte kontrolleren vil lar deg bruke Mesa på enheter som i utgangspunktet ikke er kompatible med OpenCL og OpenGL og også som en startposisjon for å portere OpenGL / OpenCL-applikasjoner for å jobbe på D3D12. For GPU-produsenter tillater delsystemet å gi støtte for OpenCL og OpenGL, med drivere som bare støtter D3D12.

I blogginnlegget deres deler utviklerne:

De siste månedene har vi jobbet med to spennende nye prosjekter hos Collabora, og det er endelig på tide å dele informasjon om dem med verden ...

Av umiddelbare planer, er det observert oppnåelse av fullstendig godkjenning av testene av Støtte for OpenCL 1.2 og OpenGL 3.3, verifisering av kompatibilitet med applikasjoner og inkludering av beste praksis i hovedsammensetningen til Mesa.

Om den nye kontrolleren

Utviklingen av den nye kontrolleren utføres i samarbeid med Microsoft-ingeniører å utvikle D3D11On12-verktøy til D3D11 overføringssett og D3D12 D3D12TranslationLayer-bibliotek, samt standard grafiske primitive redskaper på toppen av D3D12.

Implementeringen inkluderer Gallium driver, OpenCL kompilator, OpenCL-kjøretiden og NIR-til-DXIL-skyggekompilatoren, som konverterer mellomrepresentasjonen av NIR-skyggeleggere som brukes i Mesa til det binære DXIL-formatet (DirectX mellomliggende språk), kompatibelt med DirectX 12 og basert på bitkode LLVM 3.7 (Microsofts DirectX Shader Compiler er egentlig en utvidet gaffel med LLVM 3.7). OpenCL-kompilatoren ble utarbeidet basert på erfaringene fra LLVM-prosjektet og SPIRV-LLVM-verktøysettet.

Dette arbeidet bygger på mange tidligere arbeider. Først bygger vi dette ved hjelp av Mesa 3D, med Gallium-grensesnittet som grunnlag for OpenGL-laget og NIR som grunnlag for OpenCL-kompilatoren. Vi bruker også LLVM og Khronos SPIRV-LLVM-oversetteren som kompilator.

I tillegg utnytter vi Microsofts erfaring med å lage D3D12-oversettelseslaget, så vel som vår egen erfaring med å utvikle Zink.

OpenCL-kildekoden er kompilert med clang i den mellomliggende LLVM-pseudokoden (LLVM IR), som deretter konverteres til en mellomrepresentasjon av OpenCL-kjernen i SPIR-V-format.

Kjernene i SPIR-V-representasjonen overføres til Mesa, oversatt til NIR-format, optimalisert og overført til NIR-to-DXIL for å generere passende DXIL-beregningsskygger for GPU-kjøring ved bruk av DirectX 12-basert kjøretid. I stedet for å bruke Clover i OpenCL Mesa Implementation, foreslås en ny OpenCL-kjøretid, som tillater flere direkte konverteringer til DirectX 12 API.

OpenCL- og OpenGL-drivere forberedes ved hjelp av Gallium-grensesnittet gitt i Mesa, som lar deg omgå OpenGL-detaljene når du oppretter drivere og oversette OpenGL-samtaler til enheter som er nærmere de grafiske primitivene som moderne GPU-er opererer på.

Gallium-driveren godtar OpenGL-kommandoer, og med deltagelse av NIR-til-DXIL-oversetteren bygger han kommandobuffere som kjører på GPUen ved hjelp av D3D12-driveren.

Endelig, utviklere nevner at dette er tidlig arbeid og at de forventer at kontrolleren vil forbedre seg over tid:

Dette er bare kunngjøringen, og mye arbeid gjenstår å gjøre. Vi har noe som fungerer i noen tilfeller for øyeblikket, men vi begynner bare å klø overflaten.

Først av alt må vi komme til nivået av funksjoner som vi er på vei mot. Våre mål på dette tidspunktet er å bestå samsvarstesting for OpenCL 1.2 og OpenGL 3.3. Vi har en lang vei å gå, men med litt hardt arbeid og svette er jeg sikker på at vi kommer dit.

Hvis du er interessert i å vite mer om det, du kan sjekke originalnotatet følgende lenke eller for de som er interessert i å se gjennom kildekoden kan gjøre det fra denne lenken.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.