bug-14542: Remove VK_UNSUPPORTED from success return codes
diff --git a/demos/cube.c b/demos/cube.c
index a74c909..7cb7057 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -407,7 +407,7 @@
     uint32_t queue_count;
 };
 
-static VkResult memory_type_from_properties(struct demo *demo, uint32_t typeBits, VkFlags requirements_mask, uint32_t *typeIndex)
+static bool memory_type_from_properties(struct demo *demo, uint32_t typeBits, VkFlags requirements_mask, uint32_t *typeIndex)
 {
      // Search memtypes to find first index with those properties
      for (uint32_t i = 0; i < 32; i++) {
@@ -415,13 +415,13 @@
              // Type is available, does it match user properties?
              if ((demo->memory_properties.memoryTypes[i].propertyFlags & requirements_mask) == requirements_mask) {
                  *typeIndex = i;
-                 return VK_SUCCESS;
+                 return true;
              }
          }
          typeBits >>= 1;
      }
      // No memory types matched, return failure
-     return VK_UNSUPPORTED;
+     return false;
 }
 
 static void demo_flush_init_cmd(struct demo *demo)
@@ -879,6 +879,7 @@
 
     VkMemoryRequirements mem_reqs;
     VkResult U_ASSERT_ONLY err;
+    bool U_ASSERT_ONLY pass;
 
     demo->depth.format = depth_format;
 
@@ -896,11 +897,11 @@
     demo->depth.mem_alloc.allocationSize = mem_reqs.size;
     demo->depth.mem_alloc.memoryTypeIndex = 0;
 
