You are not logged in.

#1 2025-02-06 13:09:59

D4vidH4mm3r
Member
Registered: 2013-07-01
Posts: 6

Intel integrated graphics regression (somewhere between 6.6 and 6.12)

Some time ago, after a kernel upgrade, I noticed the following degradation in performance of i915-based graphics. Mostly noticeable using a dock with an external monitor. This is on an old-ish Dell XPS with a 10th gen i5 with some integrated graphics:

00:02.0 VGA compatible controller [0300]: Intel Corporation Iris Plus Graphics G1 (Ice Lake) [8086:8a56] (rev 07)
  • After the upgrade, if the dock is plugged in, the display manager (sddm) would seemingly fail to start; would go to black screen. If dock was unplugged, it would start. (Not a big deal, I don't care for display managers anyway.)

  • After starting sway, I suddenly cannot set the output mode "3840x2160 @ 59.996 Hz", only "3840x2160 @ 30.000 Hz". If I try to do it in wdisplays, it fails. If I do it via swaymsg, the external monitor just goes black, not getting any signal. Can set it back without issue.

I've been running linux-lts for a while, hoping it was just a passing regression, but whatever has broken seems to have gotten into lts 6.12. Downgrading to lts 6.6 fixes this again. I've gone through https://wiki.archlinux.org/title/Intel_graphics and it seems i915 is loaded just fine in either case; on 6.13:

> lsmod | grep i915
i915                 4816896  30
drm_buddy              24576  1 i915
intel_gtt              28672  1 i915
ttm                   114688  1 i915
i2c_algo_bit           20480  1 i915
video                  81920  3 dell_wmi,dell_laptop,i915
drm_display_helper    266240  1 i915
cec                    98304  2 drm_display_helper,i915

versus on 6.6:

> lsmod | grep i915
lsmod-6.6 | grep i915
i915                 4157440  28
i2c_algo_bit           20480  1 i915
drm_buddy              20480  1 i915
video                  77824  3 dell_wmi,dell_laptop,i915
ttm                   102400  1 i915
intel_gtt              24576  1 i915
drm_display_helper    217088  1 i915
cec                    86016  2 drm_display_helper,i915

Also, kms hook is on. I tried with plasma on X and wayland and had the same issue. I don't get errors, it just seems like the integrated GPU is suddenly worse on new kernel.

Does anyone have an idea what could be going on? So far, my googling has been quite unsuccessful.

Offline

#2 2025-02-06 16:53:38

twelveeighty
Member
Registered: 2011-09-04
Posts: 1,439

Re: Intel integrated graphics regression (somewhere between 6.6 and 6.12)

[..] seemingly fail to start; would go to black screen.
...
[..] I don't get errors

Post your journal from a boot where you get the 'black screen' - are you sure there are no errors?

Offline

#3 2025-02-13 12:50:18

D4vidH4mm3r
Member
Registered: 2013-07-01
Posts: 6

Re: Intel integrated graphics regression (somewhere between 6.6 and 6.12)

Sorry for the slow response, I haven't had access to this machine for a bit. Slight update / clarification on black screen: it used to stay entirely black except for an underscore top left corner. That is, after having displayed most of the regular boot sequence stuff. So I guess the login manager just didn't get started somehow (though would proceed fine after unplugging the dock).
At any rate, I removed the login manager and now the TTY displays just fine regardless of whether the dock is plugged in. After launching sway, there's still the issue of not being able to set the desired output mode, "3840x2160 @ 59.996 Hz".

Grepping for i915 in journalctl when booting 6.6 (where 60 Hz works):

Feb 13 13:22:25 kater kernel: i915 0000:00:02.0: vgaarb: deactivate vga console
Feb 13 13:22:25 kater kernel: i915 0000:00:02.0: [drm] Using Transparent Hugepages
Feb 13 13:22:25 kater kernel: i915 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=io+mem:owns=io+mem
Feb 13 13:22:25 kater kernel: i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/icl_dmc_ver1_09.bin (v1.9)
Feb 13 13:22:25 kater kernel: i915 0000:00:02.0: [drm] GT0: GuC firmware i915/icl_guc_70.1.1.bin version 70.1.1
Feb 13 13:22:25 kater kernel: i915 0000:00:02.0: [drm] GT0: HuC firmware i915/icl_huc_9.0.0.bin version 9.0.0
Feb 13 13:22:25 kater kernel: i915 0000:00:02.0: [drm] GT0: HuC: authenticated for all workloads
Feb 13 13:22:25 kater kernel: i915 0000:00:02.0: [drm] GT0: GUC: submission disabled
Feb 13 13:22:25 kater kernel: i915 0000:00:02.0: [drm] GT0: GUC: SLPC disabled
Feb 13 13:22:25 kater kernel: [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 1
Feb 13 13:22:25 kater kernel: fbcon: i915drmfb (fb0) is primary device
Feb 13 13:22:25 kater kernel: i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
Feb 13 13:22:28 kater kernel: snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
Feb 13 13:22:28 kater kernel: mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_ops [i915])

Compared to 6.13 (where it doesn't):

Feb 13 13:31:04 kater kernel: i915 0000:00:02.0: [drm] Found icelake/port_f (device ID 8a56) display version 11.00 stepping D0
Feb 13 13:31:04 kater kernel: i915 0000:00:02.0: vgaarb: deactivate vga console
Feb 13 13:31:04 kater kernel: i915 0000:00:02.0: [drm] Using Transparent Hugepages
Feb 13 13:31:04 kater kernel: i915 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=io+mem:owns=io+mem
Feb 13 13:31:04 kater kernel: i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/icl_dmc_ver1_09.bin (v1.9)
Feb 13 13:31:04 kater kernel: i915 0000:00:02.0: [drm] GT0: GuC firmware i915/icl_guc_70.1.1.bin version 70.1.1
Feb 13 13:31:04 kater kernel: i915 0000:00:02.0: [drm] GT0: HuC firmware i915/icl_huc_9.0.0.bin version 9.0.0
Feb 13 13:31:04 kater kernel: i915 0000:00:02.0: [drm] GT0: HuC: authenticated for all workloads
Feb 13 13:31:04 kater kernel: i915 0000:00:02.0: [drm] GT0: GUC: submission disabled
Feb 13 13:31:04 kater kernel: i915 0000:00:02.0: [drm] GT0: GUC: SLPC disabled
Feb 13 13:31:04 kater kernel: [drm] Initialized i915 1.6.0 for 0000:00:02.0 on minor 0
Feb 13 13:31:04 kater kernel: fbcon: i915drmfb (fb0) is primary device
Feb 13 13:31:04 kater kernel: i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
Feb 13 13:31:06 kater kernel: mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_ops [i915])
Feb 13 13:31:06 kater kernel: snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])

