CFX Induced BF4 Vsync Stutter Workaround

Celestion

n00b
Joined
Jan 4, 2013
Messages
33
CFX Induced BF4 Vsync Stutter Workaround - Written for n00bs

Steps:
1. In the catalyst control center add a profile for the bf4.exe file.
2. In the Frame Pacing drop down box of the bf4.exe profile select "Off".
3. In the main BF4 folder (where the bf4.exe is found) create text file called "user.cfg"
4. Copy, paste, and save this text into the "user.cfg" file:

gametime.maxvariablefps 59.95
RenderDevice.TripleBufferingEnable 1
RenderDevice.RenderAheadLimit 0

5. Play game with vsync enabled.

To me at least, the above settings appeared to result in the least input lag. However, if you want to tweak them here are some guidelines I recommend:

"gametime.maxvariablefps number" must be less than or equal to your precise refresh rate. The engine can process 4 significant figures for this variable (maybe more).
I used the tool found here to see my precise refresh rate (59.95).

"RenderDevice.RenderAheadLimit number" can be set to anything less than or equal to 0. Numbers greater than or equal to 1 result in extreme stuttering.

"RenderDevice.TripleBufferingEnable number" can be set to 0.

Traditional v-sync limits the benefit of Frame Pacing. Thus, disabling Frame Pacing isn't a big deal.
 
Last edited:
I personally use gametime.maxvariablefps 59.9 to avoid the little stutter from the missing frame, the engine allows it and works perfectly for me, if I use 60 I get a bit of mouse lag, 59.9 is fine.
 
Last edited:
You guys use the vsync? I have played a lot of BF4 so far, but I haven't noticed any tearing or issues with having the vsync off that I usually see. I run around 140-180fps on large maps and bump the 200fps limit on indoor ones.
 
Traditional v-sync limits the benefit of Frame Pacing. Thus, disabling Frame Pacing isn't a big deal.
Unless AMD's frame pacing approach is built around how long frames hang around in the presentation queue, it shouldn't. I find it very doubtful this would be the case.
 
I personally use gametime.maxvariablefps 59.9 to avoid the little stutter from the missing frame, the engine allows it and works perfectly for me, if I use 60 I get a bit of mouse lag, 59.9 is fine.

I didn't know engine would accept such a precise value. It looks like it can handle at least 4 significant figures. I updated my post with your findings.
 
Unless AMD's frame pacing approach is built around how long frames hang around in the presentation queue, it shouldn't. I find it very doubtful this would be the case.

Perhaps that is there approach then. V-sync + crossfire + frame pacing = ATI Radeon 9800 Pro class performance. If I disable V-sync and limit the engine's frame rate I still get moderate tearing.

These results seem to indicate that using v-sync with AMD's "unpaced" crossfire is at least as good as Nvidia's standard V-sync with SLI.
 
CFX Induced BF4 Vsync Stutter Workaround - Written for n00bs

Steps:
1. In the catalyst control center add a profile for the bf4.exe file.
2. In the Frame Pacing drop down box of the bf4.exe profile select "Off".
3. In the main BF4 folder (where the bf4.exe is found) create text file called "user.cfg"
4. Copy, paste, and save this text into the "user.cfg" file:



5. Play game with vsync enabled.

To me at least, the above settings appeared to result in the least input lag. However, if you want to tweak them here are some guidelines I recommend:

"gametime.maxvariablefps number" must be less than or equal to your precise refresh rate. The engine can process 4 significant figures for this variable (maybe more).
I used the tool found here to see my precise refresh rate (59.95).

"RenderDevice.RenderAheadLimit number" can be set to anything less than or equal to 0. Numbers greater than or equal to 1 result in extreme stuttering.

"RenderDevice.TripleBufferingEnable number" can be set to 0.

Traditional v-sync limits the benefit of Frame Pacing. Thus, disabling Frame Pacing isn't a big deal.


Just wanted to say thanks for this.. This has my crossfire 7870s running pretty darn smooth with vsync enabled. at a pretty solid rate of 60fps on ultra settings..
 
I never see tearing in BF4. I set my power to +20 and turn the voltage up slightly. The cards are properly fed and I rarely experience it in many games. Only games I can think of are all in Alpha stages, and heck they have so many bugs from early development, that they will crash if you click the launch button too many times. :)

I think you'll should consider trying the voltage bump and +20 power settings before turning on VSYNC. I can't stand tearing as it instantly makes my eyes hurt. I guess if the voltage on your cards can't be unlocked in MSI Afterburner or whatever you use, then this is a valid course of action.
 
Does anyone else get texture flickering in crossfire?

Yes and it's irritating. However in BF4 I've also seen texture flicker on a single card too. The game is just toreup and has issues far beyond just crashing and connectivity issues.
 
Never really seen it on single 280 or 290, but did on my old 580SLI and now my 290 CrossFire.
Ah well
 
Traditional v-sync limits the benefit of Frame Pacing. Thus, disabling Frame Pacing isn't a big deal.

This isn't true.

Sure, Vsync puts a sort of manual constraint on framerates and frametimes. But it does not fix the problem of partial frames being delivered and therefore, lots of tearing. Techreport has several write-ups on this. Basically, AMD had a huge problem where more than a negligible amount of frames get delivered only in partial form as a couple hundred lines, which shows as a tear, when the next frame with more lines comes in. This is regardless of refresh rate constraints. These are tears that would happen anyway.

