diff --git a/include/vulkan.h b/include/vulkan.h
index f8a7e86..010123d 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -41,7 +41,7 @@
     ((major << 22) | (minor << 12) | patch)
 
 // Vulkan API version supported by this file
-#define VK_API_VERSION VK_MAKE_VERSION(0, 153, 0)
+#define VK_API_VERSION VK_MAKE_VERSION(0, 154, 0)
 
 
 #if defined(__cplusplus) && (_MSC_VER >= 1800 || __cplusplus >= 201103L)
@@ -1566,6 +1566,7 @@
     VkShaderModule                              module;
     const char*                                 pName;
     VkShaderCreateFlags                         flags;
+    VkShaderStage                               stage;
 } VkShaderCreateInfo;
 
 typedef struct {
diff --git a/tests/init.cpp b/tests/init.cpp
index 21c50d9..b6f9294 100644
--- a/tests/init.cpp
+++ b/tests/init.cpp
@@ -73,7 +73,7 @@
     void CreateCommandBufferTest();
     void CreatePipelineTest();
     void CreateShaderTest();
-    void CreateShader(VkShader *pshader);
+    void CreateShader(VkShader *pshader, VkShaderStage stage);
 
     VkDevice device() {return m_device->handle();}
 
@@ -528,7 +528,7 @@
     CreateCommandBufferTest();
 }
 
-void VkTest::CreateShader(VkShader *pshader)
+void VkTest::CreateShader(VkShader *pshader, VkShaderStage stage)
 {
     void *code;
     uint32_t codeSize;
@@ -564,6 +564,7 @@
     createInfo.module = module;
     createInfo.pName = "main";
     createInfo.flags = 0;
+    createInfo.stage = stage;
     err = vkCreateShader(device(), &createInfo, &shader);
     ASSERT_VK_SUCCESS(err);
 
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index 5539541..6962fa0 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -1149,6 +1149,7 @@
     createInfo.module = module->handle();
     createInfo.pName = "main";
     createInfo.flags = 0;
+    createInfo.stage = stage;
 
     err = init_try(*m_device, createInfo);
     assert(VK_SUCCESS == err);
diff --git a/tests/vktestbinding.h b/tests/vktestbinding.h
index ea0bb06..d1bf56e 100644
--- a/tests/vktestbinding.h
+++ b/tests/vktestbinding.h
@@ -476,7 +476,7 @@
     void init(const Device &dev, const VkShaderCreateInfo &info);
     VkResult init_try(const Device &dev, const VkShaderCreateInfo &info);
 
-    static VkShaderCreateInfo create_info(VkShaderModule module, const char *pName, VkFlags flags);
+    static VkShaderCreateInfo create_info(VkShaderModule module, const char *pName, VkFlags flags, VkShaderStage stage);
 };
 
 class Pipeline : public internal::NonDispHandle<VkPipeline> {
@@ -801,13 +801,14 @@
     return info;
 }
 
-inline VkShaderCreateInfo Shader::create_info(VkShaderModule module, const char *pName, VkFlags flags)
+inline VkShaderCreateInfo Shader::create_info(VkShaderModule module, const char *pName, VkFlags flags, VkShaderStage stage)
 {
     VkShaderCreateInfo info = {};
     info.sType = VK_STRUCTURE_TYPE_SHADER_CREATE_INFO;
     info.module = module;
     info.pName = pName;
     info.flags = flags;
+    info.stage = stage;
     return info;
 }
 
