Search Issue Tracker

Fixed in 2021.2.X

Votes

0

Found in

2018.4

2019.4

2020.1

2020.1.0f1

2020.2

2021.1

Issue ID

1297470

Regression

No

[macOS] Framerate is not stable

Metal

-

Reproduction steps:
1. Create a new Unity project
2. Enter Play Mode
3. Open Profiler
4. Observe the Profiler

Expected result: No lag spikes, Semaphore.WaitForSignal in Profiler call time is low (under 3.0ms)
Actual result: Constant lag spikes, Semaphore.WaitForSignal in Profiler call time is high (above 10.0 ms)

Reproducible with: 2018.4.30f1, 2019.4.17f1, 2020.1.17f1, 2020.2.0f1, 2021.1.0a9

Notes:
- On 2018.4.30f1 when spikes occur there is no Semaphore.WaitForSignal instead there is Gfx.WaitForPresent and call time is lower but still high (above 5.0 ms).
- The issue reproduces not on all Mac machines.
- When Maximize on Play is enabled, the issue is even more clear to see
- High call time keeps stable in different versions of Unity (doesn't decrease or increase)

Tested machines:
- MacBook Pro (16-inch, 2019), macOS 10.15.3, call times of 11-15ms (Reproduced)
- MacBook Pro (16-inch, 2019), macOS 11.1, call times of 10-14ms (Reproduced)
- iMac (Retina 5K, 27-inch, 2017), macOS 10.15.7, call times of 12-13ms (Reproduced on macOS, no reproduction on Windows)
- MacBook Pro (15-inch, Mid-2015), macOS 10.15.6, no spikes and call times under 1ms (Didn't reproduce)

  1. Resolution Note (fix version 2021.2):

    Play Mode performance while using Metal would occasionally spike on certain Macs. This frame present delay is fixed with the change to use CVDisplayLink with Metal on OSX to time presents.

    Fixed in: 2022.1.0a8

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.