A Microsoft está adicionando suporte DirectX a distros Linux rodando em um ambiente WSL 2. A mudança vai ao ar com as primeiras construções de 21H1 da filial de Ferro (Fe) no Fast Ring, que devem acontecer em junho.
Propaganda
como fazer minecraft de pedra lisa
Microsoft é apresentando Windows Display Driver Model versão 2.9, WDDMv2.9, que trará aceleração de GPU para WSL 2. Para tornar isso possível, há um módulo de kernel Linux especial no lado de WSL,dxgkrnl
.
dxgkrnl
Dxgkrnl é um driver de kernel novo para Linux que expõe o / dev / dxg dispositivo para modo de usuário Linux. / dev / dxg expõe um conjunto de IOCTL que imita de perto a camada de serviço do kernel nativo WDDM D3DKMT no Windows. O Dxgkrnl dentro do kernel do Linux se conecta por meio do barramento VM ao seu irmão mais velho no host do Windows e usa essa conexão de barramento VM para se comunicar com a GPU física.
Se o host tiver várias GPUs, todas as GPUs serão projetadas e estarão disponíveis para o ambiente Linux (assumindo que todas essas GPUs estejam executando os drivers WDDMv2.9).
A Microsoft afirma que a arquitetura não limitará ou interferirá no desempenho dos aplicativos WSL, e os recursos da GPU serão compartilhados adequadamente entre os aplicativos do Windows executados junto com a GUI do Linux e os aplicativos de console que utilizam DirectX.
A edição Dxgkrnl Linux está sendo tornada open source.
alterar onde os backups do iTunes são armazenados
DxCore e D3D12 no Linux
Este projeto traz a API D3D12 completa para o Linux sem imitations.ibd3d12.so é compilado a partir do mesmo código-fonte que d3d12.dll no Windows, mas para um destino Linux. Ele oferece o mesmo nível de funcionalidade e desempenho (menos a sobrecarga de virtualização). A única exceção é Presente (). Atualmente, não há integração de apresentação com WSL, já que WSL é uma experiência apenas de console hoje. A API D3D12 pode ser usada para renderização e computação fora da tela, mas não há suporte para swapchain para copiar pixels diretamente na tela.
DxCore (libdxcore.so) é uma versão simplificada do dxgi onde aspectos legados da API foram substituídos por versões modernas. DxCore está disponível em Windows e Linux. O DxCore também é usado para hospedar uma versão simples da API D3DKMT usada por um driver baseado em WDDM no Windows para se comunicar com a GPU. Esta API abstrai as diferenças em como os vários serviços WDDM chegam ao kernel (tabela de serviço no Windows versus IOCTL no Linux).
libd3d12.so e libdxcore.so são binários de modo de usuário pré-compilados de código fechado que são enviados como parte do Windows. Esses binários são compatíveis com distros baseadas em glibc e são montados automaticamente em/ usr / lib / wsl / libe tornados visíveis para o carregador. Em outras palavras, essas APIs funcionam imediatamente, sem a necessidade de instalar pacotes adicionais ou ajustar a configuração da distro. O suporte é atualmente limitado a distros baseadas em glibc, incluindo Ubuntu, Debian, Fedora, Centos, SUSE e assim por diante.
O D3D12 não seria capaz de operar sem um driver de modo de usuário específico da GPU (UMD) fornecido pelos parceiros fabricantes da GPU. O UMD é responsável por coisas como compilar sombreadores para código de byte específico de hardware e traduzir solicitações de renderização de API em instruções GPU reais em buffers de comando a serem executados pela GPU. O pacote de driver do host é montado dentro do WSL em / usr / lib / wsl / drivers e diretamente acessível para a API d3d12. Novamente o driver WDDM 2.9 é necessário.
A Microsoft também está trabalhando para trazer aceleração de GPU para OpenGL, OpenCL e Vulkan em WSL por meio da biblioteca Mesa.
como cancelar a conta match com
Suporte para DxCore, D3D12, DirectML e NVIDIA CUDA está chegando a um Windows Insider Criação rápida em breve. O toque rápido está atualmente no Manganês (Mn) Ramificação do sistema operacional. Espera-se que o anel rápido mude para o novoRamo de ferro (Fe)
no final de junho, que irá expor esta nova funcionalidade para Insiders.