ReBarUEFI 是一个 UEFI DXE 驱动程序,面向那些固件未提供 Resizable BAR 选项、但所连接 PCI 设备可能支持该功能的计算机。该项目的 README 表示,即使没有官方 BIOS 设置,这个驱动程序也能开放相关功能。这是项目作者的主张,并不能证明所有宣称支持的平台都能正常运行。

基址寄存器(BAR)用于描述处理器可以映射的一段设备内存。Resizable BAR 会在枚举过程中调整该映射区域的大小,而不是始终采用固件选择的较小值。具体来说,这项功能可能让 CPU 一次映射更多显存。它能否改善某款游戏或某个应用程序的表现,取决于 GPU、驱动程序、工作负载、CPU 和固件;所提供的资料中没有任何独立基准测试套件。

该项目具体说明了其工作机制。ReBarDxe 会被加入固件的 DXE 卷,并替换与 `PciHostBridgeResourceAllocationProtocol` 关联的 `PreprocessController` 函数。它会先运行原始函数,检查 Resizable BAR 功能,然后请求 `ReBarState` NVRAM 变量中保存的大小。随后,PCI 总线驱动程序会看到新的 BAR 大小,并分配相应的地址范围。这段说明描述了预期控制流程,但并未独立证明每种固件实现都会保留所需挂钩和资源。

README 列出了若干前提条件和可能的故障。它建议在安装修改后的固件后启用 4G 解码并关闭 CSM。项目还警告,不支持 Large BAR 的系统可能需要额外补丁;如果 `32` 设置无法正常工作,也可能需要降低该值——项目将这一设置描述为“不限制大小”。这些是运行要求,而不是可选的性能优化。如果计算机无法提供足够的地址空间,即使设备本身宣称支持该功能,BAR 仍可能只能使用较小容量。

LGA 2011-3 X99 系统中显示的 Resizable BAR 设置
LGA 2011-3 X99 平台上的 Resizable BAR 配置。github.com

固件设置直观展示了本文讨论的该功能及地址空间条件。

该项目包含与 UEFIPatch 相关的改动,用于处理其认为与 64 位 BAR 和 MMIO 地址分配有关的问题,包括 4GB、16GB 和 64GB 处的限制,以及防止某些 64 位 BAR 被降级。项目还列出了针对特定平台的解决方法,例如在 Haswell、Broadwell、Skylake、Kaby Lake 和 Coffee Lake 等 Intel 平台上增加 MMIO 空间。补丁的存在说明项目针对某个已知的兼容性问题,但并不证明在特定主板上应用它既安全又足够。

因此,安装过程与调整普通 BIOS 开关有本质区别。该仓库引导用户参考有关添加 FFS 模块的 wiki 流程,并说明必要时还需进行其他固件修改。它提供了在 edk2 目录树中构建 DXE 驱动程序的脚本,并表示可以在 Windows 或 Linux 上使用 CMake 构建 ReBarState。读者应将所提供的 README 视为项目文档,而不是通用的恢复指南:刷写或修补固件可能导致系统无法启动,而这份资料并未逐一证明各主板的安全性、厂商支持情况或回滚行为。

该项目的 FAQ 表示,在最近版本的 Linux 中,只要启用 4G 解码,系统就能自动调整并分配 GPU BAR;如果 DSDT 存在问题,则可能需要在内核或固件层面进行处理。项目还另行指出,目前不知道如何在 Windows 上不经 BIOS 修改便启用该功能。这些信息有助于选择操作系统,但并不构成兼容性保证;在修改固件之前,仍应根据当前使用的 Linux 发行版、GPU 驱动程序和主板文档核实相关情况。

CPU-Z、GPU-Z 和 AMD Software 窗口中显示的 Resizable BAR 信息
CPU-Z、GPU-Z 和 AMD Software 正在报告已启用的 Resizable BAR 配置。github.com

该截图展示了固件完成枚举后,操作系统和驱动程序工具如何显示最终的 BAR 状态。

恢复警告尤其重要。如果不受支持的 BAR 大小导致计算机无法启动,README 建议清除 CMOS,在某些情况下还需取下 CMOS 电池以禁用 Resizable BAR。这项建议清楚表明,不能把该项目当作无害的普通软件工具。在进行尝试之前,用户必须准备一份已知可正常工作的固件镜像、可靠的刷写流程,以及与自身硬件相符的恢复方案。

有意义的比较并不只是“旧电脑与新电脑”。真正需要确认的是:硬件是否宣称支持该功能,固件是否提供足够的地址空间,操作系统和驱动程序能否使用最终形成的映射,以及具体工作负载能否从中受益。ReBarUEFI 通过修改固件行为来满足第二个条件;它无法让不支持该功能的设备凭空获得 Resizable BAR,无法修复不兼容的驱动程序,也不能保证带来可测量的性能提升。

这里提供的证据只支持一个范围有限的结论:ReBarUEFI 是一种有明确技术说明的固件干预手段,可以在部分原本不受支持的系统中请求更大的 BAR,但其运行依赖 4G 解码、Large BAR 处理、MMIO 空间以及针对特定平台的补丁。它不支持更宽泛的说法,即从字面意义上在“几乎任何”UEFI 系统上都能工作,也没有证明典型的游戏性能提升。作者自己的示例称,在一套采用 Intel i5-3470、Radeon RX 580 和 2GB BAR 的配置中,FPS 最多提高了 12%;这一单独配置只是项目作者提供的个案说法,并非通用基准测试结果。

对于考虑使用该项目的人,首先应该提出的不是宣传性问题,而是操作性问题:能否共同核实确切的主板、GPU、固件版本和操作系统;如果枚举失败,能否恢复固件?仓库中的兼容性列表和问题文档或许有助于缩小疑问范围,但所提供的资料并未给出经过测试的兼容矩阵或独立验证。在这些细节得到核实之前,负责任的预期应当是:只在可以恢复的硬件上进行有条件的尝试,而不是承诺图形性能必然提升或保证兼容。