protonscr

vkd3d-proton.cache always reports "driver version mismatch" with NVIDIA 595 drivers, preventing cache accumulation

vkd3dopen
HansKristian-Work/vkd3d-proton#2918 · opened 2026-04-06 by YoungJurry · updated 2026-08-23 · 7 comments · github
YYoungJurry 2026-04-06 github

Environment

  • OS: Arch Linux
  • Kernel: 6.19.11-zen1-1-zen
  • GPU: NVIDIA (driver 595.58.03)
  • Proton: GE-Proton10-34, Proton-CachyOS (both affected)
  • Game: Wuthering Waves (UE5)

Problem

Every time the game starts, vkd3d-proton reports a driver version mismatch
and refuses to load the existing cache:

Cannot load existing on-disk cache due to driver version mismatch.

As a result, the .cache file is never updated and PSOs are recompiled from
scratch on every launch. The .write file accumulates new PSOs during the
session but is either cleared or not merged into .cache on the next startup.

Log evidence

On first launch:
vkd3d_pipeline_library_disk_cache_merge: Merging disk caches.
vkd3d_pipeline_library_disk_cache_merge: Device teardown request received, stopping parse early.

On second launch:
vkd3d_pipeline_library_disk_cache_merge: Write cache is invalid (hr #887e0001), nuking it.
Cannot load existing on-disk cache due to driver version mismatch.

On subsequent launches (including with Proton-CachyOS):
vkd3d_file_map_read_only: Failed to MapViewOfFile for vkd3d-proton.cache.write.
Cannot load existing on-disk cache due to driver version mismatch.

Impact

  • PSOs are recompiled from scratch on every game launch
  • .cache file remains at original size (3.5M) despite hours of gameplay
  • .write file accumulates during session but is nuked on next startup
  • Performance does not improve between sessions as expected

What was tested

  • GE-Proton10-34: same issue
  • Proton-CachyOS: same issue
  • The issue does not appear to be launcher-specific (tested with both
    Faugus/umu-launcher and Steam)

Log file

 tail -f ~/vkd3d.log | grep -i "cache\|merge\|write"
0138:info:vkd3d_instance_deduce_config_flags_from_environment: shader_cache is used, global_pipeline_cache is enforced.
0138:info:vkd3d_pipeline_library_init_disk_cache: Remapping VKD3D_SHADER_CACHE to: vkd3d-proton.cache.
0138:info:vkd3d_pipeline_library_init_disk_cache: Attempting to load disk cache from: vkd3d-proton.cache.
03c0:info:vkd3d_pipeline_library_disk_cache_merge: Merging disk caches.
03c0:info:vkd3d_pipeline_library_disk_cache_merge: Device teardown request received, stopping parse early.
03c0:info:vkd3d_pipeline_library_disk_cache_initial_setup: Merging pipeline libraries took 2.230 ms.
03c0:info:vkd3d_pipeline_library_disk_cache_initial_setup: Mapping read-only cache took 0.110 ms.
03c0:info:vkd3d_pipeline_library_disk_cache_initial_setup: Parsing stream archive took 0.013 ms.
0138:info:vkd3d_pipeline_library_init_disk_cache: Remapping VKD3D_SHADER_CACHE to: vkd3d-proton.cache.
0138:info:vkd3d_pipeline_library_init_disk_cache: Attempting to load disk cache from: vkd3d-proton.cache.
03c8:info:vkd3d_pipeline_library_disk_cache_merge: Write cache is invalid (hr #887e0001), nuking it.
03c8:info:vkd3d_pipeline_library_disk_cache_initial_setup: Merging pipeline libraries took 0.342 ms.
03c8:info:vkd3d_pipeline_library_disk_cache_initial_setup: Mapping read-only cache took 0.066 ms.
03c8:info:vkd3d_pipeline_library_disk_cache_initial_setup: Parsing stream archive took 0.004 ms.
03c8:info:vkd3d_pipeline_library_disk_cache_initial_setup: Cannot load existing on-disk cache due to driver version mismatch.
0138:info:vkd3d_pipeline_library_init_disk_cache: Remapping VKD3D_SHADER_CACHE to: vkd3d-proton.cache.
0138:info:vkd3d_pipeline_library_init_disk_cache: Attempting to load disk cache from: vkd3d-proton.cache.
03d4:info:vkd3d_pipeline_library_disk_cache_merge: No write cache exists. No need to merge any disk caches.
03d4:info:vkd3d_pipeline_library_disk_cache_initial_setup: Merging pipeline libraries took 0.138 ms.
03d4:info:vkd3d_pipeline_library_disk_cache_initial_setup: Mapping read-only cache took 0.117 ms.
03d4:info:d3d12_pipeline_library_read_blob_stream_format: Sliced stream cache entry detected. Ignoring rest of archive.
03d4:info:vkd3d_pipeline_library_disk_cache_initial_setup: Parsing stream archive took 2.547 ms.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Pipeline cache marked dirty. Flush is scheduled.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Flushing disk cache (wakeup counter since last flush = 16). It seems like application has stopped creating new PSOs for the time being.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Pipeline cache marked dirty. Flush is scheduled.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Flushing disk cache (wakeup counter since last flush = 75). It seems like application has stopped creating new PSOs for the time being.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Pipeline cache marked dirty. Flush is scheduled.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Flushing disk cache (wakeup counter since last flush = 6). It seems like application has stopped creating new PSOs for the time being.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Pipeline cache marked dirty. Flush is scheduled.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Flushing disk cache (wakeup counter since last flush = 10). It seems like application has stopped creating new PSOs for the time being.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Pipeline cache marked dirty. Flush is scheduled.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Flushing disk cache (wakeup counter since last flush = 19). It seems like application has stopped creating new PSOs for the time being.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Pipeline cache marked dirty. Flush is scheduled.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Flushing disk cache (wakeup counter since last flush = 64). It seems like application has stopped creating new PSOs for the time being.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Pipeline cache marked dirty. Flush is scheduled.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Flushing disk cache (wakeup counter since last flush = 6). It seems like application has stopped creating new PSOs for the time being.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Pipeline cache marked dirty. Flush is scheduled.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Flushing disk cache (wakeup counter since last flush = 11). It seems like application has stopped creating new PSOs for the time being.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Pipeline cache marked dirty. Flush is scheduled.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Flushing disk cache (wakeup counter since last flush = 577). It seems like application has stopped creating new PSOs for the time being.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Pipeline cache marked dirty. Flush is scheduled.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Flushing disk cache (wakeup counter since last flush = 24). It seems like application has stopped creating new PSOs for the time being.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Pipeline cache marked dirty. Flush is scheduled.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Flushing disk cache (wakeup counter since last flush = 235). It seems like application has stopped creating new PSOs for the time being.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Pipeline cache marked dirty. Flush is scheduled.
03d4:info:vkd3d_pipeline_library_disk_thread_main: Flushing disk cache (wakeup counter since last flush = 41). It seems like application has stopped creating new PSOs for the time being.
^C⏎                                  
YYoungJurry 2026-04-06 github

I have done additional testing:

  • Cleared the vkd3d-proton cache completely
  • Launched the game multiple times consecutively
  • No changes were made to the system (driver, kernel, Proton, environment variables, etc.)

Despite this, the issue still reproduces consistently:
The cache is recreated, but on the next launch it is again reported as invalid due to a "driver version mismatch".

This suggests that the driver/cache UUID may not be stable across runs.

AABJ4403 2026-04-11 github

I can confirm this myself, across 10 different games (both Unity & UE based, some are weird ones but still do use DX12), tried clear cache (vkd3d-cache, .cache/mesa..., wine AppData\Local\dxvk), new prefix, but no matter what i did it will always recompile the cache again (among 10 games, one of them took an hour to precompile shader!!), using AMD Radeon R3 integrated GPU + dual core AMD CPU, 8GB RAM, Ubuntu-LTS based Linux, 6.19.11 kernel, Proton-GE-10.34. And the log i got isnt far off from what OP gets

Sscgm0 2026-04-15 github

I encountered the same issue, not only did the vkd3d-proton cache become invalid, but the same happened with dxvk.

AABJ4403 2026-04-16 github

https://github.com/HansKristian-Work/vkd3d-proton/issues/2918#issuecomment-4252958910

DXVK too? Is there a way to check for not used cache in DXVK? Sadly its not as obvious as VKD3D ones as shader caching is not a DX11 thing afaik

Ffoxmaid 2026-05-27 github

https://github.com/HansKristian-Work/vkd3d-proton/issues/2506#issuecomment-3091229580
Maybe you can try this. It works for me !

  • OS: Arch Linux
  • Kernel: 7.0.9-1-cachyos
  • GPU: NVIDIA (driver 595.71.05-2)
  • Proton: GE-Proton10-34
  • Game: Stellar Blade
AABJ4403 2026-06-03 github

Nopsie, Nvidia only, AMD & Intel cant use that so No Video indeed :(

Ttoppacket 2026-08-23 github

I'm having a similar issue and it seems to be fixed for me after disabling my iGPU.

I'm reproducing this on Arch with NVIDIA 610.57.04, Faugus/UMU, and a Ryzen 9800X3D with its AMD iGPU enabled by default.

The vkd3d log showed:

d3d12_device_init_vendor_hacks: Loaded amdxc64.dll successfully.
...
Write cache is invalid (hr #887e0001), nuking it.
...
Cannot load existing on-disk cache due to driver version mismatch.

I disabled the 9800X3D iGPU in BIOS, and the shader-cache issue appears to be gone. Subsequent launches are reusing the cache correctly and the stutter disappeared.

Proton versions

Launch options

Upstream links

DLLs