Search Issue Tracker
Duplicate
Votes
0
Found in [Package]
7.4.1
Issue ID
1257798
Regression
No
Spikes in CPU Usage are observed when Particle System is used with URP and GPU Instancing enabled
Reproduction steps:
1. Open the project "MeshParticleTest - URP" from the attached archive "MeshParticleTests.zip"
2. Open the scene Assets/Scenes/SampleScene.unity
3. Open the Profiler window from Window > Analysis > Profiler
4. In the Profiler tab, attach it to the Editor by changing the 'Playmode' dropdown to 'Editor' and ensure it is recording data
5. In the Hierarchy tab, select 'Particles_HighPoly' so that the Particle System starts emitting particles in the Scene view
6. In the Profiler, pause recording after capturing some frames and click on the 'CPU Usage' graph to open up the details
7. Navigate to the Job section in the Timeline view of the Profiler and look through the Worker threads
Expected results: there are no high spikes in CPU Usage and all of the worker threads mostly show Idle calls
Actual results: there are high spikes in CPU Usage and when inspecting these spikes in Timeline, one of the Worker threads will have a ParticleSystem.GeometryJob call on it, lasting tens of milliseconds (see particles.png)
Reproducible with: 2019.3.16f1, 2019.4.0f1, 2019.4.2f1 (Universal RP 7.4.1), 2020.1.0b14, 2020.2.0a17 (Universal RP 8.1.0)
Could not test with: 2018.4.24f1 as Universal RP is not available in this version
Notes:
- Hiding 'Particles_HighPoly' in the Hierarchy and repeating steps 4-7 with 'Particles_LowPoly' doesn't produce such high spikes nor calls to ParticleSystem.GeometryJob, even though the Particle System and Particle Count are identical
- When the Reproduction steps are repeated with the project "MeshParticleTest - Legacy" from the attached archive "MeshParticleTests.zip", CPU usage is significantly lower with both 'Particles_HighPoly' and 'Particles_LowPoly'
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
- Fixing Message Loss in UMPE During Domain Reload
- The Editor freezes when ScheduleReadOnly of IJobParallelForTransform with dependency is used
- Text is truncated in the Inspector when the display scale is set to 150%
- CancellationTokenSource(<timeout>) has incorrect cancellation status when used in WebGL Player
- VFX property value names are cut off when properties with 'Arc' are viewed in the VFX Blackboard
This is a duplicate of issue #1189556