Hi!
I am using one single upload heap (several megabytes) to allocate the draw data (constant buffers) of my draw calls. This is mapped once and reused for all the frames.
The approach used is a simple buffer with a tail pointer (which starts at the mapped virtual GPU address of the heap) and which is offseted as the system requires to allocate more memory.
Everything seems to work fine except when the buffer is full (there is no more space to allocate memory). So the approach here is to set the tail pointer to the beginning of the heap again to start filling it out from the very beginning. This is happening once every ~100 frames, so there is no chance to write memory which is still being used by the GPU to render stuff.
After this point, the constant buffers (according to PIX and to the visuals being corrupted) seem corrupted, which I don't understand because I am jsut overwriting the old data which is no longer being used.
Anything obvious that I am missing?
Thanks for helping!