D3D, like most graphics APIs, queues & batches up commands. Many things prevent resource memory, like a texture, from being free'ed during Release. To start, there are batched up commands that reference the memory. Flush() clears out the command queue. After command queue references are gone, the GPU may still be using the memory. So, it ...