Jump to content

Microstuttering


Hek Harris

Recommended Posts

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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.

 

A lot of people with similar hardware are playing the game fine, so telling us to optimize solves nothing, since we have already optimized the game in numerous ways. Our testers and us play the game on a variety of hardware just fine with the correct settings.

 

I have a Ryzen 7 1800x and until I updated my GPU a few months ago, I was also using a GTX 1060 6GB and the game played fine for me.

I have 16 GB of RAM. How much to you have?

What resolution are you running at? It makes a big difference. With a 1060 1440p was bad for me, so I would not go above 1920x1080 and reflections should be at medium or lower.

Link to comment
Share on other sites

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 was talking about windowed vs fullscreen modes and registry keys, not the bug with resolution changes. Now the same code could be causing that issue too.

Link to comment
Share on other sites

A lot of people with similar hardware are playing the game fine, so telling us to optimize solves nothing, since we have already optimized the game in numerous ways. Our testers and us play the game on a variety of hardware just fine with the correct settings.

 

I have a Ryzen 7 1800x and until I updated my GPU a few months ago, I was also using a GTX 1060 6GB and the game played fine for me.

I have 16 GB of RAM. How much to you have?

What resolution are you running at? It makes a big difference. With a 1060 1440p was bad for me, so I would not go above 1920x1080 and reflections should be at medium or lower.

 

16gb (2x8) 2666mhz Corsair Vengeance DDR4 Ram

960gb Agate SSD (550mb/s read 530mb/s write)

 

Resolution 1440x900 Windowed

Reflections: OFF

 

I usually play 1920x1080 Fullscreen, but have lowered the resolution to attempt to improve stability (so far not much improvement). I run in Windowed mode in A17+ because there is an unknown issue im experiencing in which FullScreen adds another 15'c onto the CPU tempature to a point i become concerned (i dont experience this in any other game) yet whilst running in Windowed mode these very strange and dramatic temperature increases do not happen. I want to play a game, not run a 24/7 stress test and severely deplete the lifespan of the CPU in your game.

 

Why Windowed and Fullscreen have such a dramatic effect on CPU temperature when the resolution is the same, i have no idea. This started in A17.

 

Reflections off to maximize frame rate stability, you advised us that Reflections were one of the causes of microstuttering therefor i turned it entirely off. Im doing everything to minimize the effects. Turning off reflections has not improved things for me, but other people have had improvements. Me and the majority of the people i play with, report these stuttering issues when engaged with zombies, the longer they play the game without a restart, the stuttering is worse. (after a long 6 hour session, FPS is much lower of what it was when they first logged in, and zombie engagement produces much worse stutters)

 

Stutters are not related to map generation or loading as we play on Navesgane and have no issues with slow chunk load. In fact chunk loads are greatly improved on A17 and travelling fast has far less issues than in the past. Gotta give credit where its due and chunk loading is rapid.

Link to comment
Share on other sites

I think the problem with topics like that is no one can agree with anything, making it difficult to separate fact from opinion. But I agree in that it was a good read.

 

I personally have never visually noticed any tearing with games while not using v-sync at all but instead using g-sync + frame limiter. Whether or not this game benefits from v-sync in terms of frame time stability is another matter. But I don't think we should be forced to enable v-sync just so we can enjoy this one game (since this is the only game I know of that has severe frame time stability issues).

 

There's also the matter of players with older hardware who average 30 - 35 fps with this game. They don't really have the option to use v-sync as that would effectively half their average fps + the 1 frame input lag causing the game to be really not enjoyable.

Link to comment
Share on other sites

It would not halve their fps, it would give them what they're already getting. Your card doesn't magically find the ability to create twice as many completely rendered frames simply because vsync is off. If you card can handle 20fps with it on and 30-35 with it off, the extra you're seeing are incomplete frames, this the tearing.

 

Also, v-sync drastically improves G-Sync, as is mentioned many times on the nVidia forums. Capping a framerate is NOT the same as v-sync. You can cap your rate and still get half-rendered buffers sent through. V-sync simply times things and makes sure the buffer is full before flushing it.

 

