一项新接受的内核补丁计划用于即将发布的Linux 7.5,终于解决了AMD老旧R600架构长期存在的硬件视频解码缺陷,距离这些显卡首次上市已接近20年。据海外媒体报道,该修复面向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,首次参与内核贡献
有趣的是,这一突破并非来自开源图形软件栈的资深老兵,而是来自一位利用OpenAI Codex来理清传统驱动路径的新人。问题根源是内存放置疏忽:驱动没有始终将UVD输入缓冲区固定在专用VRAM中。当图形绘制调用争抢资源时,帧无法正常解码。通过强制这些缓冲区留在VRAM——Radeon内核驱动显然已在其他几个芯片家族中强制执行这一行为——视频播放便恢复正常。
人们很容易忘记R600一代对PC图形有多关键。Radeon HD 2000系列于2007年推出,是AMD收购加拿大ATI科技公司之后,首款以AMD品牌打造的桌面GPU产品线,标志着新AMD图形部门在桌面领域从分离像素和顶点管线转型;此前该技术已率先用于Xbox 360。统一着色器架构的推出与DirectX 10和Windows Vista同期到来,因此那是一个多重过渡的时期。
一张ATI R600 GPU裸片照片,展示当时新颖的统一着色器的四个SIMD集群。(图片来源:Martijn Boer/公有领域)
虽然旗舰Radeon HD 2900 XT在原始游戏光栅化和功耗方面难以对抗英伟达占主导地位的GeForce 8800 GTX,但R600家族带来了可观的多媒体能力。第一代UVD在主流RV610和RV630芯片上引入,后来经过改进的RV670用于广受喜爱的Radeon HD 3850和3870,使即便是预算有限的PC也能将繁重的H.264和VC-1蓝光解码从CPU卸载。2007年,在不让双核处理器满载的情况下流畅播放1080p视频,是许多用户的重要卖点,对家庭影院PC(HTPC)装机用户尤其如此。
当然,到2026年几乎没有人再把TeraScale 1显卡作为日常使用,尤其是现代集成显卡以仅为其零头的功耗全面超越它们;提交补丁的贡献者希望在自己的老旧Core 2 Duo iMac上使用这些补丁。然而,开源Linux驱动的长久生命力仍令人感到温暖。HD 2000和3000系列的Windows专有支持十多年前已经停止,而Linux主线内核仍在延续支持。加上近期针对Mesa R600用户空间驱动的AI辅助清理,老款Radeon硬件如今的软件状态可以说好于其实际零售生命周期。
来源: 海外媒体
登录后即可参与技术讨论与同行交流
免费注册