Programeri Collabora predstavili su novi Gallium kontroler za Mesu

Kontrolor Collabora

Nedavno Objavljeni programeri Collabora putem bloga, novi Gallium kontroler za Mesa, koji implementira 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 kontroler će omogućava vam upotrebu Mesa na uređajima koji u početku nisu kompatibilni sa OpenCL i OpenGL a također i kao početna pozicija za prijenos OpenGL / OpenCL aplikacija za rad na D3D12. Za proizvođače GPU-a, podsistem omogućava pružanje podrške za OpenCL i OpenGL, s pokretačkim programima koji podržavaju samo D3D12.

U svom 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 ...

Od neposrednih planova, uočava se postizanje potpunog odobrenja testova Podrška za OpenCL 1.2 i OpenGL 3.3, verifikacija kompatibilnosti sa 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 D3D11On12 alate za D3D11 komplete za prenos i D3D12 D3D12TranslationLayer biblioteku, kao i standardne grafičke primitivne primene na vrhu D3D12.

Implementacija uključuje Galijev upravljački program, OpenCL kompajler, OpenCL runtime i NIR-to-DXIL kompajler osenčivača, koji pretvara posredni prikaz NIR sjenčanja 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 je u osnovi proširena vilica LLVM 3.7). Kompajler OpenCL pripremljen je na osnovu iskustva LLVM projekta i SPIRV-LLVM alata.

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

Pored toga, koristimo Microsoftovo iskustvo u stvaranju njihovog prevoditeljskog sloja D3D12, kao i vlastito iskustvo u razvoju Zinka.

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

Jezgre u SPIR-V reprezentaciji prenose se na Mesa, prevedeno u NIR format, optimizirano i prebačeno u NIR-to-DXIL za generiranje odgovarajućih DXIL računskih sjenera za izvršenje GPU-a koristeći DirectX 12 bazirano runtime. Umjesto korištenja Clover-a u implementaciji OpenCL Mesa, predloženo je novo vrijeme izvođenja OpenCL-a, koje omogućava više direktnih konverzija u DirectX 12 API.

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

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

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

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

Prije svega, moramo doći do nivoa značajki kojima idemo. Naši ciljevi su trenutno proći testiranje usaglaš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 ste zainteresirani da saznate više o tome, možete provjeriti originalnu bilješku sljedeći link ili oni koji su zainteresirani za pregled izvornog koda to mogu učiniti sa ovog linka.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.