Search Issue Tracker

Active

Under Consideration for 2021.3.X, 2022.3.X, 6000.0.X

Votes

0

Found in

2021.3.41f1

2022.3.40f1

6000.0.12f1

7000.0.0a1

Issue ID

UUM-77072

Regression

No

[Android] Frame rate inconsistencies when Application.targetFPS is set to 45fps and optimized frame pacing enabled/disabled

--

-

Reproduction steps:
1. Open the attached project “BugRepro"
2. Open the “Assets/Scenes/SampleScene.unity” scene
3. In the Project settings, Disable Optimized Frame Pacing (menu: Project Settings > Player >Resolution and Presentation > Optimized Frame Pacing)
4. Take notice of the device's Refresh rate
5. Build And Run on Android
6. Observe the actual fps of the app running
7. Enable Optimized Frame Pacing, then repeat steps 5 and 6

Expected result: The behaviour of the fps is the same with or without Optimized Frame Pacing enabled based on the manual [https://docs.unity3d.com/ScriptReference/Application-targetFrameRate.html|https://docs.unity3d.com/ScriptReference/Application-targetFrameRate.html|smart-link]
Actual results:
- Disabled optimized frame pacing: For devices with a 60Hz refresh rate, the actual fps is 60. while devices with 120Hz refresh rate the actual fps is 40fps and 90Hz gives an actual fps of 45
- Enabled optimized frame pacing: Devices with a 60Hz refresh rate, the actual fps is 30. while devices with 120Hz refresh rate, the actual fps is 40, and 90Hz gives an actual fps of 45

Reproducible with: 2021.3.41f1, 2022.3.40f1, 6000.0.12f1

Reproducible with these devices:
VLNQA00518 - Google Pixel 4 (Pixel 4), CPU: Snapdragon 855 SM8150, GPU: Adreno 640, OS: 13
VLNQA00414 - Galaxy Note10+ 5G (SM-N976V), CPU: Snapdragon 855 SM8150, GPU: Adreno 640, OS: 9
VLNQA00591 - Samsung Galaxy S23 (SM-S911B), CPU: Snapdragon 8 Gen 2 (SM8550), GPU: Adreno 740, OS: 14
VLNQA00278 - Xiaomi Redmi Note 7 (Redmi Note 7), CPU: Snapdragon 660, GPU: Adreno 512, OS: 9.0.0
VLNQA00139 - Vivo Xplay6 (vivo Xplay6), CPU: Snapdragon 820 MSM8996, GPU: Adreno 530, OS: 7.1.1
Galaxy S22 and S24 (user's)

Testing environment: Windows 11 23H2 (22631.3007), Windows 10 (10.0.19045) 64bit (user’s)
Not reproducible environment: No other environment tested

Notes:
- According to the Unity manual, if the target frame rate is not a divisor of the screen refresh rate, the resulting frame rate is always lower than the Application's target frame rate. If it's following the manual, the actual fps has to be lower than targetFPS, but the result on the device differs depending on enabling/disabling optimized frame pacing.
- Use GPUWatch on a Samsung device to check the actual fps: [https://developer.samsung.com/galaxy-gamedev/gpuwatch.html|https://developer.samsung.com/galaxy-gamedev/gpuwatch.html|smart-link], while on the other you can use this package: [https://assetstore.unity.com/packages/tools/gui/graphy-ultimate-fps-counter-stats-monitor-debugger-105778?srsltid=AfmBOoojF0XQoB72afQzbDfk4cQ9DX1DTwO03tXl156_6Pf0_l3xH9Hc|https://assetstore.unity.com/packages/tools/gui/graphy-ultimate-fps-counter-stats-monitor-debugger-105778?srsltid=AfmBOoojF0XQoB72afQzbDfk4cQ9DX1DTwO03tXl156_6Pf0_l3xH9Hc|smart-link] .
- If the device supports a variable refresh rate, it can change the refresh rate at "settings-display-smooth motion."

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.