强制开启 Resizable Bar 提升显卡性能

2024-06-30 ⏳1.8分钟(0.7千字)

本文介绍如何开启 Resizable Bar, 提升显卡性能.

缘起

最近有跟小伙伴一起玩 PUBG, 我的显卡是 AMD 6950xt, 但是 cpu 是服务器版本, 内存频率也只有可怜的 2666HZ, 这就导致有时候会卡, 🪂的时候大概 210 帧, 普通游戏状态有 180 帧, 但是 roll 点的时候可能只有 90 帧.

然后看了下 AMD 显卡 能不能做什么优化, 然后就发现 Resizable Bar 是关闭的.

什么是 Resizable Bar ?

Resizable BAR(Base Address Register)是一种技术,它允许CPU直接访问显卡的全部显存,而不是像传统上那样只能访问一部分。这种技术可以提高显卡和CPU之间的数据传输效率,从而提升游戏和图形应用的性能。实际上,它允许CPU在需要时更有效地加载和处理大量的图形数据,特别是在高分辨率和高质量纹理下。

默认情况下这个值只有可怜的 256M, 但是开启后可以访问显卡的任意显存.

unenable Resizable bar

开启需要以下条件:

历程

我兴高采烈的去阅读了我的 BIOS Manual 发现我的 bios 并不支持该功能, 说白了就没有这个选项.

万事不决问 Google, 然后发现了开源项目 ReBarUEFI. 但是发现大多人都是消费级主板, 这个需要手动修改 bios 并刷入, 一旦出现问题就需要第二台电脑强行刷 BIOS, 而且我手头上并没有第二台电脑.

我搜了下 issues, 从 WIKI 上找到了已测试列表, 已经有人测试过 C621 芯片, 考虑到我之前也操作过 UEFITool, 而且该项目也是用到该工具, 直接开搞.

因为 bios 不支持该功能, 所以我们要往 BIOS 里添加一个 fss 模块. 添加之后并不会在 bios 里出现一个开启的选项所以还要步骤 3.

需要下面的工具:

  1. UEFITool non-NE 注意必须要这个版本❗️
  2. ReBarDxe 这里下载 fss 注入到 BIOS
  3. ReBarState.exe 也在上面的 github 地址

操作步骤: 英语好的自己看这里

  1. 把你自己的 bios 文件拖入 UEFITool
  2. File -> Search, 然后选中 Header only GUID, 搜索 3C1DE39F-D207-408A-AACC-731CFB7F1DD7
UEFI Search
UEFI Search Result
  1. 然后我们点击搜索结果跳转到相应的 section, 然后划到最下面, 选中最后一个 DXE driver, 右键点击 insert after
UEFI Search
  1. 插入后保存 bios 文件
  2. 刷入 bios
  3. windows 开机开启 Resize Bar 这里别忘记!!!

注意, 有些消费级主板到这里可能还不算结束, 可能还需要 UEFIPatch 打补丁, 我的主板不需要, 这里不再赘述。

看下成功的结果:

UEFI Search

可以看到 BAR1 的访问内存已经是显卡的最大内存了, PCI-Express Resizable Bar 也是开启状态.

小结

开启后最低帧大概有个 15-20% 的性能提升, 最高帧也差不多, 不过打游戏的话还是建议大家换消费级 CPU, 同时也不是所有的游戏都支持 Resizable Bar.