„Collabora“ kūrėjai pristatė naują „Mesa“ valdiklį

„Collabora“ valdiklis

Neseniai „Collabora“ kūrėjai išleido per tinklaraščio įrašą naujas „Mesa“ „Gallium“ valdiklis, kuris įgyvendina tarpinį sluoksnį organizuoti „OpenCL 1.2“ ir „OpenGL 3.3 API“ apie tvarkykles, turinčias „DirectX 12“ (D3D12) palaikymą, ir kad jų šaltinio kodas yra išleidžiamas pagal MIT licenciją.

Siūlomas valdytojas tai padarys leidžia naudoti „Mesa“ įrenginiuose kurie iš pradžių nesuderinami su „OpenCL“ ir „OpenGL“ taip pat kaip pradinę padėtį perkelti „OpenGL / OpenCL“ programas dirbti su D3D12. GPU gamintojams posistemis leidžia teikti „OpenCL“ ir „OpenGL“ palaikymą, o tvarkyklės palaiko tik D3D12.

Savo tinklaraščio įraše kūrėjai dalijasi:

Pastaruosius kelis mėnesius „Collabora“ dirbome su dviem įdomiais naujais projektais ir pagaliau atėjo laikas pasidalinti informacija apie juos su pasauliu ...

Iš artimiausių planų, pastebėta, kad buvo visiškai patvirtintas bandymas „OpenCL 1.2“ ir „OpenGL 3.3“ palaikymas, suderinamumo su programomis patikrinimas ir geriausios praktikos įtraukimas į pagrindinę „Mesa“ sudėtį.

Apie naują valdiklį

Naujo valdiklio kūrimas atliekamas kartu su „Microsoft“ inžinieriais sukurti D3D11On12 įrankius D3D11 perkėlimo rinkiniams ir D3D12 D3D12TranslationLayer bibliotekai, taip pat standartinius grafinius primityvius padargus ant D3D12.

Įgyvendinimas apima „Gallium“ tvarkyklę, „OpenCL“ kompiliatorių, „OpenCL“ vykdymo laikas ir „NIR-to-DXIL“ šešėlių kompiliatorius, kuris konvertuoja Mesa naudojamų NIR šešėlių tarpinį vaizdą į dvejetainį DXIL formatą („DirectX“ tarpinė kalba), suderinamą su „DirectX 12“ ir pagrįstą bitų kodu LLVM 3.7 („Microsoft“ „DirectX Shader Compiler“ iš esmės yra išplėstinė LLVM 3.7 šakutė). „OpenCL“ kompiliatorius buvo parengtas remiantis LLVM projekto patirtimi ir SPIRV-LLVM priemonių rinkiniu.

Šis darbas remiasi daugeliu ankstesnių darbų. Visų pirma, mes tai kuriame naudodami „Mesa 3D“, o „Gallium“ sąsaja yra „OpenGL“ sluoksnio pagrindas, o „NIR“ - „OpenCL“ kompiliatoriaus pagrindas. Taip pat kaip kompiliatorių naudojame LLVM ir „Khronos SPIRV-LLVM“ vertėją.

Be to, mes naudojame „Microsoft“ patirtį kuriant jų D3D12 vertimo sluoksnį, taip pat savo patirtį kuriant „Zink“.

„OpenCL“ šaltinio kodas sukompiliuojamas į tarpinį LLVM pseudokodą (LLVM IR), kuris tada paverčiamas tarpiniu „OpenCL“ branduolio atvaizdavimu SPIR-V formatu.

Šerdys, esančios SPIR-V, perkeliamos į Mesą, išverstas į NIR formatą, optimizuotas ir perkeltas į NIR-to-DXIL, kad būtų sukurti tinkami DXIL skaičiavimo šešėliai GPU vykdymui naudojant „DirectX 12“ pagrįstą vykdymo laiką. Užuot naudojęs „Clover“ „OpenCL Mesa“ diegime, siūlomas naujas „OpenCL“ vykdymo laikas, leidžiantis tiesiogiai konvertuoti į „DirectX 12“ API.

„OpenCL“ ir „OpenGL“ tvarkyklės paruošiamos naudojant „Gallium“ sąsają teikiama „Mesa“, kuri leidžia apeiti „OpenGL“ specifiką kuriant tvarkykles ir išversti „OpenGL“ skambučius į esybes, kurios yra arčiau grafinių primityvų, kuriuos veikia šiuolaikiniai GPU.

„Gallium“ tvarkyklė priima „OpenGL“ komandas ir dalyvaujant NIR-to-DXIL vertėjui, sukuria komandų buferius, kurie veikia GPU naudojant D3D12 tvarkyklę.

Galiausiai, kūrėjai mini, kad tai ankstyvas darbas ir kad jie tikisi, kad valdiklis laikui bėgant tobulės:

Tai tik pranešimas ir dar reikia daug nuveikti. Mes turime kažką, kas šiuo metu veikia kai kuriais atvejais, tačiau mes tik pradedame draskyti paviršių.

Visų pirma, turime pereiti prie funkcijų lygio, kurio linkme einame. Šiuo metu mūsų tikslas yra išlaikyti „OpenCL 1.2“ ir „OpenGL 3.3“ atitikties testus. Mūsų laukia ilgas kelias, bet šiek tiek sunkiai dirbant ir prakaitu tikiu, kad ten pateksime.

Jei norite sužinoti daugiau apie tai, galite patikrinti originalų užrašą šią nuorodą arba tiems, kurie nori peržiūrėti šaltinio kodą, jie gali tai padaryti iš šios nuorodos.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.