Monday, December 15, 2025

Washed out colours on HDMI connection to Dell monitor (wayland, drm, rpi 5, intel)

Intel Xe graphics and Raspberry Pi 5 detect "Dell U2422HE" monitor HDMI and USB-C display port as of accepting a "limited range" of colour values as if it were a TV. The problem of washed out / pale colours and bright (grey) black bars in films was discovered to be fixable when the same monitor was connected to an AMD graphics card when suddenly the colours become vivid with deep blacks. It has turned out that AMD driver detects the monitor correctly and engages full range operation. In KDE one can force "full range" in the display/monitors settings, while for rpi we can override via DRM command. Instal modetest utils:
sudo apt install libdrm-tests
Switch to the console framebuffer mode (CTRL+ALT+F1) and find out which connector is the right one by running
modetest -c
In my case HDMI-1 is connected and has an id of 33, so execute the following command (replace 33 with the connector id):
modetest -M vc4 -w 33:"Broadcast RGB":1
Now the black colour should appear darker when switching back to gui (CTRL+ALT+F7). We need to switch to framebuffer mode because DRM is locked by the wayland compositor, and it will not allow to change the "Broadcase RGB" property from the other process. You can test it via displaying a black image fullscreen, e.g. run gimp, create a new image of your monitor resolution filled with absolute black colour, export to .png, open that png in the image viewer.
See also:
https://forums.raspberrypi.com/viewtopic.php?t=375420
https://superuser.com/questions/1532782/how-to-force-ubuntuwayland-to-output-broadcast-rgb-full-to-a-hdmi-output

No comments: