Display real FPS in the 3D editor instead of estimating based on CPU/GPU time#75512
Display real FPS in the 3D editor instead of estimating based on CPU/GPU time#75512Calinou wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
Looks good to me.
Can you confirm that in that same test scene with vsync off you still report 312 FPS?
As a note for the future, we bikshedded this feature a lot a few months back and never settled on something we were happy with.
In the end, I agree that it is best to not try to show "potential maximum FPS based on GPU usage". Users are interested in actual FPS and expect to see the amount limited by vsync.
With V-Sync disabled and Update Continuously enabled, the reported FPS is lower as the editor's redrawing cost is also included (instead of only counting the 3D viewport): However, it might be argued that this value is more representative of the running project in fullscreen (which implies a larger viewport resolution than a maximized editor, even if the editor is fullscreen). When running the project (without the editor in the background), I get 250 FPS in fullscreen with the same camera angle as the editor. |
IMO the non-problem factor is even higher. TBH, if I read 274 FPS I expect to see 274 FPS, indipendently of whether this is a technically slightly lower value than a "pure" game instance due to the editor drawing. One could argue also that even just having the editor in the same screen of the game (or anything else, tbf), will naturally lower FPS as there is more competition for resources, so IMO a real value is wayyy more useful and expected than an estimated value. |
Small Viewport + Editor redraw isn't a good metric for "FPS if viewport was fullscreen" as editor drawing potentially has very different performance characteristics to the running scene. Juan's original intention with this FPS value was to communicate "here is what FPS would be if this scene was running on its own and GPU was the bottleneck". I'm not sure that overall editor performance is actually a metric that we should be reporting here |
|
Maybe we could rename "FPS:" to "Editor FPS:"? |
Done (not shown on the above screenshots). |
d23972b to
43065f1
Compare
|
I feel like it would be valuable to display both of these values: something like |
|
Needs rebase |
…GPU time This reverts to the 3.x method for displaying FPS in the View Frame Time panel. This has two consequences: - The reported FPS will no longer go past V-Sync or framerate limiters. - Unfocusing the window will display a low framerate (10 FPS by default), since the FPS is actually being limited by the engine's low-processor mode. Constant redrawing is still forced while the panel is visible, so there's no risk of having low-processor mode interfere.
43065f1 to
15c13c3
Compare
|
Rebased and tested again, it works as expected. |

This reverts to the 3.x method for displaying FPS in the View Frame Time panel. This has two consequences:
Constant redrawing is still forced while the panel is visible, so there's no risk of having low-processor mode interfere.
The engine's FPS readout is updated less smoothly than the current method, but this will be improved if #63356 is merged.
On the images below, the actual FPS (and GPU power consumption) is identical, but since I use a 120 Hz display with V-Sync enabled, the engine cannot go past 120 FPS: