diff options
| author | Tobin Ehlis <tobine@google.com> | 2017-07-21 10:16:08 -0600 |
|---|---|---|
| committer | Tobin Ehlis <tobine@google.com> | 2017-07-24 15:28:18 -0600 |
| commit | bb8fbbb901c3f912c9dcae312c83c2703ff67a99 (patch) | |
| tree | 8c92b75c213b491c5cf44cfb690e51fa7f2bfc8e | |
| parent | 803a865bda8fdf77c9364f75789f0d4f25f3b5e1 (diff) | |
| download | usermoji-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.cpp | 5 |
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); |
