HDR 顯示器支持 - Arch Linux 中文维基

跳至內容

# HDR 顯示器支持

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 HDR monitor support，最近一次同步於 2025-07-30，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

相關文章

- Steam
- 遊戲
- Gamescope

HDR 支持已合併到 Wayland 協議中，部分混成器已實現該功能。而 Xorg 沒有支持 HDR 的計劃。

## 要求

- 支持 HDR 的顯示器。儘管現在有許多宣稱支持 HDR 的顯示器，但採用邊緣照明局部調光（edge-lit local dimming）的設備提供的 HDR 體驗可能無法令人滿意。更多信息請參閱 Local Dimming on TVs。
- 支持 HDR 的顯卡驅動：已確認 AMDGPU 和 NVIDIA（550.54.14 及以後的版本）可正常工作。
  - NVIDIA 565.57.01 之前的版本存在一個可能導致 HDR 模式下色彩表現不正確或偏淡的 bug。[1]
  - Intel 圖形處理器自內核版本 5.12 起為第 9 代及更新的核顯提供實驗性的 HDR 支持[2]，但據報告其實現不完整。
- 兼容的混成器，參見 #混成器。
- 兼容的應用程式，參見 #應用程式
- 支持 HDR 的 Vulkan WSI（窗口系統集成），參見 #Vulkan HDR WSI。

## 配置

### Vulkan HDR WSI

對於 NVIDIA 和版本 25 之前的 mesa包，需要安裝 vk-hdr-layer-kwin6-gitAUR 才能支持 `VK_EXT_swapchain_colorspace` 和 `VK_EXT_hdr_metadata` 這兩個 Vulkan 擴展 [3] [4]。沒有這兩個擴展則無法通過 Vulkan API 使用 HDR。

通過設置 `ENABLE_HDR_WSI=1` 來啟用 Wayland 下的 Vulkan HDR WSI。不建議全局啟用，應分別為每個需要使用 HDR 的遊戲或其它應用程式啟用。

### 混成器

#### KWin (KDE Plasma)

參見 KDE#HDR。

#### Hyprland

首先確保 hyprland包 的版本 ≥ 0.47.0 並配置 `xx_color_management_v4` 變量為 true。

##### Monitor v1

在 Hyprland 配置文件中對應顯示器的配置行末尾追加：`, bitdepth, 10, cm, hdr`

注意：Monitor v2 是通過「monitorv2」聲明的，Monitor v1 則直接通過「monitor」聲明。

##### Monitor v2

在對應顯示器的配置中添加以下內容：

       supports_wide_color = 1
       supports_hdr = 1

更多設置請參閱 Hyprland Wiki。

更多信息可在 Hyprland 實驗性功能文檔和 Hyprland 顯示器文檔中找到。

#### GNOME

首先確保 mutter包 的版本 ≥ 48.0。

在 GNOME 的顯示設置中啟用 HDR。每個顯示器都有 單獨的 HDR 開關，在解析度和刷新率設置旁。

注意：在 GNOME 中使用 Gamescope HDR 時會出現「褪色」現象，因為 GNOME 缺少對 scRGB 和 `frog-color-management-v1` 協議的支持 [5] [6]。參見 #使用 Gamescope

#### Steam 的 Gamescope 會話

Valve 的混成器 Gamescope 提供了實驗性 HDR 支持。按以下步驟可嘗試在 Gamescope 環境中運行 Steam 客戶端：

提示：建議使用 AMDGPU 顯卡驅動運行 Gamescope⸺已知 NVIDIA 驅動存在嚴重問題。

- 安裝 gamescope包 和 gamescope-session-steam-gitAUR。
- 可創建可選配置文件 `~/.config/environment.d/gamescope-session.conf`，內容如下：

      if [ "$XDG_SESSION_DESKTOP" = "gamescope" ] ; then
          SCREEN_WIDTH=1920       # 屏幕宽度
          SCREEN_HEIGHT=1080      # 屏幕高度
          CONNECTOR=*,eDP-1       # 显示接口
          CLIENTCMD="steam -gamepadui -pipewire-dmabuf"  # 客户端启动命令
          GAMESCOPECMD="/usr/bin/gamescope --hdr-enabled --hdr-itm-enable \
          --hide-cursor-delay 3000 --fade-out-duration 200 --xwayland-count 2 \
          -W $SCREEN_WIDTH -H $SCREEN_HEIGHT -O $CONNECTOR"  # Gamescope 启动参数
      fi

  - 需將解析度數值設置為實際值（可通過 `xrandr --query` 命令查詢顯示設備參數）。
  - 若未自動識別顯示接口，需手動設置 `CONNECTOR` 參數。

現在可通過以下任一方式啟動 Gamescope：

##### 通過顯示管理器

登出，在顯示管理器中選擇「Steam Big Picture」登錄。

##### 通過控制台

1. 按下 `Ctrl+Alt+Fx` 進入一個新的 TTY。
2. 登錄後執行 `gamescope-session-plus steam` 在 Gamescope 中啟動 Steam 獨立會話。
   - 若網絡不可用，安裝並啟用 NetworkManager。

##### 配置 Steam

1. 在常規設置中的「顯示」部分，啟用 HDR 和實驗性 HDR 支持。
2. 選擇一款支持 HDR 的遊戲，點擊旁邊的齒輪圖標。
3. 將兼容性設置為強制使用 Proton 8.0 或 Proton Experimental。
4. 將遊戲解析度設置為與顯示器一致，否則將默認以 Steam Deck 的解析度啟動。
5. 點擊「開始遊戲」啟動遊戲。進入遊戲後檢查設置中的 HDR 選項，並將其啟用。
6. 若需切換回正常桌面會話，請在 Steam 菜單中選擇「電源」 -> 「切換到桌面模式」。

