From 1c1aba757a43058027dc7451d9628acadeea26fb Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Thu, 14 Jan 2016 15:57:46 +1300 Subject: [PATCH] layers: MR130, Handle VK_WHOLE_SIZE properly in mem_tracker:initializeAndTrackMemory VK_WHOLE_SIZE is ~0ull. If this were passed as `size`, we'd try to allocate ~1ull bytes, and then memset them all to 0xb. This tends to explode. --- layers/mem_tracker.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp index 321cf1e..2f7620b 100644 --- a/layers/mem_tracker.cpp +++ b/layers/mem_tracker.cpp @@ -1513,6 +1513,9 @@ initializeAndTrackMemory( if (memProps.memoryTypes[index].propertyFlags & VK_MEMORY_PROPERTY_HOST_COHERENT_BIT) { mem_element->second.pData = 0; } else { + if (size == VK_WHOLE_SIZE) { + size = mem_element->second.allocInfo.allocationSize; + } mem_element->second.pData = malloc(2 * size); memset(mem_element->second.pData, NoncoherentMemoryFillValue, 2 * size); *ppData = static_cast(mem_element->second.pData) + (size / 2); -- 2.7.4