驱动之家 昨天
显存不够怎么办 Valve出手了!8GB显卡跑9GB游戏:还能流畅50帧
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_keji1.html

 

快科技 8 月 19 日消息,Valve Linux 图形团队开发者 Natalie Vock 发布了 VRAM 管理分析博客第二部分,展示了 Linux 内核在显存不足时的优化效果。

测试中《夺宝奇兵:古老之圈》在 8GB 显存显卡上分配了 9GB 资源,约 1GB 被自动迁移至系统内存,平均帧时间 19.6 毫秒,折合约 50 FPS,Vock 评价为 " 仍然流畅可玩 "。

当显卡显存不足以容纳游戏全部资源时,Linux 内核驱动有两种选择:拒绝分配请求导致应用崩溃,或者将部分数据从显存中移出腾出空间,这一过程在内核术语中称为 Eviction。

负责这一过程的是名为 TTM 的内存管理器,AMDGPU 与其他图形驱动共享该组件,不过 TTM 的核心问题在于无法识别被请求内存区域的用途,一个浏览器标签页和一张游戏纹理在驱动眼中是同等优先级的对象。

这导致过去 TTM 的迁移操作经常误将前台游戏的纹理移出,而非后台应用中不那么重要的数据。被移出的数据会转移到 GTT 区域,这是系统内存中 GPU 可以访问的一部分。

这时的具体性能损失程度就取决于被迁移的资源类型:一张很少读取的纹理几乎不会产生影响,但一个每帧多次访问的缓冲区可能严重拖慢帧率,这也是显存溢出场景下性能损失难以预测的根本原因。

Vock 在今年早些时候已经着手解决 TTM 的优先级问题,引入 DMEM Cgroup Controller 为不同进程组分配显存占用优先级,确保前台游戏获得更高优先级。

此次发布的第二部分分析进一步验证了优化效果,通过《夺宝奇兵:古老之圈》菜单中可直接调节的流缓冲池大小功能,精确控制显存需求进行测试。在 8GB 显卡上设定 9GB 需求后,约 1GB 游戏资源迁移至系统内存,平均帧时间 19.6 毫秒。

Vock 同时指出这一结果属于较为乐观的情况,19.6 毫秒是平均值而非百分位数据,无法反映帧时间波动、加载卡顿或流式加载中断的情况。

如果迁移的是错误资源,帧率跌幅可能非常明显,原本就在 30 帧附近挣扎的游戏,显存溢出后可能彻底无法达到目标帧率。

目前第一批补丁已进入 DRM-Next 分支,预定随 Linux 7.3 内核合并窗口合入,更深层的优化已经在 SteamOS 的稳定版和预览版内核中运行,SteamOS 3.8 用户无需额外操作即可获得。

需要指出的是,该优化仅适用于开源 AMDGPU 驱动,即 Radeon 显卡,NVIDIA GeForce 的闭源驱动和 Windows 系统均不受影响。

更重要的是,内核优化只是让显存溢出更可控,并不能凭空增加显存容量,对于 8GB 显卡用户而言,这些补丁带来的是更平缓的性能下降曲线和更多极限操作空间,而非彻底消除显存瓶颈。

宙世代

宙世代

ZAKER旗下Web3.0元宇宙平台

一起剪

一起剪

ZAKER旗下免费视频剪辑工具

相关标签

linux valve 效果 开源
相关文章
评论
没有更多评论了
取消

登录后才可以发布评论哦

打开小程序可以发布评论哦

12 我来说两句…
打开 ZAKER 参与讨论