GPUOpen-LibrariesAndSDKs / VulkanMemoryAllocator

Easy to integrate Vulkan memory allocation library
MIT License
2.63k stars 359 forks source link

Bad Shared data in DefragmentationContext #441

Open CannibalVox opened 2 months ago

CannibalVox commented 2 months ago

During defragmentation, users can specify that a move should be ignored, and the block the candidate allocation resides in will be marked as "immovable" for the remainder of the pass. This is done by incrementing the immovable block count and moving the block to the beginning of the block list.

Unfortunately, the immovable block count is shared between all block lists currently being defragmented. This will result, potentially, in several blocks being marked immovable (and not defragmented) when they are not.