VK_KHR_present_{id,wait} causes device loss on Nvidia 525.60.11 on PRIME setup

Since I upgraded my video driver from NVidia 520.x to 525.60 some apps stopped working - specifically, any game that uses VKD3D and some (but not all) emulators that use the Vulkan API. After some digging I found out what they had in common: they all relied on the VK_KHR_present_{id,wait} vulkan extensions.

In fact, disabling said extensions when running a DX12/VKD3D game (by setting the VKD3D_DISABLE_EXTENSIONS=VK_KHR_present_id,VK_KHR_present_wait env variable) is a workaround - Control, the game I first noticed the problem, runs just fine with said env variable.

My system specs:
OS: Arch Linux with 6.0.11 kernel
CPU: Intel Core i5-12500H
GPU: RTX 3050 Mobile
Driver: Nvidia 525.60

Just to be sure I rolled back my driver to 520.x for testing purposes and everything works fine with it.

Nvidia bug report log:

nvidia-bug-report.log.gz (576.9 KB)

1 Like

We have filed a bug 3903889 internally for tracking purpose.
We are currently debugging it and will update it is fixed and driver is released publicly.

1 Like

We were able to root cause the issue and fix is integrated in drivber.
Shall confirm once driver is released publicly.

1 Like

Any news on this? Was it already released? 525.89.02 still has it. Is it regression or fix still not here?
Here is issue from vkd3d-proton github:

1 Like

Hi. The bug still exists in driver “VIDIA-SMI 525.89.02 Driver Version: 525.89.02 CUDA Version: 12.0”.

It affects most/all DirectX 12 games running via VKD3D. The symptom: They hang at startup, freezing the entire computer for a few minutes at a time so that not even the mouse cursor can render, and then the game rolls smoothly for a little while, until it suddenly freezes the computer again.

But be aware… VKD3D coded a workaround to disable the broken Vulkan extensions in NVIDIA’s driver. So if you want to troubleshoot the issue and reproduce it internally, you need to build VKD3D from source and remove both of the bugfixes mentioned below:

There are two fixes for NVIDIA bugs there. The Vulkan present id/wait hang, and some queue/work related hang. Those bugs will be masked by VKD3D if you don’t remove those workarounds. :)