Wrong refresh rate, missing EDID, and screen tearing on 4K TV over HDMI
I’m trying to use a mini PC (a Trigkey G4 with an Intel N95 CPU) running Ubuntu 22.04 as a home-theater PC, connected to my Hisense U6G television via an HDMI 2.1 cable. It connects and is able to display at the full 3840×2160 resolution, but there’s terrible screen tearing when playing video (in both VLC and Firefox, windowed and full-screen, KDE Plasma and Gnome). While trying to debug this, I noticed that xrandr was giving incomplete and incorrect information about the available modes:
$ xrandr --verbose xrandr: Failed to get size of gamma for output default Screen 0: minimum 3840 x 2160, current 3840 x 2160, maximum 3840 x 2160 default connected primary 3840x2160+0+0 (0x522) normal (normal) 0mm x 0mm Identifier: 0x521 Timestamp: 19564 Subpixel: unknown Clones: CRTC: 0 CRTCs: 0 Transform: 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 filter: _MUTTER_PRESENTATION_OUTPUT: 0 non-desktop: 0 supported: 0, 1 3840x2160 (0x522) 729.907MHz *current h: width 3840 start 0 end 0 total 3840 skew 0 clock 190.08KHz v: height 2160 start 0 end 0 total 2160 clock 88.00Hz
Note the 88.00 Hz clock, when this TV is only listed as capable of 60 Hz. It seems plausible to me that sending frames at the wrong rate could be the cause of the tearing. Also note the lack of EDID information—when I tried to run
get-edid, it failed with
Couldn't find an accessible EDID on this computer.
To rule out issues with the TV itself or the cable, I connected it to my old laptop (also running Ubuntu 22.04), which had no problem displaying video without tearing, and was able to read the EDID without issue. I tried copying the good EDID over and providing it to the kernel via the
drm.edid_firmware command-line option, but that had no noticeable effect.
At this point, I’ve tried most of advice I can find online—making a
TearFree set to true has no effect, nor does setting
xrandr won’t allow me to change modes.
What else can I try to get smooth video output?
The problem turned out to be that the kernel that ships with 22.04 does not have support for the integrated GPU on newer processors like the Intel N95. To solve this, I installed
linux-generic-hwe-22.04 as recommended in
https://askubuntu.com/a/1484943/1731290 and now everything works great. It even fixed another issue, that I wasn’t sure was related, where HDMI audio output wasn’t being detected.