-    err = memory_type_from_properties(demo,
+    pass = memory_type_from_properties(demo,
                                       mem_reqs.memoryTypeBits,
                                       0, /* No requirements */
                                       &demo->depth.mem_alloc.memoryTypeIndex);
-    assert(!err);
+    assert(pass);
 
     /* allocate memory */
     err = vkAllocMemory(demo->device, &demo->depth.mem_alloc, &demo->depth.mem);
@@ -976,6 +977,7 @@
     int32_t tex_width;
     int32_t tex_height;
     VkResult U_ASSERT_ONLY err;
+    bool U_ASSERT_ONLY pass;
 
     if (!loadTexture(filename, NULL, NULL, &tex_width, &tex_height))
     {
@@ -1014,8 +1016,8 @@
     tex_obj->mem_alloc.allocationSize = mem_reqs.size;
     tex_obj->mem_alloc.memoryTypeIndex = 0;
 
-    err = memory_type_from_properties(demo, mem_reqs.memoryTypeBits, required_props, &tex_obj->mem_alloc.memoryTypeIndex);
-    assert(!err);
+    pass = memory_type_from_properties(demo, mem_reqs.memoryTypeBits, required_props, &tex_obj->mem_alloc.memoryTypeIndex);
+    assert(pass);
 
     /* allocate memory */
     err = vkAllocMemory(demo->device, &tex_obj->mem_alloc,
@@ -1179,6 +1181,7 @@
     int i;
     mat4x4 MVP, VP;
     VkResult U_ASSERT_ONLY err;
+    bool U_ASSERT_ONLY pass;
     struct vktexcube_vs_uniform data;
 
     mat4x4_mul(VP, demo->projection_matrix, demo->view_matrix);
@@ -1211,11 +1214,11 @@
     demo->uniform_data.mem_alloc.allocationSize = mem_reqs.size;
     demo->uniform_data.mem_alloc.memoryTypeIndex = 0;
 
-    err = memory_type_from_properties(demo,
+    pass = memory_type_from_properties(demo,
                                       mem_reqs.memoryTypeBits,
                                       VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
                                       &demo->uniform_data.mem_alloc.memoryTypeIndex);
-    assert(!err);
+    assert(pass);
 
     err = vkAllocMemory(demo->device, &demo->uniform_data.mem_alloc, &(demo->uniform_data.mem));
     assert(!err);
diff --git a/demos/tri.c b/demos/tri.c
index 4f21179..e21b0ad 100644
--- a/demos/tri.c
+++ b/demos/tri.c
@@ -247,7 +247,7 @@
     uint32_t queue_count;
 };
 
-static VkResult memory_type_from_properties(struct demo *demo, uint32_t typeBits, VkFlags requirements_mask, uint32_t *typeIndex)
+static bool memory_type_from_properties(struct demo *demo, uint32_t typeBits, VkFlags requirements_mask, uint32_t *typeIndex)
 {
      // Search memtypes to find first index with those properties
      for (uint32_t i = 0; i < 32; i++) {
@@ -255,13 +255,13 @@
              // Type is available, does it match user properties?
              if ((demo->memory_properties.memoryTypes[i].propertyFlags & requirements_mask) == requirements_mask) {
                  *typeIndex = i;
-                 return VK_SUCCESS;
+                 return true;
              }
          }
          typeBits >>= 1;
      }
      // No memory types matched, return failure
-     return VK_UNSUPPORTED;
+     return false;
 }
 
 static void demo_flush_init_cmd(struct demo *demo)
@@ -693,6 +693,7 @@
 
     VkMemoryRequirements mem_reqs;
     VkResult U_ASSERT_ONLY err;
+    bool U_ASSERT_ONLY pass;
 
     demo->depth.format = depth_format;
 
@@ -707,11 +708,11 @@
 
     /* select memory size and type */
     mem_alloc.allocationSize = mem_reqs.size;
-    err = memory_type_from_properties(demo,
+    pass = memory_type_from_properties(demo,
                                       mem_reqs.memoryTypeBits,
                                       0, /* No requirements */
                                       &mem_alloc.memoryTypeIndex);
-    assert(!err);
+    assert(pass);
 
     /* allocate memory */
     err = vkAllocMemory(demo->device, &mem_alloc, &demo->depth.mem);
@@ -744,6 +745,7 @@
     const int32_t tex_width = 2;
     const int32_t tex_height = 2;
     VkResult U_ASSERT_ONLY err;
+    bool U_ASSERT_ONLY pass;
 
     tex_obj->tex_width = tex_width;
     tex_obj->tex_height = tex_height;
@@ -777,8 +779,8 @@
     vkGetImageMemoryRequirements(demo->device, tex_obj->image, &mem_reqs);
 
     mem_alloc.allocationSize  = mem_reqs.size;
-    err = memory_type_from_properties(demo, mem_reqs.memoryTypeBits, required_props, &mem_alloc.memoryTypeIndex);
-    assert(!err);
+    pass = memory_type_from_properties(demo, mem_reqs.memoryTypeBits, required_props, &mem_alloc.memoryTypeIndex);
+    assert(pass);
 
     /* allocate memory */
     err = vkAllocMemory(demo->device, &mem_alloc, &tex_obj->mem);
@@ -960,6 +962,7 @@
     };
     VkMemoryRequirements mem_reqs;
     VkResult U_ASSERT_ONLY err;
+    bool U_ASSERT_ONLY pass;
     void *data;
 
     memset(&demo->vertices, 0, sizeof(demo->vertices));
@@ -972,11 +975,11 @@
     assert(!err);
 
     mem_alloc.allocationSize  = mem_reqs.size;
-    err = memory_type_from_properties(demo,
+    pass = memory_type_from_properties(demo,
                                       mem_reqs.memoryTypeBits,
                                       VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
                                       &mem_alloc.memoryTypeIndex);
-    assert(!err);
+    assert(pass);
 
     err = vkAllocMemory(demo->device, &mem_alloc, &demo->vertices.mem);
     assert(!err);
diff --git a/demos/vulkaninfo.c b/demos/vulkaninfo.c
index 5453c48..a1f1716 100644
--- a/demos/vulkaninfo.c
+++ b/demos/vulkaninfo.c
@@ -132,7 +132,6 @@
     switch (err) {
 #define STR(r) case r: return #r
     STR(VK_SUCCESS);
-    STR(VK_UNSUPPORTED);
     STR(VK_NOT_READY);
     STR(VK_TIMEOUT);
     STR(VK_EVENT_SET);
diff --git a/include/vulkan.h b/include/vulkan.h
index 5f9a8b9..6bc464e 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -139,12 +139,11 @@
 
 typedef enum {
     VK_SUCCESS = 0,
-    VK_UNSUPPORTED = 1,
-    VK_NOT_READY = 2,
-    VK_TIMEOUT = 3,
-    VK_EVENT_SET = 4,
-    VK_EVENT_RESET = 5,
-    VK_INCOMPLETE = 6,
+    VK_NOT_READY = 1,
+    VK_TIMEOUT = 2,
+    VK_EVENT_SET = 3,
+    VK_EVENT_RESET = 4,
+    VK_INCOMPLETE = 5,
     VK_ERROR_OUT_OF_HOST_MEMORY = -1,
     VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
     VK_ERROR_INITIALIZATION_FAILED = -3,
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index 8ea75ff..b42c013 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -250,11 +250,6 @@
             return "VK_EVENT_RESET";
             break;
         }
-        case VK_UNSUPPORTED:
-        {
-            return "VK_UNSUPPORTED";
-            break;
-        }
         case VK_SUCCESS:
         {
             return "VK_SUCCESS";
diff --git a/layers/screenshot.cpp b/layers/screenshot.cpp
index ee39d0b..e9ec3eb 100644
--- a/layers/screenshot.cpp
+++ b/layers/screenshot.cpp
@@ -96,7 +96,7 @@
 // Flag indicating we have queried _VK_SCREENSHOT env var
 static bool screenshotEnvQueried = false;
 
-static VkResult memory_type_from_properties(
+static bool memory_type_from_properties(
     VkPhysicalDeviceMemoryProperties *memory_properties,
     uint32_t typeBits,
     VkFlags requirements_mask,
@@ -108,13 +108,13 @@
              // Type is available, does it match user properties?
              if ((memory_properties->memoryTypes[i].propertyFlags & requirements_mask) == requirements_mask) {
                  *typeIndex = i;
-                 return VK_SUCCESS;
+                 return true;
              }
          }
          typeBits >>= 1;
      }
      // No memory types matched, return failure
-     return VK_UNSUPPORTED;
+     return false;
 }
 
 static void init_screenshot()
@@ -135,6 +135,7 @@
 {
     VkImage image2;
     VkResult err;
+    bool pass;
     int x, y;
     const char *ptr;
     VkDeviceMemory mem2;
@@ -216,11 +217,11 @@
     pInstanceTable = instance_dispatch_table(instance);
     pInstanceTable->GetPhysicalDeviceMemoryProperties(physicalDevice, &memory_properties);
 
-    err = memory_type_from_properties(&memory_properties,
+    pass = memory_type_from_properties(&memory_properties,
                                 memRequirements.memoryTypeBits,
                                 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
                                 &memAllocInfo.memoryTypeIndex);
-	assert(!err);
+    assert(pass);
 
     err = pTableDevice->AllocMemory(device, &memAllocInfo, &mem2);
     assert(!err);
diff --git a/tests/image_tests.cpp b/tests/image_tests.cpp
index 885a0b6..93e3ad5 100644
--- a/tests/image_tests.cpp
+++ b/tests/image_tests.cpp
@@ -125,6 +125,7 @@
 void VkImageTest::CreateImage(uint32_t w, uint32_t h)
 {
     VkResult err;
+    bool pass;
     uint32_t mipCount;
     VkFormat fmt;
     VkFormatProperties image_fmt;
@@ -226,8 +227,8 @@
     mem_info.allocationSize = mem_req.size;
     mem_info.memoryTypeIndex = 0;
 
-    err = m_device->phy().set_memory_type(mem_req.memoryTypeBits, &mem_info, 0);
-    ASSERT_VK_SUCCESS(err);
+    pass = m_device->phy().set_memory_type(mem_req.memoryTypeBits, &mem_info, 0);
+    ASSERT_TRUE(pass);
 
     /* allocate memory */
     err = vkAllocMemory(device(), &mem_info, &m_image_mem);
diff --git a/tests/init.cpp b/tests/init.cpp
index 031f759..4b7cc95 100644
--- a/tests/init.cpp
+++ b/tests/init.cpp
@@ -141,6 +141,7 @@
 
 TEST_F(VkTest, AllocMemory) {
     VkResult err;
+    bool pass;
     VkMemoryAllocInfo alloc_info = {};
     VkDeviceMemory gpu_mem;
     uint8_t *pData;
@@ -152,8 +153,8 @@
     VkPhysicalDeviceMemoryProperties mem_props;
     vkGetPhysicalDeviceMemoryProperties(m_device->phy().handle(), &mem_props);
 
-    err = m_device->phy().set_memory_type(((1 << mem_props.memoryTypeCount) - 1), &alloc_info, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT);
-    ASSERT_VK_SUCCESS(err);
+    pass = m_device->phy().set_memory_type(((1 << mem_props.memoryTypeCount) - 1), &alloc_info, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT);
+    ASSERT_TRUE(pass);
 
     err = vkAllocMemory(device(), &alloc_info, &gpu_mem);
     ASSERT_VK_SUCCESS(err);
@@ -284,6 +285,7 @@
 void VkTest::CreateImageTest()
 {
     VkResult err;
+    bool pass;
     VkImage image;
     uint32_t w, h, mipCount;
     VkFormat fmt;
@@ -420,8 +422,8 @@
         mem_info.allocationSize = mem_req.size;
         mem_info.memoryTypeIndex = 0;
 
-        err = m_device->phy().set_memory_type(mem_req.memoryTypeBits, &mem_info, 0);
-        ASSERT_VK_SUCCESS(err);
+        pass = m_device->phy().set_memory_type(mem_req.memoryTypeBits, &mem_info, 0);
+        ASSERT_TRUE(pass);
 
         err = vkAllocMemory(device(), &mem_info, &image_mem);
         ASSERT_VK_SUCCESS(err);
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index bdf3871..3ab1dc0 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -495,6 +495,7 @@
     VkFlags         msgFlags;
     std::string     msgString;
     VkResult        err;
+    bool            pass;
 
     ASSERT_NO_FATAL_FAILURE(InitState());
     m_errorMonitor->ClearState();
@@ -539,8 +540,8 @@
 
     mem_alloc.allocationSize = mem_reqs.size;
 
-    err = m_device->phy().set_memory_type(mem_reqs.memoryTypeBits, &mem_alloc, 0, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT);
-    if(err != VK_SUCCESS) { // If we can't find any unmappable memory this test doesn't make sense
+    pass = m_device->phy().set_memory_type(mem_reqs.memoryTypeBits, &mem_alloc, 0, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT);
+    if(!pass) { // If we can't find any unmappable memory this test doesn't make sense
         vkDestroyImage(m_device->device(), image);
         return;
     }
@@ -642,6 +643,7 @@
     VkFlags         msgFlags;
     std::string     msgString;
     VkResult        err;
+    bool            pass;
 
     ASSERT_NO_FATAL_FAILURE(InitState());
     m_errorMonitor->ClearState();
@@ -687,8 +689,8 @@
                           &mem_reqs);
 
     mem_alloc.allocationSize = mem_reqs.size;
-    err = m_device->phy().set_memory_type(mem_reqs.memoryTypeBits, &mem_alloc, 0);
-    ASSERT_VK_SUCCESS(err);
+    pass = m_device->phy().set_memory_type(mem_reqs.memoryTypeBits, &mem_alloc, 0);
+    ASSERT_TRUE(pass);
 
     // allocate 2 memory objects
     err = vkAllocMemory(m_device->device(), &mem_alloc, &mem1);
@@ -910,6 +912,7 @@
     VkFlags         msgFlags;
     std::string     msgString;
     VkResult        err;
+    bool            pass;
 
     ASSERT_NO_FATAL_FAILURE(InitState());
     m_errorMonitor->ClearState();
@@ -953,8 +956,8 @@
 
     mem_alloc.allocationSize = mem_reqs.size;
 
-    err = m_device->phy().set_memory_type(mem_reqs.memoryTypeBits, &mem_alloc, 0);
-    ASSERT_VK_SUCCESS(err);
+    pass = m_device->phy().set_memory_type(mem_reqs.memoryTypeBits, &mem_alloc, 0);
+    ASSERT_TRUE(pass);
 
     // allocate memory
     err = vkAllocMemory(m_device->device(), &mem_alloc, &mem);
@@ -982,6 +985,7 @@
     VkFlags         msgFlags;
     std::string     msgString;
     VkResult        err;
+    bool            pass;
 
     ASSERT_NO_FATAL_FAILURE(InitState());
     m_errorMonitor->ClearState();
@@ -1024,8 +1028,8 @@
                           &mem_reqs);
 
     mem_alloc.allocationSize = mem_reqs.size;
-    err = m_device->phy().set_memory_type(mem_reqs.memoryTypeBits, &mem_alloc, 0);
-    ASSERT_VK_SUCCESS(err);
+    pass = m_device->phy().set_memory_type(mem_reqs.memoryTypeBits, &mem_alloc, 0);
+    ASSERT_TRUE(pass);
 
     // Allocate memory
     err = vkAllocMemory(m_device->device(), &mem_alloc, &mem);
@@ -4358,6 +4362,7 @@
     VkFlags         msgFlags;
     std::string     msgString;
     VkResult        err;
+    bool            pass;
 
     ASSERT_NO_FATAL_FAILURE(InitState());
     m_errorMonitor->ClearState();
@@ -4402,14 +4407,14 @@
 
     vkGetImageMemoryRequirements(m_device->device(), srcImage, &memReqs);
     memAlloc.allocationSize = memReqs.size;
-    err = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
-    ASSERT_VK_SUCCESS(err);
+    pass = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
+    ASSERT_TRUE(pass);
     err = vkAllocMemory(m_device->device(), &memAlloc, &srcMem);
     ASSERT_VK_SUCCESS(err);
 
     vkGetImageMemoryRequirements(m_device->device(), destImage, &memReqs);
     memAlloc.allocationSize = memReqs.size;
-    err = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
+    pass = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
     ASSERT_VK_SUCCESS(err);
     err = vkAllocMemory(m_device->device(), &memAlloc, &destMem);
     ASSERT_VK_SUCCESS(err);
@@ -4463,6 +4468,7 @@
     VkFlags         msgFlags;
     std::string     msgString;
     VkResult        err;
+    bool            pass;
 
     ASSERT_NO_FATAL_FAILURE(InitState());
     m_errorMonitor->ClearState();
@@ -4507,15 +4513,15 @@
 
     vkGetImageMemoryRequirements(m_device->device(), srcImage, &memReqs);
     memAlloc.allocationSize = memReqs.size;
-    err = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
-    ASSERT_VK_SUCCESS(err);
+    pass = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
+    ASSERT_TRUE(pass);
     err = vkAllocMemory(m_device->device(), &memAlloc, &srcMem);
     ASSERT_VK_SUCCESS(err);
 
     vkGetImageMemoryRequirements(m_device->device(), destImage, &memReqs);
     memAlloc.allocationSize = memReqs.size;
-    err = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
-    ASSERT_VK_SUCCESS(err);
+    pass = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
+    ASSERT_TRUE(pass);
     err = vkAllocMemory(m_device->device(), &memAlloc, &destMem);
     ASSERT_VK_SUCCESS(err);
 
@@ -4563,6 +4569,7 @@
     VkFlags         msgFlags;
     std::string     msgString;
     VkResult        err;
+    bool            pass;
 
     ASSERT_NO_FATAL_FAILURE(InitState());
     m_errorMonitor->ClearState();
@@ -4607,15 +4614,15 @@
 
     vkGetImageMemoryRequirements(m_device->device(), srcImage, &memReqs);
     memAlloc.allocationSize = memReqs.size;
-    err = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
-    ASSERT_VK_SUCCESS(err);
+    pass = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
+    ASSERT_TRUE(pass);
     err = vkAllocMemory(m_device->device(), &memAlloc, &srcMem);
     ASSERT_VK_SUCCESS(err);
 
     vkGetImageMemoryRequirements(m_device->device(), destImage, &memReqs);
     memAlloc.allocationSize = memReqs.size;
-    err = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
-    ASSERT_VK_SUCCESS(err);
+    pass = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
+    ASSERT_TRUE(pass);
     err = vkAllocMemory(m_device->device(), &memAlloc, &destMem);
     ASSERT_VK_SUCCESS(err);
 
@@ -4666,6 +4673,7 @@
     VkFlags         msgFlags;
     std::string     msgString;
     VkResult        err;
+    bool            pass;
 
     ASSERT_NO_FATAL_FAILURE(InitState());
     m_errorMonitor->ClearState();
@@ -4710,15 +4718,15 @@
 
     vkGetImageMemoryRequirements(m_device->device(), srcImage, &memReqs);
     memAlloc.allocationSize = memReqs.size;
-    err = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
-    ASSERT_VK_SUCCESS(err);
+    pass = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
+    ASSERT_TRUE(pass);
     err = vkAllocMemory(m_device->device(), &memAlloc, &srcMem);
     ASSERT_VK_SUCCESS(err);
 
     vkGetImageMemoryRequirements(m_device->device(), destImage, &memReqs);
     memAlloc.allocationSize = memReqs.size;
-    err = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
-    ASSERT_VK_SUCCESS(err);
+    pass = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
+    ASSERT_TRUE(pass);
     err = vkAllocMemory(m_device->device(), &memAlloc, &destMem);
     ASSERT_VK_SUCCESS(err);
 
@@ -4769,6 +4777,7 @@
     VkFlags         msgFlags;
     std::string     msgString;
     VkResult        err;
+    bool            pass;
 
     ASSERT_NO_FATAL_FAILURE(InitState());
     m_errorMonitor->ClearState();
@@ -4814,15 +4823,15 @@
 
     vkGetImageMemoryRequirements(m_device->device(), srcImage, &memReqs);
     memAlloc.allocationSize = memReqs.size;
-    err = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
-    ASSERT_VK_SUCCESS(err);
+    pass = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
+    ASSERT_TRUE(pass);
     err = vkAllocMemory(m_device->device(), &memAlloc, &srcMem);
     ASSERT_VK_SUCCESS(err);
 
     vkGetImageMemoryRequirements(m_device->device(), destImage, &memReqs);
     memAlloc.allocationSize = memReqs.size;
-    err = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
-    ASSERT_VK_SUCCESS(err);
+    pass = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
+    ASSERT_TRUE(pass);
     err = vkAllocMemory(m_device->device(), &memAlloc, &destMem);
     ASSERT_VK_SUCCESS(err);
 
@@ -4873,6 +4882,7 @@
     VkFlags         msgFlags;
     std::string     msgString;
     VkResult        err;
+    bool            pass;
 
     ASSERT_NO_FATAL_FAILURE(InitState());
     m_errorMonitor->ClearState();
@@ -4918,15 +4928,15 @@
 
     vkGetImageMemoryRequirements(m_device->device(), srcImage, &memReqs);
     memAlloc.allocationSize = memReqs.size;
-    err = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
-    ASSERT_VK_SUCCESS(err);
+    pass = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
+    ASSERT_TRUE(pass);
     err = vkAllocMemory(m_device->device(), &memAlloc, &srcMem);
     ASSERT_VK_SUCCESS(err);
 
     vkGetImageMemoryRequirements(m_device->device(), destImage, &memReqs);
     memAlloc.allocationSize = memReqs.size;
-    err = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
-    ASSERT_VK_SUCCESS(err);
+    pass = m_device->phy().set_memory_type(memReqs.memoryTypeBits, &memAlloc, 0);
+    ASSERT_TRUE(pass);
     err = vkAllocMemory(m_device->device(), &memAlloc, &destMem);
     ASSERT_VK_SUCCESS(err);
 
diff --git a/tests/test_common.h b/tests/test_common.h
index 5827417..5c3a3f0 100644
--- a/tests/test_common.h
+++ b/tests/test_common.h
@@ -35,7 +35,6 @@
     switch (err) {
 #define STR(r) case r: return #r
     STR(VK_SUCCESS);
-    STR(VK_UNSUPPORTED);
     STR(VK_NOT_READY);
     STR(VK_TIMEOUT);
     STR(VK_EVENT_SET);
diff --git a/tests/vktestbinding.cpp b/tests/vktestbinding.cpp
index e9328d6..34f53c1 100644
--- a/tests/vktestbinding.cpp
+++ b/tests/vktestbinding.cpp
@@ -207,7 +207,7 @@
     return exts;
 }
 
-VkResult PhysicalDevice::set_memory_type(const uint32_t type_bits, VkMemoryAllocInfo *info, const VkFlags properties, const VkFlags forbid) const
+bool PhysicalDevice::set_memory_type(const uint32_t type_bits, VkMemoryAllocInfo *info, const VkFlags properties, const VkFlags forbid) const
 {
      uint32_t type_mask = type_bits;
      // Search memtypes to find first index with those properties
@@ -217,13 +217,13 @@
              if ((memory_properties_.memoryTypes[i].propertyFlags & properties) == properties &&
                  (memory_properties_.memoryTypes[i].propertyFlags & forbid) == 0) {
                  info->memoryTypeIndex = i;
-                 return VK_SUCCESS;
+                 return true;
              }
          }
          type_mask >>= 1;
      }
      // No memory types matched, return failure
-     return VK_UNSUPPORTED;
+     return false;
 }
 
 /*
diff --git a/tests/vktestbinding.h b/tests/vktestbinding.h
index 6ca8e26..aacb903 100644
--- a/tests/vktestbinding.h
+++ b/tests/vktestbinding.h
@@ -124,7 +124,7 @@
     VkPhysicalDeviceMemoryProperties memory_properties() const;
     std::vector<VkQueueFamilyProperties> queue_properties() const;
 
-    VkResult set_memory_type(const uint32_t type_bits, VkMemoryAllocInfo *info, const VkMemoryPropertyFlags properties,
+    bool set_memory_type(const uint32_t type_bits, VkMemoryAllocInfo *info, const VkMemoryPropertyFlags properties,
                              const VkMemoryPropertyFlags forbid = 0) const;
 
     // vkEnumerateDeviceExtensionProperties()