Implementarea OpenGL peste DirectX a atins compatibilitatea cu OpenGL 3.3 și este inclusă în Mesa

Compania Collabora a anunțat adoptarea driverului D3D12 Gallium în compoziția principală Mesa, care implementează un strat pentru organizarea lucrărilor OpenGL pe deasupra API-ului DirectX 12 (D3D12). În același timp, s-a anunțat că driverul a trecut cu succes testele de compatibilitate cu OpenGL 3.3 atunci când lucra pe deasupra driverelor WARP (rasterizare software) și NVIDIA D3D12.

Driverul poate fi util pentru utilizarea Mesa pe dispozitive cu drivere care acceptă doar D3D12 și, de asemenea, ca punct de plecare pentru portarea aplicațiilor OpenGL pentru a rula pe partea superioară a API-ului D3D12. În special, driverul poate fi folosit pentru a organiza funcționarea aplicațiilor grafice în medii care rulează subsistemul WSL (Windows Subsystem for Linux), care asigură lansarea fișierelor executabile Linux în Windows.

Dezvoltarea este realizată împreună cu inginerii Microsoft care dezvoltă setul de instrumente deschis D3D11On12 pentru traducerea jocurilor din D3D11 în D3D12 și biblioteca D3D12TranslationLayer, care implementează primitive grafice standard pe deasupra D3D12. Pe baza proiectului luat în considerare, Microsoft a pregătit deja un strat care face posibilă rularea aplicațiilor bazate pe OpenGL pe dispozitive Windows care nu oferă suport complet OpenGL. În special, a fost posibil să se asigure că Photoshop funcționează pe dispozitive Windows cu procesoare ARM.

Implementarea include un driver pentru Mesa și un compilator de shader NIR-to-DXIL (D3D12 runtime), care convertește reprezentarea intermediară a shader-urilor NIR utilizate în Mesa în formatul binar DXIL (DirectX Intermediate Language) suportat în DirectX 12 și bazat pe LLVM 3.7 cod de biți (DirectX Shader Compiler de la Microsoft este un fork al LLVM 3.7). Driverul Mesa folosește interfața Gallium, acceptă comenzi OpenGL și folosește translatorul NIR în DXIL pentru a genera comenzi D3D12, care sunt executate pe GPU prin driverul de sistem D3D12. Separat, componentele sunt dezvoltate pentru a se asigura că OpenCL funcționează pe deasupra D3D12, inclusiv compilatorul OpenCL și runtime OpenCL.

Sursa: opennet.ru

Adauga un comentariu