aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobin Ehlis <tobine@google.com>2017-07-21 10:16:08 -0600
committerTobin Ehlis <tobine@google.com>2017-07-24 15:28:18 -0600
commitbb8fbbb901c3f912c9dcae312c83c2703ff67a99 (patch)
tree8c92b75c213b491c5cf44cfb690e51fa7f2bfc8e
parent803a865bda8fdf77c9364f75789f0d4f25f3b5e1 (diff)
downloadusermoji-bb8fbbb901c3f912c9dcae312c83c2703ff67a99.tar.xz
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.
-rw-r--r--layers/core_validation.cpp5
1 files 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);