Single frame stutter randomly
Posted: Wed May 10, 2023 7:28 pm
Hey,
I've started a new game of Factorio recently and I've noticed a stutter issue that I can't seem to get rid of. In the past I've had the same issue on the same PC, but I've always been able to fix it with some combination of vsync in game / via NVIDIA control panel. This time though I can't seem to get rid of it...
Basically what happens is that I open up a new single player game (for example transport belt madness), zoom out the map as far as possible and pan the map from left to right using the 'a' and 'd' keys. Randomly you will see the map hitch for 1 frame, even though my computer should be plenty powerful to run a small mapped, fresh game at 60fps. This behaviour occurs when vsync is ON.
When vsync is off (or forced to FAST in the NVIDIA control panel), the behaviour is subtly different. When performing the same behaviour above, instead of a random frame hitch the game will instead stutter non-stop for 4-5 seconds before returning to normal. It's then normal for 5-10 seconds before this behaviour repeats itself.
One thing that might be of interest is that the only way I can make the game tear is by forcing Vsync OFF in the NVIDIA control panel - and I believe in this case I do NOT get the hitching, but I do get a LOT of tearing that basically makes the game unplayable. Even when the NVIDIA control panel is set to "use application setting" and vsync is off in the game I don't get tearing - as if something is still synching the frames when it shouldn't be?
In the above case, I believe the hitching somewhat aligns with the timing of the "scan" of the tearing - the tear line slowly moves along the screen until it (for example) disappears off the top and re-appears at the bottom.
Another thing to note is that whilst the stutter is preset, I don't appear to have dropped any UPS or FPS - it's as if the frame draw merely took too long rather than any explicit bottleneck.
I've taken screenshots with show-time-usage and show-gpu-time-usage whilst the game is behaving "normally" vs just after a stutter has occurred.
Things I've tried:
various settings like flip presentation model, atlas texture size, fullscreen / window mode etc.
ALL combinations of vsync via the game and NVIDIA control panel (off, on, 3d application setting, fast)
shutting down all applications (I don't have anything running that "polls" the CPU / GPU, like Aura Sync etc.)
forced open-gl mode via the config in %appdata% - behaviour is exactly the same
Any help would be appreciated
edit: attachments don't seem to be working? Uploads below:
log - https://pastebin.com/VdWFcGjP
preStutter - https://i.imgur.com/woKg3ky.jpeg
postStutter - https://i.imgur.com/oSmt2p8.jpeg
I've started a new game of Factorio recently and I've noticed a stutter issue that I can't seem to get rid of. In the past I've had the same issue on the same PC, but I've always been able to fix it with some combination of vsync in game / via NVIDIA control panel. This time though I can't seem to get rid of it...
Basically what happens is that I open up a new single player game (for example transport belt madness), zoom out the map as far as possible and pan the map from left to right using the 'a' and 'd' keys. Randomly you will see the map hitch for 1 frame, even though my computer should be plenty powerful to run a small mapped, fresh game at 60fps. This behaviour occurs when vsync is ON.
When vsync is off (or forced to FAST in the NVIDIA control panel), the behaviour is subtly different. When performing the same behaviour above, instead of a random frame hitch the game will instead stutter non-stop for 4-5 seconds before returning to normal. It's then normal for 5-10 seconds before this behaviour repeats itself.
One thing that might be of interest is that the only way I can make the game tear is by forcing Vsync OFF in the NVIDIA control panel - and I believe in this case I do NOT get the hitching, but I do get a LOT of tearing that basically makes the game unplayable. Even when the NVIDIA control panel is set to "use application setting" and vsync is off in the game I don't get tearing - as if something is still synching the frames when it shouldn't be?
In the above case, I believe the hitching somewhat aligns with the timing of the "scan" of the tearing - the tear line slowly moves along the screen until it (for example) disappears off the top and re-appears at the bottom.
Another thing to note is that whilst the stutter is preset, I don't appear to have dropped any UPS or FPS - it's as if the frame draw merely took too long rather than any explicit bottleneck.
I've taken screenshots with show-time-usage and show-gpu-time-usage whilst the game is behaving "normally" vs just after a stutter has occurred.
Things I've tried:
various settings like flip presentation model, atlas texture size, fullscreen / window mode etc.
ALL combinations of vsync via the game and NVIDIA control panel (off, on, 3d application setting, fast)
shutting down all applications (I don't have anything running that "polls" the CPU / GPU, like Aura Sync etc.)
forced open-gl mode via the config in %appdata% - behaviour is exactly the same
Any help would be appreciated
edit: attachments don't seem to be working? Uploads below:
log - https://pastebin.com/VdWFcGjP
preStutter - https://i.imgur.com/woKg3ky.jpeg
postStutter - https://i.imgur.com/oSmt2p8.jpeg