Set the correct RGB full spectrum output (Full RGB Profile) for HDMI Port with Intel Graphics
Connecting a monitor (as LCD Display) via an HDMI cable in a Linux System using a Intel Graphic Card, the colours may look extremely washed out.
This is probably due to the graphics card not outputting the full RGB spectrum profile via HDMI by default.
It seems that some Graphic Cards consider HDMI port as voted for TV output, so that RGB default (or auto) profile is limited to a subspace of full rgb gamut.
The first "detail" you can notice is the rgb full black (#000000) converted to a horrible dark and foggy gray.
Open a terminal and type (in user mode... do not require root privileges):
xrandr -q --verbose
With this command, you can see which port are you using and with which parameters:
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
VGA-1 disconnected (normal left inverted right x axis y axis)
Identifier: 0x42
[...]
HDMI-1 disconnected (normal left inverted right x axis y axis)
Identifier: 0x43
[...]
HDMI-2 connected primary 1920x1080+0+0 (0x48) normal (normal left inverted right x axis y axis) 600mm x 340mm
Identifier: 0x44
[...]
Broadcast RGB: Automatic
supported: Automatic, Full, Limited 16:235
[...]
1920x1080 (0x48) 148.500MHz +HSync +VSync *current +preferred
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 67.50KHz
v: height 1080 start 1084 end 1089 total 1125 clock 60.00Hz
[...]
DP-1 disconnected (normal left inverted right x axis y axis)
Identifier: 0x45
[...]
DP-2 disconnected (normal left inverted right x axis y axis)
Identifier: 0x46
[...]
Then, in the same terminal window type (always in user mode...):
xrandr --output HDMI-2 --set "Broadcast RGB" "Full"
With this command, you can see if forcing FULL RGB PROFILE solves your problem.
The mode switch is immediate... do not require session close nor system reboot.
ATTENTION: This solution is NOT PERSISTENT!
So, if this trick solves the problem, let's make it persistent:
Open a terminal window as root and change dir to
cd /etc/X11/Xsession.d/
then edit a new config file at level 45:
pico 45lk-hdmi-full-rgb
NOTE: level 45 is not mandatory but as far as I can experience it's ok
NOTE: file name is not relevant... use the one you prefer...
and paste into it the command as above:
xrandr --output HDMI-2 --set "Broadcast RGB" "Full"
Finally, save and exit.
Then try to reboot and verify that now it's all right.
That's all folk! :-)