View Issue Details

IDProjectCategoryView StatusLast Update
0029146RunnerGeneralPublic2019-01-24 09:30
ReporterStewart BishopAssigned ToMike Rennie 
PriorityVery HighSeverityB - MajorReproducibility100%
Status ClosedResolutionFixed 
Product Version2.1.4 
Target Version2.2.1Fixed in Version2.2.1 
Summary0029146: General: FPS is consistently wrong across platforms when using a high refresh rate monitor
DescriptionMade a sample project which shows FPS as well as allows me to enable vsync, set the FPS on the fly and change the timing method for testing on multiple platforms:

* When calling game_set_speed the default of 144 was always used.
* Vsync was always turned on by default through game options.
* Assuming you never change your FPS then your out of focus FPS will always stay the same as your starting FPS.

Windows - 144 Hz monitor

No Gsync/FreeSync - New Timing

Start = 144 FPS
Set Speed = 72 FPS
Vsync Off = 4000+ FPS
Out of focus with Vsync on = 4000+ FPS
Out of focus with Vsync off = 4000+ FPS

No Gsync/FreeSync - Old Timing

Start = 144 FPS
Set Speed = 144 FPS
Vsync Off = 4000+ FPS
Out of focus with Vsync on = 144 FPS
Out of focus with Vsync off = 4000+ FPS

Gsync/FreeSync - New Timing

Start = 142 FPS
Set Speed = 28 FPS
Vsync Off = 142 FPS
Out of focus with Vsync on = 4000+ FPS
Out of focus with Vsync off = 4000+ FPS

Gsync/FreeSync - Old Timing

Start = 142 FPS
Set Speed = 142 FPS
Vsync Off = 142 FPS
Out of focus with Vsync on = 142 FPS
Out of focus with Vsync off = 4000+ FPS

Mac - 60 Hz monitor

New Timing

Start = 128 FPS
Set Speed = 243 FPS
Vsync Off = 243 FPS
Out of focus with Vsync on = 142 FPS
Out of focus with Vsync off = 180 FPS

Old Timing

Start = 128 FPS
Set Speed = 243 FPS
Vsync Off = 243 FPS
Out of focus with Vsync on = 60 FPS
Out of focus with Vsync off = 180 FPS

Ubuntu - 60 Hz monitor

Start = 60 FPS
Set Speed = 60 FPS
Vsync Off = 60 FPS
Out of focus with Vsync on = 60 FPS
Out of focus with Vsync off = 60 FPS

Old Timing

Start = 60 FPS
Set Speed = 60 FPS
Vsync Off = 60 FPS
Out of focus with Vsync on = 60 FPS
Out of focus with Vsync off = 60 FPS

UWP - 144 Hz Monitor

No Gsync/FreeSync - New Timing

Start = 144 FPS
Set Speed = 144 FPS
Vsync Off = 144 FPS
Out of focus with Vsync on = 144 FPS
Out of focus with Vsync off = 144 FPS

No Gsync/FreeSync - Old Timing

Start = 144 FPS
Set Speed = 144 FPS
Vsync Off = 144 FPS
Out of focus with Vsync on = 144 FPS
Out of focus with Vsync off = 144 FPS

Gsync/FreeSync - New Timing

Start = 142 FPS
Set Speed = 142 FPS
Vsync Off = 142 FPS
Out of focus with Vsync on = 142 FPS
Out of focus with Vsync off = 142 FPS

Gsync/FreeSync - Old Timing

Start = 142 FPS
Set Speed = 142 FPS
Vsync Off = 142 FPS
Out of focus with Vsync on = 142 FPS
Out of focus with Vsync off = 142 FPS

HTML5 - 144Hz monitor

No Gsync/FreeSync - New Timing

Start = 144 FPS
Set Speed = 144 FPS
Vsync Off = 144 FPS
Out of focus with Vsync on = 144 FPS
Out of focus with Vsync off = 144 FPS

No Gsync/FreeSync - Old Timing

Not possible due to being unable to set timing method

Gsync/FreeSync - New Timing

Start = 144 FPS
Set Speed = 144 FPS
Vsync Off = 144 FPS
Out of focus with Vsync on = 144 FPS
Out of focus with Vsync off = 144 FPS

Gsync/FreeSync - Old Timing

Not possible due to being unable to set timing method

Android - Google Pixel

Start = 60 FPS
Set Speed = 60 FPS
Vsync Off - 60 FPS

iOS - iPhone 6s+

Start = 60 FPS
Set Speed = 60 FPS
Vsync Off = 60 FPS
Steps To Reproduce1) Run the project on any desktop platform
2) Press Space to set the FPS to 144
3) Change between old and new timing using Ctrl
4) Change between Vscnc on and off using Enter
5) See that the FPS is never consistent
Tags221
1.4 Found In
2.x Runtime Found In2.1.4.216
2.x Runtime Verified In2.2.1.268

Relationships

has duplicate 0025506 ClosedMike Rennie General: No support for G-Sync/FreeSync within the runner, causes game FPS to be inconsistent 
related to 0030125 ClosedStewart Bishop Windows: Framerate stutters on Windows 7 specifically 

Activities

Stewart Bishop

2018-05-15 16:57

Adminstrator  

FPS Test.yyz (48,436 bytes)

Stewart Bishop

2018-05-15 16:57

Adminstrator   ~0059727

Finished testing all platforms that are relevant, see description.

Dan

2018-08-09 12:12

Adminstrator   ~0061118

There are a couple of tickets which say 2.1.3 also showed issues for them, yet most tickets seem to be 2.1.4 onwards.

Mike Rennie

2018-09-25 16:34

Developer   ~0061600

This should be significantly improved now - previously it didn't handle multi-monitor setups at all well and gsync made it extremely confused, all of which should now be fixed.

Incidentally I tried Mac with a high refresh rate monitor and that seemed to work fine. It's a bit unclear what the numbers in the bug report mean though - is "Start" the framerate at the start of a run and "Set Speed" is a framerate that is subsequently set?

Mike Rennie

2018-09-25 17:01

Developer   ~0061601

Updated version of sample

bug_29146_FPS_Test.yyz (49,176 bytes)

Dan

2018-10-09 10:55

Adminstrator   ~0061734

If anyone wants to revert the timing method to what 2.1.4 and older versions used, you can call

display_set_timing_method(tm_sleep);

Please see the manual page for this function to get more info.

Dan

2018-10-29 14:45

Adminstrator   ~0061886

Alt+tab or minimise-and-restore have also been reported as causing issues for machines affected by these timing issues. Typically, those machines see FPS decrease dramatically.

Some machines also see slow FPS if launching in fullscreen, but dropping to a windowed state will fix - then the game can go back to fullscreen at full speed, if desired.