HDR monitor support
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 video in this article .
HDR video support
HDR support on Linux is not implemented yet in the display servers, though it is being worked on:
- X.org (and Xorg clients): no support for passing HDR metadata to the display, see https://gitlab.freedesktop.org/xorg/xserver/-/issues/1037#note_521100
- Wayland (and Wayland clients): no support for passing HDR metadata to the display, see https://gitlab.freedesktop.org/wayland/weston/-/issues/467 and https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/14
- DRM clients can directly pass HDR metadata, but this is not available from regular userspace clients, only specialized software can use it: https://gitlab.freedesktop.org/mesa/drm/-/blob/main/include/drm/drm_mode.h#L809
- System76 have announced their new Rust based Cosmic Desktop will have a brand new Wayland compositor (based on Smithay) which will include support for HDR as well as fractional scaling and HiDPI, see https://blog.system76.com/post/november-at-system76-products-promos--cosmic-de.
HDR gaming support
Since currently neither Wayland nor X11 offer an API that fully supports HDR, your games also wont be able to display correct HDR content on them. Valve's steam compositor gamescope does offer experimental HDR support. To try out valves steam client running trough the HDR capable gamescope do :
- use a HDR capable display
- use an AMD GPU. HDR is currently only supported on AMDGPU.
- use DXVK version 2.1 or later
- use VKD3D-Proton version 2.8 or later
- use either proton experimental or proton GE version 44 and higher. Both come packaged with sufficient DXVK and VKD3D versions.
- install gamescope-gitAUR
- use a patched version of gamescope-session-gitAUR as described in . The patch changes the configuration file
/usr/share/gamescope-session/gamescope-session-scriptto include instructions for gamescope and dxvk to enable HDR. For DXVK it sets the environment variable
DXVK_HDR=1and to gamescope it passes the argument
--hdr-enabled. If you want to apply the changes in the config file manually replicate all the changes of the patch here.
- open your steam library, filter for tools and right click on steam linux runtime soldier open it's properties and click on BETAS, choose "client_beta"
- use a linux kernel with Josh Ashton Kernel Patches, see Kernel/Traditional compilation
Now you are all set up. Go into a new tty by pressing Ctrl+Alt+F2, log in and run
to start the standalone steam session in HDR. If networking doesnt work you can fix it by installing and enabling NetworkManager.