Intel i915 framebuffer broken in Kernel 5.12

Hi

Hardware = Lenovo Laptop Z70-80

00:02.0 VGA compatible controller: Intel Corporation HD Graphics 5500 (rev 09)

The problem with kernel 5.12 is that during boot at the point it switches to the framebuffer, my screen starts to shimmer / or wobble as though it’s slightly out of sync

This works fine with kernel 5.11-16-default

The only way I’ve found to get rid of the shimmer in 5.12 is to turn off modesetting

ie in /etc/grub/default

GRUB_CMDLINE_LINUX="i915.modeset=0" 

Unfortunately this seriously degrades graphics performance, so you get video tearing

inxi -Gay tells me:

5.12.4-1-default (with the fault, modesetting enabled)

Graphics:
  Device-1: Intel HD Graphics 5500 vendor: Lenovo driver: i915 v: kernel 
  bus-ID: 00:02.0 chip-ID: 8086:1616 class-ID: 0300 
  Device-2: Syntek Lenovo EasyCamera type: USB driver: uvcvideo bus-ID: 1-6:3 
  chip-ID: 174f:14be class-ID: 0e02 serial: 200901010001 
  Display: x11 server: X.Org 1.20.11 driver: loaded: intel 
  unloaded: fbdev,modesetting,vesa display-ID: :0.0 screens: 1 
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.0x11.2") 
  s-diag: 582mm (22.9") 
  Monitor-1: eDP1 res: 1920x1080 hz: 60 dpi: 128 size: 380x210mm (15.0x8.3") 
  diag: 434mm (17.1") 
  OpenGL: renderer: Mesa DRI Intel HD Graphics 5500 (BDW GT2) 
  v: 4.6 Mesa 21.1.1 compat-v: 3.0 direct render: Yes 

I’m fully up-to-date with all zypper dups just having to use the 5.11-16 kernel

There was as similar (ish) problem fixed with the i915 and kernel 5.12 reported here:

https://bugzilla.opensuse.org/show_bug.cgi?id=1185601

but that doesn’t seem to have fixed all the i915 problems

Any thoughts?

Does it not help to apply plymouth=0 instead of i915.modeset=0 to the kernel command line?

The loaded driver is the old technology Intel DDX driver.

  **unloaded:** fbdev,**modesetting**

Modesetting is the newer technology DIX driver. Does switching to it help? See here for making the switch.

If DDX to DIX switch doesn’t help, asking about this of the Intel developers via https://lists.freedesktop.org/mailman/listinfo/intel-gfx or irc://irc.libera.chat/intel-gfx may get you the fastest and/or best solution.

Intel graphics work fine for me in X and on vttys, though I never have Plymouth installed:

# inxi -Cxy
CPU:
  Info: Dual Core model: Intel Pentium G3220 bits: 64 type: MCP arch: Haswell
  rev: 3 cache: L2: 3 MiB
  flags: lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 bogomips: 11971
  Speed: 799 MHz min/max: 800/3000 MHz Core speeds (MHz): 1: 799 2: 798
# inxi -GSay
System:
  Host: ab85m Kernel: **5.12.4-1**-default x86_64 bits: 64 compiler: gcc v: 10.3.0
  parameters: BOOT_IMAGE=/boot/vmlinuz root=LABEL=tg1p07stw noresume
  mitigations=auto consoleblank=0 video=1440x900@60
  Desktop: Trinity R14.0.10 tk: Qt 3.5.0 info: kicker wm: Twin 3.0 vt: 7
  dm: TDM Distro: openSUSE Tumbleweed 20210524
Graphics:
  Device-1: **Intel** Xeon E3-1200 v3/4th Gen Core Processor **Integrated Graphics**
  vendor: ASUSTeK driver: i915 v: kernel bus-ID: 00:02.0 chip-ID: 8086:0402
  class-ID: 0300
  Display: x11 server: X.Org 1.20.11 driver: **loaded: modesetting**
  display-ID: :0 screens: 1
  Screen-1: 0 s-res: 2560x1440 s-dpi: 120 s-size: 541x304mm (21.3x12.0")
  s-diag: 621mm (24.4")
  Monitor-1: DP-1 res: 2560x1440 hz: 60 dpi: 109 size: 598x336mm (23.5x13.2")
  diag: 686mm (27")
  OpenGL: renderer: Mesa DRI Intel HD Graphics (HSW GT1) v: 4.5 Mesa 21.1.1
  compat-v: 3.0 direct render: Yes
# zypper se -si ymout
Loading repository data...
Reading installed packages...
No matching items found.
#

Thanks.

I’ve tried just adding the plymouth=0 and that made no difference to the screen shimmer.

I’m going through the thread you reference, and will see if I can glean something from that, and also through those archlinux wiki pages that are referenced within that.

What I’ve learned so far…

This appears to be limited to the built-in display / panel on my laptop - and was (obviously) not a problem up until kernel 5.12

Attaching an external monitor via a HDMI-DVI cable and the external display is fine and does not exhibit the flicker / shimmer that makes the built-in panel unusable

Just to make this absolutely clear - this happens near the start of boot, a long time before X gets involved, at the point the boot screen changes to the framebuffer

So, dmesg says (or kernel 5.12-4-2)


    2.128132] efifb: probing for efifb
    2.128154] efifb: framebuffer at 0xb0000000, using 8100k, total 8100k
    2.128156] efifb: mode is 1920x1080x32, linelength=7680, pages=1
    2.128158] efifb: scrolling: redraw
    2.128158] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
    2.128246] Console: switching to colour frame buffer device 240x67
    2.139611] fb0: EFI VGA frame buffer device
    5.282758] fb0: switching to inteldrmfb from EFI VGA
    5.282976] i915 0000:00:02.0: vgaarb: deactivate vga console
    5.284561] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
    5.301271] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0
    5.307764] fbcon: i915drmfb (fb0) is primary device
    6.469323] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device

