@Monzi But is it fixed by the Heap extension in proton-vkd3d?
Dear creat,
Hi,
Could you please let us know which was the last driver version where you did not encounter this issue?
~Thanks
Yes, using CachyOS-Proton with PROTON_VKD3D_HEAP=1 fixes it.
I know it still worked flawlessly on 590.48.01, which for me was the version directly prior to it breaking on 595. I could also confirm this, as my Laptop (using NVIDIA GeForce RTX 4070 Laptop GPU) still has that version installed. The attached screenshot was taken on the Laptop on 590.48.01 and shows the same game-area (similar, but not exact same save state) without the blockyness.
I had of course updated my main system to the non-beta of 595 as that got released, and it did neither improve nor worsen the issue.
Indeed, thanks, the descriptor heaps vkd3d-proton branch prevents the Xid 109 lockups on most games mentioned (Iāve mentioned that workaround in several of my posts in this thread).
Nevertheless, itās not a proper fix (at least not yet), because that work is still in development for vkd3d-proton, and in some games (Elden Ring, Resident Evil Requiem from personal testing) that branch currently causes visual glitches and performance drops (seems to cause issues usually with RT enabled).
I get this same error when trying to enable HDR in the settings menu in Elden Ring under 595.58.03:
[destroyed object]: error 5: min_lum canāt be higher or equal to max_lum
It looks like the previously required VK_hdr_layer had a guard around invalid min_lum and max_lum values here, which prevents the crash:
Presumably the current driver doesnāt have this.
I turned on the tracing logs in proton and dvk-nvapi and found a couple of candidates for adding a guard. I also checked how these functions worked in Windows and it seems like both NvAPI_Disp_HdrColorControl in nvapi and IDXGIOutput6::GetDesc1 in dxgi will both populate the struct with the monitors min and max luminance if the incoming values are 0, whereas the dxvk-nvapi and dxvk implementations just use the values passed in by the caller verbatim.
So I put together some quick patches for:
The results are that either of the dxvk-nvapi or dxvk changes will fix the crash when enabling HDR in Elden Ring with the 595 driver (and can also play the game) but the vkd3d-proton one did not. The vkd3d-proton change might have some value for another game though?
The dxvk-nvapi change works closest to windows as it seems to get the values from the monitorās EDID(?) whereas the dxvk values must be some sort of mock values set somewhere. Since Iām not a C/C++ or graphics dev so I didnāt really want to dig much deeper other than testing the theory that fixing the values would make it work.
For me itās been maybe a 50:50 chance it helps
Most of the games I have XID109 in are UE5+DX12, some of them get further with the heap flag but then crash later anyway with the same issue
I have also seen massive visual glitches in Hellblade 2, especially when looking at the sea during the initial walk on the shore, on 595.44.03 and 5080. Also in Avowed, although to a much lesser extent. Vulkan beta drivers are currently broken.
Thanks for the info, but suggesting that people should be banned because theyāre āinpoliteā is beyond ridiculous.
[ 146.044344] NVRM: Xid (PCI:0000:01:00): 109, pid=5136, name=GameThread, channel 0x0000001a, errorString CTX SWITCH TIMEOUT, Info 0x19c00c
[ 237.175050] NVRM: Xid (PCI:0000:01:00): 109, pid=6041, name=GameThread, channel 0x0000001a, errorString CTX SWITCH TIMEOUT, Info 0x19c00c
GPU: RTX 5070 GB205 Blackwell
- Driver: 595.58.03
- OS: Nobara Linux
- DE: KDE Plasma / kwin_wayland
- Games: The Last Caretaker, StarRupture (both UE5, via Proton)
- Repro rate: 100%
Seems like the upgrade to 595.58.03 of Nvidia driver (alongside 6.19.10 or 6.19.11 kernel upgrade) causes graphics hang when cursor enters second monitor attached to dGPU via HDMI (AMD iGPU + Nvidia dGPU ā RTX 3070 Laptop GPU):
Mar 27 16:36:05 jj-pc kwin_wayland[2335]: 0x500: GL_INVALID_ENUM error generated. Invalid <face>.
Mar 27 16:36:05 jj-pc kwin_wayland[2335]: Invalid framebuffer status: "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"
Mar 27 16:36:05 jj-pc kernel: BUG: kernel NULL pointer dereference, address: 0000000000000028
Mar 27 16:36:05 jj-pc kernel: #PF: supervisor read access in kernel mode
Mar 27 16:36:05 jj-pc kernel: #PF: error_code(0x0000) - not-present page
Mar 27 16:36:05 jj-pc kernel: PGD 291cf2067 P4D 291cf2067 PUD 0
Mar 27 16:36:05 jj-pc kernel: Oops: Oops: 0000 [#1] SMP NOPTI
Mar 27 16:36:05 jj-pc kernel: CPU: 15 UID: 1000 PID: 2335 Comm: kwin_wayland Tainted: P OE 6.19.10-1-MANJARO #1 PREEMPT(full) bd7ded2c69befb6a768a8cfe825d17cc06132736
Mar 27 16:36:05 jj-pc kernel: Tainted: [P]=PROPRIETARY_MODULE, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
Mar 27 16:36:05 jj-pc kernel: Hardware name: LENOVO 82JU, BIOS 01/16/2024
Mar 27 16:36:05 jj-pc kernel: RIP: 0010:_nv000555kms+0x4/0x10 [nvidia_modeset]
Mar 27 16:36:05 jj-pc kernel: Code: 87 50 01 00 00 d0 1a 51 c0 48 c7 87 38 01 00 00 30 19 51 c0 48 c7 87 40 01 00 00 d0 1c 51 c0 c3 66 0f 1f 44 00 00 f3 0f 1e fa <0f> b6 47 28 c3 0f 1f 80 00 00 00 00 89 c9 48 8d 04 49 >
Mar 27 16:36:05 jj-pc kernel: RSP: 0018:ffffce9fced73bd8 EFLAGS: 00010206
Mar 27 16:36:05 jj-pc kernel: RAX: ffffffffc05120e0 RBX: ffff89bf6e652000 RCX: 0000040000000000
Mar 27 16:36:05 jj-pc kernel: RDX: 0000000000000000 RSI: ffff89bddcc82238 RDI: 0000000000000000
Mar 27 16:36:05 jj-pc kernel: RBP: ffffce9fced73c08 R08: ffff89bde28931e8 R09: 0000000000000000
Mar 27 16:36:05 jj-pc kernel: R10: ffff89bddcc82260 R11: ffffce9fced73b48 R12: 0000000000000000
Mar 27 16:36:05 jj-pc kernel: R13: ffff89bf6e652008 R14: 0000000000000000 R15: 0000000000000000
Mar 27 16:36:05 jj-pc kernel: FS: 00007fd32f77ac40(0000) GS:ffff89cc25883000(0000) knlGS:0000000000000000
Mar 27 16:36:05 jj-pc kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Mar 27 16:36:05 jj-pc kernel: CR2: 0000000000000028 CR3: 0000000229562000 CR4: 0000000000f50ef0
Mar 27 16:36:05 jj-pc kernel: PKRU: 55555554
Mar 27 16:36:05 jj-pc kernel: Call Trace:
Mar 27 16:36:05 jj-pc kernel: <TASK>
Mar 27 16:36:05 jj-pc kernel: nv_drm_framebuffer_create+0x20c/0x470 [nvidia_drm a87bb6aa1b412d30e2af61209bc7b241db05c495]
Mar 27 16:36:05 jj-pc kernel: drm_internal_framebuffer_create+0x426/0x5a0
Mar 27 16:36:05 jj-pc kernel: ? __pfx_drm_mode_addfb2_ioctl+0x10/0x10
Mar 27 16:36:05 jj-pc kernel: drm_mode_addfb2+0x45/0x110
Mar 27 16:36:05 jj-pc kernel: ? drm_dev_enter+0x1d/0x60
Mar 27 16:36:05 jj-pc kernel: drm_ioctl_kernel+0xae/0x100
Mar 27 16:36:05 jj-pc kernel: drm_ioctl+0x29b/0x520
Mar 27 16:36:05 jj-pc kernel: ? __pfx_drm_mode_addfb2_ioctl+0x10/0x10
Mar 27 16:36:05 jj-pc kernel: __x64_sys_ioctl+0x97/0xe0
Mar 27 16:36:05 jj-pc kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Mar 27 16:36:05 jj-pc kernel: do_syscall_64+0x81/0x610
Mar 27 16:36:05 jj-pc kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Mar 27 16:36:05 jj-pc kernel: ? __x64_sys_clock_gettime+0x96/0xd0
Mar 27 16:36:05 jj-pc kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Mar 27 16:36:05 jj-pc kernel: ? do_syscall_64+0x81/0x610
Mar 27 16:36:05 jj-pc kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Mar 27 16:36:05 jj-pc kernel: ? do_syscall_64+0x81/0x610
Mar 27 16:36:05 jj-pc kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Mar 27 16:36:05 jj-pc kernel: ? exc_page_fault+0x7e/0x1a0
Mar 27 16:36:05 jj-pc kernel: entry_SYSCALL_64_after_hwframe+0x76/0x7e
Mar 27 16:36:05 jj-pc kernel: RIP: 0033:0x7fd33632504d
Mar 27 16:36:05 jj-pc kernel: Code: 04 25 28 00 00 00 48 89 45 c8 31 c0 48 8d 45 10 c7 45 b0 10 00 00 00 48 89 45 b8 48 8d 45 d0 48 89 45 c0 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1a 48 8b 45 c8 64 48 2b 04 25 >
Mar 27 16:36:05 jj-pc kernel: RSP: 002b:00007ffea6b21b60 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
Mar 27 16:36:05 jj-pc kernel: RAX: ffffffffffffffda RBX: 00007ffea6b21d44 RCX: 00007fd33632504d
Mar 27 16:36:05 jj-pc kernel: RDX: 00007ffea6b21bf0 RSI: 00000000c06864b8 RDI: 0000000000000017
Mar 27 16:36:05 jj-pc kernel: RBP: 00007ffea6b21bb0 R08: 00007ffea6b21da0 R09: 000055dde853b098
Mar 27 16:36:05 jj-pc kernel: R10: 00007fd3396bfe79 R11: 0000000000000246 R12: 00007ffea6b21bf0
Mar 27 16:36:05 jj-pc kernel: R13: 00000000c06864b8 R14: 0000000000000017 R15: 000055dde853b060
Mar 27 16:36:05 jj-pc kernel: </TASK>
Mar 27 16:36:05 jj-pc kernel: Modules linked in: rfcomm snd_seq_dummy snd_hrtimer snd_seq snd_seq_device tun ip6table_nat ip6table_filter ip6_tables iptable_nat iptable_filter ip_tables x_tables qrtr uhid cmac overlay >
Mar 27 16:36:05 jj-pc kernel: snd_intel_sdw_acpi uvc ch341 btbcm snd_hwdep snd_pci_acp5x videobuf2_memops r8169 ptp kvm_amd btintel lenovo_wmi_gamezone snd_pcm videobuf2_v4l2 pps_core sp5100_tco ucsi_acpi realtek snd_>
Mar 27 16:36:05 jj-pc kernel: ghash_clmulni_intel nvme_core aesni_intel serio_raw nvme_keyring nvme_auth ccp hkdf nvidia_drm(POE) nvidia_uvm(POE) nvidia_modeset(POE) nvidia(POE) hid_apple amdgpu amdxcp i2c_algo_bit dr>
Mar 27 16:36:05 jj-pc kernel: CR2: 0000000000000028
Mar 27 16:36:05 jj-pc kernel: ---[ end trace 0000000000000000 ]---
Mar 27 16:36:05 jj-pc kernel: RIP: 0010:_nv000555kms+0x4/0x10 [nvidia_modeset]
Mar 27 16:36:05 jj-pc kernel: Code: 87 50 01 00 00 d0 1a 51 c0 48 c7 87 38 01 00 00 30 19 51 c0 48 c7 87 40 01 00 00 d0 1c 51 c0 c3 66 0f 1f 44 00 00 f3 0f 1e fa <0f> b6 47 28 c3 0f 1f 80 00 00 00 00 89 c9 48 8d 04 49 >
Mar 27 16:36:05 jj-pc kernel: RSP: 0018:ffffce9fced73bd8 EFLAGS: 00010206
Mar 27 16:36:05 jj-pc kernel: RAX: ffffffffc05120e0 RBX: ffff89bf6e652000 RCX: 0000040000000000
Mar 27 16:36:05 jj-pc kernel: RDX: 0000000000000000 RSI: ffff89bddcc82238 RDI: 0000000000000000
Mar 27 16:36:05 jj-pc kernel: RBP: ffffce9fced73c08 R08: ffff89bde28931e8 R09: 0000000000000000
Mar 27 16:36:05 jj-pc kernel: R10: ffff89bddcc82260 R11: ffffce9fced73b48 R12: 0000000000000000
Mar 27 16:36:05 jj-pc kernel: R13: ffff89bf6e652008 R14: 0000000000000000 R15: 0000000000000000
Mar 27 16:36:05 jj-pc kernel: FS: 00007fd32f77ac40(0000) GS:ffff89cc25883000(0000) knlGS:0000000000000000
Mar 27 16:36:05 jj-pc kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Mar 27 16:36:05 jj-pc kernel: CR2: 0000000000000028 CR3: 0000000229562000 CR4: 0000000000f50ef0
Mar 27 16:36:05 jj-pc kernel: PKRU: 55555554
Mar 27 16:36:05 jj-pc kernel: note: kwin_wayland[2335] exited with irqs disabled
Rolling back to 590.48.01 and 6.19.9 fixes the issue. Iām on Manjaro with KDE Plasma / kwin_wayland. Most likely kernel version independent.
Just wanted to say I still suffer from the sleep bug but have found a workaround that does not involve unplugging and reinserting the DP cable but might be specific to my monitor only. With my monitor, an ASUS PG32UCDM, in the settings there are two power setting modes: standard and power savings. Typically, it stays in Standard mode all the time when this bug happens. Toggling it to Power Savings mode awakens the GPU and my peripherals hooked up to the built-in KVM switch. After a few seconds, it shows the desktop and everything is functioning again. This method is more ideal for me because of the way the cables inputs are laid out on on the back of the monitor. Getting to them can be a PITA sometimes.
Finally got the update and the Substance Painter situation is even worse now where any model just disappears as soon as I import them into a scene.
Can you submit PRs to the dxvk-nvapi? I believe that would be the most suitable candidate to fix on both DX11/DX12 use cases. It would be better this would get fixed driver level tbh.
I had several black-screen and freezing issues alt-tabbing and sometimes booting up games at 4k 240hz. Dropped my Wayland refresh rate to 120hz and the problems went away. Switching to x11 at 240hz also made the issue go away.
I had to disable ādeep sleepā on my LG monitor to have it wakeup properly with nvidia drivers on linux
Please share Nvidia-bug-report to proceed ahead.
Are you using Plasma by any chance? Thereās an issue in the way NVIdia driver handles Display Stream Compression but it appears it only or mainly affects KDE Plasma. Users have been reporting related issues to KDE devs, but they claim itās actually a problem in NVidia driver. I donāt remember reading about that particular freezing problem, but the rest of your post suggests it could be DSC related. Have you tried using a different DE like GNOME?
I am using Plasma, yes and 240hz does enable DSC. If I disable DSC on my monitor it drops to 120hz and does not have the issue anymore. I have not tried gnome yet.
