HDR 顯示器支持
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。
對於 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 的遊戲或其它應用程式啟用。
參見 KDE#HDR。
首先確保 hyprland包 的版本 ≥ 0.47.0 並配置 xx_color_management_v4 變量為 true。
在 Hyprland 配置文件中對應顯示器的配置行末尾追加:, bitdepth, 10, cm, hdr
在對應顯示器的配置中添加以下內容:
supports_wide_color = 1 supports_hdr = 1
更多設置請參閱 Hyprland Wiki。
更多信息可在 Hyprland 實驗性功能文檔和 Hyprland 顯示器文檔中找到。
首先確保 mutter包 的版本 ≥ 48.0。
在 GNOME 的顯示設置中啟用 HDR。每個顯示器都有 單獨的 HDR 開關,在解析度和刷新率設置旁。
frog-color-management-v1 協議的支持 [5] [6]。參見 #使用 Gamescope
Valve 的混成器 Gamescope 提供了實驗性 HDR 支持。按以下步驟可嘗試在 Gamescope 環境中運行 Steam 客戶端:
- 安裝 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」登錄。
- 按下
Ctrl+Alt+Fx進入一個新的 TTY。 - 登錄後執行
gamescope-session-plus steam在 Gamescope 中啟動 Steam 獨立會話。- 若網絡不可用,安裝並啟用 NetworkManager。
- 在常規設置中的「顯示」部分,啟用 HDR 和實驗性 HDR 支持。
- 選擇一款支持 HDR 的遊戲,點擊旁邊的齒輪圖標。
- 將兼容性設置為強制使用 Proton 8.0 或 Proton Experimental。
- 將遊戲解析度設置為與顯示器一致,否則將默認以 Steam Deck 的解析度啟動。
- 點擊「開始遊戲」啟動遊戲。進入遊戲後檢查設置中的 HDR 選項,並將其啟用。
- 若需切換回正常桌面會話,請在 Steam 菜單中選擇「電源」 -> 「切換到桌面模式」。
COSMIC 的開發者在博文中承諾將在初始穩定版本中加入 HDR 支持。
通過 Wine 或 Steam Proton 實現 HDR 需要 DXVK(2.1 及以上版本)或 VKD3D-Proton(2.8 及以上版本),具體的依賴視遊戲所使用的 DirectX 版本而定。
若不使用 Gamescope 啟用 HDR,需要運行包含 Wayland 驅動的 Wine 構建版本。
-
proton-ge-custom:安裝 proton-ge-custom-binAUR,並設置
PROTON_ENABLE_WAYLAND=1與PROTON_ENABLE_HDR=1[7]。
-
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]。
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 -- 可执行文件
-W(寬)和 -H(高)參數設置需要的解析度。RetroArch 目前僅在 Git 版本 retroarch-gitAUR 中支持 HDR。請在 RetroArch 的視頻設置中啟用 HDR。
$ retroarch
要運行使用 SDL 的原生遊戲並啟用 HDR,請設置 SDL_VIDEODRIVER=wayland。
例如運行 Quake II RTX:
$ SDL_VIDEODRIVER=wayland quake2rtx
為了獲得最佳圖像質量,mpv 的維護者推薦使用 gpu-next 輸出模式 [10]。
$ 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包 從 138.0 版本開始引入了可用的實驗性 HDR 支持,通過隱藏的配置項 gfx.wayland.hdr 啟用。可在 about:config 中啟用。
Kodi 的 Wiki 提供了一份合理使用的 HDR 視頻樣本列表,可使用支持 HDR 的視頻播放器(如 #mpv)播放來測試 HDR 輸出效果。
Pipewire 會嘗試以 BGRA 格式進行流傳輸,但由於 WebRTC 當前無法解析該格式,因此會導致異常。具體表現為拋出 ParamId:EnumFormat: 0:0 Invalid argument 錯誤,並導致該應用的 WebRTC 套接字崩潰 [14]。