Vývojári spoločnosti Collabora predstavili nový radič Gallium pre spoločnosť Mesa

Kontrolórka Collabora

Nedávno Collabora vývojári vydané prostredníctvom blogového príspevku, nový regulátor gália pre Mesa, ktorá implementuje medzivrstvu organizovať OpenCL 1.2 a OpenGL 3.3 API o ovládačoch s podporou DirectX 12 (D3D12) a o tom, že ich zdrojový kód je vydaný pod licenciou MIT.

Navrhovaný kontrolór bude umožňuje používať Mesa na zariadeniach ktoré pôvodne nie sú kompatibilné s OpenCL a OpenGL a tiež ako východisková pozícia na portovanie aplikácií OpenGL / OpenCL na prácu na D3D12. Pre výrobcov GPU umožňuje subsystém poskytovať podporu pre OpenCL a OpenGL, pričom ovládače podporujú iba D3D12.

Vo svojom blogovom príspevku vývojári zdieľajú:

Posledné mesiace sme v Collabore pracovali na dvoch vzrušujúcich nových projektoch a konečne je čas zdieľať informácie o nich so svetom ...

Okamžitých plánov, pozoruje sa dosiahnutie úplného schválenia skúšok z Podpora OpenCL 1.2 a OpenGL 3.3, overenie kompatibility s aplikáciami a zahrnutie najlepších postupov do hlavného zloženia Mesa.

O novom ovládači

Vývoj nového ovládača sa uskutočňuje v spolupráci s inžiniermi spoločnosti Microsoft vyvinúť nástroje D3D11On12 na prenosové súpravy D3D11 a knižnicu D3D12 D3D12TranslationLayer, ako aj štandardné grafické primitívne nástroje nad D3D12.

Implementácia obsahuje ovládač Gallium, kompilátor OpenCL, runtime OpenCL a kompilátor shaderu NIR-to-DXIL, ktorý prevádza strednú reprezentáciu shaderov NIR používaných v Mese na binárny formát DXIL (jazyk DirectX), kompatibilný s DirectX 12 a založený na bitovom kóde LLVM 3.7 (Microsoft DirectX Shader Compiler je v podstate rozšírená vidlica LLVM 3.7). Kompilátor OpenCL bol pripravený na základe skúseností z projektu LLVM a súpravy nástrojov SPIRV-LLVM.

Táto práca nadväzuje na mnoho predchádzajúcich prác. V prvom rade to budujeme pomocou Mesa 3D, pričom rozhranie Gallium ako základ pre vrstvu OpenGL a NIR ako základ pre kompilátor OpenCL. Ako prekladač používame aj LLVM a prekladač Khronos SPIRV-LLVM.

Ďalej využívame skúsenosti spoločnosti Microsoft pri vytváraní ich prekladovej vrstvy D3D12, ako aj naše vlastné skúsenosti s vývojom Zinku.

Zdrojový kód OpenCL je skompilovaný s príponou do prechodného pseudokódu LLVM (LLVM IR), ktorý je potom prevedený na strednú reprezentáciu jadra OpenCL vo formáte SPIR-V.

Jadrá v zastúpení SPIR-V sa prenesú do spoločnosti Mesa, preložené do formátu NIR, optimalizované a prevedené do formátu NIR-to-DXIL za účelom generovania vhodných výpočtových shaderov DXIL na vykonávanie GPU pomocou runtime založeného na DirectX 12. Namiesto použitia Clover v implementácii OpenCL Mesa je navrhnutý nový runtime OpenCL, ktorý umožňuje priamejšie konverzie na API DirectX 12.

Ovládače OpenCL a OpenGL sa pripravujú pomocou rozhrania Gallium poskytované programom Mesa, ktorý umožňuje obísť špecifiká OpenGL pri vytváraní ovládačov a prekladať hovory OpenGL do entít, ktoré sú bližšie ku grafickým primitívom, na ktorých fungujú moderné GPU.

Ovládač Gallium prijíma príkazy OpenGL a za účasti prekladača NIR-to-DXIL vytvára vyrovnávacie pamäte príkazov, ktoré bežia na GPU, pomocou ovládača D3D12.

konečne, vývojári spomínajú, že ide o ranú prácu a že očakávajú, že sa kontrolór bude časom zlepšovať:

Toto je iba oznámenie a zostáva ešte veľa práce. Momentálne máme niečo, čo v niektorých prípadoch funguje, ale povrch začíname iba škrabať.

Najskôr sa musíme dostať na úroveň funkcií, ku ktorým smerujeme. Našim cieľom v tejto chvíli je absolvovať testovanie zhody pre OpenCL 1.2 a OpenGL 3.3. Čaká nás ešte dlhá cesta, ale pri troche tvrdej práce a potu som si istý, že sa tam dostaneme.

Ak máte záujem dozvedieť sa viac, pôvodnú poznámku si môžete pozrieť v nasledujúci odkaz alebo pre tých, ktorí majú záujem o kontrolu zdrojového kódu, tak môžu urobiť z tohto odkazu.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.