Search Issue Tracker
In Progress
Under Consideration for 2021.3.X, 2022.3.X, 6000.0.X, 6000.3.X, 6000.4.X
In Progress in 6000.2.X
Votes
0
Found in
2021.3.41f1
2022.3.40f1
6000.0.12f1
6000.1.0a7
6000.2.0a1
6000.3.0a1
6000.4.0a1
6000.5.0a1
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
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, 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 .
- If the device supports a variable refresh rate, it can change the refresh rate at "settings-display-smooth motion."
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Unity CIL Linker fails on Player build when persistent listeners have "<" and ">" in their XML attribute names
- ”Lighting data asset ‘LightingData’ is incompatible with the current Unity version…” warnings are thrown when saving Indoors (URP) and Outdoors (URP) Scenes as Scene Templates
- [iOS] The screen blinks when transitioning from custom to Unity splash screen
- [macOS] ”Ignoring depth surface load action as it is memoryless” warnings are thrown when taking Game View Snapshot
- UI Builder Inspector scrolls back up when changes on an expanded but not fully displayed Inspector tab are saved
Resolution Note:
Postpone, U7 ports.