Collabora sviluppa un'estensione per lavorare con OpenCL e OpenGL sopra DirectX

Azienda Collabora ha presentato nuovo driver Gallium per Mesa, che implementa uno strato per l'organizzazione del funzionamento delle API OpenCL 1.2 e OpenGL 3.3 sopra i driver con supporto DirectX 12 (D3D12). Codice pubblicato sotto licenza MIT.

Il driver proposto consente di utilizzare Mesa su dispositivi che inizialmente non supportano OpenCL e OpenGL, nonché come punto di partenza per il porting di applicazioni OpenGL/OpenCL per lavorare sopra D3D12. Per i produttori di GPU, il sottosistema offre la possibilità di fornire supporto per OpenCL e OpenGL, in presenza di driver con supporto solo per D3D12.

Tra i prossimi piani si segnalano il raggiungimento del superamento completo dei test di compatibilità OpenCL 1.2 e OpenGL 3.3, il controllo della compatibilità con le applicazioni e l'inclusione dei risultati nel nucleo principale di Mesa. Lo sviluppo è condotto congiuntamente con ingegneri di Microsoft, che stanno sviluppando aperto un toolkit D3D11On12 per il trasferimento di giochi da D3D11 a D3D12 e la libreria D3D12TranslationLayer, che implementa primitivi grafici standard sopra D3D12.

L'implementazione include il driver Gallium, il compilatore OpenCL, il runtime OpenCL e il compilatore di shader NIR-to-DXIL, che trasforma la rappresentazione intermedia degli shader NIR usata in Mesa nel formato binario DXIL (DirectX Intermediate Language), supportato in DirectX 12 e basato sul bytecode LLVM 3.7 (DirectX Shader Compiler di Microsoft, essenzialmente un fork avanzato di LLVM 3.7). Il compilatore OpenCL è stato preparato sulla base dei risultati del progetto LLVM e degli strumenti SPIRV-LLVM.

I codici sorgente con estensioni OpenCL vengono compilati utilizzando clang in pseudocodice intermedio LLVM (LLVM IR), che viene poi trasformato in una rappresentazione intermedia dei kernel OpenCL nel formato SPIR-V. I kernel nella rappresentazione SPIR-V vengono trasferiti in Mesa, traslati nel formato NIR, ottimizzati e inviati a NIR-to-DXIL per la generazione di shader computazionali nel formato DXIL, adatto per l'esecuzione su GPU utilizzando un runtime basato su DirectX 12.
Invece di Clover, utilizzato nell'implementazione OpenCL di Mesa, è stato proposto un nuovo runtime OpenCL, che consente più trasformazioni dirette nell'API DirectX 12.

Collabora sviluppa un'estensione per lavorare con OpenCL e OpenGL sopra DirectX

I driver OpenCL e OpenGL sono stati preparati utilizzando l'interfaccia Gallium fornita in Mesa, che consente di non approfondire dettagli specifici per OpenGL durante la creazione dei driver e di traslare le chiamate OpenGL in entità più vicine ai primitivi grafici manovrati dalle moderne GPU. Il driver Gallium accetta comandi OpenGL e, con il coinvolgimento del traduttore NIR-to-DXIL.
forma i buffer dei comandi che vengono eseguiti sulla GPU, utilizzando il driver D3D12.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster