Search Issue Tracker
Duplicate
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
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."
-
Resolution Note:
We are tracking this with another ticket
Duplicate of https://issuetracker.unity3d.com/product/unity/issues/guid/UUM-68029 -
Resolution Note:
Postpone, U7 ports.
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
- Texture2D hash changes inside of an AssetBundle when rebuilding a SpriteAtlas bundle with an empty AssetPostprocessor Script enabled
- Aniso Level still applies when Generate MipMap is disabled in Texture Import Settings
- Mipmap Limit Groups long names are not truncated when creating a new Mipmap Limit Group with a long name
- “ArgumentException: Invalid double parameter.” error is thrown when Infinity is typed into the Fixed Timestep field
- GameObject becomes gray when using HDRP and STP together on macOS
This is a duplicate of issue #UUM-68029