Collabora razvija dodatak za pokretanje OpenCL-a i OpenGL-a povrh DirectX-a

Tvrtka Collabora predstavio novi upravljački program Gallium za Mesa, koji implementira sloj za organiziranje rada API-ja OpenCL 1.2 i OpenGL 3.3 povrh upravljačkih programa koji podržavaju DirectX 12 (D3D12). Kodirati objavljen pod licencom MIT-a.

Predloženi upravljački program vam omogućuje korištenje Mesa na uređajima koji izvorno ne podržavaju OpenCL i OpenGL, a također i kao početnu točku za prijenos OpenGL/OpenCL aplikacija za izvođenje na vrhu D3D12. Za proizvođače GPU-a, podsustav omogućuje pružanje podrške za OpenCL i OpenGL, ako su dostupni samo upravljački programi s podrškom za D3D12.

Među neposrednim planovima su postizanje potpunog prolaska testova kompatibilnosti OpenCL 1.2 i OpenGL 3.3, provjera kompatibilnosti s aplikacijama i uključivanje razvoja u glavni sastav Mesa. Razvoj se provodi zajedno s razvojnim inženjerima Microsofta otvoreno alata D3D11Na12 za prijenos igara s D3D11 na D3D12 i knjižnicu D3D12TranslationLayer, koji implementira standardne grafičke primitive povrh D3D12.

Implementacija uključuje upravljački program Gallium, OpenCL kompajler, OpenCL runtime i NIR-to-DXIL shader kompajler, koji pretvara međureprezentaciju NIR shadera koji se koriste u Mesi u DXIL (DirectX Intermediate Language) binarni format, podržan u DirectX 12 i temeljen na LLVM 3.7 bitni kod (Kompajler za DirectX Shader od Microsofta je u biti prošireni fork LLVM 3.7). OpenCL kompajler pripremljen je na temelju razvoja LLVM projekta i alata SPIRV-LLVM.

Izvori s OpenCL ekstenzijama kompajliraju se pomoću klanga u LLVM intermediate pseudocode (LLVM IR), koji se zatim pretvara u međureprezentaciju OpenCL kernela u SPIR-V formatu. Jezgre u SPIR-V reprezentaciji prosljeđuju se u Mesa, prevode u NIR format, optimiziraju i prosljeđuju u NIR-to-DXIL za generiranje računalnih shadera u DXIL formatu, prikladnih za izvođenje na GPU-ovima koji koriste vrijeme izvođenja temeljeno na DirectX 12.
Umjesto Clover-a, OpenCL implementacije koja se koristi u Mesi, predlaže se novo OpenCL runtime, koje omogućuje izravnije pretvorbe u DirectX 12 API.

Collabora razvija dodatak za pokretanje OpenCL-a i OpenGL-a povrh DirectX-a

OpenCL i OpenGL upravljački programi pripremaju se korištenjem Gallium sučelja koje nudi Mesa, što vam omogućuje stvaranje upravljačkih programa bez zalaženja u detalje specifične za OpenGL i prevođenje OpenGL poziva u biti bliže grafičkim primitivima na kojima rade moderni GPU-i. Gallium driver, prihvaća OpenGL naredbe i kada se koristi NIR-to-DXIL prevoditelj
generira međuspremnike naredbi koje se izvršavaju na GPU-u pomoću D3D12 upravljačkog programa.

Izvor: opennet.ru

Dodajte komentar