即将发布的Linux 7.5接受了一个特殊的新补丁,终于解决了古老的AMD R600 GPU架构上一个长久存在的硬件视频解码的Bug。
这个补丁针对的是集成UVD统一视频解码器的Radeon HD 2000/3000系列显卡,陆续发布于2007年5月-2008年1月,距今已经过去了将近20年的漫长岁月。
使用这些显卡的Linux用户,一直被一个不大不小的Bug所困扰:
当GPU一边处理3D负载或者桌面绘制负载、一边利用硬件解码播放视频的时候,视频画面就会出现花屏。
提交修复补丁的是开发者Ted Bullock,他有一台老旧的iMac7,1,配备了RV610/M74 GPU,遇到了上述Bug。
他发现,当GPU正在进行绘制工作的同时,如果解码器从系统内存中读取压缩视频,就会出现视频帧遭到破坏,根源是内存分配的疏漏。
如果把输入数据从系统内存转移到显存里,或者关闭绘制负载,解码画面就能恢复正常。
因此,他提交的方案是,让受影响设备的UVD缓冲区常驻在显存中,事实上Radeon内核驱动对其他一些旧款GPU芯片也是如此处理的。
新补丁已在Debian系统上提供过测试,在RV610、RV620、RV630、RV635、RV670等GPU上工作正常。
有趣的是,Ted Bullock并不是资深专业开发者,而是一个新人,利用OpenAI Codex完成了部分Bug研究、补丁制作和测试工作。
R600架构以及Radeon HD 2000系列显卡,是AMD 2006年花费54亿美元巨资收购ATI之后的第一款产品。
按照通胀换算,这笔钱放在今天的购买力大约相当于大约90亿美元。
对于20年前的AMD来说,54亿美元无疑是一笔超级巨款,从此长期背上了沉重的财务压力,但如今看来绝对是超值的,不然就不会有全行业唯一能够凭借全栈AI计算能力、正面与NVIDIA竞争的资本。
回到R600架构,很多人可能都忘了它对AMD(ATI)乃至整个显卡行业有多么的关键。
它的诞生,标志着AMD(ATI)显卡告别像素管线、顶点管线的分离式架构设计,转向统一着色器架构,再结合DirectX 10、Windows Vista系统的登场,一个技术交替的时代就此诞生。
有趣的是,很多人以为是NVIDIA率先搞出了统一着色器架构,开端便是2006年11月的GeForce 8800 GTX(G80)。
但实际上,ATI早在2005年11月推出的Xbox 360定制芯片“Xenos”上就首发采用了统一着色器架构,那是R500 GPU的衍生品,仅支持DX9。
Radeon HD 2900 XT作为当时的旗舰,在游戏性能、功耗上不是GeForce 8800 GTX的对手。
但是,R600架构的多媒体能力延续了优良传统,依然很强,使得哪怕入门级低配电脑,也能流畅播放H.264、VC-1格式的蓝光高清视频。
在当时,大量双核心CPU连流畅播放1080P视频都极为吃力,因此对HTPC玩家来说,Radeon HD 2000系列极具吸引力。
当然,如今几乎没有人再使用Radeon HD 2000/3000系列显卡,Windows驱动十多年前就终止了。
但是,主线Linux内核还在持续维护对它们的支持,再加上Mesa R600驱动近期也有AI辅助清理优化,这些老显卡的软件生态比当年还要舒服。
不得不说,开源Linux驱动的超长寿命,确实让人感到一种静谧的暖心。