可變刷新率

出自 Arch Linux 中文维基


可變刷新率 (VRR),也被叫做自適應同步,該技術允許顯示器根據輸出信號來調整它的刷新率。這可以讓用戶在玩遊戲時消除屏幕撕裂,同時減少 Vsync 的常見缺點(例如卡頓)。要全面了解 VRR,請參閱 PC Gaming Wiki

概述[編輯 | 編輯原始碼]

本文內容或本節內容已經過期。

原因: 這部分內容需要更新以適應最新的 Intel GPU。 (在Talk:可變刷新率討論)

VRR的具體實現有很多種:

  • FreeSync 是 AMD 對 VESA's VRR 的標準實現, 這些詞語經常會替換使用。FreeSync 品牌顯示器被要求和所有 VESA 兼容驅動程序兼容。
  • G-SYNC 是 NVIDIA 在 VRR 方面的專有硬體和軟體實現方案。
  • Intel 計劃在他們即將推出的 11 代處理器上 和 獨立顯卡上 實現 VESA 的標準。

出於設置目的,有必要區分許可 Nvidia 自有晶片的「原生」G-SYNC 顯示器和「G-SYNC 兼容」顯示器,即支持 G-SYNC 功能子集的 FreeSync 顯示器。 [1] 在 G-SYNC Compatible 顯示器類別中,顯示器可能經過驗證,也可能未經過NVIDIA驗證。 [2] -sync-compatible-validation/ 即使 VRR 顯示器沒有通過 NVIDIA 的驗證(因此在營銷材料中不會被稱為 G-SYNC Compatible),您仍然可以將它與 G-SYNC 一起使用。

VRR 兼容性和相關實現

Driver VESA G-SYNC
AMDGPU FreeSync
Intel Planned
Nouveau
NVIDIA G-SYNC Compatible G-SYNC
注意: 早於 10 系列的 Nvidia GPU 不支持 G-SYNC Compatible 顯示器。

Xorg 配置[編輯 | 編輯原始碼]

在 AMDGPU 上啟用[編輯 | 編輯原始碼]

FreeSync 只能在 支持FreeSync的顯示器 以及您的 支持FreeSync的顯卡上運行。

如果您使用的是筆記本電腦,則可以檢查您的 筆記本電腦是否與 FreeSync 兼容

使用 Xorg 配置文件[編輯 | 編輯原始碼]

在你的 AMDGPU .conf 文件中的 Section "Device" 區塊中添加一行:

Option "VariableRefresh" "true"

使用xrandr驗證 vrr_capable 項是否被設置為 1:

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

xrandr 會顯示所有視頻輸出埠的屬性; 確保查看的是實際連接到顯示器的那個 - 其他的顯示器輸出會列印 vrr_capable: 0。

在 NVIDIA 上啟用[編輯 | 編輯原始碼]

使用 Xorg 配置文件[編輯 | 編輯原始碼]

這篇文章的某些內容需要擴充。

原因: 本節需要信息。 (在 Talk:可變刷新率 中討論)

使用 nvidia-settings[編輯 | 編輯原始碼]

「原生」G-SYNC 和經過驗證的 G-SYNC 兼容顯示器會自動啟用 VRR。 要檢查顯示器的狀態,可以打開 nvidia-settings 並導航到您的 GPU(例如GPU 0),在其下每個活動顯示器都有一個節點(例如DP-0HDMI-0)。 在每個監視器幀中,G-SYNC Mode Available表示 G-SYNC 的支持狀態,可以參考:-2.x/ctkdisplaydevice.c#L872-L905 [3]

  • G-SYNC, 表明這是一個「原生」G-SYNC 顯示器。 默認情況下啟用完整的 G-SYNC 支持。
  • G-SYNC Compatible, 表明這是經過驗證的 G-SYNC Compatible 顯示器。 默認啟用 G-SYNC 支持。
  • G-SYNC Unvalidated, 表示這是未經驗證的 G-SYNC Compatible 顯示器。 默認情況下不啟用 G-SYNC 支持。[4]
  • None, 說明這個顯示器完全不支持G-SYNC。請注意,有些 FreeSync VRR 顯示器也完全不兼容 G-SYNC。[5]

如果您有未經驗證的 G-SYNC Compatible 顯示器,您可以覆蓋 NVIDIA 的默認值並使用它啟用 VRR:

  • 在軟體 nvidia-settings 中找到 "X Server Display Configuration" 頁, 然後勾選高級按鈕下的允許在未驗證為 G-SYNC 兼容的顯示器上使用 G-SYNC選項,單擊應用
  • 然後,在 OpenGL 設置下,選中「允許 G-SYNC/G-SYNC 兼容」。
