Search Issue Tracker
Not Reproducible
Votes
23
Found in
2018.3
2018.3.11f1
2019.1
Issue ID
1153743
Regression
No
[MacOS][Metal] "Instanced Indirect" has drastically worse performance than "Instanced" Rendering
Reproduction steps:
1. Create a New Project
2. Import "Vegetation Studio Pro" from the Asset Store
3. Install "Entities" and "Post-processing" Packages
4. Open the "Demo" scene
5. Open the Profiler, Enable "Deep Profile", "Profile Editor" and "Record"
6. Enter Play mode
7. Search for "Gfx.WaitForPresent" in the Hierarchy tab of the Profiler
8. Notice that its "self ms" is high (400-500+)
Expected Result: "Instanced Indirect" has similar performance to "Instanced"
Actual Result: "Instanced Indirect" has drastically worse performance than "Instanced"
Reproduced with: 2019.1.4f1, 2018.4.1f1, 2018.3.14f1
Did not reproduce on: 2019.3.0a4 (Big spike at first), 2019.2.0b4, 2017.4.28f1 (Needs PackMan)
Note:
"VegetationSystemPro" -> "Edit Biomes" -> "Select Vegetation Item" -> Change both grass sprites Render mode to "Instanced' and repeat steps, dramatically more performant
Reproduces only on a MacOs Metal Graphics API
-
GoldFireStudios
Aug 18, 2020 16:01
I can confirm this is still an issue with Unity 2020 and Vegetation Studio Pro.
-
dmenefee
Jul 09, 2020 17:10
Are there any plans to fix this issue any time soon? It severely impacts performance for Mac builds when using Vegetation Studio Pro, for example.
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
- The Scene View becomes gray and "NullReferenceException" errors are thrown when attaching the Unity Editor process to RenderDoc
- Memory usage rapidly rises when changing colors in the color wheel
- Physically Based Sky's Horizon and Zenith Tint Color Selection Bars don't have immediate access to color pickers
- EmptyAdditionalLightShadowmapTexture leaks from memory when URP quality level is changed using QualitySettings.SetQualityLevel
- Referenced ScriptableObject field does not get updated and cannot be set to "None" when there are no Objects of that type
Resolution Note:
On recent hardware, Instanced Indirect appears to be consistently faster than "Instanced". On 2022.1.0a13 and a 2019 MacBook Pro with a Radeon Pro 5500M, Instanced Indirect takes 12-13ms per frame, while Instanced takes 16-17ms. It is possible that other GPUs exhibit different performance characteristics, but there does not seem to be anything systematically wrong with Instanced Indirect for this project.