diff options
author | Chris Forbes <chrisforbes@google.com> | 2017-05-01 09:43:35 -0700 |
---|---|---|
committer | Chris Forbes <chrisf@ijw.co.nz> | 2017-05-01 09:49:23 -0700 |
commit | 05477536556e06581582baff88020ecb05411216 (patch) | |
tree | faaa314dc7c7318e5a35b125bccd774d959506c6 | |
parent | 44a918406c3baebe4e3ab911f91cf4d13642ea67 (diff) |
layers: Fix LayoutFromPresentWithoutAccessMemoryRead
This wasn't updated when I relaxed the implementation in a previous PR.
Make this into a positive test since it's now correct usage.
-rw-r--r-- | tests/layer_validation_tests.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp index debcb37e..c28c4a40 100644 --- a/tests/layer_validation_tests.cpp +++ b/tests/layer_validation_tests.cpp @@ -9494,10 +9494,15 @@ TEST_F(VkLayerTest, InvalidBarriers) { vkDestroyCommandPool(m_device->device(), command_pool, NULL); } -TEST_F(VkLayerTest, LayoutFromPresentWithoutAccessMemoryRead) { - // Transition an image away from PRESENT_SRC_KHR without ACCESS_MEMORY_READ in srcAccessMask +TEST_F(VkPositiveLayerTest, LayoutFromPresentWithoutAccessMemoryRead) { + // Transition an image away from PRESENT_SRC_KHR without ACCESS_MEMORY_READ + // in srcAccessMask. - m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_WARNING_BIT_EXT, "must have required access bit"); + // The required behavior here was a bit unclear in earlier versions of the + // spec, but there is no memory dependency required here, so this should + // work without warnings. + + m_errorMonitor->ExpectSuccess(); ASSERT_NO_FATAL_FAILURE(Init()); VkImageObj image(m_device); image.Init(128, 128, 1, VK_FORMAT_B8G8R8A8_UNORM, (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT), @@ -9507,9 +9512,8 @@ TEST_F(VkLayerTest, LayoutFromPresentWithoutAccessMemoryRead) { VkImageMemoryBarrier barrier = {}; VkImageSubresourceRange range; barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER; - barrier.srcAccessMask = 0; barrier.srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; - barrier.dstAccessMask = VK_ACCESS_MEMORY_READ_BIT; + barrier.dstAccessMask = 0; barrier.oldLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; barrier.newLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; barrier.image = image.handle(); @@ -9530,7 +9534,7 @@ TEST_F(VkLayerTest, LayoutFromPresentWithoutAccessMemoryRead) { cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, 0, 0, nullptr, 0, nullptr, 1, &barrier); - m_errorMonitor->VerifyFound(); + m_errorMonitor->VerifyNotFound(); } TEST_F(VkLayerTest, IdxBufferAlignmentError) { |