Jump to content

Frame rate capped?


ChinRey
 Share

You are about to reply to a thread that has been inactive for 566 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

51 minutes ago, steeljane42 said:

It's V-Sync.

https://wiki.firestormviewer.org/changelog:firestorm_change_log_6.6.3.67470

* There are also changes to VSync handling, adding the ability to switch it OFF/ON in Preferences → Graphics → Hardware Settings → Enable VSync. *

Thanks! That makes sense of course, no need for the gpu to update the picture faster than the screen can do it.

But this needs to be better documented and explained better. Most people don't read through the release notes and only a few of those who do will understand what "VSync" is.

Edited by ChinRey
  • Like 3
Link to comment
Share on other sites

13 hours ago, ChinRey said:

Thanks! That makes sense of course, no need for the gpu to update the picture faster than the screen can do it.

But this needs to be better documented and explained better. Most people don't read through the release notes and only a few of those who do will understand what "VSync" is.

it was confusing us when it hit the beta for the tests,  some of us figured it out and passed the word around, but seems it didnt make it outside the tests,  luckily this thread works.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

It's a default that we inherited (having VSync enabled) and I am not entirely sure I agree with it. The main problem I have with it is a lack of clarity over what it achieves. The underlying implementation uses an opengl extension "wglSwapIntervalEXT" which is set to 1 for "vsync on" and 0 for "vsync off", in the properties it is exposed as a simple toggle.

2ea0802114f9b2669ab2cc87b729f456.png

The questions I have about this are as follows and are based on my understanding of the openGL documentation :-

1) If I have two monitors, one running at 144Hz and one running at 60Hz does it correctly detect the one that I am running on? What if I am (presumably because I just like being awkward) straddling the two monitors?

2) What happens when I am slower than the cap? Let's assume (for the sake of my brain near midnight) that my monitor is running at 50Hz. This means I have 20ms per frame.

case 1: higher FPS - If I draw my screen in 15ms (~67 fps) then what happens is that the card waits for 5ms for the frame to start over and then swaps the buffers, forcing the 20ms frame time and giving me the 50FPS updates. 

case 2: lower FPS - If I draw my screen in 25ms (40fps) then what happens? Based on the OpenGL documentation, the GPU will ask the driver to wait until the next vsync event (known as a vblank) This means that you are now waiting two whole frames, giving you 25fps! 

The chances are that it would not be quite so black and white either. the sleep on one fram allowing a faster frame next time, leading to all kinds of weird stutter potential.

My advice, at least until someone slaps me sensible with clear proof that I am wrong, is to turn off VSync, if you want to limit the fps then use the old fashioned fps limiter and let the viewer have micro sleeps it is (at this stage) more predictable.

BTW, This whole set of scenaros is further muddied by adaptive sync technologies such as NVidia's G-Sync and AMD's Free-Sync

While we're here though...hey isn't this a great problem to have? 😄

 

 

Edited by Beq Janus
mior edit to note adaptive syncs
  • Like 5
  • Thanks 1
Link to comment
Share on other sites

On 9/11/2022 at 12:58 AM, Beq Janus said:

My advice, at least until someone slaps me sensible with clear proof that I am wrong, is to turn off VSync, if you want to limit the fps then use the old fashioned fps limiter and let the viewer have micro sleeps it is (at this stage) more predictable.

You know me by now: I had to do a quick test of this of course:

  • No fps limit (in a setting that gave me about 420 fps): GPU use about 65%
  • Using VSync to limit the fps to 60: GPU use about 7-8%
  • Using the old fashioned fps limiter set at 120: GPU use about 9%
  • Using the old fashioned fps limiter at 60: GPU use about 7%

Standard disclaimer: This was a quick "snapshot" test and the result should only be taken as a rough indicator, not as the absolute answer.

Link to comment
Share on other sites

Hi Beq,

Does it default to 60 FPS, if VSynch rate of monitor not recognized? My 2K 165 Hz monitor works correct regarding VSynch with other programs, but Firestorm craps it to 60 FPS, if I use  Preferences->Rendering->Limit Framerate to 120 FPS.

As you, I have two monitors connected, the other one older full HD 120 Hz, which add to the complexity of bug hunt.

Else thanks to you and all the people working on the Firestorm update, it fast, reliable, responsive compared to earlier versions and without the above Limit Framerate, I get crazy wild high FPS at home with high/ultra graphics, ALM on. Other places stable fast FPS in even busy clubs, where earlier versions of Firestorm crawled down to annoying extreme low FPS.

Link to comment
Share on other sites

On 9/17/2022 at 10:34 AM, Rachel1206 said:

Hi Beq,

Does it default to 60 FPS, if VSynch rate of monitor not recognized? My 2K 165 Hz monitor works correct regarding VSynch with other programs, but Firestorm craps it to 60 FPS, if I use  Preferences->Rendering->Limit Framerate to 120 FPS.

As you, I have two monitors connected, the other one older full HD 120 Hz, which add to the complexity of bug hunt.

Else thanks to you and all the people working on the Firestorm update, it fast, reliable, responsive compared to earlier versions and without the above Limit Framerate, I get crazy wild high FPS at home with high/ultra graphics, ALM on. Other places stable fast FPS in even busy clubs, where earlier versions of Firestorm crawled down to annoying extreme low FPS.

The cap with vsync is determined by your drivers not the viewer so it is hard to say where it comes from, I'll see if I can dig out something. The other complication (as mentioend elsewhere), which may or may not muddy the waters for you, is GSync and freesync adaptive rates. Frankly the whole thing is a rabbit warren

It has been great to see the improvements that people are getting and, of course, a big thank you to the LL team that worked so hard on the core improvements.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
On 9/20/2022 at 6:11 AM, Beq Janus said:

The cap with vsync is determined by your drivers not the viewer so it is hard to say where it comes from, I'll see if I can dig out something. The other complication (as mentioend elsewhere), which may or may not muddy the waters for you, is GSync and freesync adaptive rates. Frankly the whole thing is a rabbit warren

It has been great to see the improvements that people are getting and, of course, a big thank you to the LL team that worked so hard on the core improvements.

Yup.

In Windows for me, the Nvidia drivers do a better job of controlling Vsync.

In Linux I have to use Performance mode to get a handle on Vsync; the iGPU is off there. Vsync doesn't seem to work as well in Hybrid mode, though I have more GPU VRAM available to me vs Performance.

I'm using a GTX 1050 currently, so I'm stuck on the proprietary drivers. IIRC anyone with a RTX series GPU can use the partial Open Source drivers (MIT license) for Linux.

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 566 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...