I am experiencing hard GPU freezes on Fedora 44 under Wayland while gaming via Proton/DXVK. The system locks up entirely, and nvidia-smi drops the card (No devices were found) until I perform a full cold reboot.
System Specs
OS: Fedora 44 (KDE Plasma Desktop Edition)
Compositor: KWin Wayland
GPU: NVIDIA GeForce GTX 1650 Mobile (GM107/Turing hybrid)
Driver:610.57.04 (Proprietary package loading open kernel modules backend)
Persistence Mode: Off
Core Error Logs (dmesg/messages)
kernel: [drm:__nv_drm_semsurf_wait_fence_work_cb [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Failed to register auto-value-update on pre-wait value for sync FD semaphore surface
kernel: NVRM: GPU0 kgmmuInvalidateTlb_GM107: TLB invalidation failed waiting for prior invalidate (status=0x0000000f), vaspaceFlags 0x101, scope 0x2, GFID 0
kernel: NVRM: _issueRpcLarge: rpcSendMessage failed with status 0x0000000f for fn 76!
kernel: NVRM: nvAssertFailedNoLog: Assertion failed: 0 @ rpc.c:2095
nvidia-powerd[805]: ERROR! Failed to get AC Line status
Proposed Workaround By AI
The issue appears to be a race condition/memory state loss between Wayland’s explicit sync protocols and the driver’s power state transitions (Persistence-M: Off).
I have been advised to create a user modprobe override to enforce VRAM preservation to a persistent disk path (btrfs partition with 325GB free):
Nonsense! pls read the nvidia driver documentation instead of wasting time with AI. Both options change settings how the system saves VRAM while suspended.
EDIT: I see 610 is the latest driver in the rpmfusion-nonfree-nvidia-driver repo, for some reason. Presumably that is the repo you are using. You may consider configuring the full RPM Fusion nonfree repo instead, as per these instructions: https://rpmfusion.org/Configuration
Thank you for your response. And yes, I tried to go though the official documentation. However, I am new to Linux, so far I could not find anything that relates to my issue. I am mostly relying on AI or Reddit. But I thought asking to the forum would give me some correct and trusted answers.
Regarding the issue, I would like to provide more details:
It occurs when I am trying to play a game via proton GE. The game crashes in the middle of the gameplay with the error code: vk_error_device_lost.
From the Reddit someone asked me for journal logs, and upon the crash this seems to be the error code by driver: __nv_drm_semsurf_wait_fence_work_cb.
After the crash, the GPU actually gets frozen/lost. The shutdown also hands, that I would need to force shut down, and boot it up to get it working again.
At times there is a delay between having the packages available in the rpmfusion-nonfree-updates repo and when they are available in the rpmfusion-nonfree-nvidia-driver repo. It seems this is one of those instances and after configuring the rpmfusion-nonfree-updates repo you were able to update to the latest available driver version.
what exactly happens when you run into this issue? Does only the game crash and you can continue using the current desktop session? Or is your session also affected by this?
you could try disabling explicit sync or try replicating with X11.
__NV_DISABLE_EXPLICIT_SYNC=1 disables explicit sync for a program . Try adding that to the games command line .
Looks good to me. And you got the updated driver - great!
One small thing you may want to do is to disable the rpmfusion-nonfree-nvidia-driver and rpmfusion-nonfree-steam repos since you now have rpmfusion-nonfree which is a superset of them.
The steam packages within the rpmfusion-nonfree-steam repo is also contained within the rpmfusion-nonfree or rpmfusion-nonfree-updates repos. If the user chooses the steam repo can be disabled though doing so is unnecessary.
Disabling the rpmfusion-nonfree-nvidia-driver repo is unnecessary since dnf looks at both that repo and rpmfusion-nonfree-updates and automatically selects the latest packages for installation or updates.
In both cases, dnf chooses the latest version of packages to install and those repos do not conflict.
For the purist limiting the repos may matter a lot, but the only extra time & data involved is limited to the metadata download from the repo.
That is usually only time consuming if the --refresh option is used since there is an automatic periodic refresh of metadata that keeps the system info fairly current. Even when using refresh it only takes a few seconds to download the metadata from about 12 repos I have configured.
Thus, it seldom has any impact for the average user. New users should not even worry about that unless it introduces a noticeable delay into the process.
This part of the discussion is off topic for the issue posed by the OP so should not continue.