Apple Silicon (M1 Pro) inconsistent frame period and fps

I have a project that runs fine if I put the fps down to 24fps, saying that it is only using 8ms per frame. When I bump the fps to 60, the frame period becomes 30ms+. This occurs no matter if I have VSync on or off. Am I missing out on potential performance due to a frame syncing issue or is the frame period indicator incorrectly measuring?

Expected behaviour:
The frame period is consistent between different frame rates.

The tricky thing with frame measurements is that there is both CPU work and GPU work being done, but measurement is being done on the CPU. If the GPU is overworked then it may stall in a random CPU task, that get’s measured as part of the frame time. If the GPU is not overworked then the CPU may be able to go to sleep at a ‘known’ time, which it can omit from the frame time.
From your description, it sounds like your GPU can only do around 30FPS of performance for your particular project, which is why it runs at 24FPS fine but then starts hitting a bottleneck when you try to go faster.

1 Like