I've been making a simple Space Invaders clone that uses Vulkan to draw sprites to the screen.
Pushing up the number of invaders, I end up with a lot of sprites.
Reflecting on what (I think) I know about GPUs, if these sprites where all batched together, then the output from the Geometry Shader stage could be sent out to the rasterizers in whatever order. However, with all of my little individual sprites, it feels like not only each triangle, but each pair of triangles making up one of my sprites will have to wait for the previous pair of triangles to have been rasterized so that things don't flicker (I have no idea how this works: I don't understand how the GPU keeps track of what should be drawn first, when all the sprites are being processed in parallel).
It feels like rasterization will be extremely slow, as each quad needs to wait for the last one to be rasterized. Can anyone tell me if this is, in fact, the case? If so, then why does it seem to be relatively cheap in engines like Unreal to have lots of 2d particles being displayed? Surely they would also create the same kind of rasterization bottleneck, or they'd flicker?