Microsoft legger til DirectX-støtte til Linux-distribusjoner som kjører i et WSL 2-miljø. Endringen kommer i live med de første 21H1-byggene fra Iron (Fe) -grenen i Fast Ring, som forventes å komme i juni.
Annonse
hvordan får jeg desktop facebook på telefonen min
Microsoft er introdusere Windows Display Driver Model versjon 2.9, WDDMv2.9, som vil bringe GPU-akselerasjon til WSL 2. For å gjøre det mulig er det en spesiell Linux-kjernemodul på WSLs side,dxgkrnl
.
dxgkrnl
Dxgkrnl er en helt ny kjernedriver for Linux som avslører / dev / dxg enhet til brukermodus Linux. / dev / dxg avslører et sett med IOCTL som etterligner det opprinnelige WDDM D3DKMT-kjernetjenestelaget på Windows. Dxgkrnl innsiden av Linux-kjernen kobles over VM-bussen til storebroren på Windows-verten og bruker denne VM-bussforbindelsen til å kommunisere med den fysiske GPUen.
Hvis verten har flere GPUer, projiseres alle GPUer og er tilgjengelige for Linux-miljøet (forutsatt at alle disse GPUene kjører WDDMv2.9-drivere).
Microsoft hevder at arkitekturen ikke vil begrense eller forstyrre ytelsen til WSL-apper, og GPU-ressurser vil bli riktig delt mellom Windows-apper som kjører sammen med Linux GUI og konsollapper som bruker DirectX.
Dxgkrnl Linux-utgaven blir gjort åpen kildekode.
hvordan skjule spill på ps4
DxCore og D3D12 på Linux
Dette prosjektet bringer full D3D12 API til Linux uten imitasjoner .ibd3d12.so er samlet fra samme kildekode som d3d12.dll på Windows, men for et Linux-mål. Det tilbyr samme nivå av funksjonalitet og ytelse (minus virtualiseringsomkostninger). Det eneste unntaket er Present (). Det er for øyeblikket ingen presentasjonsintegrasjon med WSL, ettersom WSL er en eneste konsollopplevelse i dag. D3D12 API kan brukes til gjengivelse og beregning utenfor skjermen, men det er ingen støtte for byttekjeder for å kopiere piksler direkte til skjermen.
DxCore (libdxcore.so) er en forenklet versjon av dxgi der eldre aspekter av API har blitt erstattet av moderne versjoner. DxCore er tilgjengelig på både Windows og Linux. DxCore brukes også til å være vert for en flat versjon av D3DKMT API som brukes av en WDDM-basert driver på Windows for å snakke med GPU. Denne API-en abstrakte forskjellene i hvordan de forskjellige WDDM-tjenestene gjør veien til kjernen (tjenestetabell på Windows versus IOCTL på Linux).
libd3d12.so og libdxcore.so er lukkede kilder, forhåndskompilerte brukermodusbinarier som sendes som en del av Windows. Disse binærfilene er kompatible med glibc-baserte distroer og monteres automatisk under/ usr / lib / wsl / libog synliggjort for lasteren. Med andre ord fungerer disse API-ene rett ut av esken uten å måtte installere flere pakker eller tilpasse distroens konfigurasjon. Støtten er for tiden begrenset til glibc-baserte distroer inkludert Ubuntu, Debian, Fedora, Centos, SUSE og så videre.
D3D12 kunne ikke operere uten en GPU-spesifikk brukermodusdriver (UMD) levert av GPU-produsentens partnere. UMD er ansvarlig for ting som å kompilere shaders til maskinvarespesifikk bytekode og oversette API-gjengivelsesforespørsler til faktiske GPU-instruksjoner i kommandobuffere som skal utføres av GPU. Vertsdriverpakken er montert inne i WSL på / usr / lib / wsl / drivers og direkte tilgjengelig for d3d12 API. Igjen kreves WDDM 2.9-driver.
Microsoft jobber også med å bringe GPU-akselerasjon for OpenGL, OpenCL & Vulkan i WSL gjennom Mesa-biblioteket.
gjør håndskriften min til en skrift
Støtte for DxCore, D3D12, DirectML og NVIDIA CUDA kommer til en Windows Insider Rask bygg snart. Hurtigringen er for øyeblikket på Mangan (Mn) OS-gren. Hurtigringen forventes å bytte til den nyeJern (Fe) gren
mot den senere delen av juni som vil utsette denne nye funksjonaliteten for Insiders.