#### COSMIC

COSMIC 的開發者在博文中承諾將在初始穩定版本中加入 HDR 支持。

### 應用程式

#### 遊戲

##### Wine/Proton

通過 Wine 或 Steam Proton 實現 HDR 需要 DXVK（2.1 及以上版本）或 VKD3D-Proton（2.8 及以上版本），具體的依賴視遊戲所使用的 DirectX 版本而定。

提示：建議使用 Proton 8.0 及以上版本，或 Proton GE 44+。這些版本均包含符合要求的 DXVK 和 VKD3D。

###### 不使用 Gamescope

若不使用 Gamescope 啟用 HDR，需要運行包含 Wayland 驅動的 Wine 構建版本。

注意：Wine 的原生 Wayland 驅動仍屬實驗性質，具體遊戲表現可能優於也可能劣於 Xwayland。

- proton-ge-custom：安裝 proton-ge-custom-binAUR，並設置 `PROTON_ENABLE_WAYLAND=1` 與 `PROTON_ENABLE_HDR=1` [7]。

注意：`PROTON_ENABLE_HDR=1` 實際上設置的是 `DXVK_HDR=1` [8]。

- wine-tkg：安裝 wine-tkg，設置 `DXVK_HDR=1`，並取消設置環境變量 `DISPLAY`。

- proton-cachyos 或 wine-cachyos：安裝 proton-cachyosAUR、wine-cachyos-optAUR、wine-cachyosAUR 三者之一，並設置 `PROTON_ENABLE_WAYLAND=1` 與 `DXVK_HDR=1` [9]。

提示：你也可以使用 protonup-qtAUR 將上述的 Wine 構建輕鬆安裝到 Lutris、Bottles 或 Steam 中。

###### 使用 Gamescope

Gamescope 正常啟用 HDR 需要混成器支持 scRGB，且支持 `xx-color-management-v4`、`frog-color-management-v1` 兩個協議之一。

因此，Gamescope 無法與 vk-hdr-layer-kwin6-gitAUR 一起使用。請確保沒有將 `ENABLE_HDR_WSI` 設置為 `1`。

根據需要，有多種方式使用 Gamescope：

- 使用 Gamescope 啟動 Steam。使用該方式，從 Steam 啟動的所有遊戲都會啟用 HDR，但 Steam 和這些遊戲將被運行在一個 Gamescope 窗口內：

    $ gamescope --hdr-enabled --steam -- env DXVK_HDR=1 steam

- 在 Steam 設置中使用以下「啟動選項」，為通過 Steam 啟動的每個遊戲啟用 HDR：

    $ DXVK_HDR=1 gamescope -f --hdr-enabled -- %command%

- 在 Gamescope 中啟動非 Steam 遊戲：

    $ DXVK_HDR=1 gamescope -f --hdr-enabled -- 可执行文件

注意：默認情況下，Gamescope 會以 1280x720 解析度啟動。若需自定義解析度，可使用 `-W`（寬）和 `-H`（高）參數設置需要的解析度。

##### RetroArch

RetroArch 目前僅在 Git 版本 retroarch-gitAUR 中支持 HDR。請在 RetroArch 的視頻設置中啟用 HDR。

    $ retroarch

##### 原生 SDL

要運行使用 SDL 的原生遊戲並啟用 HDR，請設置 `SDL_VIDEODRIVER=wayland`。

例如運行 Quake II RTX：

    $ SDL_VIDEODRIVER=wayland quake2rtx

#### mpv

為了獲得最佳圖像質量，mpv 的維護者推薦使用 `gpu-next` 輸出模式 [10]。

注意：這需要支持 HDR 的 Vulkan WSI，參見 #Vulkan HDR WSI。

    $ mpv --vo=gpu-next --target-colorspace-hint --gpu-api=vulkan --gpu-context=waylandvk "path/to/video"

其他啟用 Wayland HDR 支持的方式包括使用 `dmabuf-wayland` 和 `drm` 視頻輸出。

    $ mpv --vo=dmabuf-wayland "path/to/video"

- 在 tty 終端下，也可以使用：

    $ mpv --vo=drm "path/to/video"

#### Firefox

firefox包 從 138.0 版本開始引入了可用的實驗性 HDR 支持，通過隱藏的配置項 `gfx.wayland.hdr` 啟用。可在 `about:config` 中啟用。

穩定的 HDR 支持仍在開發中 [11] [12]。

#### Chromium

chromium包 目前正在開發 HDR 支持 [13]。

## 提示與技巧

### HDR 視頻樣本

Kodi 的 Wiki 提供了一份合理使用的 HDR 視頻樣本列表，可使用支持 HDR 的視頻播放器（如 #mpv）播放來測試 HDR 輸出效果。

## 問題解決

### 啟用 HDR10 時屏幕共享異常

Pipewire 會嘗試以 BGRA 格式進行流傳輸，但由於 WebRTC 當前無法解析該格式，因此會導致異常。具體表現為拋出 `ParamId:EnumFormat: 0:0 Invalid argument` 錯誤，並導致該應用的 WebRTC 套接字崩潰 [14]。

## 另請參閱

- X.Org 開發者大會 2022｜Harry Wentland：「HDR 更難嗎？」（英文視頻）
- wlroots/wlroots｜HDR10 支持（英文）
- Xaver Hugl 的博客｜關於 KWin 中 HDR 與色彩管理的最新進展（英文）

分類：​

- 顯示控制
- 遊戲
- 圖形
- 圖形用戶界面

HDR 顯示器支持
新增話題