PC Microstuttering

It was a frame rate issue indeed. Usually I have fps at 7x. When the loss of framerate happens the frame rate drop to 5x. That in effect means within 1 sec period, for may be 0.2 secs you have no frames update at all, then for the remaining 0.8 sec you have like 8x frames/sec, which avg out to 5x frames/sec. It is annoying when the zombies teleported behind me with noclips while I am not watching ,and when I try to shot them I cannot aim well because the frame lost make it hard to track zombies movment. And I know they glitched thou because the wall is intact and there is no other way they can reach me that fast otherwise.

 
Did you try temporarily renaming that key I mentioned? When that key is present on my system aside from no G-Sync and this micro-stutter, I got REALLY low framerates. We're talking 20-30fps. Deleting the key got me up to 40-80fps basically everywhere. Add G-Sync and no stutter and it is fine for me.

 
Did you try temporarily renaming that key I mentioned? When that key is present on my system aside from no G-Sync and this micro-stutter, I got REALLY low framerates. We're talking 20-30fps. Deleting the key got me up to 40-80fps basically everywhere. Add G-Sync and no stutter and it is fine for me.
Not Yet. Next time I play I will try it out and let you know about it.(may be tomorrow.)

 
Also, I have everything maxed on my GTX 1070 in 1440p without the stutter. What fixed it on my end was removing a registry key which, when created, caused G-Sync to fail and the stuttering you describe here. There are two fullscreen registry entries. One is fine and the other causes a whole mess of issues. My solution was to go into the game, set everything how I wanted it, exit the game, and then delete this one key. Now everything works and no more stuttering. The key I removed is "Screenmanager Is Fullscreen mode_h3981298716". There's also a normal fullscreen key which handles fullscreen. Not sure what this does, but it killed my framerate, disabled G-Sync, and introduced the micro-stutter.
If you want to test what removing the key would do, just rename it and add ".bak" to the end of the name. This way if it doesn't work for you, you just rename it back and you're golden.
"Screenmanager Fullscreen mode" appears to be an old key, since there are no references to it in code.

"Screenmanager Is Fullscreen mode" should have a 0 or 1 value that is set by the video settings UI Fullscreen no or yes. Deleting is would turn fullscreen off, which you can just do by setting it to No in the UI. We don't do anything with this value other than send it to the Unity SetResolution(int width, int height, bool fullscreen) function.

 
That is not microstutter. That could be garbage collection, but that normally happens about every minute. Could be windows doing some heavy background work or some game system stalling out for a moment like a big load/save.
Faatal: If garbage collection needs to run roughly every minute, are you able to force it to happen when you open the map, a menu or when you get in/out of vehicles, or other situations where you aren't generally in an intense moment where microstutter is the difference between life and death?

 
There's a few seconds lag when doing TNT blast and if there more than 5 or more zombies around..

Using 2700x with 1080TI same issue with my 2nd spec 1070TI too..

Other than that everything fine..

 
"Screenmanager Fullscreen mode" appears to be an old key, since there are no references to it in code.
"Screenmanager Is Fullscreen mode" should have a 0 or 1 value that is set by the video settings UI Fullscreen no or yes. Deleting is would turn fullscreen off, which you can just do by setting it to No in the UI. We don't do anything with this value other than send it to the Unity SetResolution(int width, int height, bool fullscreen) function.
I know that it isn't used correctly. On my end, A17.0, if I go into my graphics options and exit them, then exit the game, that value is created and the next time I start the game G-Sync won't work and I get micro-stutter. The game DOES create "Screenmanager Is Fullscreen Mode" if you go into your graphics options in-game. However, deleting that entry and playing the game without ever entering the options again means the entry never shows up in my registry again and G-Sync works, and no micro-stutter! I believe this is a bug, but either way, the value IS created by the game AND the value DOES disable G-Sync and cause micro-stutter on my end.

If this is not supposed to be how it is, I would be happy to send you any info which may help you in squashing this bug.

 
Can confirm, it also creates/recreates the registry entry for me as well. Deleted it twice to confirm. Whether or not its causing g me any problems is undetermined, as my system runs the game fine.... barring the gigantic loss of fps with reflections on. Which sucks because the game is too dark with out reflected light.

 
Looks like it is reflections doing it then. No surprise since they are expensive. They have to do 6 renders to update the cubemap. The higher the setting, the more often it updates and the higher the resolution and the renders use a longer distance. At high or better it is doing a lot of extra rendering, which would give you spikes.
I've tweaked reflection settings several times now and nothing will make them faster other than reducing values, which is what the lower settings do.
Possibly a setting best change to on or off then in the options and default on value of low in a future build?

