diff options
| author | Chris Forbes <chrisforbes@google.com> | 2016-01-14 15:57:46 +1300 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2016-01-14 10:08:54 -0700 |
| commit | 1c1aba757a43058027dc7451d9628acadeea26fb (patch) | |
| tree | 68e968d4d9953616ab122244aa1cc5476f8621e0 /layers/mem_tracker.cpp | |
| parent | db31a54c64f14a89d64245ee4d3b31fdad82acf9 (diff) | |
| download | usermoji-1c1aba757a43058027dc7451d9628acadeea26fb.tar.xz | |
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.
Diffstat (limited to 'layers/mem_tracker.cpp')
| -rw-r--r-- | layers/mem_tracker.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp index 321cf1e6..2f7620b4 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<char*>(mem_element->second.pData) + (size / 2); |
