I recently read that any transformation changes will cause a new batch to be triggered.

So, if I have 10 Sprites and each has a different rotation or scale will there be 10 batches sent up?

Or is this somehow limited to SpriteBatch.Begin, where a Matrix is used?

I'm not clear on how the Begin/End relate to scale/rotation in draw calls or if they do at all in terms of how many batches are created.

I appreciate any info on this topic...

  • I think the confusion here originates because you can transform the entire spritebatch. If you want to multiple transformation at the sprite batch level then you need to create a new batch. Transforming the individual instances does not result in a new batch. – ClassicThunder Mar 5 '13 at 18:14

No, individual batches will only be triggered in case you are using SpriteSortMode.Immediate or change texture. Individual sprite info is stored in an internal array and some operations are performed in CPU (rotation, scaling) before sending the vertex buffer to the GPU. For more information about the internals of SpriteBatch, check this answer.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.