moonlight-stream / moonlight-qt

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

HDR Appears very saturated when connecting to host, requires toggling HDR off/on. #1306

Open A-m-a-a-n opened 3 weeks ago

A-m-a-a-n commented 3 weeks ago

(Steam Deck Client, Windows 11 Host, Sunshine)

Basically, as the title says, on Moonlight 6.0 when connecting to the Windows 11 PC, colors are extremely oversaturated until HDR is toggled off and then back on in Windows Settings. Sunshine is configured to stream via a virtual monitor through IDDsampledriver. After HDR is toggled off and then on, colors appear rather unsaturated compared to SDR.

cgutman commented 3 weeks ago

I think this is a known issue specifically with IddSampleDriver. @FrogTheFrog might have more context.

FrogTheFrog commented 3 weeks ago

colors are extremely oversaturated until HDR is toggled off and then back on in Windows Settings

This is a bug in Windows. It happens when you turn on a HDR monitor on. If the HDR is enabled from the start, the colors are over-saturated. As you already know, the solution is to then toggle the HDR.

This happens all the time with IddSampleDriver, but if you're lucky enough, it can also happen with actual displays (or a dongle in my case).

You can try using the https://github.com/LizardByte/Sunshine/pull/2582 Sunshine build which will automatically turn on the virtual display for you (and toggle HDR in this case) + change the resolution.

After HDR is toggled off and then on, colors appear rather unsaturated compared to SDR.

No idea about that. It could be just a PC Screen vs. SteamDeck Screen difference.

Maz111111 commented 2 weeks ago

Just my two cents Some games regulate this behavior by their own. Hellblade I or Lego Star Wars have HDR support. ASA the game starts the screen turns normal. Also when Win Auto HDR turns in the screen looks good immediately. In games with no HDR support you have just to change the resolution within the game once and the screen looks normal. On some games without HDR support you don't even have to do that. In "Life is strange remastered" it is enough to go to the videosettings screen and turn e.g. VSync on and off and press save. The screen looks good right after that.

As a workaround you can use qres as a do command in sunshine two times after you switched to your virtual monitor (using the displayswitch 4 command for instants)

e.g. 1. qres.exe /x=1920 /y=1080 2. qres.exe /x=3840 /y=2160 (or whatever resolution is your normal resolution)

Take care that in your IddSampleDriver options.txt both resolutions are there.

After HDR is toggled off and then on, colors appear rather unsaturated compared to SDR.

Not in my case. When switching between HDR and SDR I can see no difference in colours.

A-m-a-a-n commented 1 week ago

@Maz111111 I will try that workaround and get back to you.

Nonary commented 1 week ago

colors are extremely oversaturated until HDR is toggled off and then back on in Windows Settings

This is a bug in Windows. It happens when you turn on a HDR monitor on. If the HDR is enabled from the start, the colors are over-saturated. As you already know, the solution is to then toggle the HDR.

This happens all the time with IddSampleDriver, but if you're lucky enough, it can also happen with actual displays (or a dongle in my case).

You can try using the LizardByte/Sunshine#2582 Sunshine build which will automatically turn on the virtual display for you (and toggle HDR in this case) + change the resolution.

After HDR is toggled off and then on, colors appear rather unsaturated compared to SDR.

No idea about that. It could be just a PC Screen vs. SteamDeck Screen difference.

I’ve never had it happen with my dummy plug though, that is interesting

FrogTheFrog commented 1 week ago

I’ve never had it happen with my dummy plug though, that is interesting

I think it happened to me since I actually went looking for it - I started switching off/on displays + HDR constantly and have actually managed to achieve this without any scripts (with only the Windows Settings app).

I used NoMachine to observe the dongle display and have replicated it a few times just to be sure it was not a fluke. With that said, I don't imagine this actually happening to anyone under normal circumstances as opposed to the VDD.