You are not logged in.
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,i915versus 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,i915Also, 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
[..] 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
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 HzOffline
mind posting the full output? The forum always advises posting the full output of journalctl.
Offline
And let's see what the monitor believes itself, post the edid:
cat /sys/class/drm/card*DP-5/edid | curl -F 'file=@-' 0x0.stOffline
mind posting the full output? The forum always advises posting the full output of journalctl.
Sure: http://0x0.st/8TZr.txt
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
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 MHzYou'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 --verboseOffline
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 MHzYou'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
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: 8That suggests 8 bpc…
Setting Broadcast RGB to limited/2
proptest 287 connector 247 2resp. try
proptest 287 connector 276 6Offline
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
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.97Hzi3/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.98HzThis 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 -vsyncOffline
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 failedI 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").
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
"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