What decides the render-order when same Render Queue and ZTest Always

I have one shader in the overlay render queue - and ZTest Always is set (its a gizmo / handle the user can drag around)

  • now i use the same shader on a few elements of this handle (different coloured materials and such)
  • when they use the same shader and same queue, with ZTest Always: what decides the actual rendering order?
  • right now they are all in the overlay+1 queue, and draw nicely over everything else
  • but despite their ZTest Always state, they seem to respect each other (means they draw themselves as if they had a Ztest). So it works for now, just i don’t know why…
  • my first guess was the order in the scene hierarchy, but that is not the case

In 3D space, if an object is closer to the camera, it gets rendered above the others. Test this in 2D and put the objects inside each other, you should see Z-fighting which is common in 2D unless you use layers.