Search Issue Tracker
Won't Fix
Votes
0
Found in [Package]
1.3.0-exp.1 - Entities
1.3.0-pre.4 - Entities
Issue ID
ECSB-1314
Regression
No
The single RenderMeshArray is slower and uses more memory in comparison to the multiple RenderMeshArrays when manually creating the same amount of entities
How to reproduce:
1. Open the “ECSTest“ project
2. Open the “Manual ECS Scene“
3. Comment the lines from 15 to 191 in the “ManualSpawnerDemo.cs“
4. Un-comment the lines from 195 to 357 in the “ManualSpawnerDemo.cs“
5. Build and Run
6. Connect the Profiler to the Player, run it for a bit, and save the data
7. Un-comment the lines from 15 to 191 in the “ManualSpawnerDemo.cs“
8. Comment the lines from 195 to 357 in the “ManualSpawnerDemo.cs“
9. Build and Run
10. Connect the Profiler to the Player, run it for a bit, and save the data
11. Compare the gathered data
Expected result: Single RenderMeshArray performs better than the multiple RenderMeshArrays
Actual result: Multiple RenderMeshArrays perform better than a single RenderMeshArray
Reproducible with: 1.2.3 (2022.3.45f1), 1.2.4, 1.3.0-exp.1, 1.3.0-pre.4 (2022.3.45f1, 6000.0.18f1)
Could not test with: 2021.3.43f1 (Entities Graphics not supported in the stream)
Reproducible on: Windows 10 Pro (22H2)
Not reproducible on: macOS 14.6.1 (Intel)
Notes:
- More information in the comments
- Reproduces in the editor, but memory consumption doesn’t differ that much between comparison objects
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
- Bad Naming Convention in Shortcuts Window for Sprite Shape Editing
- Bad Naming Convention in Shortcuts Window for Shader Graph
- Bad Naming Convention in Shortcuts Window for Particle System
- "Cameras" tooltip is too far from the window
- Crash on D3D12CommonShader::ApplyGpuProgram when attaching material which samples "_UnityFBInput0" to "Full Screen Pass Renderer Feature" Component
Resolution Note:
Investigation revealed this is a corner case.
Single render mesh array reduces chunk count but causes memory spikes during draw call submission due to thread local data structures that scale based on number of mesh/material combinations encountered. The provided project present a worst case, highlighting the difference between a best case scenario and worst case, for drawcall submission. Recommended solution: Implement entity binning by mesh/material combinations or use multiple render mesh arrays for optimal performance.