Page MenuHome

UI refresh rate - Bug or feature?
Closed, ArchivedPublic

Description

System Information

Win 8
NVIDIA GeForce GT 630
Intel Core i3-2120
4GB RAM

Blender Version
Broken: I would say so... 2.8 for sure. probably even 2.7

Short description of error
UI refresh rate varies a lot depending on open panels, even with constant load

Exact steps for others to reproduce the error

  • Open blender VSE, load video, image or generate one.
  • Make it short, ~200 frames, so you can be sure it will fit the cache.
  • Play it once, so it gets cached.
  • Open various panels and tabs, and watch FPS reading.

This should be reproducible, because some panels will affect even playing empty timeline.

I created a video demonstration of this. It is a debug build, so effect is more noticeable, then in release version.
First part of video presents problem as I described.

In the second part I played different footage, trying to demonstrate similar problem:
Video plays at 30FPS, Set framerate is 60.
When I hide timeline(sequencer), playback speed jumps to 60.
When I create new timeline, playback speed stays at 60FPS, until it reaches efra then jumps to 30 again.

Unfortunately I wasn't able to capture second case properly, because with OBS I couldn't even achieve stable 60FPS.

In practice it seems that absolute maximum refresh rate of VSE is only 60FPS. Exactly.
Also notice, that often framerate drops are suspiciously exact - 20.00 or 30.00

Video in question:

https://www.youtube.com/watch?v=N8oGTV7jJRo

Details

Type
Bug

Event Timeline

"Round" frame rates like that in other applications/games are often the result of vertical sync. I don't believe Blender used to specify whether vsync should be on but I don't know for sure that didn't change in 2.80/Eevee. You might experiment with your Nvidia Control Panel settings and try forcing vsync off for Blender and see if that has any effect on what you're seeing.

Brecht Van Lommel (brecht) closed this task as Archived.
Brecht Van Lommel (brecht) claimed this task.

Right, this is V-sync related. The graphics driver can make OpenGL draw wait for the next display refresh, and probably your refresh rate is 60 or a multiple of it. If every frame takes a bit longer than 1/60 s, they will all wait until the next refresh and you get 30FPS.

Not bug here I think.

Unfortunately I wasn't able to capture second case properly, because with OBS I couldn't even achieve stable 60FPS.

This is a better example:

My guess, as to what is happening, would be that as soon as you interact with, or an element of the UI becomes active, resources are used to update it. This is why things like the status bar are only updated when you interact with them or they're at a set refresh interval. I'm sure this is a known limitation, but is it really necessary to update the UI if the value (i.e. the pixels) on screen aren't changing?

In practice it seems that absolute maximum refresh rate of VSE is only 60FPS. Exactly.

Hold my Blender Mug:


As you can see FRAPS is reporting 350 FPS, with no V-sync.


@Richard Antalik (ISS) Is this what you meant? If so, I'd ask a developer or re-open this task.

Thank you for explanation.
Disabling V-sync solved this.

Disabling V-sync solved this.

@Richard Antalik (ISS) What did it solve?
Your actual description says:

UI refresh rate varies a lot depending on open panels, even with constant load

Did disabling Vertical refresh sync fix this? Because I have 'Wait for Vertical Refresh' disabled by default in My Radeon Settings and I show your reported issue.

@Christopher Anderssarian (Christopher_Anderssarian) disabling V-sync did solve issue, that refresh rate depends on open panels.

Your case seems to be kinda different. When tried to reproduce your issue, I saw that FPS drop happens as soon as you get close to scrollbar, which is normally hidden. In VSE timeline N panel by watching number labeled as playhead, you can see, that as soon as scrollbar appears, panel is redrawn. If scrollbar is not visible, this number is not updated

This actually may be considered as bug..