aboutsummaryrefslogtreecommitdiff
path: root/layers/buffer_validation.cpp
diff options
context:
space:
mode:
authorDave Houlton <daveh@lunarg.com>2017-05-22 16:16:27 -0600
committerDave Houlton <daveh@lunarg.com>2017-05-23 09:41:18 -0600
commite417ef986ad1ed578c25a9c4644350f4c587c2e6 (patch)
tree32bee7753add1a4c2e72ec88c8d1da406a9644c6 /layers/buffer_validation.cpp
parentd61ace90402653babfd56d20f6932abeb447ce76 (diff)
downloadusermoji-e417ef986ad1ed578c25a9c4644350f4c587c2e6.tar.xz
layers: Fix layers check in CmdClearAttachments
Fix the layer count check in PreCallValidateCmdClearAttachments() to compare against the view's layers, rather than against the underlying image's layers. Update test CmdClearAttachmentTests to provoke both clauses of the test condition. Change-Id: I96d9440cbed3a290554410bb0574e6c443190a64
Diffstat (limited to 'layers/buffer_validation.cpp')
-rw-r--r--layers/buffer_validation.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/layers/buffer_validation.cpp b/layers/buffer_validation.cpp
index a6903dfa..308079c0 100644
--- a/layers/buffer_validation.cpp
+++ b/layers/buffer_validation.cpp
@@ -2080,9 +2080,9 @@ bool PreCallValidateCmdClearAttachments(layer_data *device_data, VkCommandBuffer
}
// The layers specified by a given element of pRects must be contained within every attachment that
// pAttachments refers to
- auto attachment_base_array_layer = image_view_state->create_info.subresourceRange.baseArrayLayer;
auto attachment_layer_count = image_view_state->create_info.subresourceRange.layerCount;
- if ((pRects[j].baseArrayLayer < attachment_base_array_layer) || pRects[j].layerCount > attachment_layer_count) {
+ if ((pRects[j].baseArrayLayer >= attachment_layer_count) ||
+ (pRects[j].baseArrayLayer + pRects[j].layerCount > attachment_layer_count)) {
skip |=
log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_01116, "DS",