aboutsummaryrefslogtreecommitdiff
path: root/layers/core_validation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'layers/core_validation.cpp')
-rw-r--r--layers/core_validation.cpp29
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);
}
}
}