moonlight-stream / moonlight-qt

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

Color banding issues in UI on Raspberry Pi #1107

Open jorys-paulin opened 10 months ago

jorys-paulin commented 10 months ago

Describe the bug Moonlight 5.0 on the Raspberry Pi seems to have color banding issues in the UI. This is most noticable with the box art images if they have gradients (like the default ones for Sunshine do), and in the shadows of dialogs.

Steps to reproduce Open Moonlight and connect/pair to a Sunshine host to display the default box arts.

Screenshots

This is how the apps page looks with Wayfire on the desktop (default for Bookworm): Moonlight color banding - Wayfire

This is how it looks when using X11 instead: Moonlight color banding - X11

And how it looks when running without a desktop environment: Moonlight color banding - EGLFS

For reference, this is how the same page looks like on Windows: Moonlight_2023-11-02_13-58-22

Client PC details

Moonlight Logs (please attach) Moonlight-EGLFS.txt Moonlight-Wayfire.txt Moonlight-X11.txt

cgutman commented 10 months ago

Interesting, probably a Wayfire or Qt bug. We're not doing anything special to display box art. We just load the PNGs into Qt's Image class. It looks like an RGB565 GL context with some awful dithering.

What happens if you force it to run under XWayland using moonlight-qt -platform xcb?

jorys-paulin commented 10 months ago

The effect looks less pronounced, about the same level as X11 and EGLFS: Moonlight color banding - XCB_2023-11-02_16-19-35

Here are the logs just in case: Moonlight-XCB.txt

jorys-paulin commented 10 months ago

Also it seems like using Ctrl+Shift+Alt+Q kills my session and boots me back to the Pi login screen, while Ctrl+Shift+Alt+A doesn't. Maybe this is because I have an AZERTY keyboard, but without -platform xcb it doesn't kill my session.

cgutman commented 10 months ago

Interesting, can you tell if your session is being gracefully terminated or if it's crashing? See any crashes or errors in dmesg or journalctl?

It could be an issue with the key layout getting lost in translation somewhere between Wayfire -> XWayland -> SDL2. Does it still happen with a native X11 session?

jorys-paulin commented 10 months ago

It doesn't happen when using -platform xcb with X11 selected in rapi-config.

I have collected logs from dmesg and journalctl but don't see anything that stands out, altough I never used both before: dmesg.txt journalctl.txt

I have checked on a fresh install as well just in case, but got the same issue too. I've set the keyboard layout to fr through the Raspberry Pi imager, which should be AZERTY. I haven't tried using en and a QWERTY keyboard to check if it's specific to AZERTY though.