LinuxでReflex/Anti-Lag 2が全GPU対応に
NVIDIAだけの特権だったReflex、AMDだけのAnti-Lag 2。Linuxの個人開発者が、その壁をオープンソースで壊しにかかっている。
NVIDIAだけの特権だったReflex、AMDだけのAnti-Lag 2。Linuxの個人開発者が、その壁をオープンソースで壊しにかかっている。
GPUメーカーの壁を越えるVulkanレイヤー
low_latency_layerという新しいオープンソースプロジェクトが公開された。C++23で書かれたVulkanレイヤーで、アプリケーション側の対応なしに自動で割り込み、NVIDIA ReflexとAMD Anti-Lag 2をハードウェアに依存せず動作させる。
つまり、AMDやIntelのGPUでもReflexが使え、NVIDIAのGPUでもAnti-Lag 2が使える。公式ドライバの支援は不要だ。
仕組みはこうだ。VulkanのデバイスエクステンションであるVK_NV_low_latency2とVK_AMD_anti_lagを、レイヤーが横取りして自前で処理する。DXVK-NVAPIと組み合わせれば、Proton経由のWindowsゲームでも機能する。
開発者のニコラス・ジェイムズ(Nicolas James)は、このプロジェクトを始めた動機をこう語っている。
LinuxでのAnti-Lag 2の現状に不満を感じたのがきっかけだ。MesaのAL2実装は安定性に問題があり、デフォルトで無効化されていた。しかもWindows版ほどのレイテンシ改善効果がなかった。FPSゲームが好きで、AMDマシンを使っていて、Linuxも好きだ。だが、それらは両立しないように見えた。
「両立しない」を「両立させる」に変えたのが、このプロジェクトだ。
Reflexが使えるゲームの多さが、AMDユーザーの不利になっていた
ここには構造的な不均衡がある。
PC向けの低遅延技術で、NVIDIA Reflexに対応しているゲームはかなり多い。一方、AMD Anti-Lag 2に対応しているタイトルは少ない。Windowsでは、AMDユーザーはReflex対応ゲームの恩恵を受けられず、Anti-Lag 1という旧世代の技術で我慢するしかなかった。
low_latency_layerはこの不均衡を解消する。Reflex対応ゲームの低遅延技術を、AMD・Intel GPUでも利用できるようにした。Linux上では、Windowsよりも有利な状況が生まれている。
540Hzモニターで実測、6タイトルのベンチマーク
| タイトル | 使用技術 | vs Windows純正 | Mesa AL |
|---|---|---|---|
| THE FINALS |
Reflex / Anti-Lag 2 |
同等以上 | 効果なし |
| Counter- Strike 2 |
Reflex / Anti-Lag 2 |
明確に上回る | 効果なし |
| Cyberpunk 2077 |
Reflexのみ | 上回る | AL2動作せず |
| Resident Evil Requiem |
Reflexのみ | 上回る | — |
| Marvel Rivals |
Reflex / Anti-Lag 2 |
同等以上 | — |
| Overwatch 2 | Reflexのみ | 上回る | — |
開発者はASUS TUF Radeon RX 7900 XTX、Ryzen 7 9800X3D、64GBメモリという構成で、NVIDIA Reflex Analyzer内蔵の 540Hzモニターを使って手動計測を行った。テストしたタイトルは6本。THE FINALS、Counter-Strike 2、Cyberpunk 2077、Resident Evil Requiem、Marvel Rivals、Overwatch 2だ。
THE FINALS / Counter-Strike 2
THE FINALSではReflex・Anti-Lag 2ともに、WindowsのAMD純正DX12実装と同等以上の結果を出した。Counter-Strike 2ではさらに差が開き、Linux上のlow_latency_layerがWindowsの数値を明確に上回った。
どちらのタイトルでも、MesaのAnti-Lag Vulkanレイヤーは効果なし。データ上、むしろレイテンシが増加する傾向すら見られた。
Mesaの現行実装が「効果なし」と計測で出たのは、開発者がこのプロジェクトを始めた理由そのものだ。公式の低遅延レイヤーが機能していないなら、自分で作るしかない。
Cyberpunk 2077
Cyberpunk 2077では特殊な事情がある。LinuxでAnti-Lag 2が正常に動作しない。原因はアプリケーション側のバグと見られ、AntiLagUpdate()の呼び出しが確認できなかった。設定UIにもAnti-Lag 2のトグルがない。
ただし、Reflexパスは正常に動作し、Windowsネイティブのレイテンシを上回る結果を出した。
Resident Evil Requiem / Overwatch 2
Resident Evil RequiemとOverwatch 2はAnti-Lag 2非対応だが、Reflexには対応している。どちらもlow_latency_layerのReflex実装が最低レイテンシを記録した。Windows上のAnti-Lag 1はLinuxのベースラインとほぼ同じ数値にとどまり、世代の差がはっきり出た。
Marvel Rivals
Marvel Rivalsは開発中に最も手こずったタイトルだと開発者は語る。シミュレーションとレンダリングのキューが分離されており、Windowsの挙動に合わせるために統計処理と追加遅延の調整が必要だった。
開発者はこの設計について、Reflex/Anti-Lagを使いながらシミュレーションとレンダーキューを分離するのは「アプリケーション側のバグと見なすべき」だと指摘している。パイプラインを密結合にすれば、低遅延技術の効果はもっと大きくなるという。
使い方はSteamの起動オプション1行
導入はシンプルだ。GitHubからソースをクローンし、CMakeでビルド・インストールする。
デフォルトではAnti-Lag(VK_AMD_anti_lag)が有効になる。Counter-Strike 2のようなLinuxネイティブアプリでは、そのままメニューからAnti-Lagを切り替えられる。
Proton経由のゲームでは、Steamの起動オプションに以下を追加するだけでReflexが使える。
PROTON_FORCE_NVAPI=1 LOW_LATENCY_EXPOSE_REFLEX=1 LOW_LATENCY_SPOOF_NVIDIA=1 %command%LOW_LATENCY_SPOOF_NVIDIA=1はGPUをNVIDIA製と偽って報告する設定だ。多くのゲームがNVIDIA GPUでないとReflexを表示しないため、この設定が必要になる。
ドライバの壁を、Vulkanレイヤーで迂回した
low_latency_layerがやったことは、技術的には「横取り」だ。NVIDIAとAMDがそれぞれ自社GPU向けに提供している低遅延技術を、Vulkanレイヤーという中間層で再実装した。公式ドライバの支援なしに、同等以上の性能を出している。
MITライセンスで公開されており、誰でも利用・改変できる。
Linuxのゲーミング環境で、「GPUメーカーごとに使える技術が違う」という制約は長らく続いてきた。Windowsでも同じだが、Linuxではドライバの成熟度の差もあり、状況はもっと深刻だった。
個人開発者が540Hzモニターとスプレッドシートで地道に計測し、公式実装より速い低遅延レイヤーを作り上げた。コミュニティが公式を追い越す瞬間は、Linuxでは珍しくない。だが、ベンチマークでここまで明確に示されるケースは多くない。
参照元
関連記事
- Valve製VRAMパッチ、4GB GPUで3倍弱の蘇生劇
- Mesa 26.1 RADV、VK_EXT_descriptor_heapでSteam Play加速
- Valve開発者、LinuxのVRAM管理を根本から修正
- Wine-Staging 11.11リリース。289パッチで本流を補強
- ZigでVulkanドライバを一から書いた開発者が現れた
- Mesa最大の貢献者がAMDを離れValveへ
- Discord、Linux対応を強化 称賛が届かなかった理由
- Wine Wayland、ポインタワープ新方式へ
- Lutris、Claude表記の削除でGPLが揺らぐ事態へ
- Mesa「Amber2」議論、R600は切り離されるか