Collabora-kehittäjät esittivät uuden Gallium-ohjaimen Mesalle

Collabora-ohjain

Äskettäin Collabora-kehittäjät julkaisivat blogikirjoituksen kautta uusi Gallium-ohjain Mesalle, joka toteuttaa välikerroksen organisoida OpenCL 1.2 ja OpenGL 3.3 API ajureista, joilla on DirectX 12 (D3D12) -tuki ja että heidän lähdekoodinsa julkaistaan ​​MIT-lisenssillä.

Ehdotettu rekisterinpitäjä tekee antaa sinun käyttää Mesaa laitteissa jotka eivät ole alun perin yhteensopivia OpenCL: n ja OpenGL: n kanssa ja myös lähtökohtana portoida OpenGL / OpenCL -sovellukset toimimaan D3D12: lla. GPU-valmistajille alijärjestelmä sallii tuen OpenCL: lle ja OpenGL: lle, ja ohjaimet tukevat vain D3D12: tä.

Kehittäjät jakavat blogikirjoituksessaan:

Viime kuukausien aikana olemme työskennelleet kahden jännittävän uuden projektin parissa Collaborassa, ja on vihdoin aika jakaa niistä tietoa maailman kanssa ...

Välittömistä suunnitelmista, testien täydellisen hyväksynnän saavuttaminen OpenCL 1.2- ja OpenGL 3.3 -tuki, yhteensopivuuden todentaminen sovellusten kanssa ja parhaiden käytäntöjen sisällyttäminen Mesan pääkoostumukseen.

Tietoja uudesta ohjaimesta

Uuden ohjaimen kehittäminen tapahtuu yhdessä Microsoftin insinöörien kanssa kehittää D3D11On12-työkalut D3D11-siirtopakkauksiin ja D3D12 D3D12TranslationLayer-kirjastoon sekä tavalliset graafiset primitiiviset työkalut D3D12: n päälle.

Toimeenpano sisältää Gallium-ohjaimen, OpenCL-kääntäjän, OpenCL-ajonaikainen ja NIR-to-DXIL-varjostin kääntäjä, joka muuntaa Mesassa käytettyjen NIR-varjostimien väliesityksen binääriseksi DXIL-muodoksi (DirectX-välikieli), joka on yhteensopiva DirectX 12: n kanssa ja perustuu bittikoodiin LLVM 3.7 (Microsoftin DirectX Shader Compiler on olennaisesti LLVM 3.7: n jatkettu haarukka). OpenCL-kääntäjä valmisteltiin LLVM-projektin ja SPIRV-LLVM-työkalupaketin kokemusten perusteella.

Tämä työ perustuu moniin aikaisempiin teoksiin. Ensinnäkin rakennamme tämän käyttämällä Mesa 3D: tä, jossa Gallium-käyttöliittymä on pohjana OpenGL-kerrokselle ja NIR pohjautuu OpenCL-kääntäjälle. Kääntäjänä käytämme myös LLVM: ää ja Khronos SPIRV-LLVM -kääntäjää.

Lisäksi hyödynnämme Microsoftin kokemusta D3D12-käännöskerroksen luomisesta sekä omaa kokemustamme Zinkin kehittämisestä.

OpenCL-lähdekoodi käännetään clangin avulla välituotteeseen LLVM-pseudokoodi (LLVM IR), joka sitten muunnetaan OpenCL-ytimen väliesitykseksi SPIR-V-muodossa.

SPIR-V-esityksen ytimet siirretään Mesaan, käännetty NIR-muotoon, optimoitu ja siirretty NIR-to-DXIL: ään sopivien DXIL-laskennallisten varjostimien luomiseksi GPU: n suorittamiseen DirectX 12 -pohjaista ajonaikaa käyttäen. Cloverin käyttämisen sijaan OpenCL Mesa -toteutuksessa ehdotetaan uutta OpenCL-ajonaikaa, joka sallii suoremmat muunnokset DirectX 12 -sovellusliittymään.

OpenCL- ja OpenGL-ohjaimet valmistellaan käyttämällä Gallium-käyttöliittymää tarjotaan Mesassa, jonka avulla voit ohittaa OpenGL-yksityiskohdat ajureita luodessasi ja kääntää OpenGL-puhelut entiteeteiksi, jotka ovat lähempänä nykyajan grafiikkasuorittimien graafisia primitiivejä.

Gallium-ohjain hyväksyy OpenGL-komennot ja rakentaa NIR-to-DXIL-kääntäjän osallistuessa komentopuskurit, jotka suoritetaan GPU: lla D3D12-ohjainta käyttäen.

lopuksi, kehittäjät mainitsevat, että tämä on varhaista työtä ja että he odottavat ohjaimen parantavan ajan myötä:

Tämä on vain ilmoitus, ja paljon työtä on vielä tehtävä. Meillä on jotain, joka toimii joissakin tapauksissa tällä hetkellä, mutta olemme vasta alkaneet naarmuttaa pintaa.

Ensinnäkin meidän on päästävä ominaisuuksien tasolle, johon olemme menossa. Tavoitteenamme on tällä hetkellä läpäistä OpenCL 1.2: n ja OpenGL 3.3: n vaatimustenmukaisuuden testaus. Meillä on pitkä tie kuljettavana, mutta hieman kovalla työllä ja hikoilla pääsemme varmasti sinne.

Jos haluat tietää enemmän siitä, Voit tarkistaa alkuperäisen muistiinpanon sisään seuraava linkki tai niille, jotka ovat kiinnostuneita tarkistamaan lähdekoodin, voivat tehdä niin tästä linkistä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.