diff options
Diffstat (limited to 'layers/core_validation.cpp')
| -rw-r--r-- | layers/core_validation.cpp | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index 0ac46a00..c18190b9 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -8190,30 +8190,25 @@ static bool ValidateBarriers(const char *funcName, VkCommandBuffer cmdBuffer, ui skip |= ValidateImageSubrangeLevelLayerCounts(dev_data, mem_barrier->subresourceRange, funcName); auto aspect_mask = mem_barrier->subresourceRange.aspectMask; skip |= ValidateImageAspectMask(dev_data, image_data->image, format, aspect_mask, funcName); - int layerCount = (mem_barrier->subresourceRange.layerCount == VK_REMAINING_ARRAY_LAYERS) - ? 1 - : mem_barrier->subresourceRange.layerCount; - if ((mem_barrier->subresourceRange.baseArrayLayer + layerCount) > arrayLayers) { + + uint32_t layer_count = ResolveRemainingLayers(&mem_barrier->subresourceRange, image_data->createInfo.arrayLayers); + if ((mem_barrier->subresourceRange.baseArrayLayer + layer_count) > arrayLayers) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, reinterpret_cast<uint64_t>(cmdBuffer), - __LINE__, DRAWSTATE_INVALID_BARRIER, "DS", - "%s: Subresource must have the sum of the " - "baseArrayLayer (%d) and layerCount (%d) be less " + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, reinterpret_cast<uint64_t>(cmdBuffer), __LINE__, + DRAWSTATE_INVALID_BARRIER, "DS", + "%s: Subresource must have the sum of the baseArrayLayer (%d) and layerCount (%d) be less " "than or equal to the total number of layers (%d).", - funcName, mem_barrier->subresourceRange.baseArrayLayer, - mem_barrier->subresourceRange.layerCount, arrayLayers); + funcName, mem_barrier->subresourceRange.baseArrayLayer, layer_count, arrayLayers); } - int levelCount = (mem_barrier->subresourceRange.levelCount == VK_REMAINING_MIP_LEVELS) - ? 1 - : mem_barrier->subresourceRange.levelCount; - if ((mem_barrier->subresourceRange.baseMipLevel + levelCount) > mipLevels) { + + uint32_t level_count = ResolveRemainingLevels(&mem_barrier->subresourceRange, image_data->createInfo.mipLevels); + if ((mem_barrier->subresourceRange.baseMipLevel + level_count) > mipLevels) { skip |= log_msg( dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, reinterpret_cast<uint64_t>(cmdBuffer), __LINE__, DRAWSTATE_INVALID_BARRIER, "DS", - "%s: Subresource must have the sum of the baseMipLevel " - "(%d) and levelCount (%d) be less than or equal to " + "%s: Subresource must have the sum of the baseMipLevel (%d) and levelCount (%d) be less than or equal to " "the total number of levels (%d).", - funcName, mem_barrier->subresourceRange.baseMipLevel, mem_barrier->subresourceRange.levelCount, mipLevels); + funcName, mem_barrier->subresourceRange.baseMipLevel, level_count, mipLevels); } } } |
