I noticed after I made a minimap for my 2d strategy game that there was significant lag - only to realize that every single hex is getting its own draw call/batch. I've been messing around for about a day trying to figure this out; trying different batching types, gpu instancing, etc
Effectively it seems that my 2d objects meet the SRP batch requirement to fall into the same batch, however are requiring different draw calls (meaning I'm not really getting the benefit). Reading another post on here maybe this means that I don't have anything to do with regards to batching, and my lag is a result of needing to (instead) optimize the minimap situation. That said, because I can get them to a single draw call with Sprites-Default I assume that I can eventually figure out how to do that with more interesting shaders.
As a test I have a very simple setup: a bunch of hexes with a simple (shadergraph) shader. I can get them to batch with Sprites-Default and have a single draw call, but for the life of me can't get them to for any material. The hexes have no scripts attached to them nor are they touched programmatically, nor are they using (instance) vs just.
Note: I'm using Sprites/Sprite Renderers. I did see the related 3D question from a few years ago but that solution regards merging meshes I believe, and I'm hoping not to generate or merge meshes here. The linked post also seems to be talking of meshes rather than Sprites.

I have noticed that if I use Sprite-Lit-Default that I get the same issue. I suspect it has to do with sprites that have normals and/or interact with lighting data.