A Collabora fejlesztői egy új Gallium vezérlőt mutattak be a Mesa számára

Collabora vezérlő

Mostanában A Collabora fejlesztői kiadták blogbejegyzés útján, a új Gallium vezérlő a Mesa számára, hogy egy közbenső réteget valósít meg az OpenCL 1.2 és az OpenGL 3.3 API szervezéséhez a DirectX 12 (D3D12) támogatással rendelkező illesztőprogramokról, és arról, hogy forráskódjuk MIT licenc alatt szabadul fel.

A javasolt vezérlő meg fogja tenni lehetővé teszi a Mesa eszközön való használatát amelyek eredetileg nem kompatibilisek az OpenCL és az OpenGL használatával és kiindulópontként az OpenGL / OpenCL alkalmazások portálozását is a D3D12-re. A GPU-gyártók számára az alrendszer lehetővé teszi az OpenCL és az OpenGL támogatását, az illesztőprogramok csak a D3D12-et támogatják.

A fejlesztők blogbejegyzésükben megosztják:

Az elmúlt hónapokban két izgalmas új projekten dolgoztunk a Collabora-nál, és végre itt az ideje, hogy információkat osszunk meg róluk a világgal ...

Azonnali tervekből, megfigyelhető, hogy a OpenCL 1.2 és OpenGL 3.3 támogatás, az alkalmazásokkal való kompatibilitás ellenőrzése és a bevált gyakorlatok beépítése a Mesa fő összetételébe.

Az új vezérlőről

Az új vezérlő fejlesztését a Microsoft mérnökeivel közösen végzik D3D11On12 eszközök fejlesztése D3D11 átviteli készletek és D3D12 D3D12TranslationLayer könyvtár számára, valamint szabványos grafikus primitív eszközök a D3D12 tetején.

Az implementáció tartalmazza a Gallium illesztőprogramot, az OpenCL fordítót, az OpenCL futásidejét és a NIR-DXIL shader fordítót, amely átalakítja a Mesában használt NIR árnyékolók közbenső ábrázolását bináris DXIL formátumra (DirectX köztes nyelv), amely kompatibilis a DirectX 12-vel és az LLVM 3.7 bites kódon alapul (Microsoft A DirectX Shader Compiler lényegében az LLVM 3.7 kiterjesztett villája. Az OpenCL fordító az LLVM projekt tapasztalatai és a SPIRV-LLVM eszköztár alapján készült.

Ez a munka sok korábbi munkára épít. Mindenekelőtt ezt a Mesa 3D segítségével építjük fel, az OpenGL réteg alapja a Gallium interfész, az OpenCL fordító alapja pedig a NIR. Fordítóként használjuk az LLVM-et és a Khronos SPIRV-LLVM fordítót is.

Ezenkívül kiaknázzuk a Microsoft tapasztalatait a D3D12 fordító réteg létrehozásában, valamint saját tapasztalatainkat a Zink fejlesztésében.

Az OpenCL forráskódot klangolással fordítják össze a köztes LLVM álkódba (LLVM IR), amelyet ezután az OpenCL kernel közbenső ábrázolásává alakítanak SPIR-V formátumban.

A SPIR-V reprezentáció magjai átkerülnek Mesára, lefordítják NIR formátumra, optimalizálják és átviszik a NIR-DXIL-be megfelelő DXIL számítási árnyékolók létrehozásához a GPU végrehajtásához DirectX 12 alapú futásidejű használatával. Ahelyett, hogy a Clover-t használná az OpenCL Mesa megvalósításában, egy új OpenCL futásidőt javasolnak, amely közvetlenebb átalakítást tesz lehetővé a DirectX 12 API-hoz.

Az OpenCL és az OpenGL illesztőprogramok a Gallium felület segítségével készülnek amelyet a Mesa szolgáltat, amely lehetővé teszi az OpenGL sajátosságainak megkerülését az illesztőprogramok létrehozásakor, és az OpenGL hívásokat olyan entitásokká fordítja, amelyek közelebb vannak a grafikus primitívekhez, amelyeken a modern GPU-k működnek.

A Gallium illesztőprogram elfogadja az OpenGL parancsokat, és a NIR-DXIL fordító részvételével parancspuffereket épít, amelyek a GPU-n futnak a D3D12 illesztőprogram segítségével.

Végül, a fejlesztők megemlítik, hogy ez korai munka és azt várják, hogy a vezérlő idővel javulni fog:

Ez csak a bejelentés, és még sok munka van hátra. Van valami, ami pillanatnyilag bizonyos esetekben működik, de még csak most kezdjük karcolni a felszínt.

Először el kell jutnunk a funkciók szintjére, amely felé tartunk. Célunk jelenleg az OpenCL 1.2 és az OpenGL 3.3 megfelelőségi tesztjeinek átadása. Hosszú út áll előttünk, de egy kis kemény munkával és verejtékezéssel biztosan eljutunk.

Ha érdekel, hogy többet tudjon meg róla, ben ellenőrizheti az eredeti jegyzetet a következő link vagy azok számára, akik érdeklődnek a forráskód áttekintése iránt, megtehetik ebből a linkből.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.