streetpea / chiaki4deck

Fork of Chiaki (Open Source Playstation Remote Play) with Enhancements for Steam Deck and Documentation around how to use
https://streetpea.github.io/chiaki4deck/
GNU Affero General Public License v3.0
916 stars 56 forks source link

[BUG] Bad legibility of small text when using HDR #254

Open jbaiter opened 4 months ago

jbaiter commented 4 months ago

Describe the bug When using HDR, small text with thin letters is hard to read compared to SDR. This was already reported shortly after the HDR release to me by a Reddit user, but I didn't really notice it myself, since I was mostly playing action games at the time. But playing Yakuza now in HDR, it's really noticeable and detracts from the experience.

Screenshots

SDR: speaker-sdr grafik

HDR: speaker-hdr grafik

HDR screenshots are tricky since the brightness gets lost (which is why the HDR screenshots are darker), but the text legibility issue really is that bad on my Steam Deck OLED display.

To Reproduce

I will try with the official Remote Play app tonight to see if this is an issue specific to Chiaki or if it's a general problem with the way the PS5 encodes content in HDR mode.

weakvar commented 3 months ago

+1 I noticed that too. For now I decided to play without HDR.

jbaiter commented 2 months ago

So I just tried to reproduce this with the official Windows app on my HDR TV, but unfortunately I cannot get HDR to work with the Remote Play app, all I'm getting when toggling the HDR box is a black screen :-/

What I did manage to do, however, was testing it with my Pixel 7a Android phone, and the text is very much readable on it, even though the display is much much smaller. The text displays none of the fuzziness I'm seeing on the Deck. (Can't take a screenshot unfortunately, since HDR screenshots don't seem to work on my phone).

So I'm currently inclined to suspect our HDR rendering code as the part where the problem is introduced.

Another observation: Small white text gets a readability boost by setting the rendering preset to "Fast", but it still looks significantly worse than without HDR.

jbaiter commented 2 months ago

I'm beginning to suspect the downscaling algorithm used, I'm streaming at 1080p, and when I render to an external 1080p display, the text is perfectly legible and there's no discernible difference to the non-HDR picture.

And here's where it get's interesting: When I force 1080p as the resolution for both external and internal display (i.e. the image is downscaled by SteamOS/gamescope and not libplacebo), the legibility issue disappears.

However, you'd think that simply setting the resolution to 720p should then solve this issue (since placebo doesn't downscale then either), but unfortunately that does not seem to solve the issue, since the PS5's downscaler (that does the scaling to 720p for us) exhibits the same issue!

So the workaround for now:

@weakvar Can you see if that helps in your case as well?

I'll play around with the various downscalers available in libplacebo tomorrow and see if any of them help alleviate the issue without OS-level workarounds.

Update: Using lanczos instead of the default hermite helps. While still not as good as non-HDR, legibility of small text is definitely improved, I'll do a comparison with no dedicated downscaler (i.e. "just let the GPU handle it", used with the "fast" preset) tomorrow night.

jbaiter commented 2 months ago

Here's a comparison between different downscaling methods and the SDR image: https://imgsli.com/MjU4ODEz/0/1

My takeaways:

SDR grafik

HDR with Hermite Downsampling grafik

HDR with Lanczos Downsampling grafik

HDR with SteamOS Downsampling grafik

eworthing commented 2 months ago

+1 Experiencing the same issues.

@jbaiter nice job with the testing. I couldn't quite put my finger on why I was having such a hard time seeing things in HDR on my OLED Deck and had switched back to SDR.

xingfanxia commented 1 month ago

Experiencing the same