Snake, your problem sounds like garbage collection. The longer you play the worse it gets has nothing to do with video options, that's garbage collection failing to catch stuff or something. The team would be better suited to helping with this but that is NOT micro-stuttering, those are pauses as stuff is either spawned in or removed, such as zombies and their animations. I get that if I play long enough, but I do not have micro-stutter. Again, it sounds like an entirely different problem.

Link to comment
Share on other sites

I have a fairly decent rig.. 16 gigs ram i5 8600k and a gtx 1070ti and the game is on an ssd. I get micro stutters. Micro stutters are not game breaking and unless you're looking for them they most likely won't bother you and you might not even really notice them. For some people it's very jarring and immersion breaking and a huge annoyance. Everyone experiences this differently. I notice it during a swing . If I'm swinging at a rock no big deal but the smooth animation and timing in my head gets thrown off because i count as I swing. It's kind of a mild OCD thing and when it happens its very disatisfying and makes me frown. I can imagine if someone also does this or has real OCD it might make them freak out.

 

If the micro stutter happens when I'm swinging at a zombie it throws my aim off and I miss a hit that looked like I should've got. THIS is the current problem with melee at the moment that I feel is causing people to say melee is broken or hitboxes are off. It's the microstutters.

 

Yes it's alpha. I'm not even complaining about it because my microstutters are mild, just trying to clarify some points. People compare the game to other popular survival type games where the graphics are nicer and theres "alot more going on" and these micro stutters don't happen. There's a freakin butt ton of stuff going on in the background of the game with loading blocks and saving info about block damage and entity damage and locations. I imagine it has to do with stuff like that and also might not even be local,it may be partly dependant on the specs of the server you're playing on.

 

Short clips of people experiencing these micro stutters would be great

Link to comment
Share on other sites

It would not halve their fps, it would give them what they're already getting. Your card doesn't magically find the ability to create twice as many completely rendered frames simply because vsync is off. If you card can handle 20fps with it on and 30-35 with it off, the extra you're seeing are incomplete frames, this the tearing.

 

Also, v-sync drastically improves G-Sync, as is mentioned many times on the nVidia forums. Capping a framerate is NOT the same as v-sync. You can cap your rate and still get half-rendered buffers sent through. V-sync simply times things and makes sure the buffer is full before flushing it.

If a game can't render at exactly 30fps or higher, it'll drop down to I think 15fps (aka half). It tries to hold a steady fps instead of allowing chaotic fps to go all over the place. It doesn't remove bad frames or the tearing you're talking about... it just "helps" prevent it by simply stabilizing the fps. So if you're averaging 25 - 29fps... it won't render at that fps at all... it'll just drop down to 15fps because that's the rounded number v-sync is programmed to render at.

 

You'll notice I used "" when I say it "helps" prevent tearing... cuz in my experience, it really doesn't do a whole lot in preventing tearing. Super Hexagon is an excellent game for testing screen tearing as it plays at a locked 60fps and is easily attained with a potato computer. With v-sync enabled (no g-sync), screen tearing is an issue with that game. With v-sync off, there's really not that much difference. But with g-sync enabled (no v-sync), tearing is completely eliminated. With both enabled, I notice the input lag causing me to fail the level sooner.

 

I may not know the exact specifics of v-sync, but that's been my experience and what I know of v-sync, which is why I don't use it.

Link to comment
Share on other sites

If a game can't render at exactly 30fps or higher, it'll drop down to I think 15fps (aka half). That's what v-sync does. It tries to hold a steady fps instead of allowing chaotic fps to go all over the place. It doesn't remove bad frames or the tearing you're talking about... it just "helps" prevent it by simply stabilizing the fps. So if you're averaging 25 - 29fps... it won't render at that fps at all... it'll just drop down to 15fps because that's the rounded number v-sync is programmed to render at.

 

