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β’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β’3y ago
The compatdata/prefix is stored separate from the game data. The shadercache is generated alongside the game data for Heroic games
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β’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-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β’3y ago
nope, unfortunately not.
at least i don't know
correct-apricotβ’3y ago
I don't know if steam stores shader cache foe none steam games
foreign-sapphireβ’3y ago
yes it does
correct-apricotβ’3y ago
We actually store shader caches in the prefix
foreign-sapphireβ’3y ago
yeah, but if you run these games through steam, it only crates shader in steam shadercache folder
correct-apricotβ’3y ago
But how does steam know to generate shader cache
foreign-sapphireβ’3y ago
100%
i don't know. but it is like that
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β’3y ago
maybe only in game mode. idk.
don't ask me. i just know that it works like that
correct-apricotβ’3y ago
Ok
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-amethystOPβ’3y ago
Now that you mentioned, I remember that is asked me before.
stormy-goldβ’3y ago
we dont
should I make a PR for that
it's pretty easy
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-amethystOPβ’3y ago
If you have time, you could explain us how it works in Heroic.
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β’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β’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β’3y ago
I meant the state cache lol πΈ