From dd5dc446e63f555e83309021ad010cafe836111a Mon Sep 17 00:00:00 2001 From: Tony Barbour Date: Tue, 4 Oct 2016 12:03:50 -0600 Subject: layers: Only validate access masks if layout changes Change-Id: I21af32fb017de15760d72d4b32d99d84c383755f --- layers/core_validation.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index fdc6b3a9..60762ff8 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -8727,10 +8727,12 @@ static bool ValidateBarriers(const char *funcName, VkCommandBuffer cmdBuffer, ui } if (mem_barrier) { - skip_call |= - ValidateMaskBitsFromLayouts(dev_data, cmdBuffer, mem_barrier->srcAccessMask, mem_barrier->oldLayout, "Source"); - skip_call |= - ValidateMaskBitsFromLayouts(dev_data, cmdBuffer, mem_barrier->dstAccessMask, mem_barrier->newLayout, "Dest"); + if (mem_barrier->oldLayout != mem_barrier->newLayout) { + skip_call |= + ValidateMaskBitsFromLayouts(dev_data, cmdBuffer, mem_barrier->srcAccessMask, mem_barrier->oldLayout, "Source"); + skip_call |= + ValidateMaskBitsFromLayouts(dev_data, cmdBuffer, mem_barrier->dstAccessMask, mem_barrier->newLayout, "Dest"); + } if (mem_barrier->newLayout == VK_IMAGE_LAYOUT_UNDEFINED || mem_barrier->newLayout == VK_IMAGE_LAYOUT_PREINITIALIZED) { log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT)0, 0, __LINE__, DRAWSTATE_INVALID_BARRIER, "DS", "%s: Image Layout cannot be transitioned to UNDEFINED or " -- cgit v1.2.3