Collabora enpresa
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
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 (
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.
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