自 2020 年底以来,AMD Linux 工程师一直致力于为RadeonSI 添加智能存取内存(可调整大小的 BAR)支持作为Gallium3D OpenGL 驱动程序,并从那时起以性能的名义进行了改进。然而,对于这个 OpenGL 驱动程序,现在他们已经意识到好处不一定会实现,开发人员继续禁用这个 SAM/ReBAR 支持,然后从这个驱动程序中删除支持。
随着今天的Mesa 22.3.7 稳定更新, 设置为下一个 Mesa 23.0 版本,在过去几天的 Mesa 23.1-devel Git 中,从 RadeonSI Gallium3D 驱动程序中删除了 SAM/ReBAR 支持。AMD 智能存取内存旨在通过让 CPU 立即访问整个 vRAM 帧缓冲区来“充分发挥显卡内存的潜力”。AMD 智能存取内存只是 PCIe 可调整大小的 BAR (ReBAR),但被标记为 AMD Ryzen + AMD Radeon 系统组合。
性能优势不一定对 OpenGL 驱动程序有明显的好处,因此决定只删除代码。RADV作为 Mesa 开源 Radeon Vulkan 驱动程序的 支持仍然存在:此代码更改仅与 RadeonSI OpenGL 驱动程序有关。
从此驱动程序中删除AMD 智能访问内存归因于“CPU 访问有很大的开销” 。
性能问题是通过游戏 Hyperdimension Neptunia Re;Birth1 的 Mesa bug ticket出现的,使用 AMD Ryzen 处理器和 Radeon 显卡时性能非常慢。
极低的性能归因于 AMD 智能存取内存,当禁用 BIOS 中的支持时,性能会提高,或者在使用环境变量运行时会覆盖该行为。经历这个问题后,著名的 AMD 开源 Mesa 开发人员 Marek Olšák 决定从 RadeonSI 中删除智能访问内存代码,因为它不是重点,也没有经过适当测试。因此,不是基于 ReBAR/SAM 支持是否有帮助而将游戏列入白/黑名单,代码只是从这个 Gallium3D 驱动程序中删除。同样,SAM/ReBAR 支持确实保留在 RADV Vulkan 驱动程序中,毕竟对于现代 Linux 游戏而言,这比 OpenGL 更重要。
原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun218082.html