tests: blit tests respect tiling features in clear tests
diff --git a/tests/blit_tests.cpp b/tests/blit_tests.cpp
index 8ef24e9..322932c 100644
--- a/tests/blit_tests.cpp
+++ b/tests/blit_tests.cpp
@@ -1336,6 +1336,19 @@
     for (std::vector<vk_testing::Device::Format>::const_iterator it = test_formats_.begin();
          it != test_formats_.end(); it++) {
         const float color[4] = { 0.0f, 1.0f, 0.0f, 1.0f };
+        VkFormatProperties props;
+        size_t size = sizeof(props);
+        VkResult err;
+
+        err = vkGetFormatInfo(dev_.obj(), it->format,
+                               VK_FORMAT_INFO_TYPE_PROPERTIES,
+                               &size, &props);
+        ASSERT_EQ(err, VK_SUCCESS);
+        if (it->tiling == VK_IMAGE_TILING_LINEAR && !(props.linearTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT))
+            continue;
+
+        if (it->tiling == VK_IMAGE_TILING_OPTIMAL && !(props.optimalTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT))
+            continue;
 
         VkImageCreateInfo img_info = vk_testing::Image::create_info();
         img_info.imageType = VK_IMAGE_TYPE_2D;
@@ -1343,6 +1356,7 @@
         img_info.extent.width = 64;
         img_info.extent.height = 64;
         img_info.tiling = it->tiling;
+        img_info.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
 
         const VkImageSubresourceRange range =
             vk_testing::Image::subresource_range(img_info, VK_IMAGE_ASPECT_COLOR);
@@ -1372,6 +1386,19 @@
     for (std::vector<vk_testing::Device::Format>::const_iterator it = test_formats_.begin();
          it != test_formats_.end(); it++) {
         const uint32_t color[4] = { 0x11111111, 0x22222222, 0x33333333, 0x44444444 };
+        VkFormatProperties props;
+        size_t size = sizeof(props);
+        VkResult err;
+
+        err = vkGetFormatInfo(dev_.obj(), it->format,
+                               VK_FORMAT_INFO_TYPE_PROPERTIES,
+                               &size, &props);
+        ASSERT_EQ(err, VK_SUCCESS);
+        if (it->tiling == VK_IMAGE_TILING_LINEAR && !(props.linearTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT))
+            continue;
+
+        if (it->tiling == VK_IMAGE_TILING_OPTIMAL && !(props.optimalTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT))
+            continue;
 
         // not sure what to do here
         if (it->format == VK_FORMAT_UNDEFINED ||
@@ -1395,6 +1422,7 @@
         img_info.extent.width = 64;
         img_info.extent.height = 64;
         img_info.tiling = it->tiling;
+        img_info.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
 
         const VkImageSubresourceRange range =
             vk_testing::Image::subresource_range(img_info, VK_IMAGE_ASPECT_COLOR);
@@ -1542,6 +1570,20 @@
 {
     for (std::vector<vk_testing::Device::Format>::const_iterator it = test_formats_.begin();
          it != test_formats_.end(); it++) {
+        VkFormatProperties props;
+        size_t size = sizeof(props);
+        VkResult err;
+
+        err = vkGetFormatInfo(dev_.obj(), it->format,
+                               VK_FORMAT_INFO_TYPE_PROPERTIES,
+                               &size, &props);
+        ASSERT_EQ(err, VK_SUCCESS);
+        if (it->tiling == VK_IMAGE_TILING_LINEAR && !(props.linearTilingFeatures & VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT))
+            continue;
+
+        if (it->tiling == VK_IMAGE_TILING_OPTIMAL && !(props.optimalTilingFeatures & VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT))
+            continue;
+
         // known driver issues
         if (it->format == VK_FORMAT_S8_UINT ||
             it->format == VK_FORMAT_D24_UNORM ||