moonlight-stream / moonlight-qt

GameStream client for PCs (Windows, Mac, Linux, and Steam Link)
GNU General Public License v3.0
10.99k stars 639 forks source link

HDR Passthrough: washed out colors #1454

Open Slashic opened 4 weeks ago

Slashic commented 4 weeks ago

Describe the bug HDR Passthrough when using fullscreen or windowed fullscreen has washed out colors when using a game outputing HDR on the host. The same game used in local on the client (not streamed) looks fine. Toggling HDR on in windows on the client PC before or during streaming fixes the color/gamma and produce identical picture to the one displayed locally in HDR.

I'm not quite sure why the Passthrough doesn't match the Windows HDR pipeline result, unless it is required to get the correct picture (could be nice to signal it in that case)

Note: This is not a case of HDR displayed in SDR without mapping, HDR signal and data is well received by the TV: the switch does happen.

Steps to reproduce Launch a game through steam with HDR

Screenshots N/A

Affected games All

Other Moonlight clients N/A

Moonlight settings (please complete the following information) Use any of the codecs: H264/HEVC/AV1 HDR enabled, 4:2:0 chroma Fullscreen or Windowed Fullscreen Vsync ON Any bitrate 4k 120fps or 60fps Hardware AMD encoder & decoder (host & client)

Does the problem still occur after reverting settings back to default? Yes

Client PC details OS: Windows 10 22H2 Moonlight Version: v6.1.0 GPU: Radeon 6600

Server PC details OS: Windows 10 22H2 Sunshine v2024.1020.30518 GPU: AMD Radeon RX 7900 XTX GPU driver: 24.10.1

Additional context Client and host are using the exact same EDID (HDMI dummy plug) => No max luminance discrepancy Game used to test allows setting max luminance (set at 800)

cgutman commented 3 weeks ago

Possibly related to this Windows bug? https://github.com/moonlight-stream/moonlight-qt/issues/1306#issuecomment-2154186805

Slashic commented 3 weeks ago

This is interesting, but for me it's purely on the client side i found a workaround (toggling HDR on in windows on the client). I'll give a try to toggling on/off HDR on the host like described in that issue with simple HDR passthrough to see if that's also doing something.

Slashic commented 3 weeks ago

After some testing, that's not the same issue. To describe the issue a bit better: that's not the same as having HDR displayed in an SDR range, it's more like having the wrong color space or a broken tone mapping: colors are de-saturated, luminance seems to be ok though.