Intel Vulkanドライバに5年越しの最適化が着弾、LinuxのDX12ゲーム性能が向上へ
5年以上コードベースに眠っていたパッチが、ようやく日の目を見た。IntelのLinux向けVulkanドライバに、DX12ゲームの性能を底上げする新機能が統合されている。
5年以上コードベースに眠っていたパッチが、ようやく日の目を見た。IntelのLinux向けVulkanドライバに、DX12ゲームの性能を底上げする新機能が統合されている。
「テスト済み全ワークロードで性能向上」の中身
Intelのオープンソース Vulkanドライバ「ANV」に、BTP+BTI RCC Keyingと呼ばれる最適化がMesa 26.1-develにマージされている。3月24日(米国東部時間)に統合が完了し、対象はIntel Arc(DG2/Alchemist)世代以降のGPUだ。Linux上でDirect3D 12タイトルをProton+VKD3D-Proton経由でプレイする際に恩恵がある。

技術的には、レンダーキャッシュ(RCC)がステートキャッシュのタグとして使う値を変更する最適化だ。従来はBinding Table Index(BTI)だけをタグに使っていたが、新たにBTPとBTIの合計値をタグとして使うように変わった。これによりRTフラッシュとPSスコアボードストールを省略できるようになり、DX12ワークロードで一律の性能改善が得られる。
開発を主導したIntelのリオネル・ランドヴェルリンは、マージリクエスト上でこの最適化について「DX12ではテスト済みの全ワークロードで性能が向上する」と述べている。ただし具体的なベンチマーク数値は公開されていない。「全ワークロードで改善」という言葉の重みは認めつつも、実測データなしでは期待値の設定が難しいのが正直なところだ。
なぜ5年も眠っていたのか
この最適化には5年以上の歴史がある。原型となるパッチが最初に書かれたのは2020年11月のことで、そこからMesaメインラインへのマージまで長い道のりを辿った。
理由のひとつは、DX11との相性問題にある。DX12では全面的な性能向上が確認された一方で、DX11では逆にパフォーマンスが後退することが判明していた。シェーダリソースアクセスの構造が異なるため、バインドレスヒープの扱いが変わることでDX11ではレジスタ使用量が増加してしまう。
結果として、この最適化はDRIRC設定キーを通じてDX12タイトル限定で有効化される仕組みが採用された。DX11タイトルには一切影響しない、いわば「外科手術的」な適用だ。もうひとつの制約として、DG2/Alchemist以前のプラットフォームではバインドレスヒープが小さすぎるため、この最適化自体が完全に無効化される。
ちなみに、COMMON_SLICE_CHICKEN3というレジスタ名に首をかしげた人もいるかもしれない。ハードウェア業界でいう「チキンビット」とは、新しい最適化を入れたものの問題があれば無効化できるよう仕込んでおくレジスタ設定のことだ。「怖気づいて無効にする」から「チキン」。命名センスはさておき、5年かけて「チキンアウト」せずにマージまで漕ぎ着けた開発者たちの粘りは評価に値する。
・ ・ ・
カーネル側にも前提条件がある。この最適化はXeカーネルドライバのパッチに依存しており、COMMON_SLICE_CHICKEN3のbit13をキュー単位でプログラミングする必要がある。このカーネルパッチは次期Linux 7.1サイクルでの取り込みが見込まれている。
Intel ANVの「DX12シフト」が加速している
今回のマージは単発の出来事ではない。2月末にもランドヴェルリンによるインラインパラメータプロモーションの最適化がMesa 26.1-develに取り込まれており、こちらもDX12タイトルで最大約1%の性能向上が確認されていた。Intel ANVチームがDX12ゲーミングに集中投資している姿勢が、ここ数カ月で明確になりつつある。
背景にあるのは、Linux上のゲーミング環境の成熟だ。ValveのSteam Play(Proton)とVKD3D-Protonの組み合わせにより、DX12タイトルをLinux上でプレイする需要は着実に増えている。Intel Arcは発売当初、LinuxでのDX12対応が大きな課題だった。スパースレジデンシの未対応など、基本的な機能すら欠けていた時期もある。
そこから約3年。パッチの一つひとつは地味かもしれないが、積み重ねの方向性は明確だ。IntelはLinuxゲーミングに対して「後回し」ではなく「同時進行」で取り組む姿勢を示し始めている。
ユーザーに届くのはいつか
ここで冷静に考えるべきは、この最適化が実際にユーザーの手元で動くまでの道のりだ。
Mesa 26.1-develへのマージは完了しているが、安定版リリースはまだ先になる。加えて、Xeカーネルドライバのパッチがメインラインカーネルに入るのはLinux 7.1以降の予定だ。つまり、Mesaとカーネルの両方が揃って初めて、一般的なディストリビューションのユーザーがこの恩恵を受けられる。ローリングリリース系のディストリビューションであれば比較的早く試せるだろうが、それでも数カ月単位の待ちにはなる。
Phoronixのフォーラムでは、あるユーザーが「Intelに必要なのはValveの魔法だ」とコメントしていた。皮肉交じりだが、的を射た指摘でもある。ドライバの最適化だけでは限界がある。ValveのProtonチームとの連携がどこまで深まるかが、Intel Arcの「Linuxゲーミング対応GPU」としての評価を左右するだろう。
5年間寝かされたパッチがついにマージされた。オープンソースドライバの開発は、華やかな発表とは無縁の地味な作業の連続だ。今日マージされたコードが、半年後に誰かのフレームレートを少しだけ押し上げる。その「少しだけ」が、いつか「十分」に届く日は来るのだろうか。
参照元
他参照
#Intel #IntelArc #Vulkan #Mesa #Linux #DX12 #Proton #VKD3D #オープンソース #情報の灯台