Search Issue Tracker
Fixed
Fixed in 1.6.0-pre.2
Votes
0
Found in [Package]
1.6.0-pre.2
Issue ID
BUR-1108
Regression
No
[Android] Inconsistent performance between Mono and IL2CPP when using Burst package
How to reproduce:
1. Open the attached project "BurstPerformanceTest.zip"
2. Set Scripting Backend to Mono in Project Settings -> Player -> Other Settings
2. In File -> Build Settings enable Development Build and Autoconnect Profiler
3. Build and Run
4. Observe CPU Usage on "JobTest:JobAndBurst (Burst) "
5. Set Scripting Backend to IL2CPP in Project Settings -> Player -> Other Settings
6. Build and Run
7. Observe CPU Usage on "JobTest:JobAndBurst (Burst) "
Expected results: CPU Usage is about the same on "JobTest:JobAndBurst (Burst)" when project is built with IL2CPP and Mono
Actual results: CPU Usage differs significantly on "JobTest:JobAndBurst (Burst)"
Reproducible with:
1.5.3 - 1.6.0-pre.2 (2019.4.25f1, 2020.3.6f1, 2021.1.5f1, 2021.2.0a15) - Mono is 5 times slower than IL2CPP
1.4.7 - 1.5.2 (2019.4.25f1, 2020.3.6f1, 2021.1.5f1, 2021.2.0a15) - IL2CPP is 4 times slower than Mono
Can't test with:
2018.4.34f1 - does not support Jobs package
Reproducible with:
VLNQA00277, Asus ROG Phone, Android: 8.1.0, CPU: Snapdragon 845 SDM845, GPU: Adreno (TM) 630
VLNQA00121, Samsung Galaxy S9, Android: 9, CPU: Exynos 9 Series 9810, GPU: Mali-G72
VLNQA00006, Samsung Galaxy S7, Android: 8.0.0, CPU: Exynos 8 Octa 8890, GPU: Mali-T880
N/A, Oneplus OnePlus Nord, Android: 10, GPU: Adreno (TM) 620
Not reproducible with:
Windows 10 Standalone
Notes:
- JobTest.JobAndBurst() - a function that commits a bunch of math operations wrapped in IJobParallelFor
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
- “Remove Unused Overrides” available on not loaded Scene and throws “ArgumentException: The scene is not loaded” warning
- Adaptive Probe Volume occlusion edge is calculated incorrectly when viewing probes near geometry edges
- Sampling a texture using an HLSL file throws shader errors and the code does not compile
- "Graphics.CopyTexture called with null source texture" error when Base Camera of an Overlay Camera is removed with DX11 Graphics API and Compatibility Mode enabled
- WebGL sends wrong value with large numbers when SendMessage function is used
Resolution Note:
No repro for me (Galaxy S21, Unity 2020.3.2, Burst 1.4.7 and 1.6.0preview2).
The bursted job takes about 1.3ms. occasionally also 2.6ms on il2cpp build, but it doesn't matter as the frame time on il2cpp is under 10ms so the cores clock down/job is scheduled on mid cores instead of large core. (on mono frametime is 300ms so the CPU is busy and always clocked up... until it throttles).