世界を動かす技術を、日本語で。

Arsのテストによると、ゲームはWindows 11よりもSteamOSでより速く動作する

2025年6月26日原文(arstechnica.com)

概要

SteamOSは多くのゲームでWindowsよりも高いフレームレートを実現。 一部ゲームではWindowsの最新ドライバー導入で性能向上。 SteamOSのProtonやMesaドライバーの最適化が効果的。 WindowsはOSのオーバーヘッドが影響。 Microsoftもゲーミング向け最適化を強化中。

SteamOSとWindowsのゲームパフォーマンス比較

  • SteamOS は、テストした5本中4本のゲームで 明確なフレームレート向上 を実現
    • Borderlands 3のみ、 Windowsと同等 のパフォーマンス
    • 他4本は、 Lenovo純正Windowsドライバー よりもSteamOSの方が はるかに高性能
  • Returnal (グラフィック設定High・1920×1200解像度)では、
    • Lenovo Windowsドライバー: 平均18 FPS
    • SteamOS: 平均33 FPS
  • Asusの最新ドライバー をWindowsにサイドロードすると、全ゲームでパフォーマンスが 向上
    • Homeworld 3(Low設定)では SteamOSとほぼ同等
    • それ以外のゲームでは、 8%~36%低いフレームレート が続く
  • SteamOS は、 Proton によるWindows命令の変換レイヤーを介して動作
    • 直感に反しても高性能を維持
    • Valve のProton最適化と Mesaグラフィックスドライバー の改良が寄与
  • SteamOS は、 WindowsよりもOSのオーバーヘッドが少ない
    • ゲーム専用に近い環境を提供
  • Microsoft もゲーミング最適化を強化中
    • 新機能「 Xbox Experience for Handheld」発表
      • バックグラウンド処理や不要タスクを最小化
      • ゲーム中の「 より高いフレームレート」を目指す方針

まとめ

  • SteamOS は、現状で多くのゲームにおいて Windowsを上回るパフォーマンス
  • ドライバー最適化OSレベルの調整 が、今後のゲーミング体験向上の鍵
  • Microsoft もこの分野で積極的に改善を進行中

Hackerたちの意見

プロトンを「翻訳レイヤー」と呼ぶのはちょっと不公平かも。Win32 APIはシステムコールで定義されてるわけじゃなくて、DLLからエクスポートされた関数のセットだからね。プロトンはLinuxのシステムコールを使ってWin32 APIを実装したDLLを提供してる。WindowsもWindowsのシステムコールを使ってWin32 APIを実装したDLLを提供してるけど、実際には直接使うべきじゃないんだよね。

https://www.winehq.org/ では、呼び出しをその場で翻訳する互換性レイヤーって呼んでるから、「翻訳レイヤー」って言うのもそんなに不公平じゃないよ。

WineはWindowsのABI(APIじゃなくて)をLinuxのOSやユーザーランドに翻訳してる。翻訳っていうのは、通常WindowsのABIはWindowsで使うことを想定してるから、Linuxではネイティブじゃないってことだね。

互換性のためにO(n^2)の偶発的な複雑さでsscanf()を実装してるの?

ProtonやWineは、多くのNTシステムコールも実装してるから、Windowsプログラムがそれを直接使ってるのも理由だね。

Windows 11やSteamOSよりもハードウェアのテストみたいだね。すぐにドライバーの問題にぶつかったし。フレームレートも全体的にひどいし、あんまり良いハードウェアじゃないよ。

各テストで使ってるハードウェアは同じだよ。違うのはドライバーとOSだけ。Lenovoはこのデバイスの更新されたGPUドライバーを公式に出すのが遅かったけど、同じSoCは他のハンドヘルドでも使われてる。パフォーマンスについては、15Wのハンドヘルドが600WのPCや300Wのコンソールが数年前に苦労してたゲームをプレイしようとしてるからね。

