fek*_*lee 47 windows-7 virtualbox virtual-machine optimus nvidia-graphics-card
如何让 VirtualBox 来宾使用 NVidia 图形?
主机设置:
视窗 7 x64
英伟达擎天柱
在NVIDIA Control Panel 中,我明确选择了高性能 NVIDIA 处理器 :
C:\Program Files\oracle\VirtualBox\VirtualBox.exe
C:\Program Files\Oracle\VirtualBox\VBoxSVC.exe
Run Code Online (Sandbox Code Playgroud)当 VirtualBox 运行时,NVidia 软件不会将其列为使用 NVidia GPU 的应用程序。因此,我假设 VirtualBox 确实没有使用 Nvidia GPU。
客人:
Windows 7 x64(即与主机相同)
已安装来宾添加
在 VirtualBox 设置中启用 3D 加速:显示/视频/启用 3D 加速
什么Rhinoceros,一个支持 OpenGL 的应用程序报告为视频适配器:
Humper
Chromium
OpenGL version: 2.1 Chromium 1.9
Render version: 2.0
Shading Language: 1.40 - Intel Build 9.17.10.3517
Driver Date: NA
Driver Version: NA
Maximum Texture size: 8192 x 8192
Z-Buffer depth: 32bits
Maximum Viewport size: 8192 x 8192
Total Video Memory: 64 MB
Run Code Online (Sandbox Code Playgroud)
在我看来,虚拟机确实使用了主机的 3D 硬件加速,但不幸的是英特尔。
Tho*_*sle 42
我意识到几年已经过去了,但我想回答一下,因为当您在谷歌搜索“virtualbox 3d multiple GPU”时,这篇文章的排名非常高。在过去的时间里,事情变得更简单和更好。
偶然发现此线程的人可能会来到这里,因为他们有一台配备两个 GPU 的笔记本电脑或 PC,这在当今很常见——尤其是在游戏笔记本电脑上。板载 Intel GPU 用于渲染窗口和一般应用程序,但使用 GPU 3D 功能的应用程序应该通过更高性能的 Nvidia GPU 来完成。
今天在笔记本上搭建了一个Ubuntu虚拟机做一些跨平台的开发,一切正常,除了guest虚拟机非常慢,没有任何解释,因为CPU,内存,磁盘都表现出低利用率。
很快就发现是视频性能导致了问题。启动应用程序、最大化/最小化窗口——我们在 2019 年认为理所当然但需要 3D 加速才能以任何合理的速度工作的任何事情——都在使用 GPU 0。
很容易确定这一点,因为 Windows 10 现在可以使用“任务管理器”和“性能”选项卡查看 GPU 利用率。我可以看到我移动窗口,最大化,最小化,这是通过主机上的 GPU 完成的。主机上的 GPU 是集成的 Intel HD GPU,我想使用 NVidia GTX-1050ti,即 GPU1。
在四处搜索之后,我并没有真正找到可以指定使用哪个 GPU 的任何地方。但是这个线程和其他一些线程提醒我,在这些类型的设置中,您必须进入 NVidia 控制面板,然后“管理 3d 设置”,然后是“程序设置”选项卡。
您可能不会在列表中找到“Virtualbox”。但是您可以按“添加”按钮,然后添加 virtualbox.exe。您可能需要深入了解您的虚拟机安装所在的驱动器/路径。添加后,在下面的设置中,确保将第 2 项“为此程序选择首选图形处理器”设置为您希望它使用的 GPU,在我的情况下为“高性能 NVIDIA 处理器” .
不要将其设置为自动,当然也不要将其设置为集成。当然,您需要勾选 3D 加速框的 VM 设置,并且您需要在主机上安装来宾添加。但是,一旦您如上所述设置了主机视频 3d 设置,请关闭来宾 VM,退出虚拟机,然后重新启动 VirtualBox 和 VM。
如果您使用 task manager|performacne 并查看“virtualbox manager”进程并观察在您导航来宾 VM 的 UI 时使用了哪些 GPU,您现在应该会看到它使用了更好的 GPU。请参阅下面粘贴的图像。
尽管如此,不要指望能够在来宾 VM 中运行游戏。3D 加速通过仍然不是很远。但是您可以期望在您的来宾中拥有现代操作系统和用户界面,并获得可接受的体验。人们将能够在来宾 VM 中玩旧游戏,就像任何基于 directX9 的游戏一样。不幸的是,随着 GPU 虚拟化能力的发展,3d 游戏技术发展得更快。
Ben*_*n N 21
为访客提供完整的 GPU 访问权限可能是不可能的。如果虚拟机在您的主机使用 GPU 时直接访问您的 GPU,就会发生Bad Things TM,因为在两台有效不同的计算机之间共享内存并不是一件容易的事;指针和地址以及诸如此类的东西在它们之间会有很大不同。(没有消费者可用的卡支持同时为两台计算机提供服务。)
但是,您可以尝试一些事情。首先,在 NVidia 控制面板中将首选图形处理器设置为好的处理器(3D 设置?管理 3D 设置?首选图形处理器)。这可能会使 VirtualBox 与用于 OpenGL 的 NVidia 卡一起使用。
如果这没有帮助,请尝试在来宾上以安全模式安装来宾添加。
最后,在 Linux 主机上,您可以尝试将 GPU 传递到虚拟机,但这仅适用于 PCI 卡,我无法确定您的是否为 PCI,即使如此,您也很有可能从主机上撕下 GPU 或导致其他问题。首先找到好卡的PCI地址(总线、设备和功能)。将您的 VM 的芯片组设置为 ICH9;当我尝试时,这并没有立即破坏任何东西。然后使用 VBoxManage 实用程序附加卡:
vboxmanage modifyvm "Your VM Name" --pciattach BB:DD.F@bb:dd.f
Run Code Online (Sandbox Code Playgroud)
Your VM Name
适当更换。BB
是主机上 GPU 的总线编号;DD
是设备;F
是函数。在 之后@
,输入它将在来宾上的 PCI 插槽。例如:
vboxmanage modifyvm "Windows 7 x64" --pciattach 01:00.0@03.01.0
Run Code Online (Sandbox Code Playgroud)
一般来说,GPU 直通更有可能在 Linux 主机上实现。请参阅如何使用 GPU 直通设置游戏机。
归档时间: |
|
查看次数: |
303960 次 |
最近记录: |