aboutsummaryrefslogtreecommitdiff
path: root/layers/core_validation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'layers/core_validation.cpp')
-rw-r--r--layers/core_validation.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index 12a8ee7e..df2c6c92 100644
--- a/layers/core_validation.cpp
+++ b/layers/core_validation.cpp
@@ -10069,14 +10069,21 @@ VKAPI_ATTR void VKAPI_CALL CmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpa
if (pCB) {
skip_call |= validatePrimaryCommandBuffer(dev_data, pCB, "vkCmdNextSubpass");
skip_call |= addCmd(dev_data, pCB, CMD_NEXTSUBPASS, "vkCmdNextSubpass()");
- pCB->activeSubpass++;
- pCB->activeSubpassContents = contents;
- TransitionSubpassLayouts(dev_data, pCB, &pCB->activeRenderPassBeginInfo, pCB->activeSubpass);
skip_call |= outsideRenderPass(dev_data, pCB, "vkCmdNextSubpass");
}
lock.unlock();
- if (!skip_call)
- dev_data->device_dispatch_table->CmdNextSubpass(commandBuffer, contents);
+
+ if (skip_call)
+ return;
+
+ dev_data->device_dispatch_table->CmdNextSubpass(commandBuffer, contents);
+
+ if (pCB) {
+ lock.lock();
+ pCB->activeSubpass++;
+ pCB->activeSubpassContents = contents;
+ TransitionSubpassLayouts(dev_data, pCB, &pCB->activeRenderPassBeginInfo, pCB->activeSubpass);
+ }
}
VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass(VkCommandBuffer commandBuffer) {