安装 Steam
登录
|
语言
繁體中文(繁体中文)
日本語(日语)
한국어(韩语)
ไทย(泰语)
български(保加利亚语)
Čeština(捷克语)
Dansk(丹麦语)
Deutsch(德语)
English(英语)
Español-España(西班牙语 - 西班牙)
Español - Latinoamérica(西班牙语 - 拉丁美洲)
Ελληνικά(希腊语)
Français(法语)
Italiano(意大利语)
Bahasa Indonesia(印度尼西亚语)
Magyar(匈牙利语)
Nederlands(荷兰语)
Norsk(挪威语)
Polski(波兰语)
Português(葡萄牙语 - 葡萄牙)
Português-Brasil(葡萄牙语 - 巴西)
Română(罗马尼亚语)
Русский(俄语)
Suomi(芬兰语)
Svenska(瑞典语)
Türkçe(土耳其语)
Tiếng Việt(越南语)
Українська(乌克兰语)
报告翻译问题
None of the above for spikes, which is why this was so hard to pin down for so long. The only obvious symptoms are spikes on a frametime graph or GPU usage. The spikes occur at set intervals and when they occur GPU usage expectedly plummets as the GPU stops rendering frames during the spike.
This doesn't manifest like in games where a dip in performance or a spike causes the game to slowdown and then you see the game speed up for a moment to catch everything up and resync. The spikes are completely dropped frames, so the image "jumps" to the next moment once the spike ends and everything that happened in the middle is lost.
For reference I've used applications such as HWInfo, Resource Monitor, RTSS, and GlassWire to name a few trying to pindown the process / network activity. But the most telling thing, and easiest to duplicate, is running an affected game such as Borderlands 3 on Steam and then running same game from Epic:
Epic version offline: no stutter
Epic version online: no stutter
Steam version offline: no stutter
Steam version online: stutter at regular intervals
Steam version online with limited access to appmanifest files: no stutter
Steam version online with full access to appmanifest files: stutter
Can you expound on this? I also looked at the libraryfolders.vdf files (going as far as killing the originals and recreating them entirely) a while ago. Didn't see any results but didn't extensively mess with them beyond creating new ones.
I have referred them to this thread as well.
I reached out to them enough for them to ask me to stop.
Both. At first they said it was something on my end. So I started sending videos showing the frametime graph in games when online versus offline and in games on Steam versus competing launchers (Epic and Microsoft store). They acknowledged the issue but remained noncommittal on actually fixing it. It's a problem but not a big enough problem apparently.
For now, this is what I have done so far re: scripting:
Assuming that I have Steam libraries on drives C, D, and E, and that I want to "hide" everything but app ids 1659600 (TMNT Cowabunga Edition), 227320 (You Need a Budget), 228980 (Steamworks Common Redistributables), 976730 (Halo MCC Collection), and 1097840 (Gears 5), I can run the following PowerShell command:
This will prefix all of the appmanifest files I am not interested in with an underscore.
Note that I include the Steamworks Common Redistributables app here because, if I don't, the file will be renamed and Steam will create a new appmanifest file for it anyway. This leads to a failure when running the second command below, as the command is unable to rename this particular appmanifest file because the target file name is already present.
The $_.Name.substring(12, $_.Name.Length - 16) operation above converts a file name, as in appmanifest_1659600.acf, into its appId equivalent, 1659600, which I can then use to check whether it's among the app Ids I want to retain.
Note that this has no effect when Steam is running, so I stop Steam, run the above, and start it back up again. Once Steam starts up, your library will be as tiny as it was fifteen years ago!
Alternatively, a slight variation on the above is to dump all of the steam folders and app Ids into text files. The appIds file would look like this (note the code ignores everything after the first space in a line, so that we can at least tie an app Id to a game):
...whereas the Steam library folders file would look like this:
...and assuming the paths to the Steam libraries and app Ids files are D:\steamlibraries.txt and D:\appIdsToRetain.txt, respectively, you can run this to affect the same changes:
This may be useful if you want to control the set of apps/folders outside of the PowerShell command, which will allow you to reuse the exact same command regardless of input. Also, we might run afoul of the command line limits within the OS, which could happen if we were to enable hundreds of games in one go. I think that limit is 8,192 characters or so in Windows 10.
Note that I've modified the above to initialize an $appIdsToRetain .NET HashSet and to use it when determining what to keep. The Contains method will be way faster than checking list membership via -notin, particularly if you have a large number of apps that you want to keep. For reference, the list-based approach takes just shy of 30 seconds for a set of ~560 apps to keep whereas the set-based approach takes just six seconds.
To restore everything, you can run this command:
Same point about needing to restart Steam applies here too.
If using the steamlibraries.txt file to drive the set of library folders to update, run this instead:
The above commands will find appmanifest files that start with an underscore and will remove the offending character accordingly.
These operations are fast enough on my machine, each taking fewer than six seconds to complete. I chose to rename files instead of moving them because, in my mind at least, the former is faster than the latter. You may want to close explorer or whatever other file management software you use as folder refreshes will slow things down.
This isn't perfect, as I would expect Steam to just start up and not need to verify or download anything unless there is an update, but this isn't the case when Steam starts up after either of the above commands are run. At minimum, Steamworks Common Redistributables will download, and I think that triggers other apps to download as well. This seems to cause Steam to hang for a few minutes at points, which isn't ideal. Disabling shader caching seems to help here, but I'm debating whether that's something I want to do.
This may be the compromise I take for now given that not all games suffer from this library-size-induced stutter and stutter impacts different genres differently. For example, I wouldn't even notice the stutter in many of the puzzle games I have, but it's impossible not to notice it when playing FPS games. If I'm jonesing for some Borderlands 3, I now have a lever I can pull to make playing it a less painful experience than it previously was.
P.S.: the above commands appear to continue on error, say the rename of one of the files failed, then the commands seem to continue onto the next file, but note that I haven't bothered to verify this behavior.
P.P.S.: I'm running PowerShell version 5.1.19041.1682 on Windows 10. It's possible that the commands won't work on older versions or OSs.
P.P.P.S.: Does anyone know whether the guidance to disable the shader cache when using NVIDIA graphics cards shown in https://www.reddit.com/r/linux_gaming/comments/k3sg5t/psa_if_youre_on_nvidia_disable_steams_shaders/ still applies? That article is two years old now. I definitely feel the stutter caused by the cache rebuild when I'm playing games like Halo MCC and Gears 5, though it does abate eventually.
if you have not read or search for it, check MS own page. and all this Driver issue still end up as user own problem, or should i said a grey area, with lack of update.
I also have multiple drive on my main PC but not on my second one where the issue happen aswell
seen plenty of AMD board issue with it, just because i said this, still is seen on other steam user issue and what has been done we have no acccess or hands on here.
this is a user forum and lack all inside information.
and if i recall correctly this is about 5000k+ games librarys, and i think steam fix this longtime ago.
Not sure if this is the exact same issue, but the symptoms are similar: Only occurs in Steam games, only in online mode.
Steam support replied to me a long time ago that they were aware of the problem, but no fix ever came out.