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 20-intel.conf with TearFree set to true has no effect, nor does setting i915.alpha_support or nomodeset or GRUB_GFXMODE, and xrandr won’t allow me to change modes.

What else can I try to get smooth video output?

Asked By: Abe Karplus

||

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.

Answered By: Abe Karplus