可変リフレッシュレート
可変リフレッシュレート (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 |
Xorg 設定
AMDGPU で有効化
Xorg 設定ファイルを使う
.conf ファイルに以下の行を追加してください:
Option "VariableRefresh" "true"
Xorg の設定について詳しくは AMDGPU のページを見てください。
xrandr を使って vrr_capable が 1 に設定されていることを確認してください:
$ 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" をチェックしてください。
Wayland 設定
GNOME
GNOMEで VRR を使用するには、mutter-vrrAUR と gnome-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 is a simple testing tool which should work for FreeSync and G-Sync. Install vrrtest-gitAUR or, manually install love package, clone repository, then run
$ love /path/to/cloned/repository
With VRR off, if the application's FPS is less than the monitor's native refresh rate then the bars will stutter a lot since frames are being skipped. With VRR active, the bars will always move smoothly across the screen since the screen's refresh rate will match the application's refresh rate. Even with VRR functional you may experience tearing in which case you can also enable the TearFree option for AMDGPU; with both enabled there should be neither stuttering nor tearing (what is the nvidia equivalent?).
If you are using a Nvidia GPU, you can test G-SYNC compatibility with gl-gsync-demoAUR. This program will allow you to test VRR and Vsync so you can observe resulting effects. See project's Readme for more information.
According to this page: "gl-gsync-demo is made with G-SYNC but that does not matter, it will test AMD adaptive sync just fine". However, it may still not work as expected for FreeSync testing.
Freesync の範囲を変更する
Freesync モニターは基本的に VRR の範囲を制限しており、最大リフレッシュレートよりもずっと低くなっています。モニターをオーバークロックして Freesync の範囲を変更することが可能です。
EDID ファイルの編集
External Display Identification Data (EDID) はモニターに関するドライバーの情報を保存しています。デフォルトでは、このファイルはモニターによって送信され接続時に読み込まれます。read-edid や nvidia-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
ヒントとテクニック
アプリケーションをブラックリストから削除
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 の範囲を変更するを参照。