HDRP - GPU Instancing not working even with SRP Batcher completely disabled

Hi all,

Even after turning off SRP Batching in the Pipeline Assets Debug Parameter and the Projects setting > Player window (and my objects are not static), GPU Instancing does not make any difference to any stats in the Stats window. Frame Debugger also tells me SRP Batches are being drawn and not instances.

Objects are identical (same mesh, same material), checking/unchecking Gpu Instancing on the material properties has zero effect in Frame Debugger or the Stats window.

Any ideas where I might be going wrong? I am trying to render a lot of trees that are created at runtime but the Batches number is extremely high.

Any kind of support would be greatly appreciated. As I understand static batching won’t work for what I need as these trees are spawned at runtime.

Edit: When I stick the old free speedTree’s in there they do get saved by Batching, my own trees do not.

Hello,

Which shader are you using in your test scene? It’s possible that the shader is not compatible with batching at all.

This is using the standard HDRP/Lit shader. After further testing, I was able to get SRP Batcher to work as intended, and I believe the issue was that my test mesh had 33k verts, which meant no 2 meshes could be batched as batching has a limit of 64k. Now I am using a smaller mesh for my performance testing.

However, making the objects non-static to force GPU Instancing, this seems to have no effect. Even after turning off SRP Batcher in the settings, GPU instancing makes no difference in Stats, Profiler, or Frame Debugger.