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
- Crash when reimporting fbx asset used as tree by specific Terrain component
- The position of the "X" in the search section is not consistent with other search boxes in the engine
- Unable to pan outside of the active state viewing window in the Animator when the Play Mode is paused
- Window Zoom stops working after Editor window is moved
- Some package directories are not found, and errors are thrown in the Console when the project path is quite long
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.