Windows Tips & News

WSL kommer att få DirectX-stöd i Linux med 21H1-byggnader

click fraud protection

Microsoft lägger till DirectX-stöd till Linux-distros som körs i en WSL 2-miljö. Förändringen går live med första 21H1-byggen från Iron (Fe)-grenen i Fast Ring, som förväntas komma i juni.

Microsoft är införa Windows Display Driver Model version 2.9, WDDMv2.9, som kommer att föra GPU-acceleration till WSL 2. För att göra det möjligt finns det en speciell Linux-kärnmodul på WSL: s sida, dxgkrnl.

dxgkrnl

Dxgkrnl är en helt ny kärndrivrutin för Linux som avslöjar /dev/dxg enhet till användarläge Linux. /dev/dxg avslöjar en uppsättning IOCTL som nära efterliknar det inbyggda WDDM D3DKMT kärntjänstskiktet på Windows. Dxgkrnl inuti Linux-kärnan ansluter över VM-bussen till sin storebror på Windows-värden och använder denna VM-bussanslutning för att kommunicera med den fysiska GPU: n.

Om värden har flera GPU: er projiceras alla GPU: er och är tillgängliga för Linux-miljön (förutsatt att alla dessa GPU: er kör WDDMv2.9-drivrutiner).

Microsoft hävdar att arkitekturen inte kommer att begränsa eller störa prestanda för WSL-appar och GPU-resurser kommer att delas korrekt mellan Windows-appar som körs tillsammans med Linux GUI och konsolappar som använder DirectX.

Dxgkrnl Linux-utgåvan görs med öppen källkod.

DxCore & D3D12 på Linux

Detta projekt ger fullständig D3D12 API till Linux utan imitationer.ibd3d12.so är kompilerad från samma källkod som d3d12.dll på Windows men för ett Linux-mål. Den erbjuder samma nivå av funktionalitet och prestanda (minus virtualiseringskostnader). Det enda undantaget är Present(). Det finns för närvarande ingen presentationsintegrering med WSL eftersom WSL är en konsolupplevelse idag. D3D12 API kan användas för rendering och beräkning utanför skärmen, men det finns inget stöd för swapchain för att kopiera pixlar direkt till skärmen.

DxCore (libdxcore.so) är en förenklad version av dxgi där äldre aspekter av API har ersatts av moderna versioner. DxCore är tillgängligt på både Windows och Linux. DxCore används också för att vara värd för en platt version av D3DKMT API som används av en WDDM-baserad drivrutin på Windows för att prata med GPU: n. Detta API abstraherar skillnaderna i hur de olika WDDM-tjänsterna tar sig till kärnan (servicetabell på Windows kontra IOCTL på Linux).

libd3d12.so och libdxcore.so är sluten källkod, förkompilerade binärfiler för användarläge som levereras som en del av Windows. Dessa binärer är kompatibla med glibc-baserade distros och monteras automatiskt under /usr/lib/wsl/lib och gjorts synlig för lastaren. Med andra ord, dessa API: er fungerar direkt ur lådan utan att behöva installera ytterligare paket eller justera distrons konfiguration. Support är för närvarande begränsat till glibc-baserade distributioner inklusive Ubuntu, Debian, Fedora, Centos, SUSE och så vidare.

D3D12 skulle inte kunna fungera utan en GPU-specifik användarlägesdrivrutin (UMD) från GPU-tillverkarens partners. UMD är ansvarig för saker som att kompilera shaders till hårdvaruspecifik bytekod och översätta API-renderingsförfrågningar till faktiska GPU-instruktioner i kommandobuffertar som ska exekveras av GPU: n. Värddrivrutinspaketet är monterat inuti WSL på /usr/lib/wsl/drivers och direkt tillgängligt för d3d12 API. Återigen krävs WDDM 2.9-drivrutin.

Microsoft arbetar också med att ta med GPU-acceleration för OpenGL, OpenCL och Vulkan i WSL genom Mesa-biblioteket.


Stöd för DxCore, D3D12, DirectML och NVIDIA CUDA kommer till en Windows Insider Snabbt bygge snart. Snabbringen är för närvarande på Mangan (Mn) OS-gren. Fast-ringen förväntas byta över till den nya Järn (Fe) gren mot den senare delen av juni som kommer att exponera denna nya funktion för insiders.

Windows 10 Build 17112-arkiv

Denna webbplats använder cookies för att förbättra din upplevelse när du navigerar genom webbplat...

Läs mer

Chrome 65 släppt, här är allt om det

Chrome 65 släppt, här är allt om det

En ny version av den mest populära webbläsaren, Google Chrome, är ute. Version 65 har nått den st...

Läs mer

Microsoft har introducerat ett nytt MSIX-paketeringsformat

Microsoft har introducerat ett nytt MSIX-paketeringsformat

Idag, under Windows Developer Day-evenemanget, har Microsoft tillkännagett ett nytt appformat. Fo...

Läs mer