and this problem starts at the “switching to inteldrmfb from EFI VGA” part

This is what hwinfo says about my laptop “panel”


28: None 00.0: 10002 LCD Monitor
  [Created at monitor.125]
  Unique ID: rdCR.Gfa4zPBtuFA
  Parent ID: _Znp.Jj_Qv7+gC_8
  Hardware Class: monitor
  Model: "LG Display LCD Monitor"
  Vendor: LGD "LG Display"
  Device: eisa 0x0469 
  Resolution: 1920x1080@60Hz
  Size: 382x215 mm
  Year of Manufacture: 2014
  Week of Manufacture: 0
  Detailed Timings #0:
     Resolution: 1920x1080
     Horizontal: 1920 1968 2000 2070 (+48 +80 +150) -hsync
       Vertical: 1080 1083 1088 1111 (+3 +8 +31) +vsync
    Frequencies: 138.00 MHz, 66.67 kHz, 60.01 Hz
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #25 (VGA compatible controller)

It looks as though something similar happened with the i915 (roughly) between kernels 4.2 and 4.3 with some laptop displays (not noticeably opensuse, but other distros had this problem)

The laptop display is absolutely non-flickering in kernel 5.11-16-default, so can anyone point me to a change between that and 5.12 that will have broken how the framebuffer interacts with this particular laptop panel, or how best to get the info to report this bug?

Regards

https://bugzilla.opensuse.org/show_bug.cgi?id=1185601
https://gitlab.freedesktop.org/drm/intel/-/issues/3440
https://github.com/torvalds/linux/commit/2bbd6dba84d44219387df051a1c799b7bac46099

Thanks

The torvalds link seems most relevant - I shall investigate further.

The first bugzilla on opensuse was one I looked at when I first had this issue back in April when kernel 5.12 was first released to TW

The fixes there have not fixed the issue with my particular panel - it seemed to get side-tracked towards looking at issues related to Dell computers that had a built in intel and a 2nd GPU

  • so not what I have. I only have the built in Intel GPU

Plus I’m not getting a blank screen - just one that flickers / shimmers at the point it switches to the framebuffer during boot.

the 2nd thread - referencing “Does commit acca7762eb71 (“drm/i915/dp: Use slow and wide link training for everything”) fix this?”

might also be relevant - that seems similar to issues I was seeing reported back with earlier kernels (4.2 / 4.3) that I saw earlier today.

More research needed. (and I can only really investigate the problem when it’s in it’s broken state from another computer, as the screen flicker is not something you want to look at unless you want to tempt a migraine)

:wink:

There may be a workaround by forcing a reduced screen resolution on the framebuffers, leaving X on its own to produce the desired native resolution. From this URL, try striking E at the Grub menu and appending to the end of the (usually wrapped) line that begins with linu, any of video=eDP1:1600x900@60D or video=eDP-1:1600x900@60D or video=eDP1:1280x720@60D or video=eDP-1:1600x900@60D or any of those substituting e for D, or just omitting the D. If any of these help, please report so in the bug, and if X is working, paste here output from:

inxi -SGay

Connect external monitor(s) via DP/HDMI/etc. If this issue is in charge then external monitor(s) will work OK.

Thanks

I’ve tried all of those and pretty much every other resolution that xrandr tells me are available

This laptop seems to work with

video=eDP-1

