moonlight-qt
moonlight-qt copied to clipboard
Washed Out Colors streaming to Steam Deck
Describe the bug Colors appear quite washed out streaming to the Deck. For example, if I open the store page for Spider-Man on my deck, it is quite vibrant, and on my host PC more so because it has a better display, but when I stream my host PC in Steam Big Picture and look at the Spider-Man page it goes very unsaturated and bland. This unsaturation carries over to all games streamed.
Steps to reproduce Simply start streaming
Affected games All games
Moonlight settings (please complete the following information) Default, any settings I change don't do anything to fix the issue.
Client PC details (please complete the following information)
- OS: SteamOS 3.5.1
- Moonlight Version: latest (5.0.0)
- GPU: Steam Deck APU
Server PC details (please complete the following information)
- OS: Latest Win11
- GeForce Experience version: sunshine and the latest GFE both
- Nvidia GPU driver: Latest
- Antivirus and firewall software: Windows Defender
Did you turn off HDR on your host PC?
Did you turn off HDR on your host PC?
Never use it/PC is not capable of even turning it on.
Are you able to provide some comparative pictures or screenshots of the effect? I'm not seeing any problem like this on my own Steam Deck nor have other Steam Deck users reported this, so I'm thinking it might be somehow specific to your configuration.
Are you able to provide some comparative pictures or screenshots of the effect? I'm not seeing any problem like this on my own Steam Deck nor have other Steam Deck users reported this, so I'm thinking it might be somehow specific to your configuration.
The one that is more red is looking natively at Deck, Orange/washed out is streamed.
I don't know if this is a related issue, but I have a similar issue with Moonlight when streaming FROM my LG OLED monitor to any other device (including Steam Deck).
As you can in the below images, I'm streaming from my OLED to a MacBook. The whites are completely blown out, while they are perfect on the OLED.
I don't know if this is an issue with HDR mapping, but turning off HDR doesn't seem to fix the issue at all. So it's hard to pinpoint whether it's the monitor, Moonlight, Sunshine, or something else. FWIW, I have a second monitor, that if I select that as the primary display in Sunshine, sends colors accurately to any device (Steam Deck included).
Interestingly enough my monitor is "HDR Capable" with shit HDR600 (maybe 400?) but I have it turned off regardless. I don't have a second monitor to test this out - maybe I will buy a dummy plug if I can't find a software fix.
On Mon, Oct 30, 2023 at 12:17 PM UnionExxis @.***> wrote:
I don't know if this is a related issue, but I have a similar issue with Moonlight when streaming FROM my LG OLED monitor to any other device (including Steam Deck).
As you can in the below images, I'm streaming from my OLED to a MacBook. The whites are completely blown out, while they are perfect on the OLED.
I don't know if this is an issue with HDR mapping, but turning off HDR doesn't seem to fix the issue at all. So it's hard to pinpoint whether it's the monitor, Moonlight, Sunshine, or something else. FWIW, I have a second monitor, that if I select that as the primary display in Sunshine, sends colors accurately to any device (Steam Deck included).
[image: IMG_0213] https://user-images.githubusercontent.com/73078011/279171306-ab504595-80b9-4204-8cbb-d0ce443a731a.jpeg [image: IMG_0214] https://user-images.githubusercontent.com/73078011/279171310-622b9933-1e95-4201-b850-fbf960d88a0f.jpeg
— Reply to this email directly, view it on GitHub https://github.com/moonlight-stream/moonlight-qt/issues/1095#issuecomment-1785885524, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXMUP62XKPBBL6U2OFXQYBDYB74OJAVCNFSM6AAAAAA6KPF4YCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBVHA4DKNJSGQ . You are receiving this because you authored the thread.Message ID: @.***>
I'm also witnessing this too with a similar setup (Host: Windows PC, Client: Steam Deck docked to monitor).
Colors are noticably more muted/washed out compared to connecting the same host directly to monitor (no change in monitor settings -- connected via the same DisplayPort out)
Server config defined as RGB 8-bit only. Pure black and white seem to render perfectly (could not see fringing on pure black/white text), but colors appear off/muted
Would love to help provide logs or other config context if useful.
Things tested:
- Washed out color effect is present regardless of client encoder (H264, HEVC, AV1)
- Steam OS 3.5.1 device color vibrancy settings don't affect this as far as I can tell (native vs sRGB vs boosted), but color temperature does change external displays (set to 6500K)
Does the issue still happen if you force software decoding in Moonlight? What about if you run Moonlight in Steam Deck's desktop mode?
I believe so yes (either way software decoding has way too much latency)
Does the issue still happen if you force software decoding in Moonlight? What about if you run Moonlight in Steam Deck's desktop mode?
I am experiencing this issue too. Thought I was just imagining it at first, but I tried playing the same games via Steam Link and the colours were showing up correctly. Also with Steam Link there is less of a hassle wrangling with resolutions and controls, so I think that's going to be my go-to streaming solution unless things start getting better with moonlight/sunshine.
Add on, I tried to host with both Gamestream and Sunshine, and both are washed out. The only thing common between the two is Moonlight.
I am experiencing this issue too. Thought I was just imagining it at first, but I tried playing the same games via Steam Link and the colours were showing up correctly. Also with Steam Link there is less of a hassle wrangling with resolutions and controls, so I think that's going to be my go-to streaming solution unless things start getting better with moonlight/sunshine.
Add on, I tried to host with both Gamestream and Sunshine, and both are washed out. The only thing common between the two is Moonlight.
Glad to know we aren't crazy then. Hopefully, they can pinpoint the issue soon.
I believe so yes (either way software decoding has way too much latency)
Did you also test hardware and software decoding in desktop mode? Any difference?
If software decoding is still affected, that likely indicates a Steam Deck issue (whether something wrong with Gamescope, the Flatpak runtime, or something else). The software decoder is just directly passing frames from decoding to SDL for rendering, and it's completely separate rendering logic than our custom GLES renderer used for hardware decoding. It would be highly unlikely for both renderers to have the same bug.
Also with Steam Link there is less of a hassle wrangling with resolutions and controls, so I think that's going to be my go-to streaming solution unless things start getting better with moonlight/sunshine.
I'm aware of Sunshine not yet supporting resolution switching, but what input issues are you encountering?
Did you also test hardware and software decoding in desktop mode? Any difference?
I Just tested both decoding methods on my Deck, in both gaming/big picture mode and desktop mode. Same thing. I also just tested a stream on my iPad Pro (M1). Colors also washed out.
If software decoding is still affected, that likely indicates a Steam Deck issue (whether something wrong with Gamescope, the Flatpak runtime, or something else). The software decoder is just directly passing frames from decoding to SDL for rendering, and it's completely separate rendering logic than our custom GLES renderer used for hardware decoding. It would be highly unlikely for both renderers to have the same bug.
My iPad shows the issue too. I will be doing some more testing trying out different things. I want to figure this out before I get the OLED Deck haha.
Edit: Double checked and this happens with both Sunshine and GFE.
Hmm, that's pretty unusual that you're seeing across 2 different servers (GFE and Sunshine), 2 different clients that share no rendering code (iOS and PC), and 3 different renderers (iOS AVSampleBufferDisplayLayer, SDL using OpenGL, and the EGL renderer). The odds of a single bug that affect both GFE and Sunshine (which have separate capture and encoding code) and Moonlight iOS and Moonlight PC (which also have completely separate decoding and rendering code) is extremely remote.
On the PC side, I have confirmed with both Sunshine+Moonlight and GFE+Moonlight are color-accurate by running Sunshine and Moonlight on the same system and using a color picker to check the exact RGB values between the host image and the image streamed through Moonlght. So I don't think there's any widespread color conversion issues in Sunshine or Moonlight.
There were some reported issues with color saturation on macOS, but it turned out that Moonlight's renderer was correct and the reference "correct" image was actually oversaturated. https://github.com/moonlight-stream/moonlight-qt/issues/892#issuecomment-1352266736
This makes me wonder if perhaps you have a color profile on your host monitor that's making the colors display more saturated than they actually should be. Maybe you could take a screenshot of a game and a screenshot of Moonlight streaming that same image, then you'd be able to check the exact RGB values without the colors being affected by the color profile of the display.
On the PC side, I have confirmed with both Sunshine+Moonlight and GFE+Moonlight are color-accurate by running Sunshine and Moonlight on the same system and using a color picker to check the exact RGB values between the host image and the image streamed through Moonlght. So I don't think there's any widespread color conversion issues in Sunshine or Moonlight.
I will try now on the same system, I didn't think you could do that!
This makes me wonder if perhaps you have a color profile on your host monitor that's making the colors display more saturated than they actually should be. Maybe you could take a screenshot of a game and a screenshot of Moonlight streaming that same image, then you'd be able to check the exact RGB values without the colors being affected by the color profile of the display.
Agreed. I may reset ICC profile to Windows default.
I will try now on the same system, I didn't think you could do that!
Streaming the game itself will be a challenge, unless it supports windowed mode, but you should at least be able to run Moonlight in windowed mode to compare. I used the color picker included in Windows PowerToys.
Streaming the game itself will be a challenge, unless it supports windowed mode, but you should at least be able to run Moonlight in windowed mode to compare. I used the color picker included in Windows PowerToys.
Yeah, I needed to use windowed. I have been using the same "reference image," which is essentially the banner for Spider-Man remastered on the Steam store/library page. The colors looked normal when streaming to the same device. However, I hesitate to call this image oversaturated, as when I pull up the page for the game on either my iPad or iPhone, that image looks closer to the image my PC shows as opposed to moonlight on other devices (AKA my PC and mobile devices show nice, deep reds, whereas when streaming to other devices the most I get is almost-red mostly orange). Still, I find it very strange. I can post some more screenshots but it will take a bit of time to accumulate them.
Some screenshots:
This is moonlight on the host PC.
iPhone steam store
iPad Steam store
Moonlight to iPad
(I would upload the screenshot of the Steam deck stream, but can't figure out how to quickly export screenshots from the Deck to my PC. It looks the same as the Moonlight to iPad screen)
Now I am even more confused. When I upload the screenshot of moonlight on the host PC and pull up that image, it looks desaturated. However when I see the Moonlight stream irl, it looks like native. I am seeing both through the same monitor...
FIXED:
Issue was the ICC profile for my monitor. I deleted all icc profiles and now simply roll with Windows default (I don't have the option to even switch profiles anymore).
I had originally installed one to try and combat image retention on this monitor, which happens under very specific circumstances on the first batch of XV272U Xs that happen often enough to warrant troubleshooting - and now I just roll with settings in my monitor OSD/NVCP that eliminate those AFAIK.
Point is - problem fixed. Sorry if I caused any trouble!
Same problem , I believe maybe something to do with Nvidia digital vibrance setting ...