diff options
Diffstat (limited to 'layers/buffer_validation.cpp')
-rw-r--r-- | layers/buffer_validation.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/layers/buffer_validation.cpp b/layers/buffer_validation.cpp index ec8016f5..d5b15cb8 100644 --- a/layers/buffer_validation.cpp +++ b/layers/buffer_validation.cpp @@ -2078,10 +2078,6 @@ bool ValidateMaskBitsFromLayouts(core_validation::layer_data *device_data, VkCom skip |= ValidateMaskBits(device_data, cmdBuffer, accessMask, layout, VK_ACCESS_TRANSFER_READ_BIT, 0, type); break; } - case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR: { - skip |= ValidateMaskBits(device_data, cmdBuffer, accessMask, layout, VK_ACCESS_MEMORY_READ_BIT, 0, type); - break; - } case VK_IMAGE_LAYOUT_UNDEFINED: { if (accessMask != 0) { // TODO: Verify against Valid Use section spec @@ -2092,6 +2088,17 @@ bool ValidateMaskBitsFromLayouts(core_validation::layer_data *device_data, VkCom } break; } + case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR: + // Notes: QueuePresentKHR performs automatic visibility operations, + // so the app is /NOT/ required to include VK_ACCESS_MEMORY_READ_BIT + // when transitioning to this layout. + // + // When transitioning /from/ this layout, the application needs to + // avoid only a WAR hazard -- any writes need to be ordered after + // the PE's reads. There is no need for a memory dependency for this + // case. + /* fallthrough */ + case VK_IMAGE_LAYOUT_GENERAL: default: { break; } } |