HDR monitor support - ArchWiki

Jump to content

# HDR monitor support

2 languages

- Français
- 日本語

From ArchWiki

Related articles

- Steam
- Gaming
- Gamescope

This page will serve as a guide to the current state of HDR monitor support on Linux. To better understand the challenges involved you can watch the Harry Wentland presentation "Is HDR Harder?" from the X.Org Developers' Conference from 2022.

Support for HDR is merged in Wayland and some compositors have begun to implement it.

X.org has no plan to support HDR.

Other progress includes:

- KDE Plasma 6.0 introduced experimental HDR support for Wayland session.
- DRM clients can directly pass HDR metadata, but this is not available from regular userspace clients, only specialized software can use it.
- COSMIC developers have promised HDR support in the initial stable release.
- Hyprland introduced HDR support since #8715.
- Wlroots, "Add HDR signalling" MR.
- GNOME 48-beta introduces HDR support and toggle under Wayland.

## Requirements

- HDR capable display.
- HDR capable graphics driver: AMDGPU and NVIDIA (550.54.14+) are confirmed to work.
  - A bug in NVIDIA before 565.57.01 will cause colors to appear washed out in HDR. [1]
- A supported display server, see #Configuration
- A program with HDR support:
  - Games: List of games supporting HDR.
  - Video players: mpv.
  - Web browsers: No web browsers support HDR on Linux at this time. Firefox HDR support is in progress [2] [3].
- A supported compatibility layer if playing Windows games: Wine or Steam Proton.
  - DXVK (2.1+) or VKD3D-Proton (2.8+), depending on DirectX version used by the game.
    Tip: Use either Proton 8.0, Experimental, or Proton GE 44+. All come packaged with sufficient DXVK and VKD3D versions.

## Configuration

### KDE Plasma

See KDE#HDR.

### Hyprland

See https://wiki.hyprland.org/Configuring/Variables/#experimental

### Gamescope with Steam session

Valve's Steam compositor gamescope offers experimental HDR support. Following these steps will allow you to try out Valve's Steam client running through the HDR capable gamescope.

Tip: An AMDGPU is recommended for use with gamescope - NVIDIA is known to have critical issues.

- Install gamescope and gamescope-session-steam-gitAUR
- You may create the optional config file `~/.config/environment.d/gamescope-session.conf` with the following content:

      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"
      fi

  - Update the resolution values above to the correct ones. You can list your displays by running `xrandr --query`.
  - You may need to set the Display `CONNECTOR` if it does not pick the right one by default.

You can now start `gamescope` from your login manager or a terminal using one of the following steps:

#### Via a login manager

Log out and select the Steam Big Picture in your login manager and log in.

#### Via the command line

1. Go to a new TTY by pressing `Ctrl+Alt+F2`
2. Log in and run `gamescope-session-plus steam` to start the standalone steam session in HDR.
   - If networking does not work you can fix it by installing and enabling NetworkManager.

#### Configure Steam

1. In the general settings, under Display, you should now see HDR settings. Enable HDR and Experimental HDR Support.
2. Select an HDR compatible game and click on the cog next to it.
3. Set Compatibility to Force Proton 8.0 or Proton Experimental.
4. Set Game Resolution to match your monitor otherwise it will launch at Steam Deck native resolution.
5. Click Play to start the game. Check the in-game settings to see if the HDR setting is available and enable it.
6. To switch back to your normal session, select Power and Switch to desktop mode from the Steam menu.

### GNOME

#### Requirements

Ensure you have GNOME 48 beta or higher. Prior to 48 stable you may use Official_repositories#gnome-unstable.

Install vk-hdr-layer-kwin6-gitAUR.

#### Enabling HDR

Start GNOME with the `--debug-control` flag and enable `ColorManagementProtocol`.

    gnome-shell --debug-control
    dbus-send --session --print-reply --dest=org.gnome.Mutter.DebugControl /org/gnome/Mutter/DebugControl org.freedesktop.DBus.Properties.Set string:org.gnome.Mutter.DebugControl string:ColorManagementProtocol variant:boolean:true

HDR is now fully enabled. To use HDR see KDE#Games and KDE#Video.

You can make this the default behavior by editing `/usr/lib/systemd/user/org.gnome.Shell@wayland.service`.

    ExecStart=/usr/bin/gnome-shell --debug-control
    ExecStartPost=/usr/bin/dbus-send --session --print-reply --dest=org.gnome.Mutter.DebugControl /org/gnome/Mutter/DebugControl org.freedesktop.DBus.Properties.Set string:org.gnome.Mutter.DebugControl string:ColorManagementProtocol variant:boolean:true

#### Limitations

Luminance ("brightness") control with HDR enabled is in progress [4]. As such most users will be unable to change their monitors "brightness" when HDR is enabled.

## See also

- https://zamundaaa.github.io/wayland/2023/12/18/update-on-hdr-and-colormanagement-in-plasma.html
- https://github.com/ChimeraOS/gamescope-session/tree/main
- https://www.reddit.com/r/linux_gaming/comments/10m2gyx/guide_alpha_test_hdr_on_linux/
- https://forums.developer.nvidia.com/t/plasma-6-0-hdr-success-report/284564

Categories:

- Display control
- Gaming
- Graphics
- Graphical user interfaces