protonscr

[Question] How does dxvk.shaderCacheDir work?

dxvkclosed
doitsujin/dxvk#4677 · opened 2025-02-09 by WapMap · updated 2025-02-09 · 4 comments · github
WWapMap 2025-02-09 github

If I don't specify dxvk.shaderCacheDir in the config, will DXVK itself choose where to save shader cache or just won't create it? For example, with StarCraft II, I have not found this file, although I have tried to specify a location for this file, but it never appeared. In Steam, as I understand, when Enable Shader Pre-caching is enabled, everything is saved in a special Steam folder called shadercache, and when Enable Shader Pre-caching is disabled, in the folder of the game itself. Correct me if my knowledge is wrong, I would like to better understand this topic.

Mmbriar 2025-02-09 github

It will be created next to the game's .exe by default. It is however not a shader cache and never was one. It is a state cache which stores information about which shader are combined together with which pipeline state. Today with GPL, it is also only relevant for pipelines using geometry or tessellation shaders, if a game doesn't use any of those, there is nothing to store.

Mmbriar 2025-02-09 github

Actually, where did you even find dxvk.shaderCacheDir? There is no option with that name currently, and I don't think there ever was one. AFAICT, DXVK_STATE_CACHE_PATH as environment variable is the only way to override the state cache location.

WWapMap 2025-02-09 github

Actually, where did you even find dxvk.shaderCacheDir? There is no option with that name currently, and I don't think there ever was one. AFAICT, DXVK_STATE_CACHE_PATH as environment variable is the only way to override the state cache location.

I found dxvk.shaderCacheDir in posts on Reddit and other similar forums. Now as I understand it, it was some speculation or misunderstanding.

WWapMap 2025-02-09 github

Thank you very much for your clear answer.

Launch options