tests: Test to create view with INPUT_ATTACMENT usage
Change-Id: I72f454043bfa63ec2075f8d39fd7f4114eafcc94
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index 46ebf45..09ae44c 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -3304,7 +3304,7 @@
ASSERT_NO_FATAL_FAILURE(InitState());
VkImageObj image(m_device);
- // Initialize image with USAGE_INPUT_ATTACHMENT
+ // Initialize image with USAGE_TRANSIENT_ATTACHMENT
image.init(128, 128, VK_FORMAT_D24_UNORM_S8_UINT,
VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, VK_IMAGE_TILING_OPTIMAL,
0);
@@ -3357,6 +3357,37 @@
1, ®ion);
m_errorMonitor->VerifyFound();
}
+
+TEST_F(VkLayerTest, ValidUsage)
+{
+ TEST_DESCRIPTION(
+ "Verify that creating an image view from an image with valid usage "
+ "doesn't generate validation errors");
+
+ ASSERT_NO_FATAL_FAILURE(InitState());
+
+ m_errorMonitor->ExpectSuccess();
+ // Verify that we can create a view with usage INPUT_ATTACHMENT
+ VkImageObj image(m_device);
+ image.init(128, 128, VK_FORMAT_R8G8B8A8_UNORM,
+ VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, VK_IMAGE_TILING_OPTIMAL,
+ 0);
+ ASSERT_TRUE(image.initialized());
+ VkImageView imageView;
+ VkImageViewCreateInfo ivci = {};
+ ivci.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
+ ivci.image = image.handle();
+ ivci.viewType = VK_IMAGE_VIEW_TYPE_2D;
+ ivci.format = VK_FORMAT_R8G8B8A8_UNORM;
+ ivci.subresourceRange.layerCount = 1;
+ ivci.subresourceRange.baseMipLevel = 0;
+ ivci.subresourceRange.levelCount = 1;
+ ivci.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
+
+ vkCreateImageView(m_device->device(), &ivci, NULL, &imageView);
+ m_errorMonitor->VerifyNotFound();
+ vkDestroyImageView(m_device->device(), imageView, NULL);
+}
#endif // MEM_TRACKER_TESTS
#if OBJ_TRACKER_TESTS