tests: GH485, Update valid format property tests
Validation for image format properties was tightened up which resulted
in changes to the existing tests and a valid usage addition.
Change-Id: Id87c599a60229b38cbbe759d988f96f947b396ed
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index 1cc8956..78de111 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -9856,7 +9856,32 @@
VK_IMAGE_TILING_OPTIMAL, 0);
ASSERT_TRUE(image.initialized());
+ // Create image with unsupported format - Expect FORMAT_UNSUPPORTED
+ VkImageCreateInfo image_create_info;
+ image_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
+ image_create_info.pNext = NULL;
+ image_create_info.imageType = VK_IMAGE_TYPE_2D;
+ image_create_info.format = VK_FORMAT_UNDEFINED;
+ image_create_info.extent.width = 32;
+ image_create_info.extent.height = 32;
+ image_create_info.extent.depth = 1;
+ image_create_info.mipLevels = 1;
+ image_create_info.arrayLayers = 1;
+ image_create_info.samples = VK_SAMPLE_COUNT_1_BIT;
+ image_create_info.tiling = VK_IMAGE_TILING_OPTIMAL;
+ image_create_info.usage = VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
+ image_create_info.flags = 0;
+
+ m_errorMonitor->SetDesiredFailureMsg(
+ VK_DEBUG_REPORT_ERROR_BIT_EXT,
+ "vkCreateImage: VkFormat for image must not be VK_FORMAT_UNDEFINED");
+
+ VkImage localImage;
+ vkCreateImage(m_device->handle(), &image_create_info, NULL, &localImage);
+ m_errorMonitor->VerifyFound();
+
VkFormat unsupported = VK_FORMAT_UNDEFINED;
+ // Look for a format that is COMPLETELY unsupported with this hardware
for (int f = VK_FORMAT_BEGIN_RANGE; f <= VK_FORMAT_END_RANGE; f++) {
VkFormat format = static_cast<VkFormat>(f);
VkFormatProperties fProps = m_device->format_properties(format);
@@ -9866,54 +9891,13 @@
break;
}
}
+
if (unsupported != VK_FORMAT_UNDEFINED) {
- m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_ERROR_BIT_EXT,
- "vkCreateImage parameter, "
- "VkFormat pCreateInfo->format, "
- "contains unsupported format");
- // Create image with unsupported format - Expect FORMAT_UNSUPPORTED
- VkImageCreateInfo image_create_info;
- image_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
- image_create_info.pNext = NULL;
- image_create_info.imageType = VK_IMAGE_TYPE_2D;
image_create_info.format = unsupported;
- image_create_info.extent.width = 32;
- image_create_info.extent.height = 32;
- image_create_info.extent.depth = 1;
- image_create_info.mipLevels = 1;
- image_create_info.arrayLayers = 1;
- image_create_info.samples = VK_SAMPLE_COUNT_1_BIT;
- image_create_info.tiling = VK_IMAGE_TILING_OPTIMAL;
- image_create_info.usage = VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
- image_create_info.flags = 0;
-
- VkImage localImage;
- vkCreateImage(m_device->handle(), &image_create_info, NULL, &localImage);
- m_errorMonitor->VerifyFound();
-
m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_ERROR_BIT_EXT,
- "vkCreateRenderPass parameter, "
- "VkFormat in "
- "pCreateInfo->pAttachments");
- // Create renderpass with unsupported format - Expect FORMAT_UNSUPPORTED
- VkAttachmentDescription att;
- att.format = unsupported;
- att.samples = VK_SAMPLE_COUNT_1_BIT;
- att.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD;
- att.storeOp = VK_ATTACHMENT_STORE_OP_STORE;
- att.stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
- att.stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE;
- att.initialLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
- att.finalLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+ "is an unsupported format");
- VkRenderPassCreateInfo rp_info = {};
- VkRenderPass rp;
- rp_info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
- rp_info.attachmentCount = 1;
- rp_info.pAttachments = &att;
- rp_info.subpassCount = 0;
- rp_info.pSubpasses = NULL;
- vkCreateRenderPass(m_device->handle(), &rp_info, NULL, &rp);
+ vkCreateImage(m_device->handle(), &image_create_info, NULL, &localImage);
m_errorMonitor->VerifyFound();
}
}