From 24fb95c922188b59a1bbf4839ee315266ccbb40c Mon Sep 17 00:00:00 2001 From: Cody Northrop Date: Mon, 9 May 2016 16:15:57 -0600 Subject: layers: Determine whether command buffer can be ended with active render pass --- layers/core_validation.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'layers/core_validation.cpp') diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index 9c33e629..236474e6 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -6182,6 +6182,11 @@ VKAPI_ATTR VkResult VKAPI_CALL EndCommandBuffer(VkCommandBuffer commandBuffer) { std::unique_lock lock(global_lock); GLOBAL_CB_NODE *pCB = getCBNode(dev_data, commandBuffer); if (pCB) { + if ((VK_COMMAND_BUFFER_LEVEL_PRIMARY == pCB->createInfo.level) || !(pCB->beginInfo.flags & VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT)) { + // This needs spec clarification to update valid usage, see comments in PR: + // https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/pull/516#discussion_r63013756 + skipCall |= insideRenderPass(dev_data, pCB, "vkEndCommandBuffer"); + } if (pCB->state != CB_RECORDING) { skipCall |= report_error_no_cb_begin(dev_data, commandBuffer, "vkEndCommandBuffer()"); } -- cgit v1.2.3