Cumpagnia Collabora
U driver prupostu permette di utilizà Mesa nantu à i dispositi chì ùn supportanu micca in modu nativu OpenCL è OpenGL, è ancu cum'è un puntu di partenza per portà l'applicazioni OpenGL / OpenCL per eseguisce nantu à D3D12. Per i pruduttori di GPU, u sottosistema permette di furnisce supportu per OpenCL è OpenGL, se solu i cunduttori cù supportu D3D12 sò dispunibili.
Trà i piani immediati sò u successu di passà cumpletu di e teste di cumpatibilità di OpenCL 1.2 è OpenGL 3.3, verificazione di cumpatibilità cù l'applicazioni è l'inclusione di sviluppi in a cumpusizioni principali di Mesa. U sviluppu hè realizatu cumuna cù l'ingegneri Microsoft chì sviluppanu
L'implementazione include u driver Gallium, u compilatore OpenCL, u runtime OpenCL è u compilatore di shader NIR-à-DXIL, chì converte a rapprisintazioni intermedia di shaders NIR utilizati in Mesa in u formatu binariu DXIL (DirectX Intermediate Language), supportatu in DirectX 12 è basatu LLVM 3.7 bitcode (
I fonti cù estensioni OpenCL sò compilati cù clang in LLVM pseudocode intermediate (LLVM IR), chì hè poi cunvertitu in una rapprisintazioni intermediata di i kernels OpenCL in u formatu SPIR-V. I core in a rapprisintazioni SPIR-V sò passati in Mesa, traduttu in formatu NIR, ottimizzati è passati à NIR-à-DXIL per generà sfumature di compute in formatu DXIL, adattati per l'esekzione in GPU cù runtime basatu in DirectX 12.
Invece di Clover, l'implementazione OpenCL utilizata in Mesa, un novu runtime OpenCL hè prupostu, chì permette cunversione più diretta à l'API DirectX 12.
I driver OpenCL è OpenGL sò preparati utilizendu l'interfaccia Gallium furnita in Mesa, chì vi permette di creà drivers senza entre in dettagli specifichi OpenGL è traduce e chjama OpenGL in essenza più vicinu à i primitivi grafichi chì i GPU muderni operanu. U driver Gallium, accetta cumandamenti OpenGL è quandu si usa u traduttore NIR-à-DXIL
genera buffer di cumanda chì sò eseguiti nantu à a GPU cù u driver D3D12.
Source: opennet.ru