Collabora zhvillon një shtesë për ekzekutimin e OpenCL dhe OpenGL në krye të DirectX

Shoqëria bashkëpunuese prezantuar një drejtues i ri Gallium për Mesa, i cili zbaton një shtresë për organizimin e punës së API-ve OpenCL 1.2 dhe OpenGL 3.3 në krye të drejtuesve që mbështesin DirectX 12 (D3D12). Kodi botuar nën licencën MIT.

Drejtuesi i propozuar ju lejon të përdorni Mesa në pajisjet që nuk mbështesin në mënyrë origjinale OpenCL dhe OpenGL, dhe gjithashtu si një pikënisje për transferimin e aplikacioneve OpenGL/OpenCL për të ekzekutuar në krye të D3D12. Për prodhuesit e GPU, nënsistemi bën të mundur ofrimin e mbështetjes për OpenCL dhe OpenGL, nëse disponohen vetëm drejtuesit me mbështetje D3D12.

Ndër planet imediate janë arritja e kalimit të plotë të testeve të përputhshmërisë të OpenCL 1.2 dhe OpenGL 3.3, kontrolli i përputhshmërisë me aplikacionet dhe përfshirja e zhvillimeve në përbërjen kryesore të Mesa. Zhvillimi kryhet së bashku me inxhinierët e Microsoft në zhvillim e hapur mjetet D3D11On12 për transferimin e lojërave nga D3D11 në D3D12 dhe bibliotekë Shtresa e përkthimit D3D12, i cili zbaton primitivë standardë grafikë në krye të D3D12.

Implementimi përfshin drejtuesin Gallium, përpiluesin OpenCL, OpenCL runtime dhe përpilues shader NIR-to-DXIL, i cili konverton paraqitjen e ndërmjetme të shaderëve NIR të përdorur në Mesa në formatin binar DXIL (DirectX Intermediate Language), i mbështetur në DirectX 12 dhe i bazuar në LLVM 3.7 bitkodi (Kompozitori Shader DirectX nga Microsoft është në thelb një pirun i zgjeruar i LLVM 3.7). Përpiluesi OpenCL është përgatitur bazuar në zhvillimet e projektit dhe mjeteve LLVM SPIRV-LLVM.

Burimet me zgjerime OpenCL përpilohen duke përdorur clang në pseudokodin e ndërmjetëm LLVM (LLVM IR), i cili më pas konvertohet në një paraqitje të ndërmjetme të bërthamave OpenCL në formatin SPIR-V. Bërthamat në përfaqësimin SPIR-V kalohen në Mesa, përkthehen në formatin NIR, optimizohen dhe kalohen te NIR-te-DXIL për të gjeneruar shader llogaritës në formatin DXIL, të përshtatshme për ekzekutim në GPU duke përdorur kohëzgjatjen e bazuar në DirectX 12.
Në vend të Clover, zbatimi OpenCL i përdorur në Mesa, propozohet një kohë e re ekzekutimi OpenCL, duke lejuar më shumë konvertime të drejtpërdrejta në DirectX 12 API.

Collabora zhvillon një shtesë për ekzekutimin e OpenCL dhe OpenGL në krye të DirectX

Drejtuesit e OpenCL dhe OpenGL përgatiten duke përdorur ndërfaqen Gallium të ofruar në Mesa, e cila ju lejon të krijoni drejtues pa hyrë në detaje specifike të OpenGL dhe të përktheni thirrjet OpenGL në thelb më afër primitiveve grafike me të cilat funksionojnë GPU-të moderne. Drejtuesi Gallium, pranon komandat OpenGL dhe kur përdor përkthyesin NIR-në-DXIL
gjeneron buferat e komandës që ekzekutohen në GPU duke përdorur drejtuesin D3D12.

Burimi: opennet.ru

Shto një koment