可變刷新率 - Arch Linux 中文维基

跳至內容

# 可變刷新率

出自 Arch Linux 中文维基

相關文章

- Xrandr
- Xorg
- AMDGPU
- NVIDIA
- Sway

可變刷新率 (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-0，HDMI-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-vrrAUR 和 gnome-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-edid包 或 nvidia-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 範圍。

分類：​

- 存在語法高亮錯誤的頁面
- 圖形
- X 伺服器
- 遊戲
- 使用「模板:過時」標記的頁面或章節

可變刷新率
新增話題