WSL saa DirectX-tuen Linuxissa 21H1 Buildilla
Microsoft lisää DirectX-tuen WSL 2 -ympäristössä toimiviin Linux-distroihin. Muutos astuu voimaan ensimmäisillä 21H1-rakennuksilla Fast Ringin Iron (Fe) -haaralta, joiden odotetaan tulevan tänä kesäkuussa.
Microsoft on esittelyssä Windows Display Driver Model -versio 2.9, WDDMv2.9, joka tuo GPU-kiihdytyksen WSL 2:een. Jotta se olisi mahdollista, WSL: n puolella on erityinen Linux-ydinmoduuli, dxgkrnl
.
dxgkrnl
Dxgkrnl on upouusi ydinohjain Linuxille, joka paljastaa /dev/dxg laitteesta käyttäjätilaan Linux. /dev/dxg paljastaa IOCTL-joukon, joka jäljittelee läheisesti alkuperäistä WDDM D3DKMT -ytimen palvelukerrosta Windowsissa. Linux-ytimen sisällä oleva Dxgkrnl muodostaa yhteyden VM-väylän kautta isoveljeensä Windows-isännässä ja käyttää tätä VM-väyläyhteyttä viestiäkseen fyysisen grafiikkasuorittimen kanssa.
Jos isännässä on useita GPU: ita, kaikki GPU: t projisoidaan ja ovat Linux-ympäristön käytettävissä (olettaen, että kaikissa näissä GPU: issa on WDDMv2.9-ohjaimet).
Microsoft väittää, että arkkitehtuuri ei rajoita tai häiritse WSL-sovellusten ja GPU-resurssien suorituskykyä jaetaan oikein Linux-käyttöliittymän rinnalla toimivien Windows-sovellusten ja sitä käyttävien konsolisovellusten välillä DirectX.
Dxgkrnl Linux -versiosta tehdään avoimen lähdekoodin versio.
DxCore ja D3D12 Linuxissa
Tämä projekti tuo täyden D3D12 API: n Linuxiin ilman imitations.ibd3d12.so on käännetty samasta lähdekoodista kuin d3d12.dll Windowsissa, mutta Linux-kohteeseen. Se tarjoaa saman tason toiminnallisuutta ja suorituskykyä (ilman virtualisointikuluja). Ainoa poikkeus on Present(). Tällä hetkellä ei ole esitysintegraatiota WSL: n kanssa, koska WSL on nykyään vain konsolikokemus. D3D12 API: ta voidaan käyttää näytön ulkopuoliseen hahmontamiseen ja laskemiseen, mutta swapchain-tukea ei ole pikseleiden kopioimiseksi suoraan näytölle.
DxCore (libdxcore.so) on yksinkertaistettu versio dxgi: stä, jossa API: n vanhat osat on korvattu nykyaikaisilla versioilla. DxCore on saatavilla sekä Windowsille että Linuxille. DxCorea käytetään myös isännöimään D3DKMT API: n kiinteää versiota, jota WDDM-pohjainen ohjain Windowsissa käyttää keskusteluun GPU: n kanssa. Tämä API tiivistää erot siinä, miten eri WDDM-palvelut pääsevät ytimeen (Windowsin palvelutaulukko vs. IOCTL Linuxissa).
libd3d12.so ja libdxcore.so ovat suljetun lähdekoodin esikäännettyjä käyttäjätilan binääritiedostoja, jotka toimitetaan osana Windowsia. Nämä binaarit ovat yhteensopivia glibc-pohjaisten distrojen kanssa ja ne asennetaan automaattisesti alle /usr/lib/wsl/lib ja näkyväksi kuormaajalle. Toisin sanoen nämä API: t toimivat heti käyttöönoton jälkeen ilman, että sinun tarvitsee asentaa lisäpaketteja tai säätää distro-kokoonpanoa. Tuki on tällä hetkellä rajoitettu glibc-pohjaisiin distroihin, mukaan lukien Ubuntu, Debian, Fedora, Centos, SUSE ja niin edelleen.
D3D12 ei toimisi ilman GPU-valmistajakumppaneiden toimittamaa GPU-kohtaista käyttäjätilaohjainta (UMD). UMD vastaa muun muassa varjostajien kääntämisestä laitteistokohtaiseen tavukoodiin ja API-renderöintipyyntöjen kääntäminen todellisiksi GPU-käskyiksi komentopuskureissa, jotka suoritetaan GPU. Isäntäohjainpaketti on asennettu WSL: n sisään osoitteeseen /usr/lib/wsl/drivers ja pääsee suoraan d3d12 API: lle. Jälleen vaaditaan WDDM 2.9 -ohjain.
Microsoft pyrkii myös tuomaan GPU-kiihdytyksen OpenGL: lle, OpenCL: lle ja Vulkanille WSL: ssä Mesa-kirjaston kautta.
Tuki DxCore, D3D12, DirectML ja NVIDIA CUDA on tulossa a Windows Insider Nopea rakentaminen pian. Fast-rengas on tällä hetkellä päällä Mangaani (Mn) OS haara. Fast-renkaan odotetaan siirtyvän uuteen Rauta (Fe) haara
kesäkuun loppupuolella, mikä paljastaa tämän uuden toiminnon Insidersille.