If at all possible, you want to use frame pacing. Now, I understand there are huge problems with BF4. But frame pacing should basically be left on in most games, even when using Vsync.
 
Last edited:
This isn't true.

Sure, Vsync puts a sort of manual constraint on framerates and frametimes. But it does not fix the problem of partial frames being delivered and therefore, lots of tearing. Techreport has several write-ups on this. Basically, AMD had a huge problem where more than a negligible amount of frames get delivered only in partial form as a couple hundred lines, which shows as a tear, when the next frame with more lines comes in. This is regardless of refresh rate constraints. These are tears that would happen anyway.

If at all possible, you want to use frame pacing. Now, I understand there are huge problems with BF4. But frame pacing should basically be left on in most games, even when using Vsync.

Hmmm... This analysis shows that Nvidia and AMD (w/o frame pacing) multi-GPU setups using traditional v-sync experience a similar level of frame variance. Secondly, I believe that v-sync does fix frame tearing, regardless of whether or not frame pacing is being implemented. Where have you seen otherwise? The major benefit of frame pacing w/ v-sync is less micro-stuttering. Another benefit of frame pacing is lowering frame latency. V-sync inherently limits this benefit. Thus, "traditional v-sync limits the benefit of Frame Pacing" but it does not abolish it. If a player wants absolutely zero screen tearing in BF4, my workaround is a great approach.
 
Last edited:
Hmmm... This analysis shows that Nvidia and AMD (w/o frame pacing) multi-GPU setups using traditional v-sync experience a similar level of frame variance. Secondly, I believe that v-sync does fix frame tearing, regardless of whether or not frame pacing is being implemented. Where have you seen otherwise? The major benefit of frame pacing w/ v-sync is less micro-stuttering. Another benefit of frame pacing is lowering frame latency. V-sync inherently limits this benefit. Thus, "traditional v-sync limits the benefit of Frame Pacing" but it does not abolish it. If a player wants absolutely zero screen tearing in BF4, my workaround is a great approach.

Techreport was one of the main sites telling AMD they had issues not only with multi-GPU setups, but with single cards as well. They also worked with Nvidia to figure out how to use FCAT and report the results in a way that meant something to readers. Then later, they would test beta drivers for improvements, that AMD sent.

Here's the stuff that ends up being specifically relevant to Crossfire and this thread. (although you may be interested in digging back further, for the fundamentals on the frame time issue, for all AMD cards)
http://techreport.com/review/24553/inside-the-second-with-nvidia-frame-capture-tools/9

http://techreport.com/review/24703/amd-radeon-hd-7990-graphics-card-reviewed/2

http://techreport.com/review/25167/frame-pacing-driver-aims-to-revive-the-radeon-hd-7990

*One of the big things to takeaway from there is that many of the fully rendered frames that were counted in the framerate by fraps and similar programs, didn't actually get fully displayed to the player (as I mentioned earlier). On paper, it was fast. But more than a few of those frames were never even seen. Not to mention, inconsistent frame times, causing jitter/stutter/etc. Techreport's resulting sentiment is that since more than a negligible amount of frames are never even fully seen, they don't really count toward the overall experience. See: much of the time, a single card would deliver the same amount of actual, full frames, with better consistency.
 
Last edited:
Techreport was one of the main sites telling AMD they had issues not only with multi-GPU setups, but with single cards as well. They also worked with Nvidia to figure out how to use FCAT and report the results in a way that meant something to readers. Then later, they would test beta drivers for improvements, that AMD sent.

Here's the stuff that ends up being specifically relevant to Crossfire and this thread. (although you may be interested in digging back further, for the fundamentals on the frame time issue, for all AMD cards)
http://techreport.com/review/24553/inside-the-second-with-nvidia-frame-capture-tools/9

http://techreport.com/review/24703/amd-radeon-hd-7990-graphics-card-reviewed/2

http://techreport.com/review/25167/frame-pacing-driver-aims-to-revive-the-radeon-hd-7990

*One of the big things to takeaway from there is that many of the fully rendered frames that were counted in the framerate by fraps and similar programs, didn't actually get fully displayed to the player (as I mentioned earlier). On paper, it was fast. But more than a few of those frames were never even seen. Not to mention, inconsistent frame times, causing jitter/stutter/etc. Techreport's resulting sentiment is that since more than a negligible amount of frames are never even fully seen, they don't really count toward the overall experience. See: much of the time, a single card would deliver the same amount of actual, full frames, with better consistency.

Those articles are focused on what is happening with vsync disabled...
From your second link:
"With vsync disabled, those short or "runt" frames may only occupy a handful of horizontal lines across the screen"

Vsync eliminates these kinds of artifacts even if frame pacing is disabled.

I am using vsync. As per the article I linked earlier, AMD's vsync without frame pacing is comparable, if not identical to Nvidia's traditional vsync implementation.

All the techreport stuff doesn't apply to the "CFX Induced BF4 Vsync Stutter" issue. The stutter encountered here isn't the infamous microstutter discussed in those articles, its more like "macrostutter". For this specific, more novel issue, frame pacing + vsync = aberrantly paced frames. Its a new disease that requires compromises to treat. AFIK one must either choose to disable vsync and experience some minor screen tearing, or, disable frame pacing and use my .cfg tweak. Deciding between these two solutions is subjective.
 
Last edited:
Back
Top