HDR video playback

From ArchWiki

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: There is no userspace support for HDR passthrough on Linux outside of DRM clients, this entire article seems to be misinformation (Discuss in Talk:HDR video playback)

This page aims to explain how to watch HDR (High Dynamic Range) videos.

Note:
  • HDR video playback is still at its early stages on Linux, there are a lot of limitations to this feature.
  • Red Hat has hired people to work on improving HDR and developers at X.org are also working on improving HDR on Linux. See the roadmap.
  • This guide may affect the performance of your computer

Requirements

  • An HDR-compatible graphics card,
  • X11 as the display server,
  • mpv (Required for NVIDIA cards, optional otherwise),
  • A compatible display manager,
  • An HDR10 certified monitor.

Integrated graphics cards work, but the video playback has framerate drops.

Limitations

  • Only HDR10 videos seem to work.
  • Dolby Vision is not supported yet.
  • On NVIDIA graphic cards, it seems like only mpv is able to playback properly an HDR Stream, Chromium has coloring and depth issues. AMD and Intel cards are not limited to mpv.
  • X11 seemingly only pushes up to 600 nits peak brightess. Anything above is not taken advantage of.
  • Hybrid graphics so far, does not work. It is recommended for you to disable your integrated card from your BIOS/UEFI Menu.
  • Browsers like Firefox, Epiphany and others do not have HDR support yet. It is recommended to use a Chromium based browser.
  • Some users report that VLC is also able to play HDR content, although most of the time it does not work as intended.
  • Game/AutoHDR support is not yet available.
  • The color profile bt.2020 has display depth issues. It is recommended to use bt.1889
  • Although Wayland has implemented HDR color profiles, only the compositor can take advantage of it. So far, only Sway and Weston seem to have implemented this feature up to a point.
  • Some applications either break or refuse to launch. One game breaking example is Steam.

Setup

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: A section for wayland might be necessary, since we list weston and sway as having support in the previous section. (Discuss in Talk:HDR video playback)

Display managers

So far, only these display managers can take advantage of HDR:

Any other display managers will either crash, switch the blue and red display output signals or just not support HDR video playback.

X server

Set DefaultDepth and Depth values to 30 in the X configuration:

/etc/X11/xorg.conf
Section "Screen" 
    ...
    DefaultDepth 30
    ...
    SubSection "Display"
        ...
        Depth 30
        ...
    EndSubSection
EndSection
Warning: Setting any values other than 4, 8, 12, 16, 24 or 30 will make your display server unreachable.

Chromium

Append the following flags:

--enable-features=VaapiVideoDecoder,VaapiVideoEncoder,RawDraw --ignore-gpu-blocklist --enable-gpu-rasterization --use-gl=desktop

Go to about://flags and change #force-color-profile preferably to Display P3 D65.

Note:
  • Hardware acceleration is required. See Chromium#Hardware video acceleration
  • Since Chromium 100, you will need to enable both #temporary-unexpire-flags-m98 and #temporary-unexpire-flags-m99 for the #force-color-profile option to appear.

mpv

HDR support is native and all the configurations are set to correct values by default. You can adjust the peak brightness using --target-peak.

Usage

If you are using mpv, launch your HDR video on it.

If you are using Chromium, play an HDR HTML5 video on it. Websites such as Netflix and YouTube also support HDR video playback.

Troubleshooting

Square/Straighten corners on GNOME

Installing the mutter-roundedAUR package and tweaking it using mutter_settings seems to solve this issue.

Transparency issues

On NVIDIA, install the proprietary drivers, with a version higher than 470.xx. This seems to solve this issue to a point, but some applications like gnome-terminal-transparencyAUR still have transparency issues with NVIDIA.

Check if watching HDR or not

Pay close attention to shadows and other details, if they are pixelated a lot or seem to have the wrong color, you are most likely playing back at SDR.

On Chromium, check if you are streaming HDR by watching an HDR YouTube video. If the cog icon has an HDR label on it, it means you are streaming in HDR.

My monitor seems to have switched the Blue and red signals

You may be:

  • Using a hybrid system. Disable your integrated GPU in your BIOS/UEFI.
  • Using an incompatible display manager. See #Display managers

Chromium's window displays as blue and purple

On AMD and NVIDIA graphic cards, Vulkan might be the culprit. Try disabling this feature by removing it from --enable-features flag.