Collabora ontwikkel 'n byvoeging om OpenCL en OpenGL bo-op DirectX te laat loop

Maatskappy Collabora aangebied 'n nuwe Gallium-bestuurder vir Mesa, wat 'n laag implementeer vir die organisering van die werk van die OpenCL 1.2 en OpenGL 3.3 API's bo-op bestuurders wat DirectX 12 (D3D12) ondersteun. Kode gepubliseer onder die MIT-lisensie.

Die voorgestelde drywer laat jou toe om Mesa te gebruik op toestelle wat nie OpenCL en OpenGL oorspronklik ondersteun nie, en ook as 'n beginpunt om OpenGL/OpenCL-toepassings oor te dra om bo-op D3D12 te loop. Vir GPU-vervaardigers maak die substelsel dit moontlik om ondersteuning vir OpenCL en OpenGL te verskaf, indien slegs drywers met D3D12-ondersteuning beskikbaar is.

Onder die onmiddellike planne is die bereiking van volle slaag van die verenigbaarheidstoetse van OpenCL 1.2 en OpenGL 3.3, kontrolering van verenigbaarheid met toepassings en die insluiting van ontwikkelings in die hoofsamestelling van Mesa. Ontwikkeling word saam met Microsoft-ingenieurs wat ontwikkel, uitgevoer oop gereedskap D3D11Op12 vir die oordrag van speletjies van D3D11 na D3D12 en biblioteek D3D12Translation Layer, wat standaard grafiese primitiewe bo-op D3D12 implementeer.

Die implementering sluit die Gallium-drywer, OpenCL-samesteller, OpenCL runtime en NIR-na-DXIL-skadu-samesteller in, wat die intermediêre voorstelling van NIR-shaders wat in Mesa gebruik word omskakel na die DXIL (DirectX Intermediate Language) binêre formaat, ondersteun in DirectX 12 en gebaseer op LLVM 3.7 biskode (DirectX Shader Compiler van Microsoft is in wese 'n uitgebreide vurk van LLVM 3.7). Die OpenCL-samesteller word voorberei op grond van die ontwikkelings van die LLVM-projek en gereedskap SPIRV-LLVM.

Bronne met OpenCL-uitbreidings word saamgestel met behulp van clang in LLVM intermediêre pseudokode (LLVM IR), wat dan omgeskakel word in 'n intermediêre voorstelling van OpenCL-pitte in SPIR-V-formaat. Kerns in die SPIR-V-voorstelling word in Mesa oorgedra, na NIR-formaat vertaal, geoptimaliseer en na NIR-na-DXIL oorgedra om rekenaarskaderings in DXIL-formaat te genereer, geskik vir uitvoering op GPU's met DirectX 12-gebaseerde looptyd.
In plaas van Clover, die OpenCL-implementering wat in Mesa gebruik word, word 'n nuwe OpenCL-looptyd voorgestel, wat meer direkte omskakelings na die DirectX 12 API moontlik maak.

Collabora ontwikkel 'n byvoeging om OpenCL en OpenGL bo-op DirectX te laat loop

OpenCL- en OpenGL-bestuurders word voorberei met behulp van die Gallium-koppelvlak wat in Mesa verskaf word, wat jou toelaat om drywers te skep sonder om in OpenGL-spesifieke besonderhede in te gaan en OpenGL-oproepe in wese nader aan die grafiese primitiewe te vertaal waarop moderne GPU's werk. Gallium-bestuurder, aanvaar OpenGL-opdragte en wanneer die NIR-na-DXIL-vertaler gebruik word
genereer opdragbuffers wat op die GPU uitgevoer word deur die D3D12-bestuurder te gebruik.

Bron: opennet.ru

Voeg 'n opmerking