HDR Playback in VLC: Passthrough, Tone Mapping & Verification
Playing an HDR file is easy; playing it correctly is not. Out of the box, VLC either tone-maps HDR to SDR (colors look flat) or, on Windows, sends the raw signal to a screen that may or may not be in HDR mode (colors look gray and washed out). This guide explains both modes, how to choose, and how to verify what your screen is actually receiving.
Step 1 — Understand the two HDR paths
- Passthrough — VLC sends the untouched HDR signal to the display, which shows true HDR. Requires: HDR-capable display, HDR enabled in the OS, GPU/display connected over HDMI 2.0+/DP 1.4+, and the right VLC output module.
- Tone mapping — VLC converts HDR to SDR in software. The picture always looks "correct" on any screen, but you lose the dynamic-range punch.
- Rule of thumb: on an HDR TV/monitor, use passthrough. On an SDR screen, use tone mapping. The worst outcome — washed-out gray — happens when passthrough is on but the display is not actually in HDR mode.
Step 2 — Windows: enable HDR passthrough
Turn on Windows HDR: Settings > System > Display > "Use HDR" (Windows 11) or Windows HD Color > "Play HDR games and apps" (Windows 10).
Windows reports an HDR display.
Open VLC Tools > Preferences > "All" > Video > Output, and set Output to "Direct3D11 video output".
The D3D11 output is selected.
In Video > Output modules > Direct3D11, tick "HDR metadata / HDR10 output" (and leave the HDR tone-mapping options at default).
HDR passthrough is enabled.
Save, restart VLC, and play an HDR file (e.g. an HDR10 MKV with the DV/HEVC main10 profile).
The screen shows true HDR.
Step 3 — macOS and Linux: the tone-mapping path
macOS: leave the output as CoreAnimation/OpenGL — VLC 3.0 tone-maps HDR10 to the display’s SDR range automatically and reliably. True HDR passthrough on macOS is limited by the OS’s media pipeline, not by VLC.
HDR looks correct (tone-mapped) on any Mac screen.
Linux: set Video > Output to "OpenGL" (or VDPAU/VA-API for NVIDIA/AMD), and enable "Tone mapping" under Video > Output modules > OpenGL if your build exposes it.
Colors are tone-mapped instead of clipped.
Avoid forcing HDR passthrough on SDR hardware — the result is worse than tone mapping.
You chose the right mode for the hardware.
Step 4 — Verify HDR is really active
On Windows, press Win+Alt+B or check Settings > System > Display — "HDR" must be On with "HDR certified" displayed.
The OS confirms HDR.
During playback, open VLC Tools > Media Information and look at the video codec line — it should show "HEVC Main10" and an HDR10 metadata tag (PQ, BT.2020).
The file is genuine HDR.
Visually: true HDR highlights should be noticeably brighter with deep blacks; a gray-looking image means the chain is broken somewhere.
HDR is verified end-to-end.
If your TV has an info button (e.g. "Info" or the green button on LG/Samsung), press it during playback — it shows the incoming signal format (HDR10, 4:2:0, 10-bit).
The TV confirms the signal.