From 19e645e05c18db1a107bc6fc96470c790c5c3c95 Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Mon, 27 Feb 2017 12:56:14 -0700 Subject: layers: Split layout transition validation/recording Split TransitionImageLayouts and TransitionImageAspectLayouts into ValidateXxx and TransitionXxx routines. Change-Id: I19666e5ccc444cfc23304fd35aa1b9b18b039499 --- layers/core_validation.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'layers/core_validation.cpp') 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; -- cgit v1.2.3