Windows Tips & News

WSL erhält DirectX-Unterstützung in Linux mit 21H1-Builds

click fraud protection

Microsoft fügt Linux-Distributionen, die in einer WSL 2-Umgebung ausgeführt werden, DirectX-Unterstützung hinzu. Die Änderung geht mit den ersten 21H1-Builds aus dem Iron (Fe)-Zweig im Fast Ring live, die voraussichtlich im Juni dieses Jahres erscheinen.

Microsoft ist vorstellen Windows Display Driver Model Version 2.9, WDDMv2.9, das die GPU-Beschleunigung auf WSL 2 bringt. Um dies zu ermöglichen, gibt es auf Seiten der WSL ein spezielles Linux-Kernel-Modul, dxgkrnl.

dxgkrnl

Dxgkrnl ist ein brandneuer Kernel-Treiber für Linux, der die /dev/dxg Gerät in den Benutzermodus Linux. /dev/dxg stellt einen Satz von IOCTL bereit, der die native WDDM D3DKMT-Kernel-Service-Schicht unter Windows nachahmt. Dxgkrnl innerhalb des Linux-Kernels verbindet sich über den VM-Bus mit seinem großen Bruder auf dem Windows-Host und verwendet diese VM-Bus-Verbindung, um mit der physischen GPU zu kommunizieren.

Wenn der Host über mehrere GPUs verfügt, werden alle GPUs projiziert und stehen der Linux-Umgebung zur Verfügung (vorausgesetzt, auf allen diesen GPUs laufen WDDMv2.9-Treiber).

Microsoft behauptet, dass die Architektur die Leistung von WSL-Apps und GPU-Ressourcen nicht einschränkt oder beeinträchtigt. wird ordnungsgemäß zwischen Windows-Apps geteilt, die neben der Linux-GUI ausgeführt werden, und Konsolen-Apps, die verwenden DirectX.

Die Linux-Edition von Dxgkrnl wird als Open Source bereitgestellt.

DxCore & D3D12 unter Linux

Dieses Projekt bringt die vollständige D3D12-API für Linux ohne imitations.ibd3d12.so wird aus demselben Quellcode wie d3d12.dll unter Windows kompiliert, jedoch für ein Linux-Ziel. Es bietet das gleiche Maß an Funktionalität und Leistung (abzüglich Virtualisierungs-Overhead). Die einzige Ausnahme ist Present(). Derzeit gibt es keine Präsentationsintegration mit WSL, da WSL heute eine reine Konsolenerfahrung ist. Die D3D12-API kann für Offscreen-Rendering und Computing verwendet werden, aber es gibt keine Swapchain-Unterstützung, um Pixel direkt auf den Bildschirm zu kopieren.

DxCore (libdxcore.so) ist eine vereinfachte Version von dxgi, bei der ältere Aspekte der API durch moderne Versionen ersetzt wurden. DxCore ist sowohl für Windows als auch für Linux verfügbar. DxCore wird auch verwendet, um eine flache Version der D3DKMT-API zu hosten, die von einem WDDM-basierten Treiber unter Windows verwendet wird, um mit der GPU zu kommunizieren. Diese API abstrahiert die Unterschiede in der Art und Weise, wie die verschiedenen WDDM-Dienste zum Kernel gelangen (Diensttabelle unter Windows vs. IOCTL unter Linux).

libd3d12.so und libdxcore.so sind Closed Source, vorkompilierte Benutzermodus-Binärdateien, die als Teil von Windows ausgeliefert werden. Diese Binärdateien sind mit glibc-basierten Distributionen kompatibel und werden automatisch eingebunden unter /usr/lib/wsl/lib und für den Lader sichtbar gemacht. Mit anderen Worten, diese APIs funktionieren sofort nach dem Auspacken, ohne dass zusätzliche Pakete installiert oder die Konfiguration der Distribution optimiert werden muss. Die Unterstützung ist derzeit auf Glibc-basierte Distributionen beschränkt, darunter Ubuntu, Debian, Fedora, Centos, SUSE und so weiter.

D3D12 könnte ohne einen GPU-spezifischen Benutzermodustreiber (UMD) von GPU-Herstellerpartnern nicht betrieben werden. Die UMD ist verantwortlich für Dinge wie das Kompilieren von Shadern zu hardwarespezifischem Bytecode und Übersetzen von API-Rendering-Anfragen in tatsächliche GPU-Anweisungen in Befehlspuffern, die von. ausgeführt werden sollen die GPU. Das Host-Treiberpaket wird innerhalb von WSL unter /usr/lib/wsl/drivers eingehängt und ist direkt für die d3d12-API zugänglich. Auch hier wird der Treiber WDDM 2.9 benötigt.

Microsoft arbeitet auch daran, die GPU-Beschleunigung für OpenGL, OpenCL und Vulkan in WSL über die Mesa-Bibliothek bereitzustellen.


Unterstützung für DxCore, D3D12, DirectML und NVIDIA CUDA kommt zu Windows-Insider Schneller Aufbau bald. Der Fast Ring ist derzeit auf dem Mangan (Mn) OS-Zweig. Der Fast Ring wird voraussichtlich auf den neuen umstellen Eisen (Fe)-Zweig gegen Ende Juni, wo diese neue Funktionalität Insidern vorgestellt wird.

Sergey Tkachenko, Autor bei Winaero

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern, während Sie durch die Website n...

Weiterlesen

Sergey Tkachenko, Autor bei Winaero

Mit Mozilla Firefox können Sie jetzt mehrere Picture-in-Picture-Videos öffnen. Früher konnten Sie...

Weiterlesen

Microsoft hat PowerToys 0.56.2 veröffentlicht

Microsoft hat PowerToys 0.56.2 veröffentlicht

Microsoft hat heute PowerToys 0.56.2 veröffentlicht. Das Update kommt ein paar Tage nach Version ...

Weiterlesen