This might sound stupid..I was reviewing my instanced sprites code, and something bothered me..
[its not about instancing, just the overall architecture/usage of cbuffers]
With a draw call I can say which piece of a vertex buffer to use. Meaning I can let it there and use it multiple times by saying offset and number for each drawable..ok
So, Instead of having a "drawable" cbuffer for each drawable/'renderable unit', or sharing one between multiple ones and remap it everytime (which is bad due syncing), why cant I just allocate a huge ass cbuffer and use it in slices just like vertex buffers? I could allocate a cbuffer for all my sprites, have each sprite hold an offset, and only map it once per frame..
So on the draw call I could have extra params for the cbuffers.
Well, I see you can have lots of different cbuffers on a shader, but its nothing a description structure couldnt solve. (actually, I think an array with offsets for each cbuffer would be enough)
Why the difference?
I hope Im making sense. This stuff is again cold in my head.