Garbled picture contents on HDMI output
Hi,
for the background and HW/kernel/... info, see #3236 (closed).
So you closed that issue because of some known MST issues. Which is probably DP specific. Which is why I looked for workarounds and chose to use the HDMI input. Which I also sometimes use with my laptop (which also happens to run amdgpu, however on a much older generation, AMD Kabini). And there HDMI works JUST FINE.
The result with RX6700XT: it kinda works but it shows a slightly garbled picture.
What I mean with garbled: the resolution is apparently correct and so is the refresh rate. But the fine details are looking strange, especially the fonts are misshaped, like having bright or dark shadows around them. That feels like looking at some old or cheap TV when used as PC monitor, where some crazy "sharpening" algorithm attempts to make the TV stream look more crispy, while ruining the text readability for static contents like plain text.
That has ringed a bell, so I checked monitor's settings, and found a "Sharpness" option (which defaults to 50 and has never been touched). And when I change that setting and reduce the "Sharpness" to 0 then the picture looks almost okay again, although the colors get a bit strange. But this fun ends when you connect it back to the laptop again, or if you reboot and then in the GRUB (or in the UEFI setup) everything becomes BLURRY. So what does that mean?! The "fake sharpening" from the driver is somehow compensated by the "fake blur" of the monitor?
So looking for some hunch, I dumped the Xorg log when connected to either DP or HDMI. Logs:
Some differences do strike my eye:
- via DP (which was tested later) there are phantom DP outputs now. I guess, while disconnecting and reconnecting the cables, the output went dead?! and then it was redetected and assigned a new number? Is this related to the MST issue? I think I have seen this behavior a couple of times in the last weeks too, just forgot to mention it in #... .
- via DP, the monitor seems to return a different EDID set (which has a lower version number? But a higher Model number?! But still the same Serial?!). Anyhow, the laptop also reports the older EDID version, and it works there.
- via DP, it reports "Preferred mode is native pixel format and refresh rate" but not for HDMI at the same time. What does that mean, that it's using a non-native pixel format?! Is this the reason? Also via DP, it reports DPMS capabilities as Off but I cannot believe it. DPMS has been working recently.
- some modelines for legacy resolutions have deviating timings. Although the native resolution is not affected, this looks strange. Maybe some kind of TV specific workaround stuff and the driver thinks that a TV is connected here?
But despite of the differences, that still does NOT explain the bad picture now, IMHO. And comparing the Xorg log between the one above and the one from the Kabini laptop does not show a big difference. They both detect the same EDID content, it's just that Kabini calculates a few additional modelines which are interlaced variants of some legacy resolutions.
So I am not sure how to interpret all this. Smells like a possible regression in some of the more recent amdgpu backends. Since it only hits this special (old) monitor it might have been going under the radar for a while now. If you have certain ideas on what I could patch to make experiments then please let me know, but please don't ask me to bisect over a span of many years.