From 9eb241b38d338f05d694242aa663c0972e5c01b7 Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Mon, 15 Aug 2016 15:00:12 -0600 Subject: layers: GH822, handle WHOLE_SIZE for mapped memory A support routine for FlushMappedMemoryRanges and InvalidateMapped- MemoryRanges ignored VK_WHOLE_SIZE, causing invalid memory accesses. Change-Id: I28616faa1339a394a3462e72780efd1b852ac489 --- layers/core_validation.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'layers/core_validation.cpp') diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index e6c50c32..5801cf50 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -10317,7 +10317,8 @@ static bool validateAndCopyNoncoherentMemoryToDriver(layer_data *my_data, uint32 auto mem_info = getMemObjInfo(my_data, pMemRanges[i].memory); if (mem_info) { if (mem_info->p_data) { - VkDeviceSize size = mem_info->mem_range.size; + VkDeviceSize size = + (mem_info->mem_range.size != VK_WHOLE_SIZE) ? mem_info->mem_range.size : mem_info->alloc_info.allocationSize; VkDeviceSize half_size = (size / 2); char *data = static_cast(mem_info->p_data); for (auto j = 0; j < half_size; ++j) { -- cgit v1.2.3