Microsoft tilføjer DirectX-understøttelse til Linux-distroer, der kører i et WSL 2-miljø. Ændringen går i live med de første 21H1-bygninger fra Iron (Fe) -grenen i Fast Ring, som forventes at komme i juni.
Annoncering
hvordan man opretter en rolle i uoverensstemmelse
Microsoft er introducerer Windows Display Driver Model version 2.9, WDDMv2.9, som bringer GPU-acceleration til WSL 2. For at gøre det muligt er der et specielt Linux-kernemodul på WSLs side,dxgkrnl
.
dxgkrnl
Dxgkrnl er en helt ny kernedriver til Linux, der udsætter / dev / dxg enhed til brugertilstand Linux. / dev / dxg eksponerer et sæt IOCTL, der nøje efterligner det oprindelige WDDM D3DKMT kernel-servicelag på Windows. Dxgkrnl inde i Linux-kernen forbinder via VM-bussen til sin storebror på Windows-værten og bruger denne VM-busforbindelse til at kommunikere med den fysiske GPU.
Hvis værten har flere GPU'er, projiceres alle GPU'er og er tilgængelige for Linux-miljøet (forudsat at alle disse GPU'er kører WDDMv2.9-drivere).
Microsoft hævder, at arkitekturen ikke vil begrænse eller forstyrre WSL-apps ydeevne, og GPU-ressourcer deles ordentligt mellem Windows-apps, der kører sammen med Linux GUI og konsolapps, der bruger DirectX.
Dxgkrnl Linux-udgave gøres open source.
hvordan man ss på snapchat 2020
DxCore & D3D12 på Linux
Disse projekter bringer fuld D3D12 API til Linux uden efterligninger .ibd3d12.so er kompileret fra den samme kildekode som d3d12.dll på Windows, men til et Linux-mål. Det tilbyder det samme niveau af funktionalitet og ydeevne (minus virtualiseringsomkostninger). Den eneste undtagelse er Present (). Der er i øjeblikket ingen præsentationsintegration med WSL, da WSL kun er en konsoloplevelse i dag. D3D12 API kan bruges til gengivelse og beregning af offscreen, men der er ingen understøttelse af swapchain til at kopiere pixels direkte til skærmen.
DxCore (libdxcore.so) er en forenklet version af dxgi, hvor ældre aspekter af API er blevet erstattet af moderne versioner. DxCore er tilgængelig på både Windows og Linux. DxCore bruges også til at være vært for en flad version af D3DKMT API, der bruges af en WDDM-baseret driver på Windows til at tale med GPU'en. Denne API abstraherer forskellene i, hvordan de forskellige WDDM-tjenester finder vej til kernen (servicetabel på Windows versus IOCTL på Linux).
libd3d12.so og libdxcore.so er lukkede kilder, præ-kompilerede brugertilstandsbinarier, der sendes som en del af Windows. Disse binære filer er kompatible med glibc-baserede distroer og monteres automatisk under/ usr / lib / wsl / libog synliggjort for læsseren. Med andre ord fungerer disse API'er lige uden for boksen uden behov for at installere yderligere pakker eller tilpasse distroens konfiguration. Support er i øjeblikket begrænset til glibc-baserede distroer inklusive Ubuntu, Debian, Fedora, Centos, SUSE osv.
D3D12 kunne ikke fungere uden en GPU-specifik brugerdriverdriver (UMD) leveret af GPU-producentens partnere. UMD er ansvarlig for ting som at kompilere shaders til hardwarespecifik bytekode og oversætte API-gengivelsesanmodninger til faktiske GPU-instruktioner i kommandobuffere, der skal udføres af GPU. Værtsdriverpakken er monteret inde i WSL på / usr / lib / wsl / drivere og direkte tilgængelig for d3d12 API. Igen kræves WDDM 2.9-driver.
Microsoft arbejder også på at bringe GPU-acceleration til OpenGL, OpenCL & Vulkan i WSL gennem Mesa-biblioteket.
uomvendt hvordan man laver en base
Understøttelse af DxCore, D3D12, DirectML og NVIDIA CUDA kommer til en Windows Insider Hurtig opbygning snart. Den hurtige ring er i øjeblikket på Mangan (Mn) OS-gren. Den hurtige ring forventes at skifte til den nyeJern (Fe) gren
mod den senere del af juni, som vil udsætte denne nye funktionalitet for Insiders.