Spoločnosť Microsoft pridáva podporu DirectX do distribúcií systému Linux spustených v prostredí WSL 2. Zmena bude zverejnená pri prvých zostaveniach 21H1 z pobočky Iron (Fe) vo Fast Ringu, ktoré sa očakávajú tento rok v júni.
Inzerát
môžete pridať originálne hry do pary?
Microsoft je uvádzanie Windows Display Driver Model verzia 2.9, WDDMv2.9, ktorá prinesie akceleráciu GPU na WSL 2. Aby to bolo možné, je na strane WSL špeciálny modul jadra Linuxu,dxgkrnl
.
dxgkrnl
Dxgkrnl je úplne nový ovládač jadra pre Linux, ktorý sprístupňuje / dev / dxg zariadenie do užívateľského režimu Linux. / dev / dxg vystavuje množinu IOCTL, ktorá úzko napodobňuje natívnu vrstvu služby jadra WDDM D3DKMT v systéme Windows. Dxgkrnl vo vnútri jadra Linuxu sa pripája cez VM Bus k svojmu veľkému bratovi na hostiteľovi Windows a používa toto pripojenie VM Bus na komunikáciu s fyzickým GPU.
Ak má hostiteľ viac GPU, všetky GPU sa premietnu a sú k dispozícii pre prostredie Linux (za predpokladu, že na všetkých týchto GPU sú spustené ovládače WDDMv2.9).
Spoločnosť Microsoft tvrdí, že architektúra nebude obmedzovať ani rušiť výkon aplikácií WSL a zdroje GPU budú správne zdieľané medzi aplikáciami systému Windows bežiacimi popri grafickom používateľskom rozhraní Linux a konzolovými aplikáciami, ktoré využívajú DirectX.
Vydanie Dxgkrnl Linux sa vydáva ako open source.
ako urobiť jasný pixelovaný obrázok
DxCore a D3D12 v systéme Linux
Tento projekt prináša plné rozhranie D3D12 API pre systém Linux bez imitácií. Ibd3d12.so je kompilovaný z rovnakého zdrojového kódu ako d3d12.dll v systéme Windows, ale pre cieľ systému Linux. Ponúka rovnakú úroveň funkčnosti a výkonu (mínus réžia virtualizácie). Jedinou výnimkou je Present (). V súčasnosti neexistuje žiadna integrácia prezentácií s WSL, pretože WSL je dnes iba zážitkom z konzoly. Rozhranie D3D12 API je možné použiť na vykreslenie a výpočet mimo obrazovku. Neexistuje však podpora swapchain na kopírovanie pixelov priamo na obrazovku.
DxCore (libdxcore.so) je zjednodušená verzia dxgi, kde boli pôvodné aspekty API nahradené modernými verziami. DxCore je k dispozícii pre Windows aj Linux. DxCore sa tiež používa na hosťovanie plochej verzie D3DKMT API používaného ovládačom založeným na WDDM v systéme Windows na komunikáciu s GPU. Toto API abstrahuje rozdiely v tom, ako sa rôzne služby WDDM dostávajú do jadra (tabuľka služieb v systéme Windows oproti IOCTL v systéme Linux).
libd3d12.so a libdxcore.so sú uzavreté zdrojové predkompilované binárne súbory používateľského režimu, ktoré sa dodávajú ako súčasť systému Windows. Tieto binárne súbory sú kompatibilné s distribúciami založenými na glibc a sú automaticky pripojené pod/ usr / lib / wsl / liba viditeľné pre nakladač. Inými slovami, tieto rozhrania API fungujú okamžite po vybalení z krabice bez nutnosti inštalovať ďalšie balíčky alebo upravovať konfiguráciu distribúcie. Podpora je v súčasnosti obmedzená na distribúcie založené na glibc vrátane Ubuntu, Debian, Fedora, Centos, SUSE atď.
D3D12 by nemohol fungovať bez ovládača konkrétneho používateľského režimu GPU (UMD) poskytovaného partnermi výrobcu GPU. UMD je zodpovedná za veci, ako je kompilácia shaderov do bajtového kódu špecifického pre hardvér a preklad požiadaviek na vykreslenie API do skutočných pokynov GPU v príkazových vyrovnávacích pamätiach, ktoré má GPU vykonať. Balík hostiteľských ovládačov je namontovaný vo vnútri WSL na / usr / lib / wsl / drivers a je priamo prístupný k API d3d12. Opäť je potrebný ovládač WDDM 2.9.
Spoločnosť Microsoft tiež pracuje na zavedení akcelerácie GPU pre OpenGL, OpenCL a Vulkan vo WSL prostredníctvom knižnice Mesa.
ako citate v rozpore
Podpora pre DxCore, D3D12, DirectML a NVIDIA CUDA prichádza do a Windows Insider Rýchle zostavenie čoskoro. Rýchle zvonenie je momentálne na Mangán (Mn) Vetva OS. Očakáva sa, že Fast ring sa prepne na novýŽelezná (Fe) vetva
do neskoršej časti júna, ktorá túto novú funkcionalitu sprístupní insiderom.