I've come across a strange thing in DirectX 11:
I'm trying to implement large scale volume visualization engine. My approach is like this: if the volume is HUGE (could not fit to GPU memory directly), tile it into smaller "volume bricks". render all of those bricks separately (offscreen) and blend them properly to screenbuffer.
I've read, that DX11 manages GPU memory by itself. But for volumes > 4GB I've got unexpected exceptions, when trying to create further resources. (using 64bit system - so no 32bit limit should be present)
So I implemented my own GPU memory manager, which handles resource allocations, and if there should be allocated more, than GPU memory size, all previously created resources are transferred to RAM and DX resource is released.
But the DX behavior is the same.
I'm also calling DeviceContext.Flush() after every release of resource. (to make it really happen)
It seems to me, that DX is not releasing and deallocating resources properly. (Or am I missing something?). Could it be problem, that all this alloc/dealloc operations are done within one frame?
I'm getting mad about this. (even tried to setup eviction priorities of resources, but no luck.)
Thanks for any advice.