diff options
| author | Dave Houlton <daveh@lunarg.com> | 2017-05-22 16:16:27 -0600 |
|---|---|---|
| committer | Dave Houlton <daveh@lunarg.com> | 2017-05-23 09:41:18 -0600 |
| commit | e417ef986ad1ed578c25a9c4644350f4c587c2e6 (patch) | |
| tree | 32bee7753add1a4c2e72ec88c8d1da406a9644c6 /layers/buffer_validation.cpp | |
| parent | d61ace90402653babfd56d20f6932abeb447ce76 (diff) | |
| download | usermoji-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.cpp | 4 |
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", |
