SynaGl0w

1.0.7 (and earlier) - Steam/Win7 - Stuttering when moving around

Recommended Posts

For quite a while now I have been experiencing a constant stuttering whenever moving around in the world. Noticed HDD activity light was in sync with the stutter. So I wanted to see what was going on.

Not sure if these events are the direct cause or just part of the same:

stutter_events_c.thumb.png.3b746b753e25d09fa88ed26f416f0a88.png
Every time there is a stutter those two events pop up in a pair. CreateFile and QueryOpen. Both calls trying for the file “Popper.bnk” that does not exist (obviously). Ignore the different drive letters on each event, the path is the same (one is a symbolic link).

Events:

High Resolution Date & Time:	2/21/2019 1:51:15.7524011 PM
Event Class:	File System
Operation:	CreateFile
Result:	REPARSE
Path:	C:\Programs\Steam\steamapps\common\ASTRONEER Early Access\Astro\Content\WwiseAudio\Windows\English(US)\Popper.bnk
TID:	8748
Duration:	0.0000146
Desired Access:	Read Attributes
Disposition:	Open
Options:	Open Reparse Point
Attributes:	n/a
ShareMode:	Read, Write, Delete
AllocationSize:	n/a
OpenResult:	<unknown>


High Resolution Date & Time:	2/21/2019 1:51:15.7524402 PM
Event Class:	File System
Operation:	QueryOpen
Result:	PATH NOT FOUND
Path:	I:\Steam Games\COMMON\ASTRONEER EARLY ACCESS\ASTRO\CONTENT\WWISEAUDIO\WINDOWS\ENGLISH(US)\POPPER.BNK
TID:	8748
Duration:	0.0000047

 

stutter_events.webp

Share this post


Link to post
Share on other sites

So I got more curious... I decided to give it the file it was looking for. So I pulled a Popper.bnk out of Astro-WindowsNoEditor.pak. It is in Content/WwiseAudio/Windows/ dir (no English(US) directory) and placed it at Content/WwiseAudio/Windows/English(US)/.

Started up the game and no change, still the same stutter. However something seems to like that file... a lot. This is from a single stutter while moving:

single_stutter_event.thumb.png.4d7aceee86a37595765f39ec94516616.png

WTF!? Why bumrape that specific file so much? Look at all those calls!

The time required for all those calls adds up...

Here is a CSV of a single stutter: astro_stutter.csv 

Those timestamps. Despite that one missing file the stutter must be going on somewhere. I wonder if it's doing all those same/similar calls to the same file inside Astro-WindowsNoEditor.pak

Share this post


Link to post
Share on other sites

Solved! sort of... Launch the game with the -nosound argument (disables sound system in UE4 executables). Wow it runs great now. No more continuous stuttering. Butter smooth now, sometimes there might be a one-off hiccup when first loading stuff, but otherwise excellent. Might be nice to get sound back, but I would rather play with no sound than constant stuttering.

I have plenty of other games and projects that use Wwise audio system, but none have this kind of problem that I know of (all games generally run great except GTAV which also stutters continuously while moving, but ran flawlessly before some big update back in 2015, never looked into it though).

I should also mention that there are occasionally other requests for other Wwise .bnk files at that same non-existent path, but they seem to occur only once or vary rarely, unlike the constant spam for Popper.bnk.

No idea what is at fault, Wwise or something being done to it via UE4.

Share this post


Link to post
Share on other sites

So I did a test on a new game. A new game does perform better than the same new game loading from a save. Remember this is only monitoring that one sound bank. I have noticed the stutter not related that one sound bank, but obviously others (again, -nosound, completely removes any of this stutter for me, so other stutter must still be from sound system IO).

A single stutter event involving this specific external sound bank, Popper.bnk, includes 1,964 system calls. Many of those calls are buffered reads in 65535 byte blocks. For each block of 1,964 calls there is a single call to QueryOpen, this is how I can easily count the number of stutters and how many times the bank is reloaded. The average time those 1,964 calls takes is usually about 20ms on my system, but occasionally goes as high as 90ms.

Here is the basic setup:
1. A fresh new game from the main menu.
2. No terrain deformation at all, other than what the habitat and landing pad do for a flat spot.
3. I run one specific direction away from the spawn until I suffocate and respawn at the habitat.
4. I save and exit out of the game then relaunch the game, load, do #3 again, repeat...

A new game:
- 6 stutters/reloads (11,784 calls)
First load of save:
- 11 stutters/reloads (21,604 calls)
Second load of save:
- 12 stutters/reloads (23,568 calls)
Third load of save:
- 20 stutters/reloads (39,280 calls)
Fourth load of save:
- 23 stutters/reloads (45,172 calls)
Fifth load of save:
- 18 stutters/reloads (35,352 calls)
After this point it would average around 15 to 25 stutters each time...

Another thing to note is that it becomes easy to find boundaries that trigger this reload of sound banks. There appeared to be two axes right near the habitat in this test game. If I ran in a tight circle over one of these boundaries, a stutter/reload would happen each time I crossed that boundary in one direction.

Constantly reloading the same soundbank over and over is a waste, load it once and be done. Also 65535 byte buffered reads... seems like a small buffer for something that should be completely loaded into memory one time and in one go, unless it's purpose is streaming, like you do for music. So yeah all my stuttering is caused by sound system IO.

I can only imagine how many of these sound banks are being reloaded internally, not just this one...

Share this post


Link to post
Share on other sites

I've been experiencing this exact problem!  Thanks for the workaround, and the detailed write-up.  I hope they fix it soon, as the game is much better with sound than without.

Share this post


Link to post
Share on other sites

Yup I have the same issue, adding -nosound to the launch options fixes it completely. Thanks for the fix and info, hopefully they manage to fix it soon!

Share this post


Link to post
Share on other sites

Not fixed as of 1.0.15. 

It sure would be nice to play the game with sound and not have stutter.

Share this post


Link to post
Share on other sites

As of 1.0.15, I really hope this bug gets fixed soon or in the next update, these stutters give me painful headaches and make me motion sick making the game unplayable for me. I've got motion sick from certain things like VR or roller coasters, but never from stuttering games because I've never had a game stutter long and frequent enough. I just wanna spend 1,000+ hours lost on a planet with no way home.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now