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
- Can’t delete gradient keys with Mac keyboard or context menu options
- Editor freezes for a few minutes when closing or switching a VFX window that was opened in a previous project
- UI Overlaps when switching Render Pipeline Asset for different Quality Levels in Quality Project Settings
- Ray Tracing Shader link to the documentation isn’t working
- Warning "BatchRendererGroups currently don't support override shaders" is spammed in Play mode when using H-Trace WSGI with BatchRenderGroups
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.