Programeri Collabora predstavili su novi Gallium kontroler za Mesu

Kontrolor Collabora

Nedavno Pušteni programeri Collabora putem bloga, novi Galijev kontroler za Mesu, koji provodi srednji sloj organizirati OpenCL 1.2 i OpenGL 3.3 API o upravljačkim programima s podrškom za DirectX 12 (D3D12) i da je njihov izvorni kod objavljen pod MIT licencom.

Predloženi kontrolor će omogućuje vam upotrebu Mesa na uređajima koji u početku nisu kompatibilni s OpenCL-om i OpenGL-om a također i kao početni položaj za prijenos OpenGL / OpenCL aplikacija za rad na D3D12. Za proizvođače GPU-a, podsustav omogućuje pružanje podrške za OpenCL i OpenGL, s pokretačkim programima koji podržavaju samo D3D12.

U svom postu na blogu programeri dijele:

Posljednjih nekoliko mjeseci radili smo na dva uzbudljiva nova projekta u Collabori i napokon je vrijeme da informacije o njima podijelimo sa svijetom ...

Neposrednih planova, uočava se postizanje potpunog odobrenja ispitivanja Podrška za OpenCL 1.2 i OpenGL 3.3, provjera kompatibilnosti s aplikacijama i uključivanje najboljih praksi u glavni sastav Mesa-e.

O novom kontroleru

Razvoj novog kontrolera provodi se zajedno s Microsoftovim inženjerima razviti alate D3D11On12 za komplete za prijenos D3D11 i biblioteku D3D12 D3D12TranslationLayer, kao i standardne grafičke primitivne izvedbe na vrhu D3D12.

Implementacija uključuje pogonitelj Galija, kompajler OpenCL, OpenCL runtime i NIR-to-DXIL prevodilac sjenera, koji pretvara posredni prikaz NIR sjenera koji se koriste u Mesi u binarni DXIL format (DirectX srednji jezik), kompatibilan s DirectX 12 i zasnovan na bitnom kodu LLVM 3.7 (Microsoftov DirectX Shader Compiler u osnovi je proširena vilica LLVM 3.7). Kompajler OpenCL pripremljen je na temelju iskustva LLVM projekta i SPIRV-LLVM alata.

Ovaj se rad temelji na mnogim prethodnim radovima. Prije svega, ovo gradimo koristeći Mesa 3D, s sučeljem Gallium kao osnovom za OpenGL sloj i NIR-om kao temeljem za OpenCL kompajler. Također koristimo LLVM i prevoditelj Khronos SPIRV-LLVM kao prevoditelj.

Uz to, koristimo Microsoftovo iskustvo u stvaranju njihovog prijevodnog sloja D3D12, kao i vlastito iskustvo u razvoju Zinka.

Izvorni kod OpenCL-a kompajliran je s clang-om u srednji LLVM pseudokod (LLVM IR), koji se zatim pretvara u posredni prikaz jezgre OpenCL-a u SPIR-V formatu.

Jezgre u SPIR-V reprezentaciji prenose se u Mesu, prevedeno u NIR format, optimizirano i prebačeno u NIR-to-DXIL kako bi se generirali prikladni DXIL računski sjenači za izvršenje GPU-a pomoću izvođenja temeljenog na DirectX 12. Umjesto korištenja Clover-a u implementaciji OpenCL Mesa, predloženo je novo vrijeme izvođenja OpenCL-a, koje omogućuje više izravnih konverzija u DirectX 12 API.

OpenCL i OpenGL upravljački programi pripremaju se pomoću sučelja Gallium pruža Mesa, koji vam omogućuje da zaobiđete OpenGL specifičnosti prilikom stvaranja upravljačkih programa i prevedete OpenGL pozive u entitete koji su bliži grafičkim primitivima na kojima rade moderni GPU-ovi.

Pogonski program Gallium prihvaća OpenGL naredbe i uz sudjelovanje prevoditelja NIR-to-DXIL gradi međuspremnike naredbi koji se izvode na GPU-u pomoću upravljačkog programa D3D12.

Konačno, programeri spominju da je ovo rani rad i da očekuju da će se kontroler s vremenom poboljšati:

Ovo je samo najava, a ostalo je još puno posla. Trenutno imamo nešto što u nekim slučajevima djeluje, ali tek počinjemo grebati površinu.

Prvo, moramo doći do razine značajki kojima idemo. Naši su ciljevi trenutno proći testiranje usklađenosti za OpenCL 1.2 i OpenGL 3.3. Pred nama je dug put, ali uz malo truda i znoja siguran sam da ćemo stići.

Ako vas zanima više o tome, izvornu bilješku možete provjeriti u sljedeći link ili oni koji su zainteresirani za pregled izvornog koda to mogu učiniti s ove poveznice.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.