And if I on 6.13 do:

swaymsg output "DP-5" "mode" "3840x2160@60Hz"

nothing shows up on dmesg or journalctl even though the external display goes dark until I put it back to

swaymsg output "DP-5" "mode" "3840x2160@30Hz"

To be clear, even in 6.13, some part of the system believes in that mode:

> swaymsg -t get_outputs
Output DP-5 'LG Electronics LG HDR 4K 201NTEPNG732'
  Current mode: 3840x2160 @ 30.000 Hz
  Power: on
  Position: 1920,0
  Scale factor: 1.000000
  Scale filter: nearest
  Subpixel hinting: unknown
  Transform: normal
  Workspace: 1
  Max render time: off
  Adaptive sync: disabled
  Allow tearing: no
  Available modes:
    3840x2160 @ 59.996 Hz
    3840x2160 @ 30.000 Hz
    3840x2160 @ 29.970 Hz (16:9)
    2560x1440 @ 59.951 Hz
    1920x1080 @ 60.000 Hz (16:9)
    1920x1080 @ 59.940 Hz (16:9)
    1920x1080 @ 59.934 Hz
    1280x720 @ 60.000 Hz (16:9)
    1280x720 @ 59.940 Hz (16:9)
    1024x768 @ 60.004 Hz
    800x600 @ 60.317 Hz
    720x480 @ 60.000 Hz (16:9)
    720x480 @ 59.940 Hz (16:9)
    640x480 @ 60.000 Hz (4:3)
    640x480 @ 59.940 Hz
    640x480 @ 59.940 Hz (4:3)

Output eDP-1 'Sharp Corporation 0x14CB Unknown' (focused)
  Current mode: 1920x1200 @ 59.950 Hz
  Power: on
  Position: 2560,2160
  Scale factor: 1.000000
  Scale filter: nearest
  Subpixel hinting: unknown
  Transform: normal
  Workspace: 2
  Max render time: off
  Adaptive sync: disabled
  Allow tearing: no
  Available modes:
    1920x1200 @ 59.950 Hz
    1920x1200 @ 47.960 Hz

Offline

#4 2025-02-13 18:36:56

mackin_cheese
Member
Registered: 2025-01-07
Posts: 475

Re: Intel integrated graphics regression (somewhere between 6.6 and 6.12)

