summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Forbes <chrisforbes@google.com>2017-05-01 09:43:35 -0700
committerChris Forbes <chrisf@ijw.co.nz>2017-05-01 09:49:23 -0700
commit05477536556e06581582baff88020ecb05411216 (patch)
treefaaa314dc7c7318e5a35b125bccd774d959506c6
parent44a918406c3baebe4e3ab911f91cf4d13642ea67 (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.cpp16
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) {