A Collabora egy kiegészítőt fejleszt az OpenCL és az OpenGL futtatásához a DirectX tetején

Collabora cég bemutatott egy új Gallium illesztőprogram a Mesa számára, amely egy réteget valósít meg az OpenCL 1.2 és OpenGL 3.3 API-k munkájának szervezésére a DirectX 12 (D3D12) illesztőprogramokon felül. Kód közzétett az MIT engedélye alapján.

A javasolt illesztőprogram lehetővé teszi a Mesa használatát olyan eszközökön, amelyek natívan nem támogatják az OpenCL-t és az OpenGL-t, valamint kiindulási pontként az OpenGL/OpenCL-alkalmazások D3D12-n történő futtatásához. A GPU-gyártók számára az alrendszer lehetővé teszi az OpenCL és az OpenGL támogatását, ha csak D3D12 támogatással rendelkező illesztőprogramok állnak rendelkezésre.

A közvetlen tervek között szerepel az OpenCL 1.2 és OpenGL 3.3 kompatibilitási tesztjeinek teljes teljesítése, az alkalmazásokkal való kompatibilitás ellenőrzése és a fejlesztések beépítése a Mesa fő összetételébe. A fejlesztést a Microsoft mérnökeivel közösen végzik nyílt eszközöket D3D11On12 játékok átviteléhez D3D11-ről D3D12-re és könyvtárra D3D12TranslationLayer, amely szabványos grafikus primitíveket valósít meg a D3D12 tetején.

A megvalósítás tartalmazza a Gallium illesztőprogramot, az OpenCL fordítót, az OpenCL futtatókörnyezetet és a NIR-DXIL shader fordítót, amely a Mesa-ban használt NIR shaderek közbenső reprezentációját a DirectX 12-ben támogatott DXIL (DirectX Intermediate Language) bináris formátummá alakítja át. LLVM 3.7 bitkód (DirectX Shader Compiler a Microsofttól lényegében az LLVM 3.7 kiterjesztett forkja). Az OpenCL fordító az LLVM projekt és az eszközök fejlesztései alapján készül SPIRV-LLVM.

Az OpenCL-kiterjesztésekkel rendelkező forrásokat a clang segítségével LLVM intermediate pszeudokódba (LLVM IR) fordítják, amelyet azután az OpenCL kernelek köztes reprezentációjává alakítanak át SPIR-V formátumban. A SPIR-V reprezentációban lévő magokat a Mesa-ba továbbítják, NIR formátumba fordítják, optimalizálják és átadják a NIR-DXIL-nek, hogy DXIL formátumú számítási shadereket hozzanak létre, amelyek alkalmasak a DirectX 12 alapú futásidejű GPU-kon történő végrehajtásra.
A Clover, a Mesa-ban használt OpenCL-megvalósítás helyett egy új OpenCL-futási környezet javasolt, amely lehetővé teszi a közvetlenebb konverziókat a DirectX 12 API-ra.

A Collabora egy kiegészítőt fejleszt az OpenCL és az OpenGL futtatásához a DirectX tetején

Az OpenCL és az OpenGL illesztőprogramok a Mesa által biztosított Gallium interfész segítségével készülnek, amely lehetővé teszi, hogy meghajtókat készítsen anélkül, hogy belemenne az OpenGL-specifikus részletekbe, és lényegében közelebb fordíthatja az OpenGL-hívásokat a modern GPU-k által használt grafikus primitívekhez. Gallium illesztőprogram, elfogadja az OpenGL parancsokat és a NIR-DXIL fordító használatakor
parancspuffereket állít elő, amelyeket a GPU-n a D3D12 illesztőprogram segítségével hajtanak végre.

Forrás: opennet.ru

Hozzászólás