Collabora sviluppa un add-on per eseguisce OpenCL è OpenGL nantu à DirectX

Cumpagnia Collabora prisentatu un novu driver Gallium per Mesa, chì implementa una capa per urganizà u travagliu di l'API OpenCL 1.2 è OpenGL 3.3 in cima à i drivers supportanu DirectX 12 (D3D12). Codice publicatu sottu a licenza MIT.

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 apertu arnesi D3D11On 12 per trasfiriri ghjochi da D3D11 à D3D12 è biblioteca D3D12TranslationLayer, chì implementa primitivi grafichi standard in cima di D3D12.

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 (DirectX Shader Compiler da Microsoft hè essenzialmente una furchetta estesa di LLVM 3.7). U compilatore OpenCL hè preparatu basatu annantu à i sviluppi di u prughjettu LLVM è l'arnesi SPIRV-LLVM.

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.

Collabora sviluppa un add-on per eseguisce OpenCL è OpenGL nantu à DirectX

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

Add a comment