コンテンツにスキップ

Gamescope

提供: ArchWiki
印刷用ページはサポート対象外です。表示エラーが発生する可能性があります。ブラウザーのブックマークを更新し、印刷にはブラウザーの印刷機能を使用してください。

Gamescope は、Steam Deck で使用される Valve が開発したマイクロコンポジタです。その目的は、ゲームに特化した分離型コンポジターを提供することであり、以下のようなゲーム中心の機能を数多くサポートしている:

  • 解像度のなりすまし
  • AMD FidelityFX™ Super Resolution や NVIDIA Image Scaling を使ったアップスケーリング
  • フレームレートの制限

マイクロコンポジタとして、既存のデスクトップ環境の上にネストされたセッションとして実行するよう設計されていますが、埋め込みコンポジタとしても使用することができます。

インストール

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 コマンドを使用してください。

ディスプレイマネージャから

Steam#ディスプレイマネージャを使わない Big Picture モード を参照。

デスクトップセッションから

以下のコマンドは、Gamescope を使用して supertuxkart を実行し、1920x1080 の解像度で 60 FPS を強制します。

$ gamescope -W 1920 -H 1080 -r 60 -- supertuxkart

Steamから

以下のコマンドを使用して、Steam を Big Picture Mode で Gamescope を使用して実行することができます。

$ gamescope -e -- steam -gamepadui
ノート -e フラグは、Gamescope で Steam Integration を有効にするためのものです。

また、Steam から Gamescope を使用してゲームを実行するには、ゲームの起動オプションに以下を追加します。

gamescope -- %command%
ノート Steam から起動する場合でも、解像度や FPS などのフラグを設定する必要があります。それ以外の場合、Gamescope は正しくない解像度で起動します。ターミナルと同じ方法でこれを行うことができます。例えば
gamescope -W 1920 -H 1080 -r 60 -- %command%

Wineから

Wine を介して Gamescope を使用してプログラムを実行するには、wine に続けて実行可能ファイルを指定してください。

$ gamescope -W 1920 -H 1080 -r 60 -- wine supertuxkart

ほとんどの人気のある Wine マネージャー(LutrisBottlesPlayOnLinux)は Gamescope をサポートしています。これらを使用するのは、必要な Gamescope パッケージをインストールし、「Gamescope を使用する」(または同様の)オプションをチェックするだけです。

ノート Wine マネージャーは、基本的な Gamescope オプションを設定する GUI インターフェースを持つことが多いため、一般的には 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 セッションを起動する必要があります。

ノート Linux での HDR サポートはまだ始まったばかりで、多くの注意点があります。詳細については HDR モニターのサポート を参照してください。

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 は PipeWire に動画ノードを公開します。 GStreamer を用いて録画できます:

$ gst-launch-1.0 --eos-on-shutdown pipewiresrc do-timestamp=true target-object=gamescope ! vaapih264enc ! h264parse ! mux. pulsesrc do-timestamp=true device="Recording_$(pactl get-default-sink).monitor" ! opusenc ! mux. matroskamux name=mux ! filesink location=recording.mkv

トラブルシューティング

カーソルが正しく動作しない

アプリケーションがカーソルを正しく捕捉しない場合(カメラの動きが制限される、メニュー外でカーソルが消えないなど)、 --force-grab-cursor オプションを使用してください。 一部の Proton/Wine ゲームではこの回避策が必要になります。

フルスクリーンへの切り替えが低性能を引き起こす

これは、Gamescope のフルスクリーンホットキー Meta+f を使用するときの既知のバグです。この問題に遭遇した場合、ゲームを起動するときにフルスクリーンフラグ -f を使用することで回避できます。

Gamescope の優先度を設定する

低性能やスタッタリングのもう一つの既知の原因は、Gamescope の優先度が正しく設定されていないことです。Gamescope が実行されている間に、ターミナルで CAP_SYS_NICE に関するエラーが表示される場合、これが原因だとわかります。次のコマンドで修正できます:

# setcap 'CAP_SYS_NICE=eip' $(which gamescope)
警告 このコマンドを使用すると、いくつかの Vulkan 環境変数が無視される原因になります。例えば、MESA_VK_DEVICE_SELECT を設定して Gamescope に使用する GPU を指定した場合などです。こちら を参照してください。この制限を回避するためには、ananicy-gitAUR などを使用することができます。

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 内でのみ存在することに注意してください。

ノート
この記事またはセクションは加筆を必要としています。
理由: このステップは、pacman フック によって自動化される可能性があります。 (議論: トーク:Gamescope#)

このコマンドは、ドライバーの更新ごとに再実行し、適宜修正する必要があります。

Intel グラフィックスでの画像破損

Intel グラフィックスで Gamescope が破損した色の画像を出力する場合、損失なしの色圧縮を無効にすると、メモリ帯域幅の増加を代償に回避できます。[1] これを無効にするには、INTEL_DEBUG=noccs 環境変数を渡してください。

HDR 有効時に VRR がカクつく

VRR と HDR が独立して動作する場合でも、両方が有効になっているとフレームレートが不安定になる場合は、HDR のコンポジット時間が長いために問題が発生している可能性があります。詳細は https://github.com/ValveSoftware/gamescope/issues/1006 を参照してください。これは、埋め込みモードで Gamescope を使用している場合にのみ適用され、既存の Wayland または X セッション内で Gamescope を使用している場合には適用されません。

AMD グラフィックスを使用している場合は、ハードウェアプレーンを使用して最終画像を合成する実験的な AMD カラーマネジメントを使用することで、この問題を解決できます。これには、次のいずれかのセットアップが必要です:

Steam Deck カーネル

実験的な AMD カラーマネジメントを有効にした Linux カーネル

Linux 6.8 以降で、KCFLAGS-DAMD_PRIVATE_COLOR を含むようにコンパイルされたもの、例えば linux-amd-colorAUR

高ポーリングレートのマウスが原因のカクつき

高ポーリングレートのマウス(4000Hz で観測された)をゲームウィンドウ内で動かすと、カクつきや一時的なフリーズが発生する場合があります。[2] 1000Hz のような低いポーリングレートを設定することで、この問題を回避できる場合があります。

スワップチェーンエラー

スワップチェーンエラーの一般的な原因は、mangoapp の代わりに誤って mangohud を使用しようとすることです。上記の#使用方法の Mangoapp セクションを参照してください。

Steam から gamescope を起動し、約 24 分後にカクつく

Steam から Gamescope を起動した場合、約 24 分後にスタッタリングが発生する既知の不具合があります。 次のいずれかで解決できます:

  • Steam Overlay を有効化する(-e オプション)
  • 環境変数 LD_PRELOAD を空にして実行する:
$ LD_PRELOAD="" gamescope -- %command%

ただし、この方法では Steam Overlay と録画機能が無効になります。 一部のゲームでは LD_PRELOAD を gamescope ではなく直接ゲームに渡すことで回避できます。例:

$ gamescope -- env LD_PRELOAD="$LD_PRELOAD" %command%

二次ランチャーを含まないゲームではこの方法が有効です。 詳細は issue #163 を参照。

ネイティブゲームが起動時にクラッシュする

報告 によると、一部のネイティブゲームは設定で「専用フルスクリーン」を選択する必要があります。

参照

翻訳ステータス: このページは en:Gamescope の翻訳バージョンです。最後の翻訳日は 2024-09-08 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。