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

Kompania Collabora ka prezantuar Një drejtues i ri Gallium për Mesa, që implementon një shtresë për të organizuar funksionimin e API OpenCL 1.2 dhe OpenGL 3.3 mbi drejtuesit që mbështesin DirectX 12 (D3D12). Kodi u publikua nën 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ë punuar mbi D3D12. Për prodhuesit e GPU-ve, nën-sistemi ofron mundësinë për të siguruar mbështetje për OpenCL dhe OpenGL, nëse janë të pranishëm drejtues vetëm me mbështetje për D3D12.

Nga planet më të afërta, theksohet arritja e kalimit të plotë të testeve për përputhshmërinë me OpenCL 1.2 dhe OpenGL 3.3, verifikimi i përputhshmërisë me aplikacionet dhe përfshirja e punimeve në përbërjen kryesore të Mesa. Zhvillimi po kryhet në bashkëpunim me inxhinierët e Microsoft, që zhvillojnë të hapur instrumentin D3D11On12 për të transferuar lojëra nga D3D11 në D3D12 dhe bibliotekën D3D12TranslationLayer, e cila implementon primitive grafike tipike mbi D3D12.

Implementimi përfshin drejtuesin Gallium, kompilatorin OpenCL, runtime-in OpenCL dhe kompilatorin e shaderëve NIR-to-DXIL, i cili transformon përfaqësimin ndërmjetës të shaderëve NIR në formatin binar DXIL (DirectX Intermediate Language), i mbështetur në kodin LLVM 3.7 (DirectX Shader Compiler nga Microsoft i cili në thelb është një fork i zgjeruar i LLVM 3.7). Kompilatori OpenCL është përgatitur mbi bazën e punimeve të projektit LLVM dhe mjetit SPIRV-LLVM.

Kodet burimore me zgjerimet OpenCL kompilohet me clang në pseudokodin ndërmjetës LLVM (LLVM IR), i cili pastaj transformohet në përfaqësimin ndërmjetës të bërthamave OpenCL në formatin SPIR-V. Bërthamat në përfaqësimin SPIR-V kalohen në Mesa, transformohen në format NIR, optimizohen dhe kalohen në NIR-to-DXIL për të gjeneruar shaderët e llogaritjes në formatin DXIL, të përshtatshëm për ekzekutimin në GPU duke përdorur runtime bazuar në DirectX 12.
Në vend të Clover, e cila përdoret në implementimin e OpenCL të Mesa, është propozuar një runtime i ri OpenCL që lejon më shumë ndryshime të drejtpërdrejta në API-në DirectX 12.

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

Drejtuesit OpenCL dhe OpenGL janë përgatitur duke përdorur ndërfaqen e ofruar në Mesa Gallium, e cila lejon që gjatë krijimit të drejtuesve të mos thellohet në detajet specifike për OpenGL dhe të transformojë thirrjet OpenGL në entitete, më të afërta me primitive grafike me të cilat punojnë GPU-të moderne. Drejtuesi Gallium, pranon komandat OpenGL dhe duke angazhuar translatorin NIR-to-DXIL.
formon bufere komandash, të cilat ekzekutohen në GPU, duke përdorur drejtuesin D3D12.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster