I have 300 trees with branches made up of 3900 segments in total. Each segment uses the same mesh, and I deform them into shape using a shader. The GPU work takes a small fraction of CPU time (40ms), which I find quite surprising.
The bulk of the time is spent in PlayerLoop & UpdateScene as in the screenshot.
The only thing that has an Update() is the camera that orbits around the scene. So the view does change every frame, but not anything in the scene.
I have 4 passes defined in the shader that renders the tree branches in the vertex function: Forward Lit, Shadow Cast, Depth Only, Depth Normals. All 4 use the same bit of vertex code. But I think that's all GPU work, so can't see how it's contributing to that long 40ms.
CPU is an 8259U, not the fastest but by no means slowest either. And I get 3ms (!) in Godot for the same scene with the same number of objects.
Unity 6.3.7 on URP.
Why? LMK if you need more info