aboutsummaryrefslogtreecommitdiff
path: root/layers/core_validation.cpp
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2017-02-27 12:56:14 -0700
committerMark Lobodzinski <mark@lunarg.com>2017-02-28 09:43:23 -0700
commit19e645e05c18db1a107bc6fc96470c790c5c3c95 (patch)
tree62f4ab6955a36958bd388c4b99a8c6ab6459a33a /layers/core_validation.cpp
parent6b5b6c4e5fe54773e77a7bbff8b3ca83f80c4659 (diff)
downloadusermoji-19e645e05c18db1a107bc6fc96470c790c5c3c95.tar.xz
layers: Split layout transition validation/recording
Split TransitionImageLayouts and TransitionImageAspectLayouts into ValidateXxx and TransitionXxx routines. Change-Id: I19666e5ccc444cfc23304fd35aa1b9b18b039499
Diffstat (limited to 'layers/core_validation.cpp')
-rw-r--r--layers/core_validation.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index 4af115eb..99656781 100644
--- a/layers/core_validation.cpp
+++ b/layers/core_validation.cpp
@@ -8287,7 +8287,11 @@ VKAPI_ATTR void VKAPI_CALL CmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t
cb_state->eventUpdates.push_back(event_update);
skip |= ValidateCmd(dev_data, cb_state, CMD_WAITEVENTS, "vkCmdWaitEvents()");
UpdateCmdBufferLastCmd(cb_state, CMD_WAITEVENTS);
- skip |= TransitionImageLayouts(dev_data, commandBuffer, imageMemoryBarrierCount, pImageMemoryBarriers);
+ skip |= ValidateImageLayouts(dev_data, commandBuffer, imageMemoryBarrierCount, pImageMemoryBarriers);
+ if (!skip) {
+ TransitionImageLayouts(dev_data, commandBuffer, imageMemoryBarrierCount, pImageMemoryBarriers);
+ }
+
skip |= ValidateBarriers("vkCmdWaitEvents()", commandBuffer, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount,
pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
}
@@ -8312,7 +8316,10 @@ static bool PreCallValidateCmdPipelineBarrier(layer_data *device_data, GLOBAL_CB
skip |= ValidateStageMaskGsTsEnables(device_data, dstStageMask, "vkCmdPipelineBarrier()", VALIDATION_ERROR_00266,
VALIDATION_ERROR_00268);
UpdateCmdBufferLastCmd(cb_state, CMD_PIPELINEBARRIER);
- skip |= TransitionImageLayouts(device_data, commandBuffer, imageMemoryBarrierCount, pImageMemoryBarriers);
+ skip |= ValidateImageLayouts(device_data, commandBuffer, imageMemoryBarrierCount, pImageMemoryBarriers);
+ if (!skip) {
+ TransitionImageLayouts(device_data, commandBuffer, imageMemoryBarrierCount, pImageMemoryBarriers);
+ }
skip |= ValidateBarriers("vkCmdPipelineBarrier()", commandBuffer, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount,
pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
return skip;