Collabora razvije dodatek za izvajanje OpenCL in OpenGL poleg DirectX

Podjetje Collabora predstavljeno nov gonilnik Gallium za Mesa, ki implementira plast za organizacijo dela API-jev OpenCL 1.2 in OpenGL 3.3 poleg gonilnikov, ki podpirajo DirectX 12 (D3D12). Koda objavljeno pod licenco MIT.

Predlagani gonilnik vam omogoča uporabo Mesa v napravah, ki izvirno ne podpirajo OpenCL in OpenGL, in tudi kot izhodišče za prenos aplikacij OpenGL/OpenCL za izvajanje na vrhu D3D12. Za proizvajalce grafičnih procesorjev podsistem omogoča podporo za OpenCL in OpenGL, če so na voljo samo gonilniki s podporo za D3D12.

Med bližnjimi načrti so doseganje popolne uspešnosti testov združljivosti OpenCL 1.2 in OpenGL 3.3, preverjanje združljivosti z aplikacijami in vključitev razvoja v glavno sestavo Mesa. Razvoj poteka skupaj z razvijalci Microsoftovih inženirjev odprto orodja D3D11Na12 za prenos iger iz D3D11 v D3D12 in knjižnico D3D12TranslationLayer, ki izvaja standardne grafične primitive na vrhu D3D12.

Izvedba vključuje gonilnik Gallium, prevajalnik OpenCL, izvajalno okolje OpenCL in prevajalnik senčil NIR v DXIL, ki pretvori vmesno predstavitev senčil NIR, uporabljenih v Mesi, v binarni format DXIL (DirectX Intermediate Language), ki je podprt v DirectX 12 in temelji na bitna koda LLVM 3.7 (Prevajalnik za Shader za DirectX od Microsofta je v bistvu razširjen fork LLVM 3.7). Prevajalnik OpenCL je pripravljen na podlagi razvoja projekta in orodij LLVM SPIRV-LLVM.

Izvori z razširitvami OpenCL so z uporabo klanga prevedeni v vmesno psevdokodo LLVM (LLVM IR), ki se nato pretvori v vmesno predstavitev jeder OpenCL v formatu SPIR-V. Jedra v predstavitvi SPIR-V se posredujejo v Mesa, prevedejo v format NIR, optimizirajo in posredujejo v NIR-to-DXIL za generiranje računalniških senčnikov v formatu DXIL, ki so primerni za izvajanje na grafičnih procesorjih z uporabo izvajalnega okolja, ki temelji na DirectX 12.
Namesto Cloverja, izvedbe OpenCL, ki se uporablja v Mesi, je predlagano novo izvajalno okolje OpenCL, ki omogoča bolj neposredne pretvorbe v API DirectX 12.

Collabora razvije dodatek za izvajanje OpenCL in OpenGL poleg DirectX

Gonilniki OpenCL in OpenGL so pripravljeni z uporabo vmesnika Gallium, ki je na voljo v Mesi, kar vam omogoča ustvarjanje gonilnikov, ne da bi se spuščali v podrobnosti, specifične za OpenGL, in prevajanje klicev OpenGL v bistvu bližje grafičnim primitivom, na katerih delujejo sodobni grafični procesorji. Gonilnik Gallium, sprejema ukaze OpenGL in pri uporabi prevajalnika NIR v DXIL
generira medpomnilnike ukazov, ki se izvajajo na GPU z uporabo gonilnika D3D12.

Vir: opennet.ru

Dodaj komentar