Kernel version | Linux DietPi 6.6.20+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.20-1+rpt1 (2024-03-07) aarch64 GNU/Linux
Architecture | arm64
SBC model | RPi 5 Model B (aarch64)
Power supply used | Official
SD card used | Samsung EVO
Steps to reproduce
Fresh DietPi install
Install LXDE, Chromium, TigerVNC
Configure autostart for Chromium kiosk via dietpi-config. (I can’t share the URL or the images hosted on the page unfortunately)
Enable 4K in /boot/config.txt and adjust Chromium resolution in /boot/dietpi.txt
Reboot.
Expected behaviour
Chromium opens URL in 4k with crisp images.
Actual behavior
Chromium opens URL in 4k, but there is heavy banding. Especially with images containing a skyline.
Extra details
While having a look at Chromium in htop to see what flags it was launched with, I noticed --enable-low-end-device-mode. That ended up leading me to find /etc/chromium.d. Anyway, I wondered if any of the flags there could be causing the banding. I’ve read that flag forces 16-bit color…I didn’t think 16-bit would cause banding.
I couldn’t fiddle with the 2 RPi 5’s that were currently deployed at the time, so I pulled out an old 3B+. Ran through the entire install process as outlined above excluding the 4K configuration. In 1080P on the 3B+ there is no banding, but there is dithering. For shits and giggles, I did set Chromium to launch in 4k and it was as if I had zoomed in on one corner of the page. Coincidently, it was the corner where the slideshow was. Still no banding, just dithering. No idea what to make of that.
Edit: I’m fairly confident this is an “issue” with the Pi and/or Chromium. There is no noticeable banding (or dithering) when I open the URL on my Windows desktop.
Since RPi 3 does not support 4k, it makes sense that the viewport covers a 1080p part of Chromium, when you force it to 4k window size.
No idea in case of RPi 5. Need to find time to test myself. Does the plain console show up in 4k resolution with correct aspect ratio?
While there is some automatic detection, it is possible that you need to set it via video kernel command-line parameter, i.e. adding video=HDMI-A-1:3840x2160 to the end of /boot/cmdline.txt.
I still haven’t had a chance to test video=HDMI-A-1:3840x2160, but I’ll let you know how that goes when I get to it. Also, I see that you have a 9.4 beta up. I have another RPi5 at home…I’ll try running through my same setup process on that image and see if I encounter any of the same issues.
I can try that, but I already have a config file that tells X about the vc4 driver. It is exactly the same as what you’ve posted above, except I have named it 99-vc4.conf. You might remember from my other post.
Ah okay, that explains that it works. I think I misinterpreted (did not lookup) the wording “banding/dithering”. The aspect ratio is the Chromium window/GUI is correct, but you have visual artefacts.
Hmm config_hdmi_boost (previously used to set HDMI signal strength) has not effect anymore since RPi 4. gpu_mem is legacy and does not have any effect on RPi 5.
Does anyone know whether hdmi_enable_4kp60 is still needed on RPi 5 for 60 Hz? The docs say RPi 4 only, but that was probably just not updated, and it has no effect up to RPi 4.
There is a disable_fw_kms_setup flag to disable EDID read and HDMI config in firmware and let the kernel KMS do it instead. Can you check whether/what the firmware applied?
Hmm, either I do not understand the docs correctly, or the firmware fails to read EDID for this LCD.
to the Linux kernel via settings on the kernel command line
This however pretty clearly says kernel cmdline. If it hence really fails to do so, maybe the kernel is not doing so either, without this flag being set. Let’s just try it, and see whether anything is done which fixes these artefacts: