How exactly (or, how often) are textures passed to the GPU shaders in MonoGame/XNA?
I am asking because I was profiling a MonoGame/XNA application and noticed that the memory controller load (using GPU-Z) was pretty high.
After disabling pretty much everything except the background texture (a static 24-bit 1920x1080 image), my frame rate went up as expected (~500fps) with GPU load peaking at 99% - but what surprised me was that the GPU memory controller load remained at ~50%.
Setting the breakpoint inside
TextureCollection.PlatformSetTextures confirmed that
SpriteBatch is indeed passing this texture to the pixel shader on each call.
Does this really mean that all textures are being passed to GPU on each frame over and over again? Am I misinterpreting these readings, or have a fundamentally wrong understanding of how the rendering process should work? Or did I mess something up with my