作为在今天的虚拟构建大会上宣布的将GPU加速引入WSL2的一部分,微软刚刚发表了一篇博客文章,其中包含了更多细节,包括他们在Linux上移植Direct3D12。这项针对Linux的DirectX工作的一部分涉及一个新的Linux内核驱动程序,用于通过WSL2设置将DirectX图形适配器公开给Linux用户空间。DXGKRNL驱动程序通过VM总线连接与Windows主机连接。将支持多个GPU。更有趣的工作是在用户空间与微软合作,为Linux提供真正完整的D3D12API。";这是真正完整的D3D12API,这里没有模仿、伪装或重新实现…。这才是真正的交易。libd3d12.so是从与Windows上的d3d12.dll相同的源代码编译而来,只是针对Linux目标。";当前的支持只允许屏幕外呈现,直到WSL2GUI支持就位。此支持还需要Windows WDDMv2.9图形驱动程序。在过于兴奋之前,针对Linux的Direct3D12库将是封闭源码的。DirectX核心和D3D12库将是封闭源代码的,并作为Windows的一部分提供。由于它针对的是DXGKRNL内核接口,这些库对于Wine/Proton等很可能没有什么价值,除非实现了一个新的层,以便可以为裸机Linux系统重新实现DXGKRNL接口。通过这种Direct3D12实现,WSL2也将支持OpenGL、OpenCL和Vulkan。你可能还记得最近微软和Collabora宣布了他们在DirectX 12上映射OpenGL和OpenCL的工作。微软也在与NVIDIA合作,在WSL2下支持CUDA。通过这篇有趣的博客帖子了解更多细节。此外,微软现在还发布了针对Linux内核的虚拟GPU驱动程序。内核驱动程序部分是开源的,最终他们会将其作为主线。此内核驱动程序仅与Windows主机/WSL2安装环境相关,并取决于Microsoft Hyper-V。