Radeon™ Software for Linux® 26.16 Release Notes
出典: amd.com

OpenAIのCodexを調査やテストに利用した旧世代Radeon向けLinuxドライバーの修正が採用され、Linux 7.5向けの変更に加わりました。描画中に動画フレームが破損する問題に対し、動画デコード用のバッファーをVRAMに配置する修正です。

描画と動画デコードが重なるとフレームが破損

問題を調査したオープンソースの貢献者Ted Bullock氏は、旧型のiMac 7,1で動画の破損に遭遇しました。この機器にはRV610/M74のGPUが搭載されています。

動画デコーダーがシステムメモリから圧縮動画を読み込む間にGPUが描画を行うと、動画フレームが破損していました。入力をグラフィックス用メモリのVRAMに移すと、フレームは正しくデコードされました。

グラフィックスの描画を停止した場合にも、破損は発生しなくなりました。Bullock氏はLinuxの一種であるDebianでテストし、調査、テスト、修正パッチの作成にCodexを役立てたと述べています。

修正対象はRadeonの5種類のGPU

修正は、動画をデコードするUnified Video Decoding(UVD)の処理を対象にしています。対象チップはRV610、RV620、RV630、RV635、RV670の5種類です。

これらはRadeon HD 2000/3000世代のR600系ハードウェアに属します。AMDによるR600 GPUの公式なサポート保守は、数年前に終了しています。

Bullock氏は、5種類のチップがRV6xxのデコーダー処理と旧R600ファームウェアを共有しているため、同じハードウェア要件を持つ可能性が高いとみています。一方、調査に使った機器以外のハードウェアでは検証が必要だとしています。

UVDバッファーをVRAMに置く変更

修正案は、対象となるGPUでUVDのバッファーをVRAMに置くものです。ドライバーはすでに一部の別のチップでも、画像の破損を避けるために同様の配置を行っています。

変更箇所は、RadeonドライバーでUVDジョブのバッファー配置を扱う処理です。従来からの対象にRV610、RV620、RV630、RV635、RV670を加えています。

UVDジョブでは、最初のメッセージ用バッファーをVRAMに置く必要があります。WMV形式の動画では、2番目のデコード用バッファーもVRAMに置く必要があります。

修正はLinux 7.5向けの変更に採用

このパッチは採用され、AMDのカーネル向けグラフィックス・計算ドライバーの変更に含まれました。Linux 7.5に向けた変更を取り込むマージウィンドウは年末に開く予定です。

今回の変更には、Radeonドライバーの別の修正も含まれます。AMD GPU向けには、映像出力やGPUリセット、エラー処理などの修正も挙げられています。

また、HDMI 2.2のFRL速度に関するディスプレイ情報の解析対応も含まれています。新しいAMD GFX13向けパッチは、今回の変更には含まれていません。