Gamescope
Gamescope は、Steam Deck で使用される Valve が開発したマイクロコンポジタです。その目的は、ゲームに特化した分離型コンポジターを提供することであり、以下のようなゲーム中心の機能を数多くサポートしている:
- 解像度のなりすまし
- AMD FidelityFX™ Super Resolution や NVIDIA Image Scaling を使ったアップスケーリング
- フレームレートの制限
マイクロコンポジタとして、既存のデスクトップ環境の上にネストされたセッションとして実行するよう設計されていますが、埋め込みコンポジタとしても使用することができます。
現在、Wayland クライアントのネイティブサポートはありません [1]。Wayland セッションでは、XWayland を使用します。
目次
インストール
Gamescope は、gamescope パッケージ(または gamescope-gitAUR パッケージ)でインストールできます。さらに、メインラインビルドには含まれていない追加のパッチが含まれた gamescope-plusAUR もあります。
要件
- AMD:Mesa 20.3 以上
- Intel:Mesa 21.2 以上
- NVIDIA:プロプライエタリドライバー 515.43.04 以上、および
nvidia-drm.modeset=1
カーネルパラメータ
使用方法
Gamescope には多くのオプションがありますが、ここではすべてをカバーすることはできません。完全なリストを表示するには、ターミナルから gamescope --help
コマンドを使用してください。
デスクトップセッションから
以下のコマンドは、Gamescope を使用して supertuxkart を実行し、1920x1080 の解像度で 60 FPS を強制します。
$ gamescope -W 1920 -H 1080 -r 60 -- supertuxkart
Steamから
以下のコマンドを使用して、Steam を Big Picture Mode で Gamescope を使用して実行することができます。
$ gamescope -e -- steam -gamepadui
また、Steam から Gamescope を使用してゲームを実行するには、ゲームの起動オプションに以下を追加します。
gamescope -- %command%
gamescope -W 1920 -H 1080 -r 60 -- %command%
Wineから
Wine を介して Gamescope を使用してプログラムを実行するには、wine に続けて実行可能ファイルを指定してください。
$ gamescope -W 1920 -H 1080 -r 60 -- wine supertuxkart
ほとんどの人気のある Wine マネージャー(Lutris、Bottles、PlayOnLinux)は Gamescope をサポートしています。これらを使用するのは、必要な Gamescope パッケージをインストールし、「Gamescope を使用する」(または同様の)オプションをチェックするだけです。
Through Flatpak
Flatpak 版の Wine マネージャーや Steam からも、パッケージインストールと同じ方法で Gamescope を使用できます。ただし、まず以下のコマンドで Flathub から Gamescope をインストールする必要があります。
$ flatpak install gamescope
アップスケーリング
-U
フラグと -Y
フラグを使用して、AMD FidelityFX™ Super Resolution(FSR)または NVIDIA Image Scaling(NIS)を使用してゲームをアップスケールすることができます。また、-i
を使用して整数アップスケーリングを行うこともできます。
720p のゲームを FSR を使用して 1440p にアップスケーリングするには:
$ gamescope -h 720 -H 1440 -U -- supertuxkart
1080p の内部解像度でゲームを実行し、NIS を使用して 4K に表示するには:
$ gamescope -w 1920 -h 1080 -W 3840 -H 2160 -Y -- supertuxkart
HDR サポート
Gamescope は、ゲームの HDR10 サポートを有効にするために必要です。この機能を利用するには、--hdr-enabled
フラグを使用して Gamescope セッションを起動する必要があります。
Wayland サポート
Gamescope はデフォルトでは Wayland クライアントをサポートしていません。Wayland クライアントのサポートを有効にするには、Gamescope のパラメータに --expose-wayland
フラグを追加してください。
SDR ガマットの広さ
SteamOS 3.5.5 以降、Valve は Steam Deck の LCD 用のデフォルトの色レンダリングを変更しました。この効果は、SDR コンテンツのガマットの「広さ」を変更することによって Gamescope で実現され、調整によってはより暖かく鮮やかな色の見え方になります。
Steam のゲームの起動オプションに、--sdr-gamut-wideness
とその後に 0 から 1 の範囲の値を追加します:
gamescope --sdr-gamut-wideness 1 -- %command%
Mangoapp
従来の MangoHud を gamescope で使用することは サポートされていません。代わりに gamescope 引数 --mangoapp
を使用する必要があります。これにより、MangoHud は基礎となるアプリケーションの代わりに gamescope 上で動作します。FSR や HDR のステータスを表示するなど、特定の MangoHud 設定には、gamescope で mangoapp を使用する必要があります。
可変リフレッシュレート
モニターが対応している場合、--adaptive-sync
フラグを渡して可変リフレッシュレートを有効にします。
トラブルシューティング
フルスクリーンへの切り替えが低性能を引き起こす
これは、Gamescope のフルスクリーンホットキー Meta+f
を使用するときの既知のバグです。この問題に遭遇した場合、ゲームを起動するときにフルスクリーンフラグ -f
を使用することで回避できます。
Gamescope の優先度を設定する
低性能やスタッタリングのもう一つの既知の原因は、Gamescope の優先度が正しく設定されていないことです。Gamescope が実行されている間に、ターミナルで CAP_SYS_NICE
に関するエラーが表示される場合、これが原因だとわかります。次のコマンドで修正できます:
# setcap 'CAP_SYS_NICE=eip' $(which gamescope)
NVIDIA 上の Flatpak でウィンドウが表示されない
これは、Flatpak Gamescope が NVIDIA DRM の GBM バックエンドにアクセスできないためです。以下のコマンドを使用して環境変数を設定することで解決できます:
$ flatpak override --env=GBM_BACKENDS_PATH=/usr/lib/x86_64-linux-gnu/GL/nvidia-XXX-YY-ZZ/extra/gbm packageid
ここで、packageid
は Gamescope の Flatpak パッケージ識別子 または Gamescope を使用したいアプリ(例えば Bottles)の識別子です。nvidia-XXX-YY-ZZ
を、現在インストールされている NVIDIA ドライバーのバージョンに置き換えます。Flatpak 内でバージョンを確認するには、次のコマンドを使用します:
$ flatpak run --command=ls packageid /usr/lib/x86_64-linux-gnu/GL
ここで、packageid
は任意の Flatpak パッケージ識別子です。このディレクトリは Flatpak 内でのみ存在することに注意してください。
Intel グラフィックスでの画像破損
Intel グラフィックスで Gamescope が破損した色の画像を出力する場合、損失なしの色圧縮を無効にすると、メモリ帯域幅の増加を代償に回避できます。[2] これを無効にするには、INTEL_DEBUG=noccs
環境変数を渡してください。
HDR 有効時に VRR がカクつく
VRR と HDR が独立して動作する場合でも、両方が有効になっているとフレームレートが不安定になる場合は、HDR のコンポジット時間が長いために問題が発生している可能性があります。詳細は https://github.com/ValveSoftware/gamescope/issues/1006 を参照してください。これは、埋め込みモードで Gamescope を使用している場合にのみ適用され、既存の Wayland または X セッション内で Gamescope を使用している場合には適用されません。
AMD グラフィックスを使用している場合は、ハードウェアプレーンを使用して最終画像を合成する実験的な AMD カラーマネジメントを使用することで、この問題を解決できます。これには、次のいずれかのセットアップが必要です:
Steam Deck カーネル
- Steam Deck Linux カーネル linux-neptune-65AUR または Steam Deck カラーマネジメントパッチ が適用されたカーネル
- gamescope または gamescope-gitAUR
実験的な AMD カラーマネジメントを有効にした Linux カーネル
Linux 6.8 以降で、KCFLAGS
に -DAMD_PRIVATE_COLOR
を含むようにコンパイルされたもの、例えば linux-amd-colorAUR
高ポーリングレートのマウスが原因のカクつき
高ポーリングレートのマウス(4000Hz で観測された)をゲームウィンドウ内で動かすと、カクつきや一時的なフリーズが発生する場合があります。[3] 1000Hz のような低いポーリングレートを設定することで、この問題を回避できる場合があります。
古い AMD GPU での Wayland 上でのクラッシュ
Gamescope 3.14.3 は、Wayland セッションのパフォーマンスを向上させるために Wayland バックエンド を導入しました。ただし、これは現在、古い AMD GPU では動作しません。issue #1218 を上流で追跡してください。
Gamescope の起動時に、次のようなメッセージでクラッシュします:
gamescope: types/wlr_linux_dmabuf_v1.c:526: feedback_compile: Assertion `table_len > 0' failed.
これを回避するには、クラシックな SDL2 バックエンドを --backend
オプションで強制します:
$ gamescope --backend sdl -- game
スワップチェーンエラー
スワップチェーンエラーの一般的な原因は、mangoapp の代わりに誤って mangohud を使用しようとすることです。上記の#使用方法の Mangoapp セクションを参照してください。
Steam から gamescope を起動し、約 24 分後にカクつく
Steam から gamescope を起動した後、約 24 分後に大きなカクつきが発生する場合、Steam オーバーレイを有効にするか -e
オプションを使用するか、または環境変数 LD_PRELOAD
を異なる値に置き換えることで、この問題を修正できます。例えば次のようにします:
$ LD_PRELOAD="" gamescope -- %command%
詳細は issue #163 を参照してください。