From da8990d1e3fa6a440bc431475cb2bce4e12e7e4d Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Wed, 7 Sep 2016 14:08:31 +1200 Subject: layers: Add error for CmdEndRenderPass before reaching final subpass Signed-off-by: Chris Forbes --- layers/core_validation.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'layers/core_validation.cpp') diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index 5d3e1609..55d5c334 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -10103,6 +10103,13 @@ VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass(VkCommandBuffer commandBuffer) { RENDER_PASS_NODE* pRPNode = pCB->activeRenderPass; auto framebuffer = getFramebuffer(dev_data, pCB->activeFramebuffer); if (pRPNode) { + if (pCB->activeSubpass != pRPNode->pCreateInfo->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(commandBuffer), __LINE__, DRAWSTATE_INVALID_SUBPASS_INDEX, "DS", + "vkCmdEndRenderPass(): Called before reaching final subpass"); + } + for (size_t i = 0; i < pRPNode->attachments.size(); ++i) { MT_FB_ATTACHMENT_INFO &fb_info = framebuffer->attachments[i]; VkFormat format = pRPNode->pCreateInfo->pAttachments[pRPNode->attachments[i].attachment].format; -- cgit v1.2.3