win7纯净版 Win10纯净版 Win8系统 最新win10下载 Win10 21h1 Win11 22H2 win10激活

您当前所在位置:首页 > IT资讯 > 微软

DirectX即将进入Linux的Windows子系统(WSL)

时间:2020-05-21     来源:系统堂     游览量:

  DirectX即将用于Linux的Windows子系统

  在 // build 2020中,我们宣布GPU硬件加速正在用于Linux 2(WSL 2)的Windows子系统。

  什么是WSL?WSL 是一个用户可以在其舒适的Windows PC上运行Linux应用程序的环境。如果您是开发将在Linux容器内部的云中部署的容器化工作负载的开发人员,则可以使用您习惯的本机Linux工具在Windows PC上本地开发和测试这些工作负载。为了响应大众的 需求,这些Linux应用程序和工具现在可以从GPU加速中受益。

  该博客的目的是让您了解如何获得这种支持以及各个部分如何组合在一起。

  GPU虚拟化

  在过去的几个Windows版本中,我们一直在忙于开发客户端GPU虚拟化技术。该技术已集成到WDDM(Windows显示驱动程序模型)中,并且所有WDDMv2.5或更高版本的驱动程序都对GPU虚拟化提供了本机支持。该技术被称为WDDM GPU半虚拟化,简称GPU-PV。GPU-PV现在是Windows的基础部分,可用于Windows Defender Application Guard,Windows Sandbox或Hololens 2模拟器等场景。今天,该技术仅限于Windows guest虚拟机,即在VM或容器内部运行的Windows。

  为了将对GPU加速的支持引入WSL 2,WDDMv2.9将把GPU-PV扩展到Linux来宾。这是通过一个新的Linux内核驱动程序实现的,该驱动程序利用GPU-PV协议将GPU暴露给用户模式Linux。GPU的预计抽象紧密地遵循WDDM GPU抽象模型,从而可以轻松移植针对该抽象构建的API和驱动程序,以在Linux环境中使用。

  dxgkrnl(Linux版)简介Dxgkrnl是Linux

  的全新内核驱动程序,它将/ dev / dxg设备公开给用户模式Linux。/ dev / dxg公开了一组IOCTL,它们与Windows上的本地WDDM D3DKMT内核服务层非常相似。Linux内核内部的Dxgkrnl通过VM总线连接到Windows主机上的老兄,并使用此VM总线连接与物理GPU进行通信。 如果主机具有多个GPU,则将投影所有GPU并将其提供给Linux环境(假定所有这些GPU都在运行WDDMv2.9驱动程序)。

  在Linux环境中运行的应用程序对GPU的访问权限与Windows上的本机应用程序相同。Linux和Windows之间没有资源分区,也没有对Linux应用程序施加限制。共享是完全动态的,取决于谁需要什么。共享GPU的两个Windows应用程序与共享同一个GPU的Linux和Windows应用程序之间基本上没有区别。如果Linux应用程序仅在GPU上运行,它将消耗所有资源!

  假设您在Windows主机/ dev / dxg上安装了正确的GPU驱动程序会自动公开,并且可用于任何已安装的WSL发行版,而无需安装任何其他软件包。请注意,发行版需要以WSL版本2模式运行(wsl –set-version 2),才能访问GPU。

  尽管它们共享一个名称,但Linux内核内部的dxgkrnl版本是基于我们的GPU-PV协议的Linux GPU驱动程序的无尘室实现,并且与与其类似名称的Windows副本没有任何其他共同之处。Dxgkrnl Linux版本已开源,并与社区共享。当我们在上游开发此新驱动程序时,源代码可从Microsoft的WSL 2官方Linux内核分支中获得

  。WSL2-Linux-Kernel / drivers / gpu / dxgkrnl位于linux-msft-wsl-4.19.y。microsoft / WSL2-Linux-Kernel。的GitHub

  Linux上的DxCore和D3D12在Linux

  内部为GPU投影WDDM兼容的抽象,使我们能够在WSL中运行时重新编译并将一流的图形API引入Linux。

  这是真正而完整的D3D12 API,在这里没有模仿,伪装或重新实现……这是真正的交易。libd3d12.so是从Windows上与d3d12.dll相同的源代码编译而来的,但适用于Linux目标。它提供相同级别的功能和性能(减去虚拟化开销)。唯一的例外是Present()。当前没有与WSL集成任何演示文稿,因为WSL是当今仅限控制台的体验。D3D12 API可用于屏幕外渲染和计算,但尚不支持将链直接复制到屏幕的交换链支持(但

上一篇:Microsoft PowerToys获得运行启动器和键盘重新映射器的权限
下一篇:Microsoft 2020版的Microsoft Teams Platform中的新增功能