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.
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 @@
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<char*>(mem_element->second.pData) + (size / 2);