Collabora ha annunciato l'inclusione nel ramo principale del driver Mesa Gallium D3D12, che implementa uno strato per far funzionare OpenGL sopra l'API DirectX 12 (D3D12). È stato anche comunicato il superamento riuscito dei test di compatibilità del driver con OpenGL 3.3 durante l'operazione su driver D3D12 WARP (rasterizzatore software) e NVIDIA.
Il driver può essere utile per l'utilizzo di Mesa su dispositivi con driver che supportano solo D3D12, oltre a fungere da base per il porting di applicazioni OpenGL per operare su API D3D12. Inoltre, il driver potrà essere utilizzato per eseguire applicazioni grafiche in ambienti gestiti dal Windows Subsystem for Linux (WSL), che consente l'esecuzione di file eseguibili Linux su Windows.
Lo sviluppo avviene in collaborazione con ingegneri di Microsoft, che stanno portando avanti strumenti open source D3D11On12 per il trasferimento di giochi da D3D11 a D3D12 e la libreria D3D12TranslationLayer, che implementa primitive grafiche comuni sopra D3D12. Sulla base di questo progetto, Microsoft ha già creato un layer che consente l'esecuzione di applicazioni basate su OpenGL su dispositivi Windows che non forniscono supporto completo per OpenGL. In particolare, è stato possibile far funzionare Photoshop su dispositivi Windows con processori ARM.
L'implementazione include un driver per Mesa e un compilatore di shader NIR-to-DXIL (runtime D3D12), 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 bitcode LLVM 3.7 (il compilarore di shader DirectX da Microsoft è un fork di LLVM 3.7). Il driver per Mesa utilizza l'interfaccia Gallium, accetta comandi OpenGL e, tramite il traduttore NIR-to-DXIL, forma comandi D3D12 che vengono eseguiti sulla GPU tramite il driver di sistema D3D12. Componenti separati sono in fase di sviluppo per garantire il supporto di OpenCL sopra D3D12, comprendenti un compilatore OpenCL e un runtime OpenCL.
Fonte: opennet.ru
