WSL получит поддержку DirectX в Linux со сборками 21H1

Microsoft добавляет поддержку DirectX в дистрибутивы Linux, работающие в среде WSL 2. Изменения вступят в силу с первыми сборками 21H1 из ветки Iron (Fe) в Fast Ring, которые, как ожидается, появятся в июне этого года.

Microsoft – знакомство с Модель драйвера дисплея Windows версии 2.9, WDDMv2.9, которая обеспечит ускорение GPU до WSL 2. Чтобы сделать это возможным, существует специальный Linux модуль ядра на стороне WSL, dxgkrnl .

dxgkrnl

Dxgkrnl – это совершенно новый драйвер ядра для Linux, который предоставляет /dev/dxg в пользовательский режим Linux. /dev/dxg предоставляет набор IOCTL, который точно имитирует собственный уровень службы ядра WDDM D3DKMT в Windows. Dxgkrnl внутри ядра Linux подключается через шину виртуальной машины к своему старшему брату на хосте Windows и использует это подключение шины виртуальной машины для связи с физическим графическим процессором.

Если на хосте несколько графических процессоров, все графические процессоры проецируются и доступны в среде Linux (при условии, что все эти графические процессоры работают под управлением драйверов WDDMv2.9. ).

Microsoft утверждает, что архитектура не ограничивает и не влияет на производительность приложений WSL, а ресурсы графического процессора будут правильно распределяться между приложениями Windows, работающими вместе с Linux. Графические и консольные приложения, использующие DirectX.

Версия Dxgkrnl для Linux делается с открытым исходным кодом.

DxCore & D3D12 в Linux

Это projects предоставляет полный API D3D12 для Linux без имитаций. libd3d12.so скомпилирован из того же исходного кода, что и d3d12.dll в Windows, но для целевой платформы Linux. Он предлагает тот же уровень функциональности и производительности (за вычетом накладных расходов на виртуализацию). Единственное исключение – Present (). В настоящее время нет интеграции презентаций с WSL, поскольку сегодня WSL – это только консольный интерфейс. API D3D12 можно использовать для визуализации и вычислений вне экрана, но отсутствует поддержка цепочки обмена для копирования пикселей непосредственно на экран.

DxCore (libdxcore.so) – это упрощенная версия dxgi, в которой используются устаревшие аспекты API заменены на современные версии. DxCore доступен как в Windows, так и в Linux. DxCore также используется для размещения плоской версии API D3DKMT, используемой драйвером на основе WDDM в Windows для взаимодействия с графическим процессором. Этот API абстрагирует различия в том, как различные службы WDDM попадают в ядро ​​(таблица служб в Windows по сравнению с IOCTL в Linux).

libd3d12.so и libdxcore.so имеют закрытый исходный код, предварительно скомпилированные двоичные файлы пользовательского режима, которые поставляются как часть Windows. Эти двоичные файлы совместимы с дистрибутивами на основе glibc и автоматически монтируются в /usr/lib/wsl/lib и становятся видимыми для загрузчика. Другими словами, эти API работают прямо из коробки, без необходимости устанавливать дополнительные пакеты или настраивать конфигурацию дистрибутива. В настоящее время поддержка ограничена дистрибутивами на основе glibc, включая Ubuntu, Debian, Fedora, Centos, SUSE и т. Д..

D3D12 не сможет работать без специального драйвера пользовательского режима (UMD) графического процессора, предоставляемого партнерами-производителями графических процессоров. UMD отвечает за такие вещи, как компиляция шейдеров в аппаратный байтовый код и перевод запросов рендеринга API в фактические инструкции графического процессора в буферах команд, которые должны выполняться графическим процессором. Пакет драйверов хоста монтируется внутри WSL в/usr/lib/wsl/drivers и напрямую доступен для API d3d12. Снова требуется драйвер WDDM 2.9.

Microsoft также работает над ускорением GPU для OpenGL, OpenCL и Vulkan в WSL через библиотеку Mesa.


Поддержка DxCore, D3D12, DirectML и NVIDIA CUDA скоро появится Windows Insider Fast build. Кольцо Fast в настоящее время находится в ветви марганцевой (Mn) OS. Ожидается, что Fast Ring переключится на новую ветвь Iron (Fe) ближе к концу июня, что откроет эту новую функциональность участникам программы предварительной оценки.

Оцените статью
digitdocom.ru
Добавить комментарий