From bb8fbbb901c3f912c9dcae312c83c2703ff67a99 Mon Sep 17 00:00:00 2001 From: Tobin Ehlis Date: Fri, 21 Jul 2017 10:16:08 -0600 Subject: layers:Refactor barrier check order Do the renderPass barrier check first and early return to avoid potential redundant errors from remaining layout and barrier checks. --- layers/core_validation.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index ba761dc8..7e1fddaf 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -6641,13 +6641,14 @@ static bool PreCallValidateCmdPipelineBarrier(layer_data *device_data, GLOBAL_CB VALIDATION_ERROR_1b800924); skip |= ValidateStageMaskGsTsEnables(device_data, dstStageMask, "vkCmdPipelineBarrier()", VALIDATION_ERROR_1b800922, VALIDATION_ERROR_1b800926); - skip |= - ValidateBarriersToImages(device_data, cb_state, imageMemoryBarrierCount, pImageMemoryBarriers, "vkCmdPipelineBarrier()"); if (cb_state->activeRenderPass) { skip |= ValidateRenderPassPipelineBarriers(device_data, "vkCmdPipelineBarrier()", cb_state, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); + if (skip) return true; // Early return to avoid redundant errors from below calls } + skip |= + ValidateBarriersToImages(device_data, cb_state, imageMemoryBarrierCount, pImageMemoryBarriers, "vkCmdPipelineBarrier()"); skip |= ValidateBarriers(device_data, "vkCmdPipelineBarrier()", cb_state, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); -- cgit v1.2.3