diff --git a/include/vulkan.h b/include/vulkan.h
index 2ed6096..f5b52d5 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -33,7 +33,7 @@
 #include "vk_platform.h"
 
 // Vulkan API version supported by this file
-#define VK_API_VERSION VK_MAKE_VERSION(0, 115, 0)
+#define VK_API_VERSION VK_MAKE_VERSION(0, 116, 0)
 
 #ifdef __cplusplus
 extern "C"
@@ -145,9 +145,8 @@
     VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL        = 0x00000003,   // Optimal layout when image is only used for depth/stencil attachment read/write
     VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL         = 0x00000004,   // Optimal layout when image is used for read only depth/stencil attachment and shader access
     VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL                = 0x00000005,   // Optimal layout when image is used for read only shader access
-    VK_IMAGE_LAYOUT_CLEAR_OPTIMAL                           = 0x00000006,   // Optimal layout when image is used only for clear operations
-    VK_IMAGE_LAYOUT_TRANSFER_SOURCE_OPTIMAL                 = 0x00000007,   // Optimal layout when image is used only as source of transfer operations
-    VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_OPTIMAL            = 0x00000008,   // Optimal layout when image is used only as destination of transfer operations
+    VK_IMAGE_LAYOUT_TRANSFER_SOURCE_OPTIMAL                 = 0x00000006,   // Optimal layout when image is used only as source of transfer operations
+    VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_OPTIMAL            = 0x00000007,   // Optimal layout when image is used only as destination of transfer operations
 
     VK_ENUM_RANGE(IMAGE_LAYOUT, UNDEFINED, TRANSFER_DESTINATION_OPTIMAL)
 } VkImageLayout;
diff --git a/tests/blit_tests.cpp b/tests/blit_tests.cpp
index 0b04bde..6120702 100644
--- a/tests/blit_tests.cpp
+++ b/tests/blit_tests.cpp
@@ -1279,11 +1279,11 @@
              it != ranges.end(); it++) {
             to_clear.push_back(img.image_memory_barrier(all_cache_outputs, all_cache_inputs,
                     VK_IMAGE_LAYOUT_GENERAL,
-                    VK_IMAGE_LAYOUT_CLEAR_OPTIMAL,
+                    VK_IMAGE_LAYOUT_GENERAL,
                     *it));
             p_to_clear.push_back(&to_clear.back());
             to_xfer.push_back(img.image_memory_barrier(all_cache_outputs, all_cache_inputs,
-                    VK_IMAGE_LAYOUT_CLEAR_OPTIMAL,
+                    VK_IMAGE_LAYOUT_GENERAL,
                     VK_IMAGE_LAYOUT_TRANSFER_SOURCE_OPTIMAL, *it));
             p_to_xfer.push_back(&to_xfer.back());
         }
@@ -1295,7 +1295,7 @@
         vkCmdPipelineBarrier(cmd_.obj(), src_stages, dest_stages, false, 1, (const void **)&p_to_clear[0]);
 
         vkCmdClearColorImage(cmd_.obj(),
-                              img.obj(), VK_IMAGE_LAYOUT_CLEAR_OPTIMAL,
+                              img.obj(), VK_IMAGE_LAYOUT_GENERAL,
                               &clear_color, ranges.size(), &ranges[0]);
 
         vkCmdPipelineBarrier(cmd_.obj(), src_stages, dest_stages, false, 1, (const void **)&p_to_xfer[0]);
@@ -1523,11 +1523,11 @@
              it != ranges.end(); it++) {
             to_clear.push_back(img.image_memory_barrier(all_cache_outputs, all_cache_inputs,
                     VK_IMAGE_LAYOUT_GENERAL,
-                    VK_IMAGE_LAYOUT_CLEAR_OPTIMAL,
+                    VK_IMAGE_LAYOUT_GENERAL,
                     *it));
             p_to_clear.push_back(&to_clear.back());
             to_xfer.push_back(img.image_memory_barrier(all_cache_outputs, all_cache_inputs,
-                    VK_IMAGE_LAYOUT_CLEAR_OPTIMAL,
+                    VK_IMAGE_LAYOUT_GENERAL,
                     VK_IMAGE_LAYOUT_TRANSFER_SOURCE_OPTIMAL, *it));
             p_to_xfer.push_back(&to_xfer.back());
         }
@@ -1539,7 +1539,7 @@
         vkCmdPipelineBarrier(cmd_.obj(), src_stages, dest_stages, false, to_clear.size(), (const void **)&p_to_clear[0]);
 
         vkCmdClearDepthStencil(cmd_.obj(),
-                                img.obj(), VK_IMAGE_LAYOUT_CLEAR_OPTIMAL,
+                                img.obj(), VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
                                 depth, stencil,
                                 ranges.size(), &ranges[0]);
 
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index b0c6657..a4402dd 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -593,7 +593,6 @@
         input_mask = VK_MEMORY_INPUT_SHADER_READ_BIT | VK_MEMORY_INPUT_TRANSFER_BIT;
         break;
 
-    case VK_IMAGE_LAYOUT_CLEAR_OPTIMAL:
     default:
         output_mask =  all_cache_outputs;
         input_mask = all_cache_inputs;
@@ -1308,7 +1307,7 @@
     memory_barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
     memory_barrier.outputMask = output_mask;
     memory_barrier.inputMask = input_mask;
-    memory_barrier.newLayout = VK_IMAGE_LAYOUT_CLEAR_OPTIMAL;
+    memory_barrier.newLayout = VK_IMAGE_LAYOUT_GENERAL;
     memory_barrier.subresourceRange = srRange;
     VkImageMemoryBarrier *pmemory_barrier = &memory_barrier;
 
@@ -1322,7 +1321,7 @@
         m_renderTargets[i]->layout(memory_barrier.newLayout);
 
         vkCmdClearColorImage(obj(),
-               m_renderTargets[i]->image(), VK_IMAGE_LAYOUT_CLEAR_OPTIMAL,
+               m_renderTargets[i]->image(), VK_IMAGE_LAYOUT_GENERAL,
                &clear_color, 1, &srRange );
 
     }
@@ -1339,20 +1338,20 @@
         // prepare the depth buffer for clear
 
         memory_barrier.oldLayout = depthStencilObj->BindInfo()->layout;
-        memory_barrier.newLayout = VK_IMAGE_LAYOUT_CLEAR_OPTIMAL;
+        memory_barrier.newLayout = VK_IMAGE_LAYOUT_GENERAL;
         memory_barrier.image = depthStencilObj->obj();
         memory_barrier.subresourceRange = dsRange;
 
         vkCmdPipelineBarrier( obj(), src_stages, dest_stages, false, 1, (const void **)&pmemory_barrier);
 
         vkCmdClearDepthStencil(obj(),
-                                depthStencilObj->obj(), VK_IMAGE_LAYOUT_CLEAR_OPTIMAL,
+                                depthStencilObj->obj(), VK_IMAGE_LAYOUT_GENERAL,
                                 depth_clear_color,  stencil_clear_color,
                                 1, &dsRange);
 
         // prepare depth buffer for rendering
         memory_barrier.image = depthStencilObj->obj();
-        memory_barrier.oldLayout = VK_IMAGE_LAYOUT_CLEAR_OPTIMAL;
+        memory_barrier.oldLayout = VK_IMAGE_LAYOUT_GENERAL;
         memory_barrier.newLayout = depthStencilObj->BindInfo()->layout;
         memory_barrier.subresourceRange = dsRange;
         vkCmdPipelineBarrier( obj(), src_stages, dest_stages, false, 1, (const void **)&pmemory_barrier);