as the screen size did change from native (1920x1080) to whichever resolution I trred at the point during boot where it switched to the framebuffer - but the screen shimmer / flicker is still there with the 5.12 kernels

(now at 5.12.9-default)

Just to further clarify, X does work, it’s just unusable on the built-in display because of the flicker. I’m currently posting this, having booted with the 5.11-16-default kernel

I’ll reboot with 5.12.9 and post the results of inxi -SGay shortly

Currently in 5.12-9-default

inxi -SGay

System:
  Host: LennyZ2 Kernel: 5.12.9-1-default x86_64 bits: 64 compiler: gcc 
  v: 11.1.1 
  parameters: BOOT_IMAGE=/boot/vmlinuz-5.12.9-1-default 
  root=/dev/mapper/system-root video=eDP-1:1400x900@60 resume=/dev/system/swap 
  quiet showopts 
  Desktop: Xfce 4.16.0 tk: Gtk 3.24.29 info: xfce4-panel wm: xfwm4 vt: 7 
  dm: LightDM 1.30.0 Distro: openSUSE Tumbleweed 20210603 
Graphics:
  Device-1: Intel HD Graphics 5500 vendor: Lenovo driver: i915 v: kernel 
  bus-ID: 00:02.0 chip-ID: 8086:1616 class-ID: 0300 
  Device-2: Syntek Lenovo EasyCamera type: USB driver: uvcvideo bus-ID: 1-6:3 
  chip-ID: 174f:14be class-ID: 0e02 serial: 200901010001 
  Display: x11 server: X.Org 1.20.11 driver: loaded: intel 
  unloaded: fbdev,modesetting,vesa display-ID: :0.0 screens: 1 
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x286mm (20.0x11.3") 
  s-diag: 583mm (23") 
  Monitor-1: eDP1 res: 1920x1080 hz: 60 dpi: 128 size: 380x210mm (15.0x8.3") 
  diag: 434mm (17.1") 
  OpenGL: renderer: Mesa DRI Intel HD Graphics 5500 (BDW GT2) 
  v: 4.6 Mesa 21.1.1 compat-v: 3.0 direct render: Yes 

As you can see I’m trying

video=eDP-1:1400x900x60

(which works fine with 5.11-16 by the way, and the display switches to 1920x1080 after I login to X)

Regards

Besides sticking with 5.11 until a solution is found, I have few suggestions left to try:

1-Try the Vanilla kernel.

2-Check if this is reproducible with a live distro other than TW that uses a 5.12 kernel.

3-Report problem directly to Intel’s driver writers here if reproducible, or to openSUSE Bugzilla if not, or if Vanilla is OK.

You might want to touch #3 first, to see if it’s a known issue, which could produce a workaround.

https://en.opensuse.org/openSUSE:Submitting_bug_reports
https://en.opensuse.org/openSUSE:Bugreport_X

Thanks, I shall give those a try

I too have some similar issues with some Dell 7490’s - I have 13 and 3 have this issue with 15.3 with 5.2.18-57 but did not with 15.2 with the same 5.2.18-55
so something in the kernel from 55 to 57 broke many intel graphics chips. I cannot find any logic for this other than Intel i5-8350u chips from different batches.
All laptops are 1920x1080 - with nvme 1 tb ssd and 32 gb ram. The date of manufacture varies from 2018, 2019 and 2020. I have one of each year with this issue.

see this for more

https://forums.opensuse.org/showthread.php/555018-Same-machine-updates-lockup-after-the-gui-is-up-after-8-seconds

Thanks, I’ll have a read of that.

My laptop is possibly a bit older than that, it’s been running Tumbleweed since Jan 2018, but it wasn’t a “new” model

model name    : Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz

And I can confirm hat the Vanilla Kernel has the same issue (on my laptop)


Information for package kernel-vanilla:
---------------------------------------
Repository     : Kernel builds for branch vanilla (standard)
Name           : kernel-vanilla
Version        : 5.13~rc4.88.gf88cd3fb9df2-1.1.gd1269e1
Arch           : x86_64

I’m about to try finding another distro that has the 5.12 kernel - maybe Fedora, or (heaven help me) Arch, that has a “live” image I can boot a USB from.

I know Manjaro isn’t up to 5.12 yet as someone at work uses that, I think it was 5.10

But I think it’s a post on the Intel thread as mrmazda suggested a post or so ago - the main problem is that as far as I can tell nothing shows up in the logs. It boots without any error, it’s just the (built-in) screen shimmers /flickers nastily…

  • and in the meantine I can either run with i915.modeset=0 with a 5.12 kernel, or modesetting with the 5.11-16.

Thanks to everyone for all the suggestions and input on this