Zhvilluesit e bashkëpunimit prezantuan një kontrollues të ri Gallium për Mesa

Kontrollues bashkëpunues

Kohët e fundit Zhvilluesit bashkëpunues të lëshuar përmes një postimi në blog, kontrollues i ri i galiumit për Mesa, që zbaton një shtresë të ndërmjetme për të organizuar OpenCL 1.2 dhe OpenGL 3.3 API rreth shoferëve me mbështetje DirectX 12 (D3D12) dhe që kodi i tyre burimor lëshohet nën licencën MIT.

Kontrolluesi i propozuar do ju lejon të përdorni Mesa në pajisje të cilat fillimisht nuk janë të pajtueshme me OpenCL dhe OpenGL dhe gjithashtu si një pozicion fillestar për të transportuar aplikacione OpenGL / OpenCL për të punuar në D3D12. Për prodhuesit e GPU, nënsistemi lejon të sigurojë mbështetje për OpenCL dhe OpenGL, me drejtuesit që mbështesin vetëm D3D12.

Në postimin e tyre në blog, zhvilluesit ndajnë:

Për muajt e fundit, ne kemi qenë duke punuar në dy projekte të reja interesante në bashkëpunim, dhe më në fund është koha për të ndarë informacione rreth tyre me botën ...

Nga planet e menjëhershme, është vërejtur arritja e miratimit të plotë të testeve të Mbështetje për OpenCL 1.2 dhe OpenGL 3.3, verifikimi i përputhshmërisë me aplikacionet dhe përfshirja e praktikave më të mira në përbërjen kryesore të Mesa.

Rreth kontrolluesit të ri

Zhvillimi i kontrolluesit të ri kryhet së bashku me inxhinierët e Microsoft për të zhvilluar mjetet D3D11On12 në kompletet e transferimit D3D11 dhe bibliotekën e shtresave D3D12 D3D12Translation, si dhe zbatimet standarde grafike primitive në krye të D3D12.

Implementimi përfshin shoferin Gallium, përpiluesin OpenCL, koha e ekzekutimit të OpenCL dhe përpiluesi i shaderit NIR-to-DXIL, i cili shndërron përfaqësimin e ndërmjetëm të hijezuesve NIR të përdorur në Mesa në formatin binar DXIL (gjuhë e ndërmjetme DirectX), e pajtueshme me DirectX 12 dhe bazuar në kodin bit LLVM 3.7 (Microsoft-i Hartuesi DirectX Shader është në thelb një pirun i zgjatur i LLVM 3.7). Përpiluesi OpenCL u përgatit bazuar në përvojën e projektit LLVM dhe paketën e mjeteve SPIRV-LLVM.

Kjo vepër mbështetet në shumë vepra të mëparshme. Së pari, ne po e ndërtojmë këtë duke përdorur Mesa 3D, me ndërfaqen Gallium si bazë për shtresën OpenGL dhe NIR si bazë për përpiluesin OpenCL. Po përdorim gjithashtu LLVM dhe përkthyesin Khronos SPIRV-LLVM si përpilues.

Për më tepër, ne po shfrytëzojmë përvojën e Microsoft në krijimin e shtresës së tyre të përkthimit D3D12, si dhe përvojën tonë në zhvillimin e Zink.

Kodi burimor OpenCL përpilohet me zhurmë në pseudokodin e ndërmjetëm LLVM (LLVM IR), i cili më pas shndërrohet në një përfaqësim të ndërmjetëm të bërthamës OpenCL në formatin SPIR-V.

Bërthamat në përfaqësimin SPIR-V transferohen në Mesa, i përkthyer në formatin NIR, i optimizuar dhe transferuar në NIR-në-DXIL për të gjeneruar hije të përshtatshme llogaritëse DXIL për ekzekutimin e GPU duke përdorur kohën e duhur të bazuar në DirectX 12. Në vend që të përdorni Clover në Zbatimin OpenCL Mesa, propozohet një kohë e re OpenCL, e cila lejon kthime më të drejtpërdrejta në DirectX 12 API.

Drejtuesit OpenCL dhe OpenGL përgatiten duke përdorur ndërfaqen Gallium të paraqitura në Mesa, e cila ju lejon të anashkaloni specifikat e OpenGL kur krijoni kontrollues dhe të përktheni thirrjet OpenGL në njësi ekonomike që janë më afër primitiveve grafikë në të cilat funksionojnë GPU-të moderne.

Drejtuesi Gallium pranon komandat OpenGL dhe me pjesëmarrjen e përkthyesit NIR-to-DXIL, ndërton buffer komandash që funksionojnë në GPU duke përdorur drejtuesin D3D12.

Së fundi, zhvilluesit përmendin se kjo është punë e hershme dhe se ata presin që kontrolluesi të përmirësohet me kalimin e kohës:

Ky është vetëm njoftimi, dhe mbetet shumë punë për të bërë. Kemi diçka që funksionon në disa raste për momentin, por sapo kemi filluar të kruajmë sipërfaqen.

Para së gjithash, duhet të arrijmë në nivelin e veçorive për të cilat po shkojmë. Qëllimet tona në këtë kohë është të kalojmë testimin e përputhshmërisë për OpenCL 1.2 dhe OpenGL 3.3. Kemi një rrugë të gjatë për të bërë, por me pak punë dhe djersë jam i sigurt se do të arrijmë atje.

Nëse jeni të interesuar të dini më shumë për këtë, ju mund të kontrolloni shënimin origjinal në lidhja e mëposhtme ose për ata që janë të interesuar të rishikojnë kodin burimor mund ta bëjnë këtë nga kjo lidhje.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: AB Internet Networks 2008 SL
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.