一台服役多年的老iMac,帮开源社区揪出了AMD显卡驱动里潜伏将近二十年的解码缺陷。开发者Ted Bullock手中的这台iMac7,1配备基于RV610核心的Radeon显卡,属于HD 2000/3000那一辈的产品。日常使用中他注意到一个怪现象:GPU一边执行图形绘制,UVD解码单元一边从系统内存读取压缩视频流,屏幕上的视频帧便会出现破损和错乱。
反复试验后,他找到了规避办法——把解码输入改放到显存里,损坏的帧随之消失,播放恢复正常。顺着这条线索深挖,病因最终落在UVD缓冲区的存放位置上:只要这部分数据留在系统内存而非显存中,绘图与解码并发运行时就可能出问题。
这项工作有OpenAI Codex的深度参与。从梳理驱动代码、设计验证方案到动手撰写补丁,Bullock全程都有这位AI助手帮忙。
修改思路并不复杂,受益范围却不小:RV610、RV620、RV630、RV635、RV670同属RV6xx家族,解码通路一致,固件也共用R600版本,因此同一份补丁可以让整个家族的老芯片一并受益。
这批AMD驱动补丁将随合并窗口进入Linux 7.5内核。AMD对R600系列的官方支持早已终止,但该补丁依然经由AMD方面的正式拉取请求获得接纳。对仍在守着这些老显卡的Linux用户而言,播放视频时画面损坏的烦恼就此成为过去。




