What’s the current state of the fix and how long should we expect to wait until its arriving on drivers?
It’s already in the Vulkan developer beta drivers, and it seems it’ll be in 595, which should release soon. But the vkd3d-proton side still needs a lot of work, so it’ll likely take a few months until everything is ironed-out and available in Proton by default.
VK_EXT_descriptor_heap extension was added to the lastest 595.45.04 drivers
- Added support for the
VK_EXT_descriptor_heapextension. - Fixed a bug that caused GPU hangs and Xid errors in Black Myth: Wukong.
- Added support for DRI3 version 1.2.
- Added support for the
VK_EXT_present_timingextension. - Fixed hang when NVIDIA Smooth Motion is enabled in applications that use VK_KHR_present_id2.
- Modified nvidia.ko to handle video memory preservation on its own when the open kernel modules are in use if NVreg_UseKernelSuspendNotifiers=1 is enabled. When the proprietary driver is in use, or if kernel suspend notifiers are disabled, video memory preservation requires using the /proc/driver/nvidia/suspend interface for suspend and resume notifications.
See the chapter titled “Configuring Power Management Support” in the README for more information. - Enabled the nvidia-drm.ko modeset=1 parameter by default.
- Updated the driver to allow nvidia-smi to reset GPUs while nvidia-drm is loaded with the modeset=1 parameter enabled, as long as no other processes are using the GPU.
- Added a new application profile - CudaNoStablePerfLimit - that allows CUDA-using apps to reach P0 PState. See the ‘Application Profiles’ appendix of the driver README for details.
- Raised the minimum supported Wayland version to 1.20.
- Fixed a bug that prevented the PowerMizer preferred mode dropdown menu in the nvidia-settings control panel from functioning correctly on Wayland.
- Raised the minimum supported glibc version to 2.27.
- Improved the performance of recreating Vulkan swapchains. This helps prevent stuttering when resizing Vulkan application windows.
- Raised the minimum supported X.Org xserver version to 1.17 (video driver ABI version 19).
- Fixed a bug that caused adaptive sync displays to go blank when connected with an active USB-C-to-HDMI adapter.
- Fixed a bug that could cause Vulkan swapchains to stop presenting new frames on X11.
Here’s the discussion.
Most people here may be aware, but as a reminder, the presence of the VK_EXT_descriptor_heap extension is good news, but just part of the puzzle.
The Proton VKD3D code has to support it, and that work is still in draft/prototype stage.
The CachyOS Proton version has a beta with those vulkan extensions in it right now so it won’t be much longer. Though from what I’m seeing from various anecdotal experiences, it’s a mixed bag of improved to worse.
The implementation in VKD3D is still just a placeholder for comparison while it’s being developed, so any effect you see is essentially just a placebo at this point.
As mentioned, the VKD3D work is marked as in the draft/prototype stage, and the author stated it is “not ready for wide testing yet”.
I respectfully encourage not trying to incorporate a partial version of an in-development update.
New NVIDIA Vulkan Beta 595 Driver
March 9th, 2026 - Windows 595.84, Linux 595.44.02
-
New:-
descriptorHeapCaptureReplay support -
Image compression support for multi-planar YCbCr formats -
DMA-BUF export with DRM format modifiers for YCbCr formats (compression support pending)
-
-
Fixes:-
VK_EXT_descriptor_heap performance improvements(the most important) -
Fix descriptor heap alignment requirements -
Fix depth image corruption after copy on compute or transfer only queue -
Use VkRenderingAttachmentInfo.resolveMode correctly for dynamic rendering color resolve -
Improve device lost behavior from affecting other devices in the instance -
Fix depth image feedback loop detection in vkCmdSetRenderingInputAttachmentIndices -
Miscellaneous fixes and improvements for Vulkan video -
Fix corruption with custom resolve and mutlisample attachment storeOp not being STORE_OP_STORE -
Fixed an issue with AV1 encoding producing scrambled output on Blackwell GPUs
-
Right, but as noted by Negativo, who packages Nvidia drivers for Linux and I believe works for Nvidia: New 595 NVIDIA driver and Proton guide – negativo17.org
In regard to VK_EXT_descriptor_heap, “the vkd3d-proton part is still pending”
Negativo is aka scaronni ;-)
Has anyone checked maybe if it provides something new comparing to 595.45.04? The numbering suggests that it may be just lately published pre-release of what later became 595.45.04, but maybe I’m wrong…
595.44.02 was released after 595.45.04. Vulkan Beta Driver is parallel branch with its own numeration. It is more advanced in terms, of Vulkan, even with lower number, because it’s based on the first number, 595.45.04 in this case.
@amrits Did we ever have a follow-up on this?
I also report on the latest 595 driver the low power draw (but 90% GPU usage) on Starfield, but I believe this is not only Heaps related.
So what’s missing?
It seems the last piece of the puzzle is the descriptor heap implementation on vkd3d-proton right?
Sad to see its moving so slowly, last commit was over half a month ago.
I’ve been digging through the source code for three weeks now, and VK_EXT_descriptor_heap has actually been fully implemented in the descriptor heap test vkd3d branch for quite some time. Но as you can see, it didn’t deliver the performance boost everyone was expecting.
That’s not the main issue, though—I’ve spotted some other bottlenecks in the code, particularly in the hot paths used by Unreal Engine 5. I might share the source and go into more detail later. I’ve managed to fix a huge part of it already, but I won’t be able to fix everything. The engine itself sends unoptimized, ‘spammy’ command buffers, and there’s no way to fix that on the VKD3D side.
Or maybe I just don’t see a way yet; perhaps future AI models will spot something in the code that I’m missing.
@stfroz, while comments on the PR are blocked, a few 3rd party folks have contributed patches directly to the branch, so please do send yours as well :)