Collabora sta sviluppando un'estensione per il funzionamento di OpenCL e OpenGL sopra DirectX

Collabora ha presentato nuovo driver Gallium per Mesa che implementa uno strato per far funzionare le 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 l'uso di Mesa su dispositivi che inizialmente non supportano OpenCL e OpenGL, fungendo anche da punto di partenza per il porting di applicazioni OpenGL/OpenCL per funzionare su D3D12. Per i produttori di GPU, il sottosistema offre la possibilità di fornire supporto per OpenCL e OpenGL, avendo solo driver con supporto D3D12.

Tra i prossimi obiettivi c'è il completamento dei test di compatibilità per OpenCL 1.2 e OpenGL 3.3, la verifica della compatibilità con le applicazioni e l'inclusione delle innovazioni nel core di Mesa. Lo sviluppo avviene in collaborazione con ingegneri Microsoft che stanno sviluppando aperto strumentazione D3D11On12 per convertire i giochi da D3D11 a D3D12 e la libreria D3D12TranslationLayer, che implementa primitive grafiche 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 utilizzata in Mesa nel formato binario DXIL (DirectX Intermediate Language), supportato in DirectX 12 e basato su LLVM 3.7.DirectX Shader Compiler di Microsoft, fondamentalmente un fork avanzato di LLVM 3.7). Il compilatore OpenCL è stato sviluppato sulla base delle risorse del progetto LLVM e degli strumenti. SPIRV-LLVM.

I codici sorgente con estensioni OpenCL vengono compilati utilizzando clang in un 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 inviati a Mesa, traslati nel formato NIR, ottimizzati e inviati a NIR-to-DXIL per generare shader computazionali nel formato DXIL, idonei per l'esecuzione sulla GPU utilizzando un runtime basato su DirectX 12.
Invece di Clover, utilizzata nell'implementazione OpenCL di Mesa, è stato proposto un nuovo runtime OpenCL che consente più trasformazioni dirette nell'API DirectX 12.

Collabora sta sviluppando un'estensione per il funzionamento di OpenCL e OpenGL sopra DirectX

I driver OpenCL e OpenGL sono stati preparati utilizzando l'interfaccia Gallium fornita in Mesa, che consente la creazione di driver senza approfondire i dettagli specifici di OpenGL e di tradurre le chiamate OpenGL in entità più vicine ai primitivi grafici utilizzati dalle moderne GPU. Il driver Gallium riceve i comandi OpenGL e, coinvolgendo il traduttore NIR-to-DXIL,
forma i buffer di 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