You are not logged in.

#1 2026-03-09 13:41:50

Wolfyxon
Member
From: Poland
Registered: 2022-11-21
Posts: 76
Website

Feezing under NVIDIA GPU load when an external display is connected

When I connect and activate any external display (over HDMI or DP over USB-C) and then put my GPU under load,
(the method I use to trigger this bug is running glxgears on the dedicated GPU then spam switching windows)
the whole system freezes for around 1-2 seconds. I can't move my mouse, the displays aren't updating.

It's not related to the monitors, cables and adapters I tried, since it also happens when I activate a display with xrandr then physically disconnect it.

This is a fresh install of Arch (installed like 4 days ago as of posting this) configured from scratch on a brand new laptop.

I had this issue before, around 4 years ago on my old Acer Nitro 5 (now I have a Lenovo Legion 5), and also posted on the forum (https://bbs.archlinux.org/viewtopic.php?id=283758), however I decided to post it again so I don't necrobump.
Now I have a completely different laptop and the issue persists, except the external display doesn't freeze permanently.

The only working fix was to downgrade the kernel and nvidia drivers, but that caused other issues due to support being phased out in favor of new versions.
Also newer kernels didn't support the old drivers so I had to stick to that version with a security vulnerability, which is pretty bad.
Another thing is that after dkms modules refuse to compile when there's a GCC version mismatch between the kernel, and compiling it took like 6 hours if not more and that's simply not feasible to do that often.
That's why I don't want to apply that fix again.

System info

Laptop: 83M0 (Legion 5 15AHP10)
Kernel: Linux 6.18.16-1-lts
Display server: Xorg
DM: ly (on tty6)
DE: i3wm
Compositor: picom (unrelated)

GPUs:
- NVIDIA GeForce RTX 5050 Max-Q / Mobile [Discrete]
- AMD Radeon 780M Graphics [Integrated]

Relevant packages:
- nvidia-open-dkms 590.48.01-4
- nvidia-utils 590.48.01-4
- linux-firmware-nvidia 20260221-1
- linux-firmware-amdgpu 20260221-1
- linux-firmware-whence 20260221-1
- linux-firmware-realtek 20260221-1
- sof-firmware 2025.12.2-1

Displays:
- Display (LEN151WQXGA): 2560x1600 in 15", 165 Hz [Built-in] *
- 1920x1080 in 27", 60 Hz [External] *

Logs & outputs

Xorg.0.log: https://0x0.st/Pet-.0.log
journalctl -b: https://0x0.st/PetZ.txt
dmesg: https://0x0.st/PetN.txt

During a freeze, nothing new appears in dmesg and journalctl.
Unsure about the Xorg log as it seems to be saving only when Xorg exits (correct me if I'm wrong and where to look).

Relevant scripts

prime-run

#!/bin/bash
export __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export __VK_LAYER_NV_optimus=NVIDIA_only
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json
exec "$@"

startmonitor

xrandr --output HDMI-1-0 --mode 1920x1080 --left-of eDP-1
What I tried

- Downgrading kernel and drivers (on my old laptop): worked, but caused many other issues (refer back to the explanation)
- Settings graphics mode to discrete in UEFI settings: Caused horribly slow rendering, even outside of Linux.
- Disabling PRIME synchronization
- Setting nvidia_drm.modeset=1

I'm losing my mind. This bug has been haunting me for so long, even after buying a new laptop..

Last edited by Wolfyxon (2026-03-09 16:10:50)

Offline

#2 2026-03-09 16:02:37

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

Re: Feezing under NVIDIA GPU load when an external display is connected

There's only the internal display (connected to the AMD GPU where the server runs) in that Xorg log?

Unsure about the Xorg log as it seems to be saving only when Xorg exits (correct me if I'm wrong and where to look).

https://wiki.archlinux.org/title/Xorg#General explains where to find the log, /var/log/Xorg.0.log would be correct when eg. using SDDM, for ly-dm and likely startx see ~/.local/share/xorg

edid-decode (hex):

00 ff ff ff ff ff ff 00 14 8f 45 42 00 00 00 00
19 22 01 04 b5 20 14 78 02 d0 45 ae 51 3e ba 23
0b 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 00 00 00 10 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 fe 00 4c
45 4e 4f 56 4f 0a 20 20 20 20 20 20 00 00 00 fc
00 4c 45 4e 31 35 31 57 51 58 47 41 0a 20 02 6a

02 03 1d 00 e3 05 80 00 e6 06 05 01 8b 6b 02 6d
1a 00 00 03 02 3c a5 00 a0 8b 02 6b 02 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 85

70 20 79 02 00 20 00 0c 38 ec 11 45 42 00 00 00
00 00 18 00 21 00 1d 80 0c d0 07 00 0a 40 06 00
ee 2a 51 df 23 ba 35 02 0b 02 45 54 ee 5f ee 63
ea 10 23 78 26 00 09 04 00 00 00 00 00 50 00 00
22 00 28 73 f1 0b 05 ff 09 9f 00 4f 00 1f 00 3f
06 7b 0c 31 8c 07 00 73 f1 0b 85 ff 09 9f 00 4f
00 1f 00 3f 06 8f 00 45 80 07 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0 90

----------------

Block 0, Base EDID:
  EDID Structure Version & Revision: 1.4
  Vendor & Product Identification:
    Manufacturer: EDO
    Model: 16965
    Made in: week 25 of 2024
  Basic Display Parameters & Features:
    Digital display
    Bits per primary color channel: 10
    DisplayPort interface
    Maximum image size: 32 cm x 20 cm
    Gamma: 2.20
    Supported color formats: RGB 4:4:4
    First detailed timing includes the native pixel format and preferred refresh rate
  Color Characteristics:
    Red  : 0.6826, 0.3173
    Green: 0.2421, 0.7265
    Blue : 0.1376, 0.0429
    White: 0.3134, 0.3291
  Established Timings I & II: none
  Standard Timings: none
  Detailed Timing Descriptors:
    Dummy Descriptor:
    Dummy Descriptor:
    Alphanumeric Data String: 'LENOVO'
    Display Product Name: 'LEN151WQXGA'
  Extension blocks: 2
Checksum: 0x6a

----------------

Block 1, CTA-861 Extension Block:
  Revision: 3
  Native detailed modes: 0
  Colorimetry Data Block:
    BT2020RGB
  HDR Static Metadata Data Block:
    Electro optical transfer functions:
      Traditional gamma - SDR luminance range
      SMPTE ST2084
    Supported static metadata descriptors:
      Static metadata type 1
    Desired content max luminance: 139 (1015.241 cd/m^2)
    Desired content max frame-average luminance: 107 (507.620 cd/m^2)
    Desired content min luminance: 2 (0.001 cd/m^2)
  Vendor-Specific Data Block (AMD), OUI 00-00-1A:
    Version: 3
    Feature Caps: 0x02
    Minimum Refresh Rate: 60 Hz
    Maximum Refresh Rate: 165 Hz
    Flags 1.x: 0x00
    Flags 2.x: 0xa0
    Maximum luminance: 139 (1015.241 cd/m^2)
    Minimum luminance: 2 (0.001 cd/m^2)
    Unknown: 0x6b 0x02
Checksum: 0x85  Unused space in Extension Block: 98 bytes

----------------

Block 2, DisplayID Extension Block:
  Version: 2.0
  Extension Count: 0
  Display Product Primary Use Case: None of the listed primary use cases; generic display
  Product Identification Data Block (0x20), OUI 38-EC-11:
    Product Code: 16965
    Year of Manufacture: 2024
  Display Parameters Data Block (0x21):
    Image size: 320.0 mm x 200.0 mm
    Display native pixel format: 2560x1600
    Scan Orientation: Left to Right, Top to Bottom
    Luminance Information: Minimum guaranteed value
    Color Information: CIE 1931
    Audio Speaker Information: integrated
    Native Color Chromaticity:
      Primary #1:  (0.683105, 0.316895)
      Primary #2:  (0.241943, 0.727051)
      Primary #3:  (0.137939, 0.042969)
      White Point: (0.312988, 0.329102)
    Native Maximum Luminance (Full Coverage): 507.500000 cd/m^2
    Native Maximum Luminance (10% Rectangular Coverage): 1015.000000 cd/m^2
    Native Minimum Luminance: 0.000600 cd/m^2
    Native Color Depth: 12 bpc
    Display Device Technology: Organic LED
    Native Gamma EOTF: 2.20
  Display Interface Features Data Block:
    Supported bpc for RGB encoding: 10
    Supported color space and EOTF standard combination 1: DCI-P3, BT.2020/SMPTE ST 2084
  Video Timing Modes Type 7 - Detailed Timings Data Block:
    DTD:  2560x1600   60.000061 Hz  16:10   287.760 kHz    782.708000 MHz (aspect 16:10, no 3D stereo)
               Hfront   80 Hsync  32 Hback   48 Hpol N
               Vfront 3122 Vsync   8 Vback   66 Vpol P
    DTD:  2560x1600  165.000169 Hz  16:10   287.760 kHz    782.708000 MHz (aspect 16:10, no 3D stereo, preferred)
               Hfront   80 Hsync  32 Hback   48 Hpol N
               Vfront   70 Vsync   8 Vback   66 Vpol P
  Checksum: 0xb0
Checksum: 0x90

There's a bunch of

[  3429.867] (WW) modeset(0): Present-flip: queue async flip during flip on CRTC 0 failed: Invalid argument

roughly 15 minutes into the session.
The eDP doesn't seem to be VRR capable but there's a 165Hz mode
Please post

xrandr --verbose

with both outputs attached
Do you usually disable the eDP when this happens?
Does it help to run the eDP at 60Hz?

Settings graphics mode to discrete in UEFI settings: Caused horribly slow rendering, even outside of Linux.

:colbertemoji:
Can you post the xorg log for that as well?

- Setting nvidia_drm.modeset=1

Is default anyway and doesn't anything special anymore.

Offline

#3 2026-03-09 16:56:27

Wolfyxon
Member
From: Poland
Registered: 2022-11-21
Posts: 76
Website

Re: Feezing under NVIDIA GPU load when an external display is connected

Thanks for your time!


There's only the internal display (connected to the AMD GPU where the server runs) in that Xorg log?

I had my internal and external displays enabled/connected at the time of posting, but I may have posted the wrong log as you explained below.

Proper Xorg log: https://0x0.st/Pexi.0.log (near the end of it I started and stopped the monitor a couple times)
Verbose xrandr: https://0x0.st/Pex8.txt (both displays are connected & active)

There's a bunch of

[  3429.867] (WW) modeset(0): Present-flip: queue async flip during flip on CRTC 0 failed: Invalid argument

roughly 15 minutes into the session.

Hm I see....
Also this appears during a freeze:

(WW) modeset(0): flip queue retry

I'm searching for a solution...
EDIT: Still haven't found anything that works

Do you usually disable the eDP when this happens?

No, I don't ever disable my laptop screen.

Does it help to run the eDP at 60Hz?

No.

Settings graphics mode to discrete in UEFI settings: Caused horribly slow rendering, even outside of Linux.

:colbertemoji:
Can you post the xorg log for that as well?

I don't think that's relevant as it also affects the UEFI GUI and GRUB, but I haven't actually booted the system with that.
Should I?

Last edited by Wolfyxon (2026-03-09 19:25:17)

Offline

#4 2026-03-09 20:12:41

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

Re: Feezing under NVIDIA GPU load when an external display is connected

Should I?

Yes please. The condition sounds wild.

Also this appears during a freeze:

Ok, but that also happened w/o the external output attached - do you get this when running the eDP at 60Hz?


No output is VRR capable, the HDMI monitor is bog-standard 1080p@60

[   474.193] (EE) event4  - ckb1: CORSAIR M55 RGB PRO Gaming Mouse vM: client bug: event processing lagging behind by 47ms, your system is too slow
[  3044.348] (EE) event4  - ckb1: CORSAIR M55 RGB PRO Gaming Mouse vM: client bug: event processing lagging behind by 95ms, your system is too slow
[  4883.047] (EE) event12 - ELAN06FA:00 04F3:327E Touchpad: kernel bug: Touch jump detected and discarded.
[  6523.287] (EE) event12 - ELAN06FA:00 04F3:327E Touchpad: kernel bug: Touch jump detected and discarded.
[  6523.287] (EE) event12 - ELAN06FA:00 04F3:327E Touchpad: kernel bug: Touch jump detected and discarded.
[  6523.315] (EE) event12 - ELAN06FA:00 04F3:327E Touchpad: kernel bug: Touch jump detected and discarded.
[  6523.315] (EE) event12 - ELAN06FA:00 04F3:327E Touchpad: kernel bug: Touch jump detected and discarded.
[  6523.315] (EE) event12 - ELAN06FA:00 04F3:327E Touchpad: WARNING: log rate limit exceeded (5 msgs per 24h). Discarding future messages.
[ 13282.868] (EE) event4  - ckb1: CORSAIR M55 RGB PRO Gaming Mouse vM: client bug: event processing lagging behind by 41ms, your system is too slow

"your system is too slow" sure sounds like there's a problem.


(the method I use to trigger this bug is running glxgears on the dedicated GPU then spam switching windows)
the whole system freezes for around 1-2 seconds. I can't move my mouse, the displays aren't updating.

Just "prime-run glxgears" doesn't do?
Does prime-run'ning any of https://aur.archlinux.org/packages?O=0&K=unigine ? (Ie. putting some decent task on the GPU but not "spam switching windows")?
Are the windows on different monitors? Can you reproduce this when they're on the same monitor? Is glxgears running on the eDP or the HDMI output? Does it matter?

DE: i3wm
Compositor: picom (unrelated)

What about eg. uncomposited openbox?

Offline

#5 2026-03-09 21:45:10

Wolfyxon
Member
From: Poland
Registered: 2022-11-21
Posts: 76
Website

Re: Feezing under NVIDIA GPU load when an external display is connected

Oh I didn't expect that. The visual lag when discrete graphics mode is set does not affect Linux.
It also seems to fix the issue mostly, which is a huge step.

In both modes when I have something running on the dedicated GPU, like glxgears and put more GPU load like switching a window, I see the app (here glxhears) shortly lag for a split of a second.
Now in this mode, since only the discrete GPU is activate it affects the whole system.
It is a little annoying, but games don't freeze when I just play them and not switch windows constantly and that's not something I do constantly, so I can bear that if it can't be fixed further.

So the culprit is the integrated GPU, I assume there is some sort of a sync issue between them two?
Since my laptop seems to support switchable graphics (but I'm not exactly sure), maybe I should set that up if that can't be fixed. I could switch to nvidia only when using a monitor and back to hybrid when just the internal one.
Not utilizing my both GPUs does feel like a shame.

Oh also a little side note if that's important: running apps with prime-run in the discrete mode causes them to not render (black screen or background), but I can add detection in my prime-run script to adapt to that.

Here's my log https://0x0.st/Pe65.0.log

Note: The responses below mention the normal graphics mode.

Ok, but that also happened w/o the external output attached - do you get this when running the eDP at 60Hz?

It still freezes, but I don't know about the error message. I'll test that tomorrow, I have to go after finishing this post.

Just "prime-run glxgears" doesn't do?

Well yes. The more load is put on the GPU is more often it freezes.
Switching windows just makes it faster since it causes a bunch of applications to repeatedly re-render I assume.

What about eg. uncomposited openbox?

I already tried different WMs without a compositor. It's not that.

Offline

#6 2026-03-09 22:57:41

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

Re: Feezing under NVIDIA GPU load when an external display is connected

Switching windows just makes it faster since it causes a bunch of applications to repeatedly re-render I assume.

Not necessarily, esp. not when using a compositor - does running 5 instances of glxgears cause the same?

So the culprit is the integrated GPU, I assume there is some sort of a sync issue between them two?

Seems so, https://wiki.archlinux.org/title/PRIME#Reverse_PRIME
What happens is that you render on the GPU, hand that to the APU and that has to copy the composited (this has nothing to do w/ picom, just bricking the windows and desktop together) frame (part) to the GPU's crtc for output.

system freezes for around 1-2 seconds. I can't move my mouse

is excessive, though - and there're no amdgpu stalls/resets in the journal you posted.

Mar 09 14:32:13 legion kernel: usb 1-2: USB disconnect, device number 6
Mar 09 14:32:13 legion ckb-next-daemon[787]: [I] Stopping input thread for /dev/input/ckb1
Mar 09 14:32:13 legion ckb-next-daemon[787]: [I] Disconnecting /dev/input/ckb1
Mar 09 14:32:13 legion ckb-next-daemon[787]: [I] Removed device path /dev/input/ckb1
Mar 09 14:32:13 legion ckb-next-daemon[787]: [I] Caught internal signal SIGUSR2
Mar 09 14:32:13 legion ckb-next-daemon[787]: [I] ckb1: Bragi poll thread shutting down due to 4 (Interrupted system call)
Mar 09 14:32:25 legion kernel: usb 1-2: new full-speed USB device number 7 using xhci_hcd
Mar 09 14:32:25 legion kernel: usb 1-2: New USB device found, idVendor=1b1c, idProduct=1b70, bcdDevice= 4.07
Mar 09 14:32:25 legion kernel: usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Mar 09 14:32:25 legion kernel: usb 1-2: Product: CORSAIR M55 RGB PRO Gaming Mouse
Mar 09 14:32:25 legion kernel: usb 1-2: Manufacturer: Corsair
Mar 09 14:32:25 legion kernel: usb 1-2: SerialNumber: 1901F018AF1E90C35A6EF5E8F5001BC2
Mar 09 14:32:25 legion kernel: input: Corsair CORSAIR M55 RGB PRO Gaming Mouse as /devices/pci0000:00/0000:00:08.1/0000:64:00.3/usb1/1-2/1-2:1.0/0003:1B1C:1B70.000C/input/input33
Mar 09 14:32:25 legion kernel: hid-generic 0003:1B1C:1B70.000C: input,hidraw0: USB HID v1.11 Mouse [Corsair CORSAIR M55 RGB PRO Gaming Mouse] on usb-0000:64:00.3-2/input0
Mar 09 14:32:25 legion kernel: hid-generic 0003:1B1C:1B70.000D: hiddev96,hidraw1: USB HID v1.11 Device [Corsair CORSAIR M55 RGB PRO Gaming Mouse] on usb-0000:64:00.3-2/input1
Mar 09 14:32:25 legion kernel: hid-generic 0003:1B1C:1B70.000E: hiddev97,hidraw2: USB HID v1.11 Device [Corsair CORSAIR M55 RGB PRO Gaming Mouse] on usb-0000:64:00.3-2/input2
Mar 09 14:32:25 legion kernel: input: Corsair CORSAIR M55 RGB PRO Gaming Mouse as /devices/pci0000:00/0000:00:08.1/0000:64:00.3/usb1/1-2/1-2:1.3/0003:1B1C:1B70.000F/input/input34
Mar 09 14:32:25 legion kernel: hid-generic 0003:1B1C:1B70.000F: input,hidraw3: USB HID v1.11 Keyboard [Corsair CORSAIR M55 RGB PRO Gaming Mouse] on usb-0000:64:00.3-2/input3
Mar 09 14:32:25 legion mtp-probe[10092]: checking bus 1, device 7: "/sys/devices/pci0000:00/0000:00:08.1/0000:64:00.3/usb1/1-2"
Mar 09 14:32:25 legion mtp-probe[10092]: bus: 1, device: 7 was not an MTP device
Mar 09 14:32:25 legion systemd-logind[788]: Watching system buttons on /dev/input/event4 (Corsair CORSAIR M55 RGB PRO Gaming Mouse)
Mar 09 14:32:25 legion ckb-next-daemon[787]: [I] Connecting CORSAIR M55 RGB PRO Gaming Mouse at /dev/input/ckb1
Mar 09 14:32:26 legion kernel: input: ckb1: CORSAIR M55 RGB PRO Gaming Mouse vKB as /devices/virtual/input/input35
Mar 09 14:32:26 legion mtp-probe[10169]: checking bus 1, device 7: "/sys/devices/pci0000:00/0000:00:08.1/0000:64:00.3/usb1/1-2"
Mar 09 14:32:26 legion mtp-probe[10169]: bus: 1, device: 7 was not an MTP device
Mar 09 14:32:26 legion ckb-next-daemon[787]: [I] Starting input thread for /dev/input/ckb1
Mar 09 14:32:26 legion kernel: input: ckb1: CORSAIR M55 RGB PRO Gaming Mouse vM as /devices/virtual/input/input36
Mar 09 14:32:26 legion ckb-next-daemon[787]: [I] Found EP 0x82 at /sys/devices/pci0000:00/0000:00:08.1/0000:64:00.3/usb1/1-2/1-2:1.0/ep_82
Mar 09 14:32:26 legion ckb-next-daemon[787]: [I] Found EP 0x84 at /sys/devices/pci0000:00/0000:00:08.1/0000:64:00.3/usb1/1-2/1-2:1.1/ep_84
Mar 09 14:32:26 legion ckb-next-daemon[787]: [I] Found EP 0x83 at /sys/devices/pci0000:00/0000:00:08.1/0000:64:00.3/usb1/1-2/1-2:1.2/ep_83
Mar 09 14:32:26 legion ckb-next-daemon[787]: [I] Found EP 0x81 at /sys/devices/pci0000:00/0000:00:08.1/0000:64:00.3/usb1/1-2/1-2:1.3/ep_81
Mar 09 14:32:26 legion ckb-next-daemon[787]: [W] bragi_get_property (bragi_common.c:13): Failed to get property 0x15. Device said it's not supported.
Mar 09 14:32:26 legion ckb-next-daemon[787]: [W] bragi_get_property (bragi_common.c:13): Failed to get property 0x16. Device said it's not supported.
Mar 09 14:32:26 legion ckb-next-daemon[787]: [W] bragi_get_property (bragi_common.c:13): Failed to get property 0x96. Device said it's not supported.
Mar 09 14:32:26 legion ckb-next-daemon[787]: [I] Setup finished for /dev/input/ckb1
Mar 09 14:32:26 legion systemd-logind[788]: Watching system buttons on /dev/input/event3 (ckb1: CORSAIR M55 RGB PRO Gaming Mouse vKB)

Just a hunch, do you have a $5 mouse?


Edit:
At how many fps does glxgears run? 60/165 (ie. vsync aligned) or 20.000 ?

Last edited by seth (2026-03-09 23:02:49)

Offline

Board footer

Powered by FluxBB