From e417ef986ad1ed578c25a9c4644350f4c587c2e6 Mon Sep 17 00:00:00 2001 From: Dave Houlton Date: Mon, 22 May 2017 16:16:27 -0600 Subject: 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 --- layers/buffer_validation.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'layers/buffer_validation.cpp') 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", -- cgit v1.2.3