From 4d35a5d663890322d46e5dffea20701165c49e7a Mon Sep 17 00:00:00 2001 From: Adam Sawicki Date: Thu, 24 Jan 2019 15:51:59 +0100 Subject: [PATCH] Fixed bugs in VmaBlockMetadata_Linear::MakeAllocationsLost, VmaBlockVector::IsCorruptionDetectionEnabled. --- src/Tests.cpp | 2 +- src/vk_mem_alloc.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Tests.cpp b/src/Tests.cpp index 48c7cc1..1810d65 100644 --- a/src/Tests.cpp +++ b/src/Tests.cpp @@ -2550,7 +2550,7 @@ static void TestLinearAllocator() { vmaSetCurrentFrameIndex(g_hAllocator, ++g_FrameIndex); - size_t lostAllocCount = SIZE_MAX; + size_t lostAllocCount = 0; vmaMakePoolAllocationsLost(g_hAllocator, pool, &lostAllocCount); TEST(lostAllocCount > 0); diff --git a/src/vk_mem_alloc.h b/src/vk_mem_alloc.h index a3ef355..789cf0b 100644 --- a/src/vk_mem_alloc.h +++ b/src/vk_mem_alloc.h @@ -10174,6 +10174,7 @@ uint32_t VmaBlockMetadata_Linear::MakeAllocationsLost(uint32_t currentFrameIndex suballoc.type = VMA_SUBALLOCATION_TYPE_FREE; suballoc.hAllocation = VK_NULL_HANDLE; ++m_2ndNullItemsCount; + m_SumFreeSize += suballoc.size; ++lostAllocationCount; } } @@ -11424,6 +11425,7 @@ bool VmaBlockVector::IsCorruptionDetectionEnabled() const const uint32_t requiredMemFlags = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; return (VMA_DEBUG_DETECT_CORRUPTION != 0) && (VMA_DEBUG_MARGIN > 0) && + (m_Algorithm == 0 || m_Algorithm == VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT) && (m_hAllocator->m_MemProps.memoryTypes[m_MemoryTypeIndex].propertyFlags & requiredMemFlags) == requiredMemFlags; }