I imagine Nvidia just hashes the pipeline and saves the compiled code using that has as a filename. So unless the pipeline you're looking for is identical (in which case it should work fine), you really shouldn't get any vkd3d pipelines in dxvk or vise versa.
Well it's the
(in which case it should work fine)
that i have a problem with i guess, cos the hash-filename should/does not change as long as nothing else than the API has changed. (wine/driver/app is the same).
I also imagine that the WoW cache should not really change depending on the driver, but i am not sure how that mechanic really works tho.
Kind of WoW cache -> DXVK -> NV cache.
Not able to 100% recreate this, but i have had this happen several times where i have played a several hours with vkd3d, and then switch to DXVK to test a new build or whatnot, and then crash shortly after login... until i clear out that cache and then it seems to work fine with no issues.
The driver cache should get invalidated after a driver update, that is to be expected.
You most definitely shouldn't get crashes when changing between vkd3d and dxvk,. they don't even generate the same shader code and any cached pipelines should co-exist peacefully. I personally haven't run into this problem yet either (using the latest Vulkan beta driver, whatever the version number of that currently is).
Impossible to test this more atm, cos yesterdays update to WoW broke vkd3d and d3d12. DXVK still works fine tho.
Nothing extracted yet.
Software information
World of Warcraft - 8.1.5
System information
Perhaps a vague title and question, but nevertheless i want to ask.
As we all know, nVidia keeps a shader cache in
$HOME/.nvfolder, and DXVK creates a shader cache in "game-app-folder". From what i understand DXVK handles invalidation of its own caches just fine, but the nVidia cache is being rebuilt whenever things change (driver/application++).For instance: If i upgrade from wine-4.3 -> wine-4.4, the nVidia shader caches in the
$HOME/.nvis being rebuilt. Actual path is more like:$HOME/.nv/GLCache/hashuid/hashuidif you are not using overrides. This "hashuid" changes depending on application/driver and so on.Issue: If i have played WoW with vkd3d(d3d12), and then switch to dxvk(d3d11) without clearing out the nVidia GLCache (And possibly
/World of Warcraft/_retail_/Cachefolder) i experience some crashing.Question: What happens when DXVK generates a shader that vkd3d (also vulkan) already have created in the .nv cache folder? CAN stuff crash then? DXVK i guess has absolutely nothing with validating the nVidia cache, as this is purely up to the driver. Same with vkd3d or wine for that matter. It just spews data -> driver, and the driver handles the rest.
Yeah, i know this is not a DXVK issue, but rather a nVidia issue... So not a "bug report" in a sense... More of a "Any thoughts or ideas about this"? Bug-reporting things like that on any nVidia forum is probably not too fruitful.