我正在尝试在 VBox 客户机中运行游戏,它需要 256MB 内存。但是,在 VBox 中分配 256MB 内存时,Windows 会使用 3MB,而根据 Windows 7 中的 DXdiag 报告,只剩下 253MB。有没有办法报告 256MB 内存才能运行游戏?是否可以将 VirtualBox 内存增加到 256MB 以上,或者欺骗 Windows7 报告比可用内存更多的内存?
答案1
我看到过相同的内存报告问题。分配 256MB 时,Windows 8.1 和 Windows 7 都报告 ~255MB。奇怪的是,当设置为 128MB 时,两者都报告 ~191MB。因此,VirtualBox 的 3D 视频驱动程序似乎存在问题,或者它错误地计算了部分 3D 加速内存(稍后会详细介绍)。使用不同 3D 驱动程序的 Windows XP Professional 在分配 128MB 时报告 128.0MB。VBoxManage
在 XP 中将内存设置为 256MB 可打破 128MB GUI 设置障碍,并在 dxdiag 中报告 256.0MB。
当然,Windows 7 和 8.1 可能存在一些固有的低效率,因为我发现一台装有 Win7 的戴尔 Latitude 笔记本电脑报告其 VRAM 为 ~4051MB(3.96GB),我不敢相信英特尔会把这个奇怪的数字扔进共享显卡内存中。
直接回答你的问题,我不知道有什么方法可以强制 VBox(或其 3D 驱动程序)报告正确的内存量,并且目前无法将分配给 VM 的 VRAM 设置为高于 256MB。使用命令VBoxManage modifyvm "Windows 7" --vram 1024
可获得:
VBoxManage: error: Invalid VRAM size: 1024 MB (must be in range [1, 256] MB)
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component SessionMachine, interface IMachine, callee nsISupports
VBoxManage: error: Context: "COMSETTER(VRAMSize)(ValueUnion.u32)" at line 570 of file VBoxManageModifyVM.cpp
并且在 *.vbox 文件中手动设置 VRAM 会导致 VM 在启动时崩溃或不应用新的内存设置。
根据你说的这是一款游戏,我猜(如果我错了请纠正我)这是一款 3D 内容较多的游戏(例如《传送门》、《无主之地》、《半条命》、《生化奇兵》、《我的世界》等),需要额外的 VRAM。根据这张票和官方手册,如果启用了 3D 加速并安装了正确的客户机附加组件,客户机操作系统的 3D 命令将直接转发到主机的视频卡,而不是模拟 3D 硬件,这样会慢得多。因此,如果游戏需要内存进行 3D 处理,它应该在 256MB(甚至更少)上工作,因为您的主机直接处理 3D 负载,包括内存(使用主机的 VRAM)。我的旧款 2009 年中 13 英寸 Macbook Pro 有 256MB VRAM,所以任何现代计算机可能都可以正常工作。
那么我的问题是:您是否真的尝试过运行游戏?如果没有,那就试一试!结果可能会让您大吃一惊。如果您运行了游戏,并且确实出错了,有时游戏崩溃错误并不是最具有描述性的。许多游戏都假设您拥有出色的 3D 硬件,并说问题可能是内存问题。我的一个朋友在 Virtualbox 上运行游戏时收到“可能内存不足”错误,结果发现他们没有在 VM 设置中启用硬件 3D 加速,这导致游戏在启动时崩溃。如果启用了 3D 加速并从客户机附加组件中安装了 Direct3D 驱动程序,请尝试其他 Direct3D 驱动程序(Windows 7 有两个)。实验性的 WDDM 驱动程序(启用 Aero 支持)不需要启动到安全模式即可启动,而基本 Direct3D 驱动程序则需要。在客户机附加组件安装程序中,当您选中 Direct3D 复选框时,它会为您提供一个选项供您选择。
如果您确实启用了 3D 加速,但 Direct3D 驱动程序均无法工作,则您的游戏可能不支持/不需要 VirtualBox 提供的 3D。您可以尝试启用 2D 加速(有时需要禁用 3D)以查看是否有任何变化。如果没有变化,我无法帮助您,因为我不知道游戏是什么以及看到了什么(如果有)错误消息。
如果游戏仍然无法运行,并且无法使用 2D 或 3D 加速,则可能需要使用具有游戏所需资源的 PCI 直通显卡(仅限 Linux 主机)。Virtualbox 手册第 9 章对此进行了详细说明。这是一个需要特定硬件的复杂过程,因此请对您的系统进行研究,看看它是否能运行。您需要检查 Linux 内核、主板、CPU 和将要转发的显卡。