注意: 如果顯示器確實未通過 NVIDIA 的 G-SYNC 兼容認證,則可能會出現圖像質量差、閃爍或由於刷新率範圍有限而無法激活 VRR 等體驗問題。[6]
提示:在同一菜單中,您可以選中「顯示 G-SYNC 指示器」選項以啟用在右上角顯示 G-SYNC 是否正在工作的指示器。

Wayland配置[編輯 | 編輯原始碼]

GNOME[編輯 | 編輯原始碼]

警告: GNOME 的 VRR 補丁仍在 開發中,可能會出現錯誤或導致崩潰。

需要安裝 mutter-vrrAURgnome-control-center-vrrAUR 才可以在 GNOME 中使用 VRR。需要在「顯示設置」中為每個支持的顯示器啟用 VRR。 在支持和啟用的顯示器上運行時,GNOME 會自動為所有全屏應用程式啟用 VRR。

在最新的 GNOME 46 版本中,只需運行

gsettings set org.gnome.mutter experimental-features "['variable-refresh-rate']"

即可在 GNOME 的 Wayland 會話下使用實驗性質的VRR。

KDE[編輯 | 編輯原始碼]

KDE Wayland 會為全屏應用程式自動啟用 VRR [7]

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 啟用 無撕裂渲染 選項;兩者都啟用時,應該既沒有口吃也沒有撕裂(nvidia顯卡這樣的功能在哪裡呢?)。

如果您使用的是 Nvidia GPU,您可以使用 gl-gsync-demoAUR 測試 G-SYNC 兼容性。 該程序將允許您測試 VRR 和 Vsync,以便您可以觀察產生的效果。 有關詳細信息,請參閱項目的 自述文件

根據 這個頁面:「gl-gsync-demo 是使用 G-SYNC 製作的,但這並不重要,它將很好地測試 AMD 自適應同步」。 但是,對於 FreeSync 測試,它可能仍無法按預期工作。

修改 FreeSync 顯示器的 VRR 範圍[編輯 | 編輯原始碼]

Freesync 顯示器的 VRR 範圍通常有限,遠低於其最大刷新率。可以對顯示器進行超頻以更改 Freesync 範圍。

警告: 對顯示器進行超頻可能會導致顯示器過熱並可能造成硬體損壞。

編輯 EDID 文件[編輯 | 編輯原始碼]

外部顯示器識別數據 (EDID) 保存了顯示器相關的驅動程序信息。默認情況下,EDID在接上顯示器/開機啟動時由顯卡驅動從顯示器讀取到系統。可以使用 read-edidnvidia-settings 之類的軟體來提取EDID。然後安裝 wxedidAUR 來編輯 EDID。

這篇文章的某些內容需要擴充。

原因: 本部分需要使用 freesync 顯示器的用戶進行驗證,請考慮參與貢獻。 (在 Talk:可變刷新率 中討論)

您可以遵循更改 Windows 上的 freesync 範圍的人員指南之一:[8]-hack-expands-refresh-rate-range/

在 Linux 上超頻的過程(僅適用於 NVidia GPU):[9]

為您的顯示器創建一個 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

限制[編輯 | 編輯原始碼]

  • Wayland 從 KDE 5.22(任何兼容的 GPU)和 Sway(非 Nvidia)開始支持 [10] .freedesktop.org/wayland/wayland/issues/84。GNOME Wayland 還沒有支持 [11]
  • 顯示器必須通過 DisplayPort(DP口)與電腦顯卡連接。一些實現(部分)HDMI 2.1 規範的顯示器也支持 HDMI 上的 VRR。這篇文章 列舉了支持的 Nvidia 驅動程序並且在 5.13及之後版本的內核 和 AMD 驅動程序(pre HDMI 2.1)中得到支持 [12]
  • 如果您想在 X11 上使用 G-SYNC 和可能的 Freesync,則只需連接 G-SYNC/Freesync 顯示器。
    • 在 X11 上,多個顯示器接入同一個 X 顯示伺服器中會破壞 G-SYNC/Freesync,不過這個問題在 Wayland 上不存在。
    • 設置為主顯示器鏡像的輔助顯示器不會破壞主顯示器上的 G-SYNC/Freesync。
    • 在 X11 上,如果您想使用多個顯示器並仍然使用 G-SYNC/Freesync,您可以創建一個新的 X 顯示伺服器,它只連接 G-SYNC/Freesync 顯示器並在那裡運行遊戲。
  • 很可能需要在啟動 OpenGl/Vulkan 程序之前禁用合成器(在 Wayland 上禁用合成器是不相關的或沒有必要的 [13])。
  • 在 X11 上,Mesa 黑名單 中包括視頻播放器在內的應用程式不能開啟G-SYNC/Freesync。
  • 雖然撕裂在較高刷新率下不太明顯,但 FreeSync 顯示器的 90Hz VRR 範圍通常有限,這可能遠低於其最大刷新率。請參閱修改 FreeSync 顯示器的 VRR 範圍