Microsoft добавя DirectX поддръжка към дистрибуции на Linux, работещи в WSL 2 среда. Промяната се активира с първите 21H1 компилации от клона Iron (Fe) в Fast Ring, които се очаква да дойдат през юни.
Реклама
vizio tv се изключва от само себе си
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 се свързва през VM Bus с големия си брат на хоста на Windows и използва тази връзка с VM шина, за да комуникира с физическия GPU.
Ако хостът има няколко графични процесора, всички графични процесори се проектират и са достъпни за средата на Linux (ако приемем, че всички тези графични процесори работят с драйвери WDDMv2.9).
Microsoft твърди, че архитектурата няма да ограничава или да пречи на производителността на WSL приложенията, а ресурсите на графичния процесор ще бъдат правилно споделяни между приложенията на Windows, работещи заедно с Linux GUI и конзолните приложения, които използват DirectX.
Изданието Dxgkrnl Linux се прави с отворен код.
как да направите своя профил частен във Facebook
DxCore & D3D12 на Linux
Този проект носи пълен API на D3D12 в Linux без имитации. Ibd3d12.so е компилиран от същия изходен код като d3d12.dll в Windows, но за целта на Linux. Той предлага едно и също ниво на функционалност и производителност (минус режийни за виртуализация). Единственото изключение е Present (). Понастоящем няма интеграция на презентации с WSL, тъй като днес WSL е само конзола. API D3D12 може да се използва за изобразяване извън екрана и за изчисления, но няма поддръжка на суапчайн за копиране на пиксели директно на екрана.
DxCore (libdxcore.so) е опростена версия на dxgi, където наследените аспекти на API са заменени от съвременни версии. DxCore се предлага както на Windows, така и на Linux. DxCore се използва и за хостване на плоска версия на D3DKMT API, използвана от драйвер, базиран на WDDM в Windows, за да разговаря с GPU. Този API абстрахира разликите в начина, по който различните WDDM услуги си проправят път към ядрото (сервизна таблица за Windows спрямо IOCTL за Linux).
libd3d12.so и libdxcore.so са предварително компилирани бинарни файлове в потребителски режим, които се доставят като част от Windows. Тези двоични файлове са съвместими с дистрибуции, базирани на glibc, и се монтират автоматично под/ usr / lib / wsl / libи направени видими за товарача. С други думи, тези API работят веднага, без да е необходимо да инсталирате допълнителни пакети или да променяте конфигурацията на дистрибуцията. Понастоящем поддръжката е ограничена до базирани на glibc дистрибуции, включващи Ubuntu, Debian, Fedora, Centos, SUSE и т.н.
D3D12 не би могъл да работи без специфичен за GPU драйвер за потребителски режим (UMD), предоставен от партньорите производители на GPU. UMD е отговорен за неща като компилиране на шейдъри към хардуерно специфичен байт код и превеждане на заявки за визуализиране на API в действителни инструкции за GPU в командни буфери, които трябва да бъдат изпълнени от GPU. Пакетът на хост драйвера е монтиран вътре в WSL на адрес / usr / lib / wsl / drivers и е директно достъпен за API d3d12. Отново се изисква драйвер за WDDM 2.9.
Microsoft също работи по въвеждане на GPU ускорение за OpenGL, OpenCL и Vulkan в WSL чрез библиотеката Mesa.
как да премахнете бизнеса от yelp -
Поддръжка за DxCore, D3D12, DirectML и NVIDIA CUDA идва към a Windows Insider Бързо изграждане скоро. Понастоящем бързият пръстен е на Манган (Mn) Клон на ОС. Очаква се бързият пръстен да премине към новияКлон от желязо (Fe)
към по-късната част на юни, която ще изложи тази нова функционалност на запознати.