私の経験から言うと、パフォーマンスのランキングはこんな感じかな:1. Proton + Wayland(Niri)でのLinux上のSteam 2. Proton + X11(Xfce)でのLinux上のSteam 3. Windows上のSteam 4. 他の手段で起動したLinux上のゲーム(特定のフラグや最適化を見逃してた可能性もあるけど、これは平均的な体験についての話)Linuxに切り替えたときに一番感じたのは、フレームレートの安定性が向上したこと。つまり、一時的にフレームレートが落ちることが少なくなった。ゲームがもっとしっかりして予測可能に感じた。X11/XfceからWayland/Niriに切り替えたときに感じた一番の違いは、フレームレートが全体的に上がったこと。これまで何度もこのジャンプに失敗してたから、今年の初めに成功してそのまま居続けたのは特筆すべきことだった。平均的にはゲームの起動が遅く感じるけど、Proton/Wine経由で起動してるから納得できるよね。

面白いことに、ネイティブのLinuxポートとWindows版の両方があるゲームで、Proton経由のWindows版の方がネイティブのLinux版よりも動作が良かったことがあった。Civ5、Civ6、Cities Skylines(1)ではこれが当てはまった。ただ、これらの限られた例ではパフォーマンスのランキングは同じにはならなかったけど、それは私の非ゲーミングハードウェアのせいだと思ってる。私はNvidia 3050のラップトップGPUでプレイしてるけど、Windowsの方がずっとパフォーマンスが良い。例えばCities Skylinesでは、Proton経由でLinuxだと約20fpsだけど(あなたが言った通り、安定してて大きなスパイクやドロップはない)、Windowsだと45〜60fpsが出る。人口が1.5万人くらいまではね。他のゲームも動作はするけど、パフォーマンスのせいで私にはプレイできない。Diablo 4はWindowsで中設定で問題なくプレイできるけど、Linuxでは低設定でも反応が鈍すぎる。とにかく、私の体験はこんな感じ。専用のゲーミングリグを持ってる人はLinuxでも全然大丈夫だろうけど、パワー不足のハードウェアを使ってる私たちは、残念ながらWindowsの方が良いみたい。

余談だけど、Niriは素晴らしいウィンドウマネージャーだよ。HNでPhoronixの記事を見て、オーバービューモードの追加について話してたから、思い切ってSwayから移行することにした。¹ 個人的には、Niriでフルスクリーンゲームや浮遊ウィンドウのハングアップが少なくなった気がするのは、X11がxwayland-satelliteで動いてるおかげかも。1: 一番難しかったのは、i3status-rsをサポートするバーを見つけることだった。CPUを食うGTKバーは好きじゃないから、i3bar-riverに落ち着いたよ。

WindowsゲームがSteamOS上でProtonを使うと速く動くんだから、開発者はSteamOSのAPIを優先してターゲットにすべきだよね。これでWindowsとの互換性を保ちながら、パフォーマンスを最大化できるし。UnityやUnrealみたいなゲームエンジンも、SteamOSを主要ターゲットにするべきだと思う。CIシステムも両方のプラットフォームをしっかりテストしないと。最適化のベースラインはWindowsじゃなくてSteamOSであるべきだよね。ValveはSteamOSのCI/CDファームを運営してるのかな?Rustを使ったテンプレートやライブラリがあって、これを使えば構造がしっかりしたプロジェクトをアップロードして、すべてのプラットフォーム用にビルドとテストができるようになるといいな。Rustは骨組みだけで、ゲームロジックはRustがリンクできるものであれば何でもいいんだ。

それはちょっと意味が分からないな。Windows APIが物事の動作の真実のソースだから。もしWindowsで動くゲームを作ってもProtonでは動かないなら、ValveはProtonをWindowsと同じように動くように修正するだろうけど、Protonで動くけどWindowsでは動かないゲームを作ったら、Protonのちょっとした特性に頼ることになるから、将来的にそれが保証されるわけじゃないし、他の何かがWindowsと同じように動く必要が出てきたら、ゲームが壊れちゃうよ。Steam Deckで動くかテストして、Protonで動かない機能は避けるべきだけど、基本的にはWindowsをターゲットにする必要があるよね。

Hacker Newsで議論の続きを見る