diff options
Diffstat (limited to 'layers/core_validation.cpp')
| -rw-r--r-- | layers/core_validation.cpp | 17 |
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) { |
