Microsoft добавляет поддержку DirectX в дистрибутивы Linux, работающие в среде WSL 2. Изменения вступят в силу с первыми сборками 21H1 из ветки Iron (Fe) в Fast Ring, которые, как ожидается, появятся в июне этого года.
Реклама
как вставить номера страниц в документы Google
Microsoft - это введение Модель драйвера дисплея Windows версии 2.9, WDDMv2.9, которая обеспечивает ускорение графического процессора для WSL 2. Чтобы сделать это возможным, на стороне WSL есть специальный модуль ядра Linux,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
Эти проекты приносят полный 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 / библиотека / WSL / библиотекаи стал видимым для загрузчика. Другими словами, эти 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 Скоро быстрая сборка. Быстрое кольцо в настоящее время Марганец (Mn) Ветка ОС. Ожидается, что быстрое кольцо переключится на новыйЖелезная (Fe) ветвь
ближе к концу июня, когда участники ознакомятся с этой новой функцией.