Merge "Fix required sample counts per spec issue 478" into vulkan-cts-1.0.1
diff --git a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
index ff7bfb6..8c05d89 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
@@ -1694,14 +1694,22 @@
 
 bool isValidImageUsageFlagCombination (VkImageUsageFlags usage)
 {
-	if (usage & vk::VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT)
+	if ((usage & VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT) != 0)
 	{
-		const VkImageUsageFlags		allowedFlags	= vk::VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
-													| vk::VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
-													| vk::VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
-													| vk::VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
-		return (usage & ~allowedFlags) == 0;
+		const VkImageUsageFlags		allowedFlags	= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
+													| VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
+													| VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
+													| VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
+
+		// Only *_ATTACHMENT_BIT flags can be combined with TRANSIENT_ATTACHMENT_BIT
+		if ((usage & ~allowedFlags) != 0)
+			return false;
+
+		// TRANSIENT_ATTACHMENT_BIT is not valid without COLOR_ or DEPTH_STENCIL_ATTACHMENT_BIT
+		if ((usage & (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT|VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT)) == 0)
+			return false;
 	}
+
 	return usage != 0;
 }