Search Issue Tracker
Not Reproducible
Votes
1
Found in
2018.3.0b5
Issue ID
1090093
Regression
No
Graphics.DrawMeshInstanced merges incompatible batches when overriding material properties using MaterialPropertyBlock
Steps to reproduce:
1. Open the attached project
2. Make sure that Assets/material is using TestShader and that GPU Instancing is enabled
3. Enter Play mode
Expected result: Spheres on the right are white
Actual result: Spheres on the right are red
Reproducible with: 5.6.3f1, 2017.4.13f1, 2018.2.12f1 2018.3.0b5, 2019.1.0a4
Notes:
- The expected behavior is reached only when the color property is explicitly overwritten in the second block.
- "It happens too when the block is recreated instead of cleared or if the call is done without a MaterialPropertyBlock."
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 on ShaderLab::ShaderState::ApplyShaderState when entering Play Mode and calling ShaderWarmup.WarmupShaderFromCollection with a shader that has dynamic_branch
- Crash on operator delete[] when a serializable structure in the System namespace is serialized by a MonoBehaviour
- [macOS] forward and backward mouse buttons are recognized as middle mouse button
- NavMeshModifier.OnEnable/OnDisable gets progressively slower when called repeatedly
- "System.Net.CookieContainer" throws an "ArgumentException" error when using a non-UTF-8 machine locale and hostname
Resolution Note:
block.SetColor(property, Color.red);
Graphics.DrawMeshInstanced(mesh, 0, material, transforms, transforms.Length, block);
block.SetColor(property, Color.white);
Graphics.DrawMeshInstanced(mesh, 0, material, transforms, transforms.Length, block);
works