I am pretty sure I explained that this problem no longer exists in the present day. D3D employs a flip cue that will provide filler frames at the very next sync interval. It doesn't always show the most recent frame available because of timing issues and the fact that it is not true triple buffering. That may cause some felt mouse lag at times or it might not.

 

V-Sync does remove tearing since it does not allow the passing of incomplete frames through the buffer. The reason that this might help microstutter is because it essentially forces a defacto frame time of 60milliseconds assuming a 60Hz refresh rate.

Link to comment
Share on other sites

CoolJ is correct. Vertical sync is just exactly what the name implies. It syncs an entire frame buffer to the refresh rate of the monitor. So instead of a half-drawn buffer, you get the whole shebang, as often as possible, up to the refresh rate. G-Sync advances this further by preventing micro-stutter when you have v-sync on and your card cannot maintain whatever your refresh rate is. For example, my monitor is 144Hz but I do not get that very often in-game. G-Sync sets the monitor refresh rate to whatever my fully-drawn frame buffer rate is. Normally I get 40-80fps, so my refresh rate is automatically adjusted to between 40Hz and 80Hz. So no micro-stutter or tearing.

 

Also, let's see if The Pimps can give us ray tracing in A18. Then we can all go buy 2080's. I bet the game would look awesome. Quake 2 was just redone with ray tracing and it looks better than BF5!

Link to comment
Share on other sites

Ok, after testing Alpha 17 for the first time... I'd like to say I was wrong on a few things... it turns out v-sync did in fact receive some improvements. It seems to only take away 10fps (from 100 to 90) with v-sync on and it is in fact variable instead of locking at a rounded number like it used to be, although half v-sync does literally take away half the fps (brought me down to 50). Also, losing 10fps when you average 30 without is still a massive loss, so I still think v-sync sucks, and I can't imagine anyone wanting to use half v-sync setting, dear lord that sucked. But to say g-sync + v-sync enabled will eliminate stutters is misinformation... at least with my results while testing with v-sync and half v-sync enabled. I noticed at least 2 separate types of stutter issues within 15 minutes of game time, both of which I've complained about since Alpha 11, though one of them isn't as bad anymore which is great cuz that one prevented melee from being possible (I haven't tested blood moon though, so I can't say for sure). But the other one gave me a headache just for testing the issue for 5 minutes... that to me is bad.

 

Also, ray tracing would be terrible in a game like this considering the fact that this game is already a massive pig on resources. I can't even imagine what ray tracing would be like on each individual entity and block... the amount of hardware resources needed would likely be insane, and for what... a hardly noticeable visual improvement which would take ages to implement into a game that only a small select few ppl in the world right now could enable? I personally would much rather see performance improvements than things that would kill performance (or features that most ppl couldn't benefit from).

 

Now I need to take something for my headache.

Link to comment
Share on other sites

Just adding here that the stuttering in 17.1 is out of control. I beefed up my rig recently with a 1080 GTX and 32 GB of ram ... and the stuttering is out of control. It's not a framerate issue per se, but moving the mouse right or left will often just STOP ... continue. It's like there are brief micro second moments of NOTHING and then back to normal. Last night it was terrible. No Z's, just me moving through my base and looking around at containers etc. STOP move STOP move. Going up a ladder FREEZE BLUR move BLUR move. At one point I was looking towards my spikes (no Zs or anything around) turned to move away, and in the middle of the 180 the game FROZE so much that Iw as actually back looking at the spike (full 360) and walked into them. It's worse than I ever remember in previous versions.

Link to comment
Share on other sites

procmon64_2019-01-24_18-22-2474d38851b209306a9.jpg.adaea710c542359cb94b41d4abb24922.jpg

procmon64_2019-01-24_18-25-46c71fa72d4347966dd.jpg.7c76514fdcb415ebee25ce91c269a3dc.jpg

 

I think the reason is the constant I/O access to the disk, it constantly opens reads/writes files. Within 2 minutes it caused 10225 file events, maybe thats something to look into, especially older HDDs will usually stall for the operation to complete.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...