Windows Sandbox 如何虚拟化我的 IGPU 并使用直通,但 Hyper-V 只需要 DDA?

Windows Sandbox 如何虚拟化我的 IGPU 并使用直通,但 Hyper-V 只需要 DDA?

我有一个英特尔 CPU,没有独立 GPU,运行最新的 Windows 11 内部版本。

当我使用 Hyper-V 创建 VM 时,我在 GPU 设备管理器中看到的内容如下:

在此处输入图片描述

当我启动 Windows Sandbox 时,设备管理器如下所示:

在此处输入图片描述

即使我的系统不仅缺少独立 GPU,而且还使用集成的旧 GPU,Windows Sandbox 仍然可以通过我的 GPU,我可以在 Windows Sandbox 中毫无问题地使用图形密集型程序,例如 Photoshop 2022 的中性滤镜或 Luminar Neo。

我的问题是,Windows Sandbox 是如何做到这一点的?(在我看来这非常令人印象深刻)。它显然使用与 Hyper-V 相同的虚拟化技术,那么为什么 Hyper-V 不允许我在 VM 中使用我的 IGPU,而只要求服务器显卡(如 Nvidia Quadro 或 AMD Fire pro)与 DDA(离散设备分配)一起使用,而 DDA 仅适用于 Windows Server 的 Hyper-V。

答案1

英特尔 GPU 也像 AMD 和 nVidia GPU 一样拥有虚拟化技术。不过与后者不同的是,英特尔在所有 GPU 中都标配了“GVT-g”功能。

但这与直接设备分配并不完全相同。DDA 只能移动所有的PCI 设备从主机到客户机 - 这适用于服务器 GPU,因为它们显示为多个虚拟 PCI 设备,每个主机或客户机操作系统一个。

与此同时你的 GPUPCI 设备,因此不能通过 DDA 将其提供给 VM,因为它已被主机使用。(但不是因为它是集成的——即使它物理上位于 CPU 封装内,它仍然只是一个普通的 PCI 设备。)相反,GVT-g 需要主机 GPU 驱动程序和虚拟机管理程序之间的某种合作来分配资源。

我实际上不知道 Windows Sandbox 是否使用 GVT-g,但我希望它会使用;这似乎是其 WDDM 2.5 驱动程序要求的主要原因。

但另一方面,Windows Sandbox 可以执行类似于 VirtualBox 的 3D 加速模式的操作,并创建一个仅将 DirectX 命令转发到主机设备的虚拟设备。(我认为这是 RemoteFX 过去的工作方式?RemoteFX 和 VirtualBox 之前的 3D 加速模式都因安全问题而被删除,但可能会有更有限的版本。)

相关内容