可変リフレッシュレート

提供: ArchWiki
ナビゲーションに移動 検索に移動

関連記事

可変リフレッシュレート (Variable refresh rate, VRR) は adaptive sync とも呼ばれ、モニターが信号出力のリフレッシュレートを調整することを可能とします。垂直同期の欠点を気にすることなくゲームにおいて画面のちらつき (別名スタッタリング) を排除することができます。VRR についての詳しい解説は PC Gaming Wiki を見てください。

概要

VRR の実装は複数存在します:

  • FreeSync は VESA の VRR 標準の AMD による実装で、よく言い換えられることがあります。FreeSync ブランドのモニターは全ての VESA 準拠のドライバーと互換性があります。
  • Gsync は VRR の NVIDIA によるプロプライエタリなハードウェア・ソフトウェア実装です。
  • Intel は第10世代の GPU で VESA の標準を実装する予定です [1]

VRR の互換性と実装

ドライバー VESA Gsync
AMDGPU FreeSync No
Intel 予定 No
Nouveau 未対応 未対応
NVIDIA Gsync 準拠 Gsync
ノート: 10 シリーズ以前の Nvidia 製 GPU は "Gsync Compatible" のモニターに対応していません。

Xorg 設定

AMDGPU で有効化

Xorg 設定ファイルを使う

.conf ファイルに以下の行を追加してください:

Option "VariableRefresh" "true"

Xorg の設定について詳しくは AMDGPU のページを見てください。

xrandr を使って vrr_capable1 に設定されていることを確認してください:

$ xrandr --props
vrr_capable: 1
        range: (0, 1)

NVIDIA で有効化

nvidia-settings を使う

Gsync モニターは自動的に有効化されます。Gsync compatible モニターを有効化するには以下を実行してください:

  • nvidia-settings で "X Server Display Configuration" ページを開いて、Advanced ボタンの下に "Allow G-SYNC on monitor not validated as G-SYNC Compatible" オプションがあるので、クリックして有効にしてください。
  • それから、OpenGL 設定の "Allow Gsync/Gsync Compatible" をチェックしてください。
ヒント: 同じメニューの "show Gsync indicator" オプションをチェックすることで、Gsync が機能していることが右上に表示されます。

Wayland 設定

GNOME

警告: GNOME の VRR パッチはまだ開発中であり、誤動作する場合やクラッシュを引き起こす可能性があります。

GNOMEで VRR を使用するには、mutter-vrrAURgnome-control-center-vrrAUR をインストールします。VRR は、ディスプレイ設定でサポートされている各モニターで有効にする必要があります。サポートされ、有効化されたモニターで実行している場合、GNOME は全画面のアプリケーションで自動的に VRR を有効にします。

KDE

KDE Wayland は、全画面のアプリケーションで自動的に VRR を有効にするはずです [2]

Sway

Sway は可変リフレッシュレートをサポートしています。すべての出力に対してそれを有効にするためには、Sway の設定に以下を追加するか、出力ごとの設定で適用できます:

output * adaptive_sync on

swaymsg でディスプレイがアダプティブ同期をサポートしているかどうかを確認できます:

$ swaymsg -t get_outputs
Output DP-1 'Display Name'
  Adaptive sync: enabled

テスト

VRRTest は FreeSync と G-Sync の両方で動作するシンプルなテストツールです。vrrtest-gitAUR をインストールするか、手動で love パッケージをインストールし、リポジトリをクローンしてください。

$ love /path/to/cloned/repository

VRR がオフの場合、アプリケーションの FPS がモニターのネイティブリフレッシュレートより低いと、フレームがスキップされるためバーが非常に頻繁にスタッタリングします。VRR がアクティブな場合、画面のリフレッシュレートがアプリケーションのリフレッシュレートと一致するため、バーは常にスムーズに画面上を移動します。VRR が機能していても、画面が裂ける場合があります。その場合は、AMDGPU 用のTearFree オプションも有効にできます。両方が有効な場合、スタッタリングや裂け目はないはずです(nvidia の同等のものは?)。

Nvidia GPU を使用している場合、gl-gsync-demoAUR で G-SYNC の互換性をテストできます。このプログラムを使用すると、VRR と Vsync をテストして、結果として得られる効果を観察できます。詳細は、プロジェクトの Readme を参照してください。

この ページによれば:"gl-gsync-demo は G-SYNC 用に作られていますが、それは関係ありません。AMD のアダプティブ同期をちゃんとテストします。" しかし、FreeSync のテストとしては、期待通りに動作しない場合があります。

Freesync の範囲を変更する

Freesync モニターは基本的に VRR の範囲を制限しており、最大リフレッシュレートよりもずっと低くなっています。モニターをオーバークロックして Freesync の範囲を変更することが可能です。

警告: モニターをオーバークロックすると過度に発熱して故障する可能性があります。自己責任で実行してください。

EDID ファイルの編集

External Display Identification Data (EDID) はモニターに関するドライバーの情報を保存しています。デフォルトでは、このファイルはモニターによって送信され接続時に読み込まれます。read-edidnvidia-settings などを使ってファイルを抽出してください。

wxedidAUR でファイルを編集することができます。

Windows で freesync の範囲を変更するガイドにしたがって編集してください: [3][4]

Linux でオーバークロックする手順はこちら: [5]

Xorg の .conf ファイルを作成して編集したカスタム EDID ファイルのパスを追加してください。モニターに関する情報を確認する方法は xrandr を見てください。

/etc/X11/xorg.conf.d/10-monitor.conf
Section "Screen"
    Identifier "Screen0"
    Device "nvidia" # e.g. Radeon, nvidia
    Monitor "DP1"
    Option “CustomEDID” “MONITOR:/home/USER/Desktop/modified-edid.bin”
EndSection
ノート: “MONITOR” は適切なディスプレイ ID に置き換えてください。xrandr -query コマンドでディスプレイ ID を取得できます。

ヒントとテクニック

アプリケーションをブラックリストから削除

Mesa は予期しない挙動を避けるためにブラックリストに含まれるアプリケーションのリストを備えています。ブラックリストは以下のファイルで編集できます:

/usr/share/drirc.d/00-mesa-defaults.conf

制限

  • Gsync の場合、モニターは display port で接続する必要があります。Freesync の場合、モニターが HDMI 2.1 に対応していれば display port である必要はありません。
  • Gsync や Freesync が使えるモニターは一度にひとつだけです。
  • OpenGl/Vulkan プログラムを起動する前に一部のコンポジタは無効化する必要があります。
  • Mesa のブラックリストには動画プレイヤーなど様々なアプリケーションが含まれています。
  • 高リフレッシュレートでちらつきは抑えられますが、大抵の Freesync モニターでは最大リフレッシュレートが 90Hz までとなっています。#Freesync の範囲を変更するを参照。