aboutsummaryrefslogtreecommitdiff
path: root/layers/core_validation.cpp
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2016-08-15 15:00:12 -0600
committerMark Lobodzinski <mark@lunarg.com>2016-08-17 15:34:27 -0600
commit9eb241b38d338f05d694242aa663c0972e5c01b7 (patch)
treeae9ced84e89ef76d16cdb423561500f9a9c8591d /layers/core_validation.cpp
parent5cf2d27bca81fb746697493a8e78bb9e582c2865 (diff)
downloadusermoji-9eb241b38d338f05d694242aa663c0972e5c01b7.tar.xz
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
Diffstat (limited to 'layers/core_validation.cpp')
-rw-r--r--layers/core_validation.cpp3
1 files changed, 2 insertions, 1 deletions
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<char *>(mem_info->p_data);
for (auto j = 0; j < half_size; ++j) {