In MonoGame, Single SpriteBatch.Begin()/End() only have performance increase when you don’t change texture between Begin and End calls. If you changes textures, one texture change generates a DrawCall to GPU, which is equivalent as one SpriteBatch.Begin()/End() per texture.