diff options
| author | Chris Forbes <chrisforbes@google.com> | 2016-09-07 11:44:08 +1200 |
|---|---|---|
| committer | Chris Forbes <chrisforbes@google.com> | 2016-09-07 16:58:24 +1200 |
| commit | 1ba3bf459e699206d13e40697dcb1df93e0b9fd2 (patch) | |
| tree | 8fdb0910ff626008f68e6b5059d60c2fd47004de /layers/core_validation.cpp | |
| parent | 8c6b3e2ca5c408def872dbd8bbdb80f76589812c (diff) | |
| download | usermoji-1ba3bf459e699206d13e40697dcb1df93e0b9fd2.tar.xz | |
layers: add error to CmdNextSubpass if stepping beyond last subpass
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Diffstat (limited to 'layers/core_validation.cpp')
| -rw-r--r-- | layers/core_validation.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index df2c6c92..e5048e89 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -10070,6 +10070,14 @@ VKAPI_ATTR void VKAPI_CALL CmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpa skip_call |= validatePrimaryCommandBuffer(dev_data, pCB, "vkCmdNextSubpass"); skip_call |= addCmd(dev_data, pCB, CMD_NEXTSUBPASS, "vkCmdNextSubpass()"); skip_call |= outsideRenderPass(dev_data, pCB, "vkCmdNextSubpass"); + + auto subpassCount = pCB->activeRenderPass->pCreateInfo->subpassCount; + if (pCB->activeSubpass == subpassCount - 1) { + skip_call |= + log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, + reinterpret_cast<uint64_t>(commandBuffer), __LINE__, DRAWSTATE_INVALID_SUBPASS_INDEX, "DS", + "vkCmdNextSubpass(): Attempted to advance beyond final subpass"); + } } lock.unlock(); |
