4 月 12 日消息,随着游戏画质不断提升,显存(VRAM)占用问题日益突出,尤其是对于 Steam Deck 掌机用户而言。
据 TomsHardware 今日报道,Valve Linux 图形驱动团队的工程师 Natalie Vock 针对这一痛点提出了一套全新的解决方案,通过优化显存分配策略,显著提升游戏性能。
Vock 开发了新的内核补丁及两个专用工具,核心思路是让操作系统明确知道:当前正在前台运行的游戏拥有显存的“优先使用权”。当显存开始吃紧时,后台任务所占用的显存数据将被强制“溢出”到系统内存中,而游戏数据则纹丝不动。
在此之前,Linux 内核并不清楚该优先保留哪个程序的数据。一旦游戏占用显存过高,内核可能会将游戏数据移出显存,转而分配给后台的浏览器窗口等程序,从而导致游戏掉帧、出现卡顿。
Vock 用一张 8GB 显存的显卡以及《赛博朋克 2077》进行了测试。未应用补丁时,有 1.37GB 的数据被“溢出”到 GTT(图形转换表,负责告诉 GPU 去系统内存中找数据)。而此时游戏实际只占用了约 6GB 显存;应用补丁后,游戏使用了近 7.4GB 的显存,GTT 中的溢出数据降至仅 650MB。
这套方案的核心组件名为“dmemcg-booster”(设备内存控制组增强版)。它告知 Linux 系统在任意时刻需要“保护”哪个程序,确保该程序的数据不会被移出显存。如果后台任务需要显存,它将被强制转移到速度更慢的系统内存中,从而保证游戏不间断流畅运行。
本质上,这套方案并非直接减少显存占用,而是优化了有限显存的分配优先级。对于 12GB 显存的显卡而言,后台程序优先级混乱的影响可能并不明显;但对于 8GB 显卡,这一优化可以充分释放其潜力。
另一个组件名为“plasma-foreground-booster”,它能自动告知 KDE 桌面环境当前哪个窗口位于前台,以便为该窗口优先分配显存。
这些补丁后续将被集成到 CachyOS 发行版中,并等待合并进主线 Linux 内核。用户可以在任何 Linux 发行版中自行下载使用这些补丁(提醒:仅适用于 AMD GPU,因为 NVIDIA 驱动的显存管理部分是闭源的)。