mind posting the full output? The forum always advises posting the full output of journalctl.

Offline

#5 2025-02-13 20:24:57

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,787

Re: Intel integrated graphics regression (somewhere between 6.6 and 6.12)

And let's see what the monitor believes itself, post the edid:

cat /sys/class/drm/card*DP-5/edid | curl -F 'file=@-' 0x0.st

Offline

#6 2025-02-21 14:07:49

D4vidH4mm3r
Member
Registered: 2013-07-01
Posts: 6

Re: Intel integrated graphics regression (somewhere between 6.6 and 6.12)

mackin_cheese wrote:

mind posting the full output? The forum always advises posting the full output of journalctl.

Sure: http://0x0.st/8TZr.txt

seth wrote:

And let's see what the monitor believes itself, post the edid

Sure, though it looks like it agrees with sway when I run it though edid-decode: http://0x0.st/8TP5.bin

Offline

#7 2025-02-21 16:07:57

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,787

Re: Intel integrated graphics regression (somewhere between 6.6 and 6.12)

Bits per primary color channel: 10
DTD 1:  3840x2160   59.996051 Hz  16:9    133.311 kHz    522.580000 MHz (697 mm x 392 mm)
Monitor ranges (GTF): 40-60 Hz V, 30-135 kHz H, max dotclock 600 MHz

You're limited to 600MHz TMDS, that's enough for 3840x2160@60Hz / cvt1.2 - on *8* bpc, not 10.

proptest # resp if you can run X11 it would be nice to see
xrandr --verbose

Offline

#8 2025-03-03 13:06:52

D4vidH4mm3r
Member
Registered: 2013-07-01
Posts: 6

Re: Intel integrated graphics regression (somewhere between 6.6 and 6.12)

seth wrote:
Bits per primary color channel: 10
DTD 1:  3840x2160   59.996051 Hz  16:9    133.311 kHz    522.580000 MHz (697 mm x 392 mm)
Monitor ranges (GTF): 40-60 Hz V, 30-135 kHz H, max dotclock 600 MHz

You're limited to 600MHz TMDS, that's enough for 3840x2160@60Hz / cvt1.2 - on *8* bpc, not 10.

proptest # resp if you can run X11 it would be nice to see
xrandr --verbose

Thanks for the reply! Odd that it reports 10 - this is just what the monitor is capable of? sway is definitely rendering to 8 bits currently; given that 60 Hz worked on the old kernel, there must have been a valid configuration with 3840x2160@60Hz at 8 bit?

proptest: http://0x0.st/8MBV.txt

xrandr --verbose: http://0x0.st/8MBW.txt

Offline

#9 2025-03-03 14:32:01

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,787

Re: Intel integrated graphics regression (somewhere between 6.6 and 6.12)

	RANDR Emulation: 1 

xrandr on wayland is pointless, you're getting the results from an emulation layer.
It would also hint whether this is a sway-specific problem

Connector 287 (DP-5)
	1 EDID:
		flags: immutable blob
		blobs:

		value:
			00ffffffffffff001e6d50773cab0b00
			01200104b5462878fa7ba1ae4f44a926
			0c5054210800d1c06140010101010101
			01010101010122cc0050f0703e801810
			3500b9882100001a000000fd00283c1e
			873c000a202020202020000000fc004c
			472048445220344b0a202020000000ff
			003230314e5445504e473733320a01e8
			02031f72230907078301000044010304
			10e2006ae305c000e606050159595204
			740030f2705a80b0588a00b988210000
			1e565e00a0a0a0295030203500b98821
			00001a1a3680a070381f402a263500b9
			882100001a0000000000000000000000
			00000000000000000000000000000000
			000000000000000000000000000000ea
	2 DPMS:
		flags: enum
		enums: On=0 Standby=1 Suspend=2 Off=3
		value: 0
	5 link-status:
		flags: enum
		enums: Good=0 Bad=1
		value: 0
	6 non-desktop:
		flags: immutable range
		values: 0 1
		value: 0
	4 TILE:
		flags: immutable blob
		blobs:

		value:
	3 PATH:
		flags: immutable blob
		blobs:

		value:
			6d73743a3237322d3100
	4 TILE:
		flags: immutable blob
		blobs:

		value:
	257 audio:
		flags: enum
		enums: force-dvi=18446744073709551614 off=18446744073709551615 auto=0 on=1
		value: 0
	247 Broadcast RGB:
		flags: enum
		enums: Automatic=0 Full=1 Limited 16:235=2
		value: 0
	276 max bpc:
		flags: range
		values: 6 12
		value: 8

