← Blog

DirectX HDR works, Vulkan HDR doesn't: confirm the cause

Vulkan games read HDR from the GPU driver, which hides it on a virtual display. Three checks show whether that is your problem.

On the same virtual display, the desktop and DirectX games stream in HDR, but a Vulkan game says HDR isn't supported.

Two questions

A DirectX 11 or 12 game asks Windows whether the display is in HDR. A Vulkan game asks the GPU's Vulkan driver for the display's formats and looks for HDR10_ST2084_EXT, which NVIDIA's and AMD's drivers leave out on a virtual display. Punktfunk's HDR Vulkan layer adds it back.

Check it

Run the commands in PowerShell inside the stream. vulkaninfo (Vulkan SDK; many GPU drivers install it too) tests the main screen, the stream by default.

  1. The client's stats overlay at Detailed shows HDR in its first line. If not, see The stream is SDR.
  2. vulkaninfo | Select-String "PUNKTFUNK|ST2084" should list VK_LAYER_PUNKTFUNK_hdr_inject and COLOR_SPACE_HDR10_ST2084_EXT.
  3. $env:DISABLE_PF_VKHDR = "1"; vulkaninfo | Select-String ST2084 turns the layer off in that window: ST2084 disappears, as it does for a game without the layer.

Reading the result

  • No PUNKTFUNK: the layer isn't installed. Rerun the installer with HDR Vulkan layer ticked.
  • No ST2084 in step 2: the display, and so the session, isn't HDR. Back to step 1.
  • Both show, the game still refuses: restart it, as it may have checked before the session was HDR. Otherwise it is excluded (anti-cheat list, PF_VKHDR_EXCLUDE, DISABLE_PF_VKHDR).

What to do: the short fix. How the layer works: the engineering write-up.