近二十年后,Linux 内核补丁修复 AMD Radeon HD 2000/3000 系列视频解码 Bug
据 Phoronix 报道,一项新获批准的 Linux 内核补丁预计将随即将发布的 Linux 7.5 版本上线,旨在解决 AMD R600 架构显卡长期存在的硬件视频解码故障。这一修复距离相关显卡首次上市已近二十年。

该补丁主要针对 RV610、RV620、RV630、RV635 和 RV670 芯片系列中的统一视频解码器(UVD)引擎。这些芯片构成了自 2007 年起发布的 Radeon HD 2000 和 HD 3000 系列显卡的基础。此前,Linux 用户在使用这些显卡进行硬件加速视频播放时,若 GPU 同时处理活跃的 3D 或桌面绘制负载,会出现画面损坏问题。此次更新有望彻底解决这一顽疾。
我在较旧的 iMac7,1(配备 RV610/M74 芯片,设备 ID 1002:94c8)上调查了视频损坏问题。当解码器在 GPU 绘制图形时从系统内存读取压缩视频,会导致视频帧损坏。将输入移至 VRAM 后,帧可以正确解码。禁用图形绘制也能停止损坏。
以下是针对该系列设备将 UVD 缓冲区保留在 VRAM 中的提案,因为驱动程序已经对其他一些芯片采用了此做法。该补丁涵盖 RV610、RV620、RV630、RV635 和 RV670。这些芯片共享 RV6xx 解码路径和传统 R600 固件,因此我认为它们可能具有相同的硬件要求。需要拥有其他硬件的人进行验证。
我在 Debian 上进行了测试。我使用 Codex 协助进行调查、测试和编写补丁。Ted Bullock,首次贡献内核
值得注意的是,这一技术突破并非来自开源图形堆栈的资深开发者。根本原因在于存储器放置错误:驱动程序并未始终将 UVD 输入缓冲器固定在专用显存(VRAM)中。当图形绘图调用争夺资源时,视频无法被正确解码。通过强制将这些缓冲器保留在 VRAM 中——Radeon 内核驱动程序此前已对几个其他芯片家族强制执行了这一策略——视频播放问题得以立即缓解。
R600 世代在 PC 图形发展史上具有重要地位。2007 年,Radeon HD 2000 系列作为 AMD 收购加拿大 ATI Technologies Inc 后推出的首款桌面 GPU 产品,标志着该公司图形部门从独立的像素和顶点管道过渡到统一的着色器架构。这一转变与 DirectX 10 和 Windows Vista 的发布同步,正值行业技术过渡的关键时期。
尽管旗舰型号 Radeon HD 2900 XT 在原始游戏光栅化性能和功耗方面难以匹敌 Nvidia 主导地位的 GeForce 8800 GTX,但 R600 家族为桌面平台带来了强大的多媒体能力。主流 RV610 和 RV630 芯片引入了第一代统一视频解码器 (UVD),随后推出的精致版 RV670 为广受欢迎的 Radeon HD 3850 和 3870 提供动力。这使得即使是廉价 PC 也能将繁重的 H.264 和 VC-1 蓝光解码任务从 CPU 卸载至 GPU。在 2007 年,无需双核处理器即可实现平滑的 1080p 播放是许多用户的主要卖点,尤其受到家庭影院 PC (HTPC) 制造商的重视。
截至 2026 年,几乎没有人日常使用基于 TeraScale 1 架构的显卡。提交补丁的贡献者表示,其初衷是为了维护自己古老的基于 Core 2 Duo 处理器的 iMac。尽管如此,这一事件凸显了开源 Linux 驱动程序的持久生命力。相比之下,专有 Windows 对 HD 2000 和 3000 系列的支持已在十多年前结束。结合近期 Mesa R600 用户空间驱动程序中借助人工智能辅助进行的清理工作,复古 Radeon 硬件目前的软件支持状况可以说优于其实际零售寿命期间。