That suggests 8 bpc…
Setting Broadcast RGB to limited/2

proptest 287 connector 247 2

resp. try

proptest 287 connector 276 6

Offline

#10 2025-03-20 11:04:27

D4vidH4mm3r
Member
Registered: 2013-07-01
Posts: 6

Re: Intel integrated graphics regression (somewhere between 6.6 and 6.12)

Good point, here's xrandr --verbose from within i3 instead:  http://0x0.st/81OI.txt.
Messing around in there with xrandr changing max bpc also didn't seem to do anything.
The same problem persists.

Trying proptest, the "proptest 287 connector 247 2" before starting sway does work to set the limited color range (after starting sway, value remains 2), but setting 60 Hz still doesn't work.
The other one to set max bpc seems to get overridden.

Offline

#11 2025-03-20 15:10:03

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,787

Re: Intel integrated graphics regression (somewhere between 6.6 and 6.12)

  3840x2160 (0x9f) 522.580MHz +HSync -VSync *current +preferred
        h: width  3840 start 3864 end 3880 total 3920 skew    0 clock 133.31KHz
        v: height 2160 start 2163 end 2168 total 2222           clock  60.00Hz
  3840x2160 (0xa0) 297.000MHz +HSync +VSync
        h: width  3840 start 4016 end 4104 total 4400 skew    0 clock  67.50KHz
        v: height 2160 start 2168 end 2178 total 2250           clock  30.00Hz
  3840x2160 (0xa1) 296.703MHz +HSync +VSync
        h: width  3840 start 4016 end 4104 total 4400 skew    0 clock  67.43KHz
        v: height 2160 start 2168 end 2178 total 2250           clock  29.97Hz

i3/X11 runs at 60Hz?

  3840x2160 (0x43) 338.750MHz -HSync +VSync *current +preferred
        h: width  3840 start 4080 end 4488 total 5136 skew    0 clock  65.96KHz
        v: height 2160 start 2163 end 2168 total 2200           clock  29.98Hz

This is from the emulation layer, nb. that the signal runs at 338.75MHz, which is the "naive" modeline (no reduced blanking) while the X11 xrandr output has that frequency at 296.703MHz (and straight 30Hz at 297Hz), neither of which is a CVT mode, the 297MHz mode is from the EDID.

The 522.580MHz 60Hz mode is almost the CVT 1.2 reduced blanking mode.

sway allows to add custom modelines and that's probably what you should try next:
https://man.archlinux.org/man/extra/swa … n#COMMANDS

output DP-5 modeline 522.580  3840 3864 3880 3920  2160 2163 2168 2222  +hsync -vsync

Offline

#12 2025-03-20 15:42:44

D4vidH4mm3r
Member
Registered: 2013-07-01
Posts: 6

Re: Intel integrated graphics regression (somewhere between 6.6 and 6.12)

seth wrote:

i3/X11 runs at 60Hz?

Ah, sorry, pertinent detail: i3 starts with the external monitor not getting signal somehow - keeps showing the part of the framebuffer that was displayed when I ran startx. So while xrandr believes in 60 Hz at that time, it doesn't look like it's working. Changing with xrandr to 30 Hz, everything works, but at 30 Hz. Trying to change back to 60 Hz gets a new exciting error:

xrandr: Configure crtc 1 failed

I saw that xrandr takes a --crtc argument, but all available 0 through 2 (not sure if that even makes sense, but still) fail this way (ex. "xrandr --output DP-1-1 --mode "3840x2160" --rate 60 --crtc 2").

seth wrote:
output DP-5 modeline 522.580  3840 3864 3880 3920  2160 2163 2168 2222  +hsync -vsync

This has the same effect as:

swaymsg output "DP-6" "mode" "3840x2160@60Hz"

which is to say that the external monitor just goes black and starts complaining that it doesn't get signal. Actually a bit different than the just starting i3; there, the monitor complained about wrong resolution (but clearly not getting any signal).

Offline

#13 2025-03-20 22:52:34

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,787

Re: Intel integrated graphics regression (somewhere between 6.6 and 6.12)

"fuck"

So.

lts 6.12. Downgrading to lts 6.6 fixes this again

https://archive.archlinux.org/packages/l/linux/
You can install those in parallel to the LTS kernel, start w/ 6.9 (between 6.6 and 6.12) and bisect yourself to the first bad version so we get a rough idea where to look.

But it somehow seems https://gitlab.freedesktop.org/drm/i915 … ssues/4531 is back…
https://github.com/torvalds/linux/commi … rm/display

Offline

Board footer

Powered by FluxBB