Kompania Collabora një drejtuese e re Gallium për Mesa, që implementon një ndërfaqe për organizimin e punës së API OpenCL 1.2 dhe OpenGL 3.3 mbi drejtuesit me mbështetje për DirectX 12 (D3D12). Kodi në përputhje me licencën MIT.
drejtuesi i propozuar lejon përdorimin e Mesa në pajisje që fillimisht nuk mbështesin OpenCL dhe OpenGL, si dhe si një pikë fillestare për portimin e aplikacioneve OpenGL/OpenCL për të funksionuar mbi D3D12. Për prodhuesit e GPU-ve, nën-sistemi ofron mundësinë për të ofruar mbështetje për OpenCL dhe OpenGL, nëse ekzistojnë drejtues vetëm me mbështetje D3D12.
nga planet e afërta, përmendet arritja e kalimit të plotë të testeve të kompatibilitetit për OpenCL 1.2 dhe OpenGL 3.3, kontrollimi i përputhshmërisë me aplikacionet dhe përfshirja e punimeve në përbërjen kryesore të Mesa. Zhvillimi po bëhet në bashkëpunim me inxhinierët e Microsoft, të cilët zhvillojnë mjet për të transferuar lojërat nga D3D11 në D3D12 dhe bibliotekën , që implementon primitive grafike standarde mbi D3D12.
Implementimi përfshin driver-in Gallium, kompiluesin OpenCL, runtime-in OpenCL dhe kompiluesin e shenjave NIR-to-DXIL, i cili transformon përfaqësimin e ndërmjetëm NIR të shenjave të përdorura në Mesa në formatin binar DXIL (DirectX Intermediate Language), i cili mbështetet në DirectX 12 dhe është e bazuar në bitkodin LLVM 3.7 ( nga Microsoft është në thelb një fork i zgjeruar i LLVM 3.7). Kompiluesi OpenCL është përgatitur mbi bazën e punimeve të projektit LLVM dhe instrumenteve .
Kodin burimor me zgjerime OpenCL kompilohet me ndihmën e clang në një kod ndërmjetës LLVM (LLVM IR), i cili pastaj transformohet në një përfaqësim të ndërmjetëm të bërthamave OpenCL në formatin SPIR-V. Bërthamat në përfaqësimin SPIR-V dërgohen në Mesa, përkthehen në formatin NIR, optimizohen dhe kalojnë në NIR-to-DXIL për të gjeneruar shenjat e llogaritjeve në formatin DXIL, i cili është i përshtatshëm për ekzekutim në GPU me përdorimin e runtime-it mbi bazën e DirectX 12.
Në vend të Clover, e cila aplikohet në implementimin e OpenCL në Mesa, ofrohet një runtime i ri OpenCL, i cili lejon më shumë konvertime të drejtpërdrejta në API-në DirectX 12.
Drejtorët OpenCL dhe OpenGL janë përgatitur duke përdorur ndërfaqen Gallium të ofruar në Mesa, e cila lejon krijimin e drejtorëve pa u thelluar në detajet e veçanta për OpenGL dhe të transkriptojë thirrjet OpenGL në entitete më të afërta me primitivat grafike që operojnë GPU-të moderne. Drejtori Gallium, pranoni komandat OpenGL dhe, me ndihmën e përkthyesit NIR-to-DXIL
formon buferat e komandave që ekzekutohen në GPU, duke përdorur drejtorin D3D12.
Burimi: opennet.ru