Even dropping down to 720p when using high reflection quality the frametime variance is jarring.

 
Can confirm, it also creates/recreates the registry entry for me as well. Deleted it twice to confirm. Whether or not its causing g me any problems is undetermined, as my system runs the game fine.... barring the gigantic loss of fps with reflections on. Which sucks because the game is too dark with out reflected light.
What video card do you have? I am running the one GTX1070 while the other idles (why won't Unity get with 2004 and support SLI?) and I play in 2560x1440 with everything maxed, including reflections.

 
Faatal: If garbage collection needs to run roughly every minute, are you able to force it to happen when you open the map, a menu or when you get in/out of vehicles, or other situations where you aren't generally in an intense moment where microstutter is the difference between life and death?
Yes, Kinyajuu and I talked about that a few weeks ago. A possible change when we get to it.

 
I know that it isn't used correctly. On my end, A17.0, if I go into my graphics options and exit them, then exit the game, that value is created and the next time I start the game G-Sync won't work and I get micro-stutter. The game DOES create "Screenmanager Is Fullscreen Mode" if you go into your graphics options in-game. However, deleting that entry and playing the game without ever entering the options again means the entry never shows up in my registry again and G-Sync works, and no micro-stutter! I believe this is a bug, but either way, the value IS created by the game AND the value DOES disable G-Sync and cause micro-stutter on my end.
If this is not supposed to be how it is, I would be happy to send you any info which may help you in squashing this bug.
Here is the code:

bool fullscreen = PlayerPrefs.HasKey ("Screenmanager Is Fullscreen mode") ? PlayerPrefs.GetInt ("Screenmanager Is Fullscreen mode") != 0 : false;

That means with no key fullscreen is false. If you set Fullscreen off the key would be 0 and fullscreen is off. Same difference.

What is weird is on game start we only call SetResolution if the width or height don't match the current Unity width and height, but we never compare the fullscreen value, which means if your res is the same, fullscreen is left to the Unity default, not what you set it to. I am adding a compare for fullscreen and logging of the values before and after.

 
Last edited by a moderator:
Possibly a setting best change to on or off then in the options and default on value of low in a future build?
Even dropping down to 720p when using high reflection quality the frametime variance is jarring.
It is up to the player to determine what works for them. We can't guess the best settings for you. We could try, but it would probably be wrong. Reflections render at their own lower resolution, so setting the game to 720p does not change the work reflections have to do.

I run at reflections high and either I'm not getting microstutter or it does not bother me.

 
Here is the code:bool fullscreen = PlayerPrefs.HasKey ("Screenmanager Is Fullscreen mode") ? PlayerPrefs.GetInt ("Screenmanager Is Fullscreen mode") != 0 : false;

That means with no key fullscreen is false. If you set Fullscreen off the key would be 0 and fullscreen is off. Same difference.

What is weird is on game start we only call SetResolution if the width or height don't match the current Unity width and height, but we never compare the fullscreen value, which means if your res is the same, fullscreen is left to the Unity default, not what you set it to. I am adding a compare for fullscreen and logging of the values before and after.
Thank you for responding. My desktop runs in 2560x1440@60Hz, and the only change is that nVidia sets true fullscreen apps by default to 2560x1440@144Hz. Only the frequency increases. Resolution is the same. Again, I would be happy to help any way possible (Remote Desktop/VPN into my box, maybe a video of things happening, whatever) but I can say for sure, if I add that key with ANY value, I get bad micro-stutter and low FPS combined with no G-Sync in-game. I have tried values of 0, 1, and up to 255. Nothing matters. Deleting the entry resolves all issues and G-Sync runs again.

By the way, I like the shorthand "if" checks. I don't see them often in the C++ world.

 
Thank you for responding. My desktop runs in 2560x1440@60Hz, and the only change is that nVidia sets true fullscreen apps by default to 2560x1440@144Hz. Only the frequency increases. Resolution is the same. Again, I would be happy to help any way possible (Remote Desktop/VPN into my box, maybe a video of things happening, whatever) but I can say for sure, if I add that key with ANY value, I get bad micro-stutter and low FPS combined with no G-Sync in-game. I have tried values of 0, 1, and up to 255. Nothing matters. Deleting the entry resolves all issues and G-Sync runs again.
It seems Unity is remembering the screen settings, so even with my change, we typically don't call SetResolution on startup. If it was called for you, it would be making a "Screenmanager Is Fullscreen mode" key.

The key "Screenmanager Fullscreen mode" is actually being made by Unity to remember the fullscreen mode, since Unity has 4:

ExclusiveFullScreen = 0,

FullScreenWindow = 1,

MaximizedWindow = 2,

Windowed = 3

 
It seems Unity is remembering the screen settings, so even with my change, we typically don't call SetResolution on startup. If it was called for you, it would be making a "Screenmanager Is Fullscreen mode" key.
The key "Screenmanager Fullscreen mode" is actually being made by Unity to remember the fullscreen mode, since Unity has 4:

ExclusiveFullScreen = 0,

FullScreenWindow = 1,

MaximizedWindow = 2,

Windowed = 3
I set my resolution to 1600x900 for it makes a huge difference in my fps running a GTX1060 6GB. Sometimes I log in to find my resolution has been set back to 1920x1080 is this the same issue your talking about and or something else?

 
I have discovered the cause of my stuttering as the process which tells zombies to attack a block or swing at a player.

Each and everytime a zombie attacks a block, microstutter.

Each and everytime a zombie takes a swing at me, microstutter

When i enter a PoI and there are many awake zombies and some come out to fight me, often i cannot aim for s### because all the zombies in the building are creating constant stutters.

I just dont understand these fps issues anymore, for example:

I have a Ryzen 7 1800x 8x3.6ghz and a GTX 1060 6gb and between the microstuttering ruining the gameplay i usually have around 60fps.

My friend who has a slightly weaker computer; AMD FX 6350 6x3.5ghz and a Nvidia GTX 1060 6gb...(still a very good rig) who was next to me on the occasions we tested, reported that his fps dropped from 25-40 down to 5-10 when in encounters with zombies, becoming unplayable.

The AMD FX 6350 is still a great processor and he normally has great FPS...yet A17 seems to be slapping everyone in the face.

My wishes for the next version of 7D2D is:

-Optimize

-Optimize more

-Yet more optimizing

Many of us are running top end rigs and STILL having issues. You cannot continue like you are now, to blame US for YOUR poor optimization.

 
Last edited by a moderator:
I have discovered the cause of my stuttering as the process which tells zombies to attack a block or swing at a player.
Each and everytime a zombie attacks a block, microstutter.

Each and everytime a zombie takes a swing at me, microstutter

When i enter a PoI and there are many awake zombies and some come out to fight me, often i cannot aim for s### because all the zombies in the building are creating constant stutters.

I just dont understand these fps issues anymore, for example:

I have a Ryzen 7 1800x 8x3.6ghz and a GTX 1060 6gb and between the microstuttering ruining the gameplay i usually have around 60fps.

My friend who has a slightly weaker computer; AMD FX 6350 6x3.5ghz and a Nvidia GTX 1060 6gb...(still a very good rig) who was next to me on the occasions we tested, reported that his fps dropped from 25-40 down to 5-10 when in encounters with zombies, becoming unplayable.

The AMD FX 6350 is still a great processor and he normally has great FPS...yet A17 seems to be slapping everyone in the face.

My wishes for the next version of 7D2D is:

-Optimize

-Optimize more

-Yet more optimizing

Many of us are running top end rigs and STILL having issues. You cannot continue like you are now, to blame US for YOUR poor optimization.
That is not micro stutter. That is just poor frame rate. Those pauses are happening for a variety of reasons but they are not what this thread is about. Micro stutter is where the frame delivery is not consistent. This causes an effect like you are watching a 24Hz movie even though you are technically still being shown a much higher FPS.

They never blamed anyone for the random pauses. They understand why it is happening and they have already planned ways to make the problem better. They just have not had the chance to do so yet. Getting yourself all worked up about something that is not even the topic of this thread is really not necessary. Furthermore, now is not the time for them to be overly concerned with issues like this anyway.

 
Snake, he is correct though. You are not having what is being discussed in this thread based on your description. What the players in this thread have happens just randomly wandering around even with no zombies around. It's like random, minor hiccups. Mine were the result of the key which faatal and I were discussing. Other members, not so much.

Also, the 6350 is six years old. It is most likely the issue in that case. 7 Days is voxel-based and has to calculate not only zombie AI and collision, but also the entire world around the player prior to sending it to the video card for rendering. That chip is too old. Your Ryzen 7 is much newer, but I never had luck with AMD chips. I run an i7-6950X with zero issues. Yes, it's six core and yours is eight, but I don't have the issue you have.

As a positive point, have you monitored CPU usage during your gameplay?

 
Back
Top