Microsoft adaugă suport DirectX la distribuțiile Linux care rulează într-un mediu WSL 2. Schimbarea este activă cu primele versiuni 21H1 de la ramura de fier (Fe) din inelul rapid, care se așteaptă să vină în luna iunie.
Reclama
cum să primiți bani prin paypal
Microsoft este Introducand Windows Display Driver Model versiunea 2.9, WDDMv2.9, care va aduce accelerația GPU la WSL 2. Pentru a face acest lucru posibil, există un modul kernel Linux special pe partea WSL,dxgkrnl
.
dxgkrnl
Dxgkrnl este un driver de kernel nou-nouț pentru Linux care expune / dev / dxg dispozitiv în modul utilizator Linux. / dev / dxg expune un set de IOCTL care imită îndeaproape stratul de servicii kernel WDDM D3DKMT nativ pe Windows. Dxgkrnl din kernel-ul Linux se conectează prin VM Bus la fratele său mare de pe gazda Windows și folosește această conexiune de bus VM pentru a comunica cu GPU-ul fizic.
Dacă gazda are mai multe GPU-uri, toate GPU-urile sunt proiectate și disponibile mediului Linux (presupunând că toate aceste GPU rulează drivere WDDMv2.9).
Microsoft susține că arhitectura nu va limita sau va interfera cu performanța aplicațiilor WSL, iar resursele GPU vor fi partajate în mod corespunzător între aplicațiile Windows care rulează alături de Linux GUI și aplicațiile consolă care utilizează DirectX.
Ediția Dxgkrnl Linux se face open source.
copiați dintr-o unitate Google pe alta
DxCore și D3D12 pe Linux
Acest proiect aduce API-ul D3D12 complet la Linux, fără imitații. Oferă același nivel de funcționalitate și performanță (minus cheltuielile de virtualizare). Singura excepție este Prezent (). În prezent, nu există nicio integrare de prezentare cu WSL, deoarece WSL este o experiență de consolă astăzi. API-ul D3D12 poate fi utilizat pentru redarea și calcularea în afara ecranului, dar nu există suport pentru swapchain pentru a copia pixeli direct pe ecran.
DxCore (libdxcore.so) este o versiune simplificată a dxgi în care aspectele vechi ale API-ului au fost înlocuite cu versiuni moderne. DxCore este disponibil atât pe Windows, cât și pe Linux. DxCore este, de asemenea, utilizat pentru a găzdui o versiune plană a API-ului D3DKMT utilizat de un driver bazat pe WDDM pe Windows pentru a vorbi cu GPU. Acest API rezumă diferențele în modul în care diferitele servicii WDDM se îndreaptă spre kernel (tabelul de servicii pe Windows față de IOCTL pe Linux).
libd3d12.so și libdxcore.so sunt surse închise, binare pre-compilate în modul utilizator care sunt livrate ca parte a Windows. Aceste binare sunt compatibile cu distribuțiile bazate pe glibc și sunt montate automat sub/ usr / lib / wsl / libși făcută vizibilă pentru încărcător. Cu alte cuvinte, aceste API funcționează chiar din cutie, fără a fi nevoie să instalați pachete suplimentare sau să modificați configurația distribuției. Asistența este limitată în prezent la distribuții bazate pe glibc, inclusiv Ubuntu, Debian, Fedora, Centos, SUSE și așa mai departe.
D3D12 nu ar putea funcționa fără un driver de mod utilizator (UMD) specific GPU furnizat de partenerii producătorului GPU. UMD este responsabil pentru lucruri cum ar fi compilarea umbrelor în cod de octet specific hardware și traducerea cererilor de redare API în instrucțiuni GPU efective în buffere de comandă pentru a fi executate de GPU. Pachetul driverului gazdă este montat în interiorul WSL la / usr / lib / wsl / drivers și este accesibil direct API-ului d3d12. Din nou este necesar driverul WDDM 2.9.
Microsoft lucrează, de asemenea, la aducerea accelerării GPU pentru OpenGL, OpenCL și Vulkan în WSL prin biblioteca Mesa.
cum să adăugați un joc de origine la steam
Suport pentru DxCore, D3D12, DirectML și NVIDIA CUDA vine la o Windows Insider Construcție rapidă în curând. Inelul Fast este în prezent pe Mangan (Mn) Ramură OS. Se așteaptă ca inelul Fast să treacă la noulRamură de fier (Fe)
spre sfârșitul lunii iunie, care va expune această nouă funcționalitate pentru Insiders.