Collaborak DirectX-en gainean OpenCL eta OpenGL exekutatzeko gehigarri bat garatzen du

Collabora enpresa aurkeztu Mesarako Gallium kontrolatzaile berria, OpenCL 1.2 eta OpenGL 3.3 APIen lana antolatzeko geruza bat ezartzen duena DirectX 12 (D3D12) onartzen duten kontrolatzaileen gainean. Kodea argitaratuko MIT lizentziapean.

Proposatutako kontrolatzaileak Mesa erabiltzeko aukera ematen du jatorrizko OpenCL eta OpenGL onartzen ez duten gailuetan, eta OpenGL/OpenCL aplikazioak D3D12-ren gainean exekutatzeko abiapuntu gisa ere. GPU ekoizleentzat, azpisistemak OpenCL eta OpenGLrako euskarria eskaintzea ahalbidetzen du, baldin eta D3D12 euskarria duten kontrolatzaileak bakarrik badaude.

Berehalako planen artean, OpenCL 1.2 eta OpenGL 3.3-ren bateragarritasun-probak guztiz gainditzea, aplikazioekin bateragarritasuna egiaztatzea eta Mesaren osaera nagusian garapenak sartzea daude. Garapena Microsoft-eko ingeniariekin batera egiten da open tresnak D3D11On12 jokoak D3D11tik D3D12ra eta liburutegira transferitzeko D3D12TranslationLayer, D3D12-ren gainean primitibo grafiko estandarrak ezartzen dituena.

Inplementazioak Gallium kontrolatzailea, OpenCL konpilatzailea, OpenCL exekuzio-denbora eta NIR-to-DXIL shader konpilatzailea barne hartzen ditu, Mesa-n erabiltzen diren NIR itzalgailuen tarteko irudikapena DXIL (DirectX Intermediate Language) formatu bitar bihurtzen duena, DirectX 12-n onartzen duena eta oinarrituta. LLVM 3.7 bit-kodea (DirectX Shader konpiladorea Microsoft-en LLVM 3.7-ren fork hedatua da funtsean). OpenCL konpilatzailea LLVM proiektuaren eta tresnen garapenetan oinarrituta prestatzen da SPIRV-LLVM.

OpenCL luzapenak dituzten iturburuak clang erabiliz konpilatzen dira LLVM bitarteko pseudokodean (LLVM IR), eta ondoren SPIR-V formatuan OpenCL nukleoen bitarteko irudikapen batean bihurtzen da. SPIR-V irudikapeneko nukleoak Mesara pasatzen dira, NIR formatura itzuli, optimizatu eta NIR-to-DXILra pasatzen dira DXIL formatuan konputatzeko itzalak sortzeko, DirectX 12-n oinarritutako exekuzio-denbora erabiliz GPUetan exekutatzeko egokiak.
Clover-en ordez, Mesan erabiltzen den OpenCL inplementazioa, OpenCL exekuzio-denbora berri bat proposatzen da, DirectX 12 APIrako bihurketa zuzenagoak ahalbidetuz.

Collaborak DirectX-en gainean OpenCL eta OpenGL exekutatzeko gehigarri bat garatzen du

OpenCL eta OpenGL kontrolatzaileak Mesa-n emandako Gallium interfazea erabiliz prestatzen dira, eta horrek aukera ematen dizu kontrolatzaileak sortzeko OpenGL-ren xehetasunetan sartu gabe eta OpenGL deiak funtsean GPU modernoek funtzionatzen duten grafiko primitiboetatik hurbilago itzultzeko. Gallium kontrolatzaileak, OpenGL komandoak onartzen ditu eta NIR-to-DXIL itzultzailea erabiltzean
D3D12 kontrolatzailea erabiliz GPUan exekutatzen diren komando-buffer-ak sortzen ditu.

Iturria: opennet.ru

Gehitu iruzkin berria