OpenGL:n käyttöönotto DirectX:n kautta on saavuttanut yhteensopivuuden OpenGL 3.3:n kanssa ja sisältyy Mesaan

Collabora-yritys ilmoitti ottavansa käyttöön D3D12 Gallium -ohjaimen Mesan pääkoostumukseen, joka toteuttaa kerroksen OpenGL-työn järjestämiseen DirectX 12 (D3D12) API:n päällä. Samaan aikaan ilmoitettiin, että ajuri läpäisi onnistuneesti OpenGL 3.3 -yhteensopivuustestit työskennellessään WARP- (software rasterizer)- ja NVIDIA D3D12 -ajureiden päällä.

Ohjain voi olla hyödyllinen käytettäessä Mesaa laitteissa, joiden ajurit tukevat vain D3D12:ta, ja myös aloituspisteenä OpenGL-sovellusten siirtämisessä toimimaan D3D12 API:n päällä. Ohjainta voidaan käyttää erityisesti graafisten sovellusten toiminnan järjestämiseen ympäristöissä, joissa on WSL (Windows Subsystem for Linux) -alijärjestelmä, joka varmistaa Linuxin suoritettavien tiedostojen käynnistämisen Windowsissa.

Kehitystä tehdään yhdessä Microsoftin insinöörien kanssa, jotka kehittävät avointa D3D11On12-työkalupakettia pelien kääntämiseen D3D11:stä D3D12:een sekä D3D12TranslationLayer-kirjastoa, joka toteuttaa D3D12:n päälle vakiografiikkaprimitiivit. Käsiteltävänä olevan projektin pohjalta Microsoft on jo valmistellut kerroksen, joka mahdollistaa OpenGL-pohjaisten sovellusten ajamisen Windows-laitteissa, jotka eivät tarjoa täyttä OpenGL-tukea. Erityisesti oli mahdollista varmistaa, että Photoshop toimii Windows-laitteissa, joissa on ARM-suorittimet.

Toteutus sisältää ajurin Mesalle ja NIR-DXIL-shader-kääntäjän (D3D12-ajoaika), joka muuntaa Mesassa käytettyjen NIR-varjosimien väliesityksen DirectX 12:n tukemaan ja LLVM-pohjaiseen binäärimuotoon DXIL (DirectX Intermediate Language). 3.7-bittikoodi (Microsoftin DirectX Shader Compiler on LLVM 3.7:n haarukka). Mesa-ohjain käyttää Gallium-käyttöliittymää, hyväksyy OpenGL-komennot ja käyttää NIR-DXIL-kääntäjää D3D12-komentojen luomiseen, jotka suoritetaan GPU:ssa D3D12-järjestelmäohjaimen kautta. Erikseen kehitetään komponentteja sen varmistamiseksi, että OpenCL toimii D3D12:n päällä, mukaan lukien OpenCL-kääntäjä ja OpenCL-ajoaika.

Lähde: opennet.ru

Lisää kommentti