HGL
itchy-amethyst

Shader Cache and Appids on Seam Deck

Searched the web but no answers fo this. Maybe here. The question is on Steam Deck if I donwnload and play any Epic or GOG game with Heroic will it generate shader cache somwhere on the device? If im correct, compdata is the installed game itself and it is unistalled afterr I properly uninstall a game from the Heroic. But are there any leftover files somewhere on the deck I have to manually delete. Anothet question is I wanted to check appids with Protontricks but no Heroic games were shown in my list. Are those games works differently then "standard non-steam games"? Or is it ok that they don't have (or I just can't find) any steam app ids?
24 Replies
foreign-sapphire
foreign-sapphireβ€’3y ago
Afaik the only files in steam is the shadercache. (it's some long ID for each game) (if you play the heroic game shortcut through steam) Compatdata are the prefixes, which only steam games create or if you manually add an exe through steam. Heroics prefixes are stored at another place Yes, they work differently. Wine tricks is in heroic itself. protontricks are only working for steam games, or exe files added through steam directly
fair-rose
fair-roseβ€’3y ago
The compatdata/prefix is stored separate from the game data. The shadercache is generated alongside the game data for Heroic games
itchy-amethyst
itchy-amethystOPβ€’3y ago
Thanks. I'm trying to understand πŸ™‚ So it means I don't have to manually delete anything if I use the uninstall option in the Heroic Launcher it deletes everything for me? And where can I find that long ID? Can I check it from game mode somhow? Or should I use desktop mode, launch the title from Steam, then somehow (don't know how on Linux) see in the task manager? Any easier solutions for this? TY!
foreign-sapphire
foreign-sapphireβ€’3y ago
oof... Steam creates a random id. I am also not an expert. I just think I know how these things work. You should use desktop mode. I think it's in steam/steamapps/shadercache and every number that is longer than 6(?) digits is a non-steam game (including heroic) you can open these folders and look in dxvk cache and sometimes the name of the game is shown there. (it just works like that, can't help you more) but shadercache isn't big most of the time. imo no big need to delete that. I also don't know if heroic deletes prefixes when you delete games in heroic. you should know where heroics prefixes are (it's all in heroics settings) and then you can look if these prefixes get deleted (prefixes are the windows file structure folders fyi)
itchy-amethyst
itchy-amethystOPβ€’3y ago
Ok I think I get it mostly. πŸ™‚ I found the shadercache folder too, but I tought I could identify the long random number IDs somehow from the Steam UI or somewhere else.
foreign-sapphire
foreign-sapphireβ€’3y ago
nope, unfortunately not. at least i don't know
correct-apricot
correct-apricotβ€’3y ago
I don't know if steam stores shader cache foe none steam games
foreign-sapphire
foreign-sapphireβ€’3y ago
yes it does
correct-apricot
correct-apricotβ€’3y ago
We actually store shader caches in the prefix
foreign-sapphire
foreign-sapphireβ€’3y ago
yeah, but if you run these games through steam, it only crates shader in steam shadercache folder
correct-apricot
correct-apricotβ€’3y ago
But how does steam know to generate shader cache
foreign-sapphire
foreign-sapphireβ€’3y ago
100% i don't know. but it is like that
correct-apricot
correct-apricotβ€’3y ago
We start heroic that starts the game So how they know that inside heroic there need to compile shaders?
foreign-sapphire
foreign-sapphireβ€’3y ago
maybe only in game mode. idk. don't ask me. i just know that it works like that
correct-apricot
correct-apricotβ€’3y ago
Ok
foreign-sapphire
foreign-sapphireβ€’3y ago
if I never start a game through heroic, i don't have shadercache in the prefix, only in steams folder or, as i said, it's because of steams game mode for example my dishonored I have dxvk shader in the game folder from the 31st of December (i think when i installed it and tried it quick in desktop mode) last time I played it (in game mode) was January 25th, which is the same date my steam shadercache for dishonored was modified. ahh and if you want to uninstall a game from heroic, heroic will ask you if you want delete the prefix too.
itchy-amethyst
itchy-amethystOPβ€’3y ago
Now that you mentioned, I remember that is asked me before.
stormy-gold
stormy-goldβ€’3y ago
we dont should I make a PR for that it's pretty easy
foreign-sapphire
foreign-sapphireβ€’3y ago
Heroics shader cache is where the game exe is, no? for me it is like that, when I start the game through heroic
itchy-amethyst
itchy-amethystOPβ€’3y ago
If you have time, you could explain us how it works in Heroic.
correct-apricot
correct-apricotβ€’3y ago
Shader cache and state cache are not the same things. What dxvk creates is state cache, what driver creates is shader cache So one that is being next to game exe is state cache and only helpful when your driver gets updated, it helps with building shader cache with the pipeline data you previously stored by playing game with DXVK https://docs.mesa3d.org/envvars.html
MESA_SHADER_CACHE_DIR if set, determines the directory to be used for the on-disk cache of compiled shader programs. If this variable is not set, then the cache will be stored in $XDG_CACHE_HOME/mesa_shader_cache (if that variable is set), or else within .cache/mesa_shader_cache within the user’s home directory.
correct-apricot
correct-apricotβ€’3y ago
https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/issues/973 Normally i requested such a thing to avoid all those confusions but realized it is not likely to happen
GitHub
[Feature Request] Set Nvidia and Mesa Shader Disk Cache by default,...
Is your feature request related to a problem? Please describe. By default Nvidia on disk shader cache has a limit and when it is exceed it causes previous caches to get purged. It is a problem due ...
correct-apricot
correct-apricotβ€’3y ago
About what is a state cache https://github.com/doitsujin/dxvk/releases/tag/v0.80
In order to reduce stutter on subsequent runs of an application, DXVK now caches pipeline state, which allows it to compile shaders earlier than it currently does, even if the driver's shader cache got invalidated after an update. This may temporarily cause very high CPU load.
By default, this feature is enabled, and cache files are typically created in the same directory where the game executable is located. Refer to the README for further details.
@OOOOOF123 Btw if you are gonna make such a PR, maybe you can look at that issue above
stormy-gold
stormy-goldβ€’3y ago
I meant the state cache lol 🐸

Did you find this page helpful?