Triple Buffering
-
c) Don’t forget you can switch between borderless-window and fullscreen-exclusive at any time with [Alt+Enter].
…cc… if BMS doesn’t crash … oh it does work , just not everytime :twisted: (in 3D , on 2D map it works… can’t say that it ever crashed) - but I’m on AMD so…
-
@airtex2019…
the triplebuffering v-synch overkill.
it’s so simple and yet so complicated…
If I had to come up to a conclusion after your marvelous post which many will read few will understand and keep saying why i get this but I did this and they say that and so on and so forth…
would be…
try them and stick with the fluent smooth experience, don’t focus on it, live with it. -
If you are on AMD just lock your FPS with chill to your monitors refresh, works like a charm
-
That is good “quadro” card which handles most visual things to your screen by itself and don’t need time from Y computer’s CPU to aid it +transfer time. Make round things round in your screen without help of CPU etc.
DX cards use computer’s CPU to do same if they cant keep up.
That just simplified short story.
-
And with a GSync monitor, what is the best config??, I know that is different to V-sync but what is your experience??
Enviado desde mi SM-A530F mediante Tapatalk
-
And with a GSync monitor, what is the best config??, I know that is different to V-sync but what is your experience??
Enviado desde mi SM-A530F mediante Tapatalk
Depends on your computer. If you set lower refresh speed on demand you probably get more decent stable output on monitor.
-
And with a GSync monitor, what is the best config??, I know that is different to V-sync but what is your experience??
Enviado desde mi SM-A530F mediante Tapatalk
I have a G-sync monitor too … did a lot of testing with it, enabled and disabled. In the context of triple-buffering, I found G-sync doesn’t add a lot of additional value. (Although the opposite is true – if you don’t have G-sync or Freesync, then TB or nvidia Fast-sync, is probably worth trying.)
Fundamentally, the way G-sync interacts with DWM or fullscreen-exclusive triple-buffering, isn’t all that different to how it works without G-sync. There is still a v-blank signal, just now it’s a much wider window of time that the OS or the app has, to scanout the next frame to the monitor. But with TB enabled (and assuming your CPU/GPU are running faster than your monitor’s refresh rate, which is the whole point) there will almost always be a new frame ready and waiting, at the start of the sync window – so G-sync doesn’t end up being much of a factor.
-
If you are on AMD just lock your FPS with chill to your monitors refresh, works like a charm
Frame-rate limiter is something I forgot to mention … without it, your CPU and GPU will run very hot, with triple-buffering enabled! Although no different than running v-sync=off (tearing).
For BMS with triple-buffering, I’m finding I like to limit max fps to around 1.3x - 1.5x my monitor’s refresh rate. So eg. for 60hz monitor, set max frame rate = 80 or 90.
The theory: you want to avoid capping fps close to your refresh rate, or any even multiple of your refresh rate … ie. at 60fps the triple-buffer would rarely have any benefit, and at 120fps you’d begin dropping all the odd frames and showing the even frames.
But by keeping the CPU/GPU producing frames about 33% faster than they get pulled from the triple-buffer, it keeps the TB populated with fresh, recent frames, helps smooth out any frametime spikes/hiccups, and only drops around 25% of the rendered frames so your PC doesn’t heat up your whole room… lol
Also, when setting a frame-rate limit, it may be useful to set Low Latency Mode=on (this used to be a setting called Max pre-rendered frames=1) to avoid building up a queue between the CPU and GPU (if your CPU is faster than your GPU).
-
Good morning to all, and airtex in particular.
Dear friend, I’m dropping (not a bomb at your address, cool there ) these few lines of mine just to let you know my high appreciation for having made me, not an expert for sure, more conscious about the high possibilities of improvement, unveiled until now, in enjoying more and more my GTX 2080Ti card, which I feel to be a satisfied owner of.
I’m also planning to buy a 3090 one of these days, but this is another matter. Of course.
Again, thanks a lot, mate. A big ‘thumbs up’ to you.
Have a nice (and safe! Most of all) day.
With best compliments and regards.
-
a good article too imho
https://blurbusters.com/gsync/gsync101-input-lag-tests-and-settings/btw I am not an expert, jut wanted to share. don’t kill the messenger
-
a good article too imho
https://blurbusters.com/gsync/gsync101-input-lag-tests-and-settings/btw I am not an expert, jut wanted to share. don’t kill the messenger
Yep blurbusters is solid advice. This article direct from NVidia is also worth reading and understanding… (sorry can’t remember if I shared it already):
https://www.nvidia.com/en-us/geforce/guides/system-latency-optimization-guide/For BMS I tried really hard to get G-sync + v-sync working to my liking … after all G-sync probably added $200 to the price tag of my monitor.
But so far I haven’t found a way around that weird flicker / stutter every 87th frame or so, and also keeping latency low… so I’ve turned off G-sync (and v-sync) and switched to triple-buffering. And ordered a better cpu cooling fan from amazon… lol
-
Well, dear airtex, I didn’t need to do anything more or else on my system than following those hints you posted before.
Believe it or not, they succeeded - I’m always at not less that 110 fps in any situation.
And please note that my card wasn’t performing too bad until then, and I have no G-Sync monitor either.Thanks once again for all, and with best regards.
-
Frame-rate limiter is something I forgot to mention … without it, your CPU and GPU will run very hot, with triple-buffering enabled! Although no different than running v-sync=off (tearing).
For BMS with triple-buffering, I’m finding I like to limit max fps to around 1.3x - 1.5x my monitor’s refresh rate. So eg. for 60hz monitor, set max frame rate = 80 or 90.
The theory: you want to avoid capping fps close to your refresh rate, or any even multiple of your refresh rate … ie. at 60fps the triple-buffer would rarely have any benefit, and at 120fps you’d begin dropping all the odd frames and showing the even frames.
But by keeping the CPU/GPU producing frames about 33% faster than they get pulled from the triple-buffer, it keeps the TB populated with fresh, recent frames, helps smooth out any frametime spikes/hiccups, and only drops around 25% of the rendered frames so your PC doesn’t heat up your whole room… lol
Also, when setting a frame-rate limit, it may be useful to set Low Latency Mode=on (this used to be a setting called Max pre-rendered frames=1) to avoid building up a queue between the CPU and GPU (if your CPU is faster than your GPU).
Let me understand, is vsync on or off.
-
Let me understand, is vsync on or off.
V-sync OFF*. It would defeat the point … triple-buffering is all about not tearing, while not blocking on the v-blank signal from the monitor.
(*If you have Nvidia graphics, the control panel offers a setting for v-sync called ‘Fast’ which is their implementation of triple-buffering. I really like v-sync=Fast, (a) because it works in all games, and (b) it also steps out of the way when running in windowed/borderless mode which is essentially triple-buffered always courtesy of how the DWM works.)
So, to recap… two ways to enjoy triple-buffering:
-
Nvidia control panel: v-sync=off; Falcon in-game: v-sync=off, triple=ON
…then be sure to run in fullscreen-exclusive mode; borderless/window will work ok but have extra latency -
Nvidia control panel: v-sync=Fast; Falcon in-game: v-sync=off, triple=off
…then run in either windowed, borderless or fullscreen, as you prefer, with no significant difference in latency
-
-
Would be good to have a PDF guide with all those thing summed-up. We could even maybe add it BMS documentations ….
-
Would be good to have a PDF guide with all those thing summed-up. We could even maybe add it BMS documentations ….
+1 and I think +1million
-
I too second this, Dee-Jay. It would be a real godsend.
Ah, I was almost to forget: thanks a million, airtex.
You are a gold mine of good hints and wise suggestions, all explained well, plain and clear.
You succeeded in making me - a true amateur - understand all those of yours in a very short time, if not right away.
Why don’t you think to… (hint, hint), huh?With best regards to all.
-
Would be good to have a PDF guide with all those thing summed-up. We could even maybe add it BMS documentations ….
I’d be happy to contribute in any form … I’ll start a draft, with some diagrams and frame-latency graphs to illustrate how triple-buffering can help smooth-over occasional hiccups and microstutters.
-
V-sync OFF*. It would defeat the point … triple-buffering is all about not tearing, while not blocking on the v-blank signal from the monitor.
(*If you have Nvidia graphics, the control panel offers a setting for v-sync called ‘Fast’ which is their implementation of triple-buffering. I really like v-sync=Fast, (a) because it works in all games, and (b) it also steps out of the way when running in windowed/borderless mode which is essentially triple-buffered always courtesy of how the DWM works.)
So, to recap… two ways to enjoy triple-buffering:
-
Nvidia control panel: v-sync=off; Falcon in-game: v-sync=off, triple=ON
…then be sure to run in fullscreen-exclusive mode; borderless/window will work ok but have extra latency -
Nvidia control panel: v-sync=Fast; Falcon in-game: v-sync=off, triple=off
…then run in either windowed, borderless or fullscreen, as you prefer, with no significant difference in latency
if my monitor has 60hz and if bms drops below 60fps with vsync off, what changes between tb(or nvidia fast vsync) on or off?
-
-
if my monitor has 60hz and if bms drops below 60fps with vsync off, what changes between tb(or nvidia fast vsync) on or off?
Triple-buffering basically just becomes equivalent to double-buffering at that point. Viz. the monitor is asking for a new frame, but if there’s not one ready yet, it just rescans the previous frame still sitting in the front-buffer.
VRR technology like G-sync might* help in this situation? Viz. the monitor asks for a new frame, the display driver says “nothing new yet but hold on a few milliseconds” then, when the next frame finally arrives, it goes immediately to the front-buffer and the driver signals the monitor to display it.
(*I actually haven’t tested much with TB+VRR so really I have no idea if it works well or not… just stating theory of how I’d expect it to work. I’ll give a try for a while… my avg fps does sometimes dip below my refresh rate, eg. landing/taxiing at the larger airbases near large cities.)
Also, TB can act as a bit of a shock-absorber, if you’re mostly producing well above 60fps but occasionally have just 1 frame that takes longer than 16.7ms.
Some monitor tools show a metric called “p99” fps or “1% low” fps … if that number is below 60 but your avg/p90 fps is well above, say, 80, then TB’s extra backbuffer will often be able to absorb these occasional slow-frame shocks.