17611538698
webmaster@21cto.com

即将到来的 Linux 7.3 将率先发布改进 vRAM 管理的代码,以及更多改进

开源 0 14 1小时前
图片

21CTO导读:Linux内核已经到达7.3版本,其中新增了一项面向游戏玩家的优化技术,可解决8GB显存设备玩游戏时容易爆显存的问题。

今年上半年的时候,Valve Linux 图形团队的 Natalie Vock 发布了一些程序补丁,旨在改善显存有限的 Linux 系统的游戏体验
这本身是一件值得各种用户庆祝的事情,这些用于改进显存管理的内核工作将在下一版本的 Linux 7.3 内核中引入。但 Vock 并未停止完善,仍在继续改进 Linux GPU 驱动程序的显存管理行为。

Vock开发的这个补丁从根本上改进了Linux系统的显存管理,它可以让那些显存需求超过显存实际容量的游戏能流畅运行而不崩溃,以往遇到这种情况游戏要么报错崩溃,要么性能严重受限,也就是爆显存导致的性能暴跌,游戏基本上没法玩了。

这项工作已集成到 SteamOS 内核的稳定版和预览版中,只是并未公开,用户也没有觉察出来。

有用户在《Indiana Jones: The Great Circle》游戏中做了实际测试,系统配置是8GB显存,游戏显存需求设定为9GB,也就是超过1GB需求,但游戏平均帧时间也只有19.6ms,游戏帧数大约是51帧,流畅可玩。

就算把显存需求提升到10GB,帧时间也有29.8ms,相当于34帧的性能,依然能玩,而不是崩溃。

最开始编写的补丁已提交至 DRM-Next 队列,计划在未来两周内与 Linux 7.13 内核合并。
8月18日,Natalie Vock 特意发布了一篇新的博文,概述了在改进 Linux 显存管理方面的最新工作和成果,特别是针对 AMDGPU 驱动程序的改进。
图片
Vock 这篇文章篇幅较长,但内容详尽,重点介绍了显存管理、内存驱逐处理以及使用《夺宝奇兵:大循环》进行的测试中的一些细节。
在测试中,玩家将游戏设置调至最高,试图在只有 8GB 显存的情况下占用 9GB 显存。即使超额分配了 1GB 内存,这款游戏对于 8GB 显卡来说仍然相当流畅。
Radeon RX 5500 XT 8GB 显卡

Vock在博文中总结说:

总而言之,显存不足的情况究竟如何?我认为影响不大!


在很多情况下,即使释放 1GB 甚至更多的显存,你仍然能保持相当高的性能,这着实令人惊讶!当然,这只是比较乐观的情况,如果某些不合适的内存被释放到 CPU 内存中,很快就会导致严重的性能下降。内存释放很难做到恰到好处,而且性能总会在一定程度上受到影响。


如果一款游戏即使所有数据都加载到显存中也难以达到 30fps,那么在此基础上再释放一些内存,有时就不可避免地会导致无法达到 30fps 的目标。

无论如何,我希望这篇文章能够说明,即使最终有一些内存被释放到系统内存中,性能下降也是可以控制的。


驱动程序(尤其是内核驱动程序)可以采取一些措施来尽可能加快内存超额分配的速度,应用程序也可以与驱动程序堆栈协调,从而减轻性能下降的影响。内存被移除的影响。


一切就绪后,显存超额分配其实并没有乍一看那么严重。

除了最初针对 Linux 7.3 的上游合并工作之外,后续的改进仍在进行中,以便合并到未来的 Linux 内核主线版本中。
值得一提的是,有一个名为“vramstuff-rebase”的分支包含了所有这些补丁,供 SteamOS 以外的用户可立即测试。 

作者:洛逸

参考:

Natalie Vock 的BLOG:

https://pixelcluster.dev/VRAM-Mgmt-fixed/

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信