Closed serossi closed 1 year ago
i made a quick sed which does this but inclusion into acolyte would be great
` sed -n '/ShaderCacheManager/,/CMWebSocket/{/CMWebSocket/Q;p}' ~/.steam/debian-installation/acolyte/sourceuser/config.vdf > ~/.steam/debian-installation/acolyte/current_section
sed -i -e '/"ShaderCacheManager"/r ~/.steam/debian-installation/acolyte/current_section' -e '/"ShaderCacheManager"/,/"CMWebSocket"/{/"CMWebSocket"/!d;}' ~/.steam/debian-installation/acolyte/user1/config.vdf sed -i -e '/"ShaderCacheManager"/r ~/.steam/debian-installation/acolyte/current_section' -e '/"ShaderCacheManager"/,/"CMWebSocket"/{/"CMWebSocket"/!d;}' ~/.steam/debian-installation/acolyte/user2/config.vdf sed -i -e '/"ShaderCacheManager"/r ~/.steam/debian-installation/acolyte/current_section' -e '/"ShaderCacheManager"/,/"CMWebSocket"/{/"CMWebSocket"/!d;}' ~/.steam/debian-installation/acolyte/user3/config.vdf sed -i -e '/"ShaderCacheManager"/r ~/.steam/debian-installation/acolyte/current_section' -e '/"ShaderCacheManager"/,/"CMWebSocket"/{/"CMWebSocket"/!d;}' ~/.steam/debian-installation/acolyte/user4/config.vdf sed -i -e '/"ShaderCacheManager"/r ~/.steam/debian-installation/acolyte/current_section' -e '/"ShaderCacheManager"/,/"CMWebSocket"/{/"CMWebSocket"/!d;}' ~/.steam/debian-installation/acolyte/user5/config.vdf
`
i didnt bother for now todo anything fancy like going trough all directorys or something, i just amde a quick fix for the current mess. just treat it as an example
Hi, thanks for the info! Didn't know about that, but this will be very helpful. I'll look into it, but can't make any time promises. I have been thinking about changing acolyte to only replace the user-login related settings in config.vdf
for unrelated reasons anyway. So this will be an additional reason to go finally go through with it.
here i wrote a real script now. what iam doing now is i take the shadercache config section of the current config files and loop trough all saved acolyte configs and update them. after some testing i have seen that the config file in config/config.vdf is updated imidiatly after shader caches are generated. so i simply execute the script in the steam command after gamestart like
%command% ; myscript
this will execute the script automatic the moment the game is closed. this ensures that shadercache gen is really done
and here is the script `
#!/bin/bash
acolytedir="$HOME/.steam/debian-installation/acolyte"
steamconfigdir="$HOME/.steam/debian-installation/config"
sed -n '/ShaderCacheManager/,/CMWebSocket/{/CMWebSocket/Q;p}' $steamconfigdir/config.vdf > $acolytedir/shadercache_config_section
for dir in "$acolytedir"/*/; do
echo "$dir"
sed -i -e '/"ShaderCacheManager"/r '$acolytedir'/shadercache_config_section' -e '/"ShaderCacheManager"/,/"CMWebSocket"/{/"CMWebSocket"/!d;}' $dir/config.vdf
done
`
let me add, there 3 ways to battle this problem.
and youre right, #2 would be ideal. for now we have a quick fix, it was unplayable for me redownlaoding shaders everytime i switch accounts with 40 min compiling time
edit: oh yea steam saves a couple other "common" data in that file. lets forget about stupid server list and last ping (why is this in the config, some steamdev must be drunk) but there some authentication / multi account data and trusted computer stuff in there. what i found can happen is after running steam on linux i need to reauth on windows on some of them. i think its related to these entrys but iam not gonna test this hypothesis.
jsut lets say i really think, just replacing user sepcific entrys will be the way to go long term.
Good news! It seems that steam no longer (?!) stores user-specific login information within config.vdf
- so acolyte will not have to replace this file any longer. The next version of acolyte will not touch the file, making your workaround unnecessary.
can confirm this solves this issue but also another not reported issue
when using different plattforms, like windows and linux, using acolyte under linux always caused the other plattform to request relogin/reauthentication
these are all solved now
we just need a traymenue back under gnome xDDD,
Steam now prerender Vuilk Shader caches.
Unfortunatly information about them they are not stored within the actual shaders but in each users config file. This has the result that you have to rerender on every account manually
The Entire Section Shader cache Manager in config.vdf is nessesary to be shared. for each proton there is a shader cache and infor about size etc...
so to avoid to rerender at every account switch i need to manually overwrite this section on every file. maybe doing that with acolyte would be a nice feature