Gli sviluppatori di Collabora hanno presentato un nuovo controller Gallio per Mesa

Controller Collabora

Recentemente Rilasciati gli sviluppatori di Collabora tramite un post sul blog, il nuovo controller Gallio per Mesa, che implementa uno strato intermedio per organizzare OpenCL 1.2 e OpenGL 3.3 API sui driver con supporto DirectX 12 (D3D12) e sul fatto che il loro codice sorgente sia rilasciato sotto licenza MIT.

Il controller proposto lo farà ti permette di usare Mesa sui dispositivi che inizialmente non sono compatibili con OpenCL e OpenGL e anche come posizione di partenza per portare le applicazioni OpenGL / OpenCL per lavorare su D3D12. Per i produttori di GPU, il sottosistema consente di fornire supporto per OpenCL e OpenGL, con driver che supportano solo D3D12.

Nel loro post sul blog, gli sviluppatori condividono:

Negli ultimi mesi abbiamo lavorato a due nuovi entusiasmanti progetti in Collabora, ed è finalmente giunto il momento di condividere le informazioni su di loro con il mondo ...

Di piani immediati, si osserva il raggiungimento della completa approvazione delle prove di Supporto per OpenCL 1.2 e OpenGL 3.3, verifica della compatibilità con le applicazioni e inserimento delle best practice nella composizione principale di Mesa.

Informazioni sul nuovo controller

Lo sviluppo del nuovo controller viene effettuato in collaborazione con gli ingegneri Microsoft sviluppare strumenti D3D11On12 per i kit di trasferimento D3D11 e la libreria D3D12 D3D12TranslationLayer, oltre a strumenti primitivi grafici standard su D3D12.

L'implemento include driver Gallio, compilatore OpenCL, il runtime OpenCL e il compilatore shader NIR-to-DXIL, che converte la rappresentazione intermedia degli shader NIR utilizzati in Mesa nel formato DXIL binario (linguaggio intermedio DirectX), compatibile con DirectX 12 e basato sul codice bit LLVM 3.7 (Microsoft DirectX Shader Compiler è essenzialmente un fork esteso di LLVM 3.7). Il compilatore OpenCL è stato preparato sulla base dell'esperienza del progetto LLVM e del toolkit SPIRV-LLVM.

Questo lavoro si basa su molti lavori precedenti. Prima di tutto, lo stiamo costruendo utilizzando Mesa 3D, con l'interfaccia Gallio come base per il livello OpenGL e NIR come base per il compilatore OpenCL. Stiamo anche usando LLVM e il traduttore Khronos SPIRV-LLVM come compilatore.

Inoltre, stiamo sfruttando l'esperienza di Microsoft nella creazione del loro livello di traduzione D3D12, così come la nostra esperienza nello sviluppo di Zink.

Il codice sorgente OpenCL viene compilato con clang nello pseudocodice LLVM intermedio (LLVM IR), che viene quindi convertito in una rappresentazione intermedia del kernel OpenCL nel formato SPIR-V.

I nuclei nella rappresentazione SPIR-V vengono trasferiti a Mesa, tradotto in formato NIR, ottimizzato e trasferito da NIR a DXIL per generare shader computazionali DXIL adatti per l'esecuzione della GPU utilizzando il runtime basato su DirectX 12. Invece di utilizzare Clover nell'implementazione di OpenCL Mesa, viene proposto un nuovo runtime OpenCL, che consente conversioni più dirette all'API DirectX 12.

I driver OpenCL e OpenGL vengono preparati utilizzando l'interfaccia Gallio fornito in Mesa, che consente di aggirare le specifiche OpenGL durante la creazione di driver e tradurre le chiamate OpenGL in entità più vicine alle primitive grafiche su cui operano le GPU moderne.

Il driver Gallium accetta comandi OpenGL e, con la partecipazione del traduttore da NIR a DXIL, crea buffer di comandi che vengono eseguiti sulla GPU utilizzando il driver D3D12.

Infine, gli sviluppatori dicono che questo è il lavoro iniziale e che si aspettano che il controller migliori nel tempo:

Questo è solo l'annuncio e resta ancora molto lavoro da fare. Abbiamo qualcosa che funziona in alcuni casi al momento, ma stiamo appena iniziando a scalfire la superficie.

Prima di tutto, dobbiamo arrivare al livello di funzionalità che ci stiamo dirigendo. Il nostro obiettivo in questo momento è superare i test di conformità per OpenCL 1.2 e OpenGL 3.3. Abbiamo una lunga strada da percorrere, ma con un po 'di duro lavoro e sudore sono sicuro che ci arriveremo.

Se sei interessato a saperne di più, puoi controllare la nota originale in il seguente collegamento o per coloro che sono interessati a rivedere il codice sorgente può farlo da questo link.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.