Collabora zhvillon një shtesë për funksionimin e OpenCL dhe OpenGL mbi DirectX

Kompania Collabora paraqiti 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 është publikuar 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ë të hapur mjet D3D11On12 për të transferuar lojërat nga D3D11 në D3D12 dhe bibliotekën D3D12TranslationLayer, 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 (Kompiluesi i Shenjave DirectX 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 SPIRV-LLVM.

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.

Collabora zhvillon një shtesë për funksionimin e OpenCL dhe OpenGL mbi DirectX

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

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster