vulkan: Update from version 0.198.0 to 0.200.0

Change-Id: I071a9143332dd8b8c2ef899105073ed8791fc5db
(cherry picked from commit 9568691bea351152b340c0cbb3d31e5246ac469b)
diff --git a/vulkan/api/vulkan.api b/vulkan/api/vulkan.api
index ab887fa..0296b0f 100644
--- a/vulkan/api/vulkan.api
+++ b/vulkan/api/vulkan.api
@@ -27,7 +27,7 @@
 
 // API version (major.minor.patch)
 define VERSION_MAJOR 0
-define VERSION_MINOR 198
+define VERSION_MINOR 200
 define VERSION_PATCH 0
 
 // API limits
@@ -45,45 +45,45 @@
 // API keyword, but needs special handling by some templates
 define NULL_HANDLE 0
 
-@extension("VK_EXT_KHR_surface") define VK_EXT_KHR_SURFACE_REVISION                     20
-@extension("VK_EXT_KHR_surface") define VK_EXT_KHR_SURFACE_EXTENSION_NUMBER             1
-@extension("VK_EXT_KHR_surface") define VK_EXT_KHR_SURFACE_EXTENSION_NAME               "VK_EXT_KHR_surface"
+@extension("VK_KHR_surface") define VK_KHR_SURFACE_REVISION                     22
+@extension("VK_KHR_surface") define VK_KHR_SURFACE_EXTENSION_NUMBER             1
+@extension("VK_KHR_surface") define VK_KHR_SURFACE_EXTENSION_NAME               "VK_KHR_surface"
 
-@extension("VK_EXT_KHR_swapchain") define VK_EXT_KHR_SWAPCHAIN_REVISION                 62
-@extension("VK_EXT_KHR_swapchain") define VK_EXT_KHR_SWAPCHAIN_EXTENSION_NUMBER         2
-@extension("VK_EXT_KHR_swapchain") define VK_EXT_KHR_SWAPCHAIN_EXTENSION_NAME           "VK_EXT_KHR_swapchain"
+@extension("VK_KHR_swapchain") define VK_KHR_SWAPCHAIN_REVISION                 64
+@extension("VK_KHR_swapchain") define VK_KHR_SWAPCHAIN_EXTENSION_NUMBER         2
+@extension("VK_KHR_swapchain") define VK_KHR_SWAPCHAIN_EXTENSION_NAME           "VK_KHR_swapchain"
 
-@extension("VK_EXT_KHR_display") define VK_EXT_KHR_DISPLAY_REVISION                     17
-@extension("VK_EXT_KHR_display") define VK_EXT_KHR_DISPLAY_EXTENSION_NUMBER             3
-@extension("VK_EXT_KHR_display") define VK_EXT_KHR_DISPLAY_EXTENSION_NAME               "VK_EXT_KHR_display"
+@extension("VK_KHR_display") define VK_KHR_DISPLAY_REVISION                     18
+@extension("VK_KHR_display") define VK_KHR_DISPLAY_EXTENSION_NUMBER             3
+@extension("VK_KHR_display") define VK_KHR_DISPLAY_EXTENSION_NAME               "VK_KHR_display"
 
-@extension("VK_EXT_KHR_display_swapchain") define VK_EXT_KHR_DISPLAY_REVISION           6
-@extension("VK_EXT_KHR_display_swapchain") define VK_EXT_KHR_DISPLAY_EXTENSION_NUMBER   4
-@extension("VK_EXT_KHR_display_swapchain") define VK_EXT_KHR_DISPLAY_EXTENSION_NAME     "VK_EXT_KHR_display_swapchain"
+@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_REVISION           7
+@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_EXTENSION_NUMBER   4
+@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display_swapchain"
 
-@extension("VK_EXT_KHR_xlib_surface") define VK_EXT_KHR_XLIB_SURFACE_REVISION           3
-@extension("VK_EXT_KHR_xlib_surface") define VK_EXT_KHR_XLIB_SURFACE_NUMBER             5
-@extension("VK_EXT_KHR_xlib_surface") define VK_EXT_KHR_XLIB_SURFACE_NAME               "VK_EXT_KHR_xlib_surface"
+@extension("VK_KHR_xlib_surface") define VK_KHR_XLIB_SURFACE_REVISION           4
+@extension("VK_KHR_xlib_surface") define VK_KHR_XLIB_SURFACE_NUMBER             5
+@extension("VK_KHR_xlib_surface") define VK_KHR_XLIB_SURFACE_NAME               "VK_KHR_xlib_surface"
 
-@extension("VK_EXT_KHR_xcb_surface") define VK_EXT_KHR_XCB_SURFACE_REVISION             3
-@extension("VK_EXT_KHR_xcb_surface") define VK_EXT_KHR_XCB_SURFACE_NUMBER               6
-@extension("VK_EXT_KHR_xcb_surface") define VK_EXT_KHR_XCB_SURFACE_NAME                 "VK_EXT_KHR_xcb_surface"
+@extension("VK_KHR_xcb_surface") define VK_KHR_XCB_SURFACE_REVISION             4
+@extension("VK_KHR_xcb_surface") define VK_KHR_XCB_SURFACE_NUMBER               6
+@extension("VK_KHR_xcb_surface") define VK_KHR_XCB_SURFACE_NAME                 "VK_KHR_xcb_surface"
 
-@extension("VK_EXT_KHR_wayland_surface") define VK_EXT_KHR_WAYLAND_SURFACE_REVISION     2
-@extension("VK_EXT_KHR_wayland_surface") define VK_EXT_KHR_WAYLAND_SURFACE_NUMBER       7
-@extension("VK_EXT_KHR_wayland_surface") define VK_EXT_KHR_WAYLAND_SURFACE_NAME         "VK_EXT_KHR_wayland_surface"
+@extension("VK_KHR_wayland_surface") define VK_KHR_WAYLAND_SURFACE_REVISION     3
+@extension("VK_KHR_wayland_surface") define VK_KHR_WAYLAND_SURFACE_NUMBER       7
+@extension("VK_KHR_wayland_surface") define VK_KHR_WAYLAND_SURFACE_NAME         "VK_KHR_wayland_surface"
 
-@extension("VK_EXT_KHR_mir_surface") define VK_EXT_KHR_MIR_SURFACE_REVISION             2
-@extension("VK_EXT_KHR_mir_surface") define VK_EXT_KHR_MIR_SURFACE_NUMBER               8
-@extension("VK_EXT_KHR_mir_surface") define VK_EXT_KHR_MIR_SURFACE_NAME                 "VK_EXT_KHR_mir_surface"
+@extension("VK_KHR_mir_surface") define VK_KHR_MIR_SURFACE_REVISION             3
+@extension("VK_KHR_mir_surface") define VK_KHR_MIR_SURFACE_NUMBER               8
+@extension("VK_KHR_mir_surface") define VK_KHR_MIR_SURFACE_NAME                 "VK_KHR_mir_surface"
 
-@extension("VK_EXT_KHR_android_surface") define VK_EXT_KHR_ANDROID_SURFACE_REVISION     1
-@extension("VK_EXT_KHR_android_surface") define VK_EXT_KHR_ANDROID_SURFACE_NUMBER       8
-@extension("VK_EXT_KHR_android_surface") define VK_EXT_KHR_ANDROID_SURFACE_NAME         "VK_EXT_KHR_android_surface"
+@extension("VK_KHR_android_surface") define VK_KHR_ANDROID_SURFACE_REVISION     2
+@extension("VK_KHR_android_surface") define VK_KHR_ANDROID_SURFACE_NUMBER       8
+@extension("VK_KHR_android_surface") define VK_KHR_ANDROID_SURFACE_NAME         "VK_KHR_android_surface"
 
-@extension("VK_EXT_KHR_win32_surface") define VK_EXT_KHR_WIN32_SURFACE_REVISION         2
-@extension("VK_EXT_KHR_win32_surface") define VK_EXT_KHR_WIN32_SURFACE_NUMBER           9
-@extension("VK_EXT_KHR_win32_surface") define VK_EXT_KHR_WIN32_SURFACE_NAME             "VK_EXT_KHR_win32_surface"
+@extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_REVISION         3
+@extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_NUMBER           9
+@extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_NAME             "VK_KHR_win32_surface"
 
 
 /////////////
@@ -110,7 +110,6 @@
 @nonDispatchHandle type u64 VkImage
 @nonDispatchHandle type u64 VkImageView
 @nonDispatchHandle type u64 VkShaderModule
-@nonDispatchHandle type u64 VkShader
 @nonDispatchHandle type u64 VkPipeline
 @nonDispatchHandle type u64 VkPipelineLayout
 @nonDispatchHandle type u64 VkSampler
@@ -125,12 +124,12 @@
 @nonDispatchHandle type u64 VkRenderPass
 @nonDispatchHandle type u64 VkPipelineCache
 
-@extension("VK_EXT_KHR_surface")    @nonDispatchHandle type u64 VkSurfaceKHR
+@extension("VK_KHR_surface")    @nonDispatchHandle type u64 VkSurfaceKHR
 
-@extension("VK_EXT_KHR_swapchain")  @nonDispatchHandle type u64 VkSwapchainKHR
+@extension("VK_KHR_swapchain")  @nonDispatchHandle type u64 VkSwapchainKHR
 
-@extension("VK_EXT_KHR_display")    @nonDispatchHandle type u64 VkDisplayKHR
-@extension("VK_EXT_KHR_display")    @nonDispatchHandle type u64 VkDisplayModeKHR
+@extension("VK_KHR_display")    @nonDispatchHandle type u64 VkDisplayKHR
+@extension("VK_KHR_display")    @nonDispatchHandle type u64 VkDisplayModeKHR
 
 
 /////////////
@@ -148,7 +147,7 @@
     VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL                    = 0x00000007,   /// Optimal layout when image is used only as destination of transfer operations
     VK_IMAGE_LAYOUT_PREINITIALIZED                          = 0x00000008,   /// Initial layout used when the data is populated by the CPU
 
-    //@extension("VK_EXT_KHR_swapchain")
+    //@extension("VK_KHR_swapchain")
     VK_IMAGE_LAYOUT_PRESENT_SRC_KHR                         = 0xc0000802,
 }
 
@@ -359,7 +358,7 @@
 }
 
 enum VkSystemAllocationScope {
-    VK_SYSTEM_ALLOCATION_SCOPE_FUNCTION                     = 0x00000000,
+    VK_SYSTEM_ALLOCATION_SCOPE_COMMAND                      = 0x00000000,
     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT                       = 0x00000001,
     VK_SYSTEM_ALLOCATION_SCOPE_CACHE                        = 0x00000002,
     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE                       = 0x00000003,
@@ -580,47 +579,46 @@
     VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO                         = 14,
     VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO                    = 15,
     VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO                 = 16,
-    VK_STRUCTURE_TYPE_SHADER_CREATE_INFO                        = 17,
-    VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO                = 18,
-    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO         = 19,
-    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO   = 20,
-    VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 21,
-    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO   = 22,
-    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO       = 23,
-    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO  = 24,
-    VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO    = 25,
-    VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO  = 26,
-    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO    = 27,
-    VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO        = 28,
-    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO             = 29,
-    VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO              = 30,
-    VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO               = 31,
-    VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO                       = 32,
-    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO         = 33,
-    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO               = 34,
-    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO                 = 35,
-    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET                      = 36,
-    VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET                       = 37,
-    VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO                   = 38,
-    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO                   = 39,
-    VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO                  = 40,
-    VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOC_INFO                 = 41,
-    VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO                 = 42,
-    VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO                    = 43,
-    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER                     = 44,
-    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER                      = 45,
-    VK_STRUCTURE_TYPE_MEMORY_BARRIER                            = 46,
-    VK_STRUCTURE_TYPE_LAYER_INSTANCE_CREATE_INFO                = 47,
-    VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO                  = 48,
+    VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO                = 17,
+    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO         = 18,
+    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO   = 19,
+    VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
+    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO   = 21,
+    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO       = 22,
+    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO  = 23,
+    VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO    = 24,
+    VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO  = 25,
+    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO    = 26,
+    VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO        = 27,
+    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO             = 28,
+    VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO              = 29,
+    VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO               = 30,
+    VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO                       = 31,
+    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO         = 32,
+    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO               = 33,
+    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO                 = 34,
+    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET                      = 35,
+    VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET                       = 36,
+    VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO                   = 37,
+    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO                   = 38,
+    VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO                  = 39,
+    VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOC_INFO                 = 40,
+    VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO                 = 41,
+    VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO                    = 42,
+    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER                     = 43,
+    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER                      = 44,
+    VK_STRUCTURE_TYPE_MEMORY_BARRIER                            = 45,
+    VK_STRUCTURE_TYPE_LAYER_INSTANCE_CREATE_INFO                = 46,
+    VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO                  = 47,
 
-    //@extension("VK_EXT_KHR_swapchain")
+    //@extension("VK_KHR_swapchain")
     VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR                 = 0xc0000801,
 
-    //@extension("VK_EXT_KHR_display")
+    //@extension("VK_KHR_display")
     VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR              = 0xc0000c00,
     VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR           = 0xc0000c01,
 
-    //@extension("VK_EXT_KHR_display_swapchain")
+    //@extension("VK_KHR_display_swapchain")
     VK_STRUCTURE_TYPE_DISPLAY_SWAPCHAIN_CREATE_INFO_KHR         = 0xc0001000,
     VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR          = 0xc0001001,
 }
@@ -641,7 +639,7 @@
     VK_EVENT_RESET                                          = 0x00000004,
     VK_INCOMPLETE                                           = 0x00000005,
 
-    //@extension("VK_EXT_KHR_swapchain")
+    //@extension("VK_KHR_swapchain")
     VK_SUBOPTIMAL_KHR                                       = 0x40000403,
 
     // Error codes (negative values)
@@ -655,16 +653,16 @@
     VK_ERROR_FEATURE_NOT_PRESENT                            = 0xFFFFFFF8,
     VK_ERROR_INCOMPATIBLE_DRIVER                            = 0xFFFFFFF7,
 
-    //@extension("VK_EXT_KHR_surface")
+    //@extension("VK_KHR_surface")
     VK_ERROR_SURFACE_LOST_KHR                               = 0xC0000400,
 
-    //@extension("VK_EXT_KHR_swapchain")
+    //@extension("VK_KHR_swapchain")
     VK_ERROR_OUT_OF_DATE_KHR                                = 0xC0000804,
 
-    //@extension("VK_EXT_KHR_display_swapchain")
+    //@extension("VK_KHR_display_swapchain")
     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR                       = 0xC0001002,
 
-    //@extension("VK_EXT_KHR_android_surface")
+    //@extension("VK_KHR_android_surface")
     VK_ERROR_INVALID_ANDROID_WINDOW_KHR                     = 0xC002400,
     VK_ERROR_ANDROID_WINDOW_IN_USE_KHR                      = 0xC002401,
 }
@@ -681,7 +679,7 @@
     VK_DYNAMIC_STATE_STENCIL_REFERENCE                      = 0x00000008,
 }
 
-@extension("VK_EXT_KHR_surface")
+@extension("VK_KHR_surface")
 enum VkSurfaceTransformKHR {
     VK_SURFACE_TRANSFORM_NONE_KHR                           = 0x00000000,
     VK_SURFACE_TRANSFORM_ROT90_KHR                          = 0x00000001,
@@ -694,7 +692,7 @@
     VK_SURFACE_TRANSFORM_INHERIT_KHR                        = 0x00000008,
 }
 
-@extension("VK_EXT_KHR_swapchain")
+@extension("VK_KHR_swapchain")
 enum VkPresentModeKHR {
     VK_PRESENT_MODE_IMMEDIATE_KHR                           = 0x00000000,
     VK_PRESENT_MODE_MAILBOX_KHR                             = 0x00000001,
@@ -702,7 +700,7 @@
     VK_PRESENT_MODE_FIFO_RELAXED_KHR                        = 0x00000003,
 }
 
-@extension("VK_EXT_KHR_swapchain")
+@extension("VK_KHR_swapchain")
 enum VkColorSpaceKHR {
     VK_COLORSPACE_SRGB_NONLINEAR_KHR                        = 0x00000000,
 }
@@ -736,29 +734,26 @@
     VK_MEMORY_HEAP_DEVICE_LOCAL_BIT                         = 0x00000001,
 }
 
-/// Memory output flags passed to resource transition commands
-type VkFlags VkMemoryOutputFlags
-bitfield VkMemoryOutputFlagBits {
-    VK_MEMORY_OUTPUT_HOST_WRITE_BIT                         = 0x00000001,    /// Controls output coherency of host writes
-    VK_MEMORY_OUTPUT_SHADER_WRITE_BIT                       = 0x00000002,    /// Controls output coherency of generic shader writes
-    VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT                   = 0x00000004,    /// Controls output coherency of color attachment writes
-    VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT           = 0x00000008,    /// Controls output coherency of depth/stencil attachment writes
-    VK_MEMORY_OUTPUT_TRANSFER_BIT                           = 0x00000010,    /// Controls output coherency of transfer operations
-}
-
-/// Memory input flags passed to resource transition commands
-type VkFlags VkMemoryInputFlags
-bitfield VkMemoryInputFlagBits {
-    VK_MEMORY_INPUT_HOST_READ_BIT                           = 0x00000001,    /// Controls input coherency of host reads
-    VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT                    = 0x00000002,    /// Controls input coherency of indirect command reads
-    VK_MEMORY_INPUT_INDEX_FETCH_BIT                         = 0x00000004,    /// Controls input coherency of index fetches
-    VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT              = 0x00000008,    /// Controls input coherency of vertex attribute fetches
-    VK_MEMORY_INPUT_UNIFORM_READ_BIT                        = 0x00000010,    /// Controls input coherency of uniform buffer reads
-    VK_MEMORY_INPUT_SHADER_READ_BIT                         = 0x00000020,    /// Controls input coherency of generic shader reads
-    VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT                    = 0x00000040,    /// Controls input coherency of color attachment reads
-    VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT            = 0x00000080,    /// Controls input coherency of depth/stencil attachment reads
-    VK_MEMORY_INPUT_INPUT_ATTACHMENT_BIT                    = 0x00000100,    /// Controls input coherency of input attachment reads
-    VK_MEMORY_INPUT_TRANSFER_BIT                            = 0x00000200,    /// Controls input coherency of transfer operations
+/// Access flags
+type VkFlags VkAccessFlags
+bitfield VkAccessFlagBits {
+    VK_ACCESS_INDIRECT_COMMAND_READ_BIT                     = 0x00000001,
+    VK_ACCESS_INDEX_READ_BIT                                = 0x00000002,
+    VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT                     = 0x00000004,
+    VK_ACCESS_UNIFORM_READ_BIT                              = 0x00000008,
+    VK_ACCESS_INPUT_ATTACHMENT_READ_BIT                     = 0x00000010,
+    VK_ACCESS_SHADER_READ_BIT                               = 0x00000020,
+    VK_ACCESS_SHADER_WRITE_BIT                              = 0x00000040,
+    VK_ACCESS_COLOR_ATTACHMENT_READ_BIT                     = 0x00000080,
+    VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT                    = 0x00000100,
+    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT             = 0x00000200,
+    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT            = 0x00000400,
+    VK_ACCESS_TRANSFER_READ_BIT                             = 0x00000800,
+    VK_ACCESS_TRANSFER_WRITE_BIT                            = 0x00001000,
+    VK_ACCESS_HOST_READ_BIT                                 = 0x00002000,
+    VK_ACCESS_HOST_WRITE_BIT                                = 0x00004000,
+    VK_ACCESS_MEMORY_READ_BIT                               = 0x00008000,
+    VK_ACCESS_MEMORY_WRITE_BIT                              = 0x00010000,
 }
 
 /// Buffer usage flags
@@ -902,11 +897,6 @@
 //bitfield VkShaderModuleCreateFlagBits {
 //}
 
-/// Shader creation flags
-type VkFlags VkShaderCreateFlags
-//bitfield VkShaderCreateFlagBits {
-//}
-
 /// Event creation flags
 type VkFlags VkEventCreateFlags
 //bitfield VkEventCreateFlagBits {
@@ -1153,9 +1143,9 @@
     VK_CULL_MODE_FRONT_AND_BACK                             = 0x00000003,
 }
 
-@extension("VK_EXT_KHR_swapchain")
+@extension("VK_KHR_swapchain")
 type VkFlags VkSurfaceTransformFlagsKHR
-@extension("VK_EXT_KHR_swapchain")
+@extension("VK_KHR_swapchain")
 bitfield VkSurfaceTransformFlagBitsKHR {
     VK_SURFACE_TRANSFORM_NONE_BIT_KHR                       = 0x00000001,
     VK_SURFACE_TRANSFORM_ROT90_BIT_KHR                      = 0x00000002,
@@ -1168,9 +1158,9 @@
     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR                    = 0x00000100,
 }
 
-@extension("VK_EXT_KHR_swapchain")
+@extension("VK_KHR_swapchain")
 type VkFlags VkCompositeAlphaFlagsKHR
-@extension("VK_EXT_KHR_swapchain")
+@extension("VK_KHR_swapchain")
 bitfield VkCompositeAlphaFlagBitsKHR {
     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR                       = 0x00000001,
     VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR               = 0x00000002,
@@ -1178,9 +1168,9 @@
     VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR                      = 0x00000008,
 }
 
-@extension("VK_EXT_KHR_display")
+@extension("VK_KHR_display")
 type VkFlags VkDisplayPlaneAlphaFlagsKHR
-@extension("VK_EXT_KHR_display")
+@extension("VK_KHR_display")
 bitfield VkDisplayPlaneAlphaFlagBitsKHR {
     VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR                   = 0x00000001,
     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR                = 0x00000002,
@@ -1356,7 +1346,7 @@
 }
 
 class VkSparseImageFormatProperties {
-    VkImageAspectFlagBits                       aspect
+    VkImageAspectFlagBits                       aspectMask
     VkExtent3D                                  imageGranularity
     VkSparseImageFormatFlags                    flags
 }
@@ -1460,7 +1450,7 @@
 }
 
 class VkImageSubresource {
-    VkImageAspectFlagBits                       aspect
+    VkImageAspectFlagBits                       aspectMask
     u32                                         mipLevel
     u32                                         arrayLayer
 }
@@ -1476,15 +1466,15 @@
 class VkMemoryBarrier {
     VkStructureType                             sType                      /// Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
     const void*                                 pNext                      /// Pointer to next structure.
-    VkMemoryOutputFlags                         outputMask                 /// Outputs the barrier should sync
-    VkMemoryInputFlags                          inputMask                  /// Inputs the barrier should sync to
+    VkAccessFlags                               srcAccessMask
+    VkAccessFlags                               dstAccessMask
 }
 
 class VkBufferMemoryBarrier {
     VkStructureType                             sType                      /// Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
     const void*                                 pNext                      /// Pointer to next structure.
-    VkMemoryOutputFlags                         outputMask                 /// Outputs the barrier should sync
-    VkMemoryInputFlags                          inputMask                  /// Inputs the barrier should sync to
+    VkAccessFlags                               srcAccessMask
+    VkAccessFlags                               dstAccessMask
     u32                                         srcQueueFamilyIndex        /// Queue family to transition ownership from
     u32                                         dstQueueFamilyIndex        /// Queue family to transition ownership to
     VkBuffer                                    buffer                     /// Buffer to sync
@@ -1495,8 +1485,8 @@
 class VkImageMemoryBarrier {
     VkStructureType                             sType                      /// Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
     const void*                                 pNext                      /// Pointer to next structure.
-    VkMemoryOutputFlags                         outputMask                 /// Outputs the barrier should sync
-    VkMemoryInputFlags                          inputMask                  /// Inputs the barrier should sync to
+    VkAccessFlags                               srcAccessMask
+    VkAccessFlags                               dstAccessMask
     VkImageLayout                               oldLayout                  /// Current layout of the image
     VkImageLayout                               newLayout                  /// New layout to transition the image to
     u32                                         srcQueueFamilyIndex        /// Queue family to transition ownership from
@@ -1646,15 +1636,6 @@
     const u32*                                  pCode                  /// Binary code of size codeSize
 }
 
-class VkShaderCreateInfo {
-    VkStructureType                             sType              /// Must be VK_STRUCTURE_TYPE_SHADER_CREATE_INFO
-    const void*                                 pNext              /// Pointer to next structure
-    VkShaderCreateFlags                         flags              /// Reserved
-    VkShaderModule                              module             /// Module containing entry point
-    const char*                                 pName              /// Null-terminated entry point name
-    VkShaderStageFlagBits                       stage
-}
-
 class VkDescriptorSetLayoutBinding {
     VkDescriptorType                            descriptorType     /// Type of the descriptors in this binding
     u32                                         arraySize          /// Number of descriptors in this binding
@@ -1667,7 +1648,7 @@
     const void*                                 pNext              /// Pointer to next structure
     VkDescriptorSetLayoutCreateFlags            flags
     u32                                         bindingCount       /// Number of bindings in the descriptor set layout
-    const VkDescriptorSetLayoutBinding*         pBindings          /// Array of descriptor set layout bindings
+    const VkDescriptorSetLayoutBinding*         pBinding           /// Array of descriptor set layout bindings
 }
 
 class VkDescriptorPoolSize {
@@ -1709,7 +1690,9 @@
     VkStructureType                             sType              /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
     const void*                                 pNext              /// Pointer to next structure
     VkPipelineShaderStageCreateFlags            flags
-    VkShader                                    shader
+    VkShaderStageFlagBits                       stage
+    VkShaderModule                              module
+    const char*                                 pName
     const VkSpecializationInfo*                 pSpecializationInfo
 }
 
@@ -2015,8 +1998,8 @@
     u32                                         dstSubpass
     VkPipelineStageFlags                        srcStageMask
     VkPipelineStageFlags                        dstStageMask
-    VkMemoryOutputFlags                         outputMask
-    VkMemoryInputFlags                          inputMask
+    VkAccessFlags                               srcAccessMask
+    VkAccessFlags                               dstAccessMask
     VkDependencyFlags                           dependencyFlags
 }
 
@@ -2279,7 +2262,7 @@
     u32                                         z
 }
 
-@extension("VK_EXT_KHR_surface")
+@extension("VK_KHR_surface")
 class VkSurfaceCapabilitiesKHR {
     u32                                         minImageCount
     u32                                         maxImageCount
@@ -2293,13 +2276,13 @@
     VkImageUsageFlags                           supportedUsageFlags
 }
 
-@extension("VK_EXT_KHR_surface")
+@extension("VK_KHR_surface")
 class VkSurfaceFormatKHR {
     VkFormat                                    format
     VkColorSpaceKHR                             colorSpace
 }
 
-@extension("VK_EXT_KHR_swapchain")
+@extension("VK_KHR_swapchain")
 class VkSwapchainCreateInfoKHR {
     VkStructureType                             sType
     const void*                                 pNext
@@ -2320,7 +2303,7 @@
     VkBool32                                    clipped
 }
 
-@extension("VK_EXT_KHR_swapchain")
+@extension("VK_KHR_swapchain")
 class VkPresentInfoKHR {
     VkStructureType                             sType
     const void*                                 pNext
@@ -2331,7 +2314,7 @@
     const u32*                                  imageIndices
 }
 
-@extension("VK_EXT_KHR_display")
+@extension("VK_KHR_display")
 class VkDisplayPropertiesKHR {
     VkDisplayKHR                                display
     const char*                                 displayName
@@ -2342,32 +2325,32 @@
     VkBool32                                    persistentContent
 }
 
-@extension("VK_EXT_KHR_display")
+@extension("VK_KHR_display")
 class VkDisplayModeParametersKHR {
     VkExtent2D                                  visibleRegion
     u32                                         refreshRate
 }
 
-@extension("VK_EXT_KHR_display")
+@extension("VK_KHR_display")
 class VkDisplayModePropertiesKHR {
     VkDisplayModeKHR                            displayMode
     VkDisplayModeParametersKHR                  parameters
 }
 
-@extension("VK_EXT_KHR_display")
+@extension("VK_KHR_display")
 class VkDisplayModeCreateInfoKHR {
     VkStructureType                             sType
     const void*                                 pNext
     VkDisplayModeParametersKHR                  parameters
 }
 
-@extension("VK_EXT_KHR_display")
+@extension("VK_KHR_display")
 class VkDisplayPlanePropertiesKHR {
     VkDisplayKHR                                currentDisplay
     u32                                         currentStackIndex
 }
 
-@extension("VK_EXT_KHR_display")
+@extension("VK_KHR_display")
 class VkDisplayPlaneCapabilitiesKHR {
     VkDisplayPlaneAlphaFlagsKHR                 supportedAlpha
     VkOffset2D                                  minSrcPosition
@@ -2380,7 +2363,7 @@
     VkExtent2D                                  maxDstExtent
 }
 
-@extension("VK_EXT_KHR_display")
+@extension("VK_KHR_display")
 class VkDisplaySurfaceCreateInfoKHR {
     VkStructureType                             sType
     const void*                                 pNext
@@ -2393,14 +2376,14 @@
     VkExtent2D                                  imageSize
 }
 
-@extension("VK_EXT_KHR_display_swapchain")
+@extension("VK_KHR_display_swapchain")
 class VkDisplaySwapchainCreateInfoKHR {
     VkStructureType                             sType
     const void*                                 pNext
     const VkSwapchainCreateInfoKHR*             pNextSwapchainCreateInfo
 }
 
-@extension("VK_EXT_KHR_display_swapchain")
+@extension("VK_KHR_display_swapchain")
 class VkDisplayPresentInfoKHR {
     VkStructureType                             sType
     const void*                                 pNext
@@ -3378,34 +3361,6 @@
     State.ShaderModules[shaderModule] = null
 }
 
-@threadSafety("system")
-cmd VkResult vkCreateShader(
-        VkDevice                                    device,
-        const VkShaderCreateInfo*                   pCreateInfo,
-        const VkAllocationCallbacks*                pAllocator,
-        VkShader*                                   pShader) {
-    assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_CREATE_INFO)
-    deviceObject := GetDevice(device)
-
-    shader := ?
-    pShader[0] = shader
-    State.Shaders[shader] = new!ShaderObject(device: device)
-
-    return ?
-}
-
-@threadSafety("system")
-cmd void vkDestroyShader(
-        VkDevice                                    device,
-        VkShader                                    shader,
-        const VkAllocationCallbacks*                pAllocator) {
-    deviceObject := GetDevice(device)
-    shaderObject := GetShader(shader)
-    assert(shaderObject.device == device)
-
-    State.Shaders[shader] = null
-}
-
 
 // Pipeline functions
 
@@ -4625,7 +4580,7 @@
     }
 }
 
-@extension("VK_EXT_KHR_surface")
+@extension("VK_KHR_surface")
 cmd void vkDestroySurfaceKHR(
         VkInstance                                  instance,
         VkSurfaceKHR                                surface) {
@@ -4636,7 +4591,7 @@
     State.Surfaces[surface] = null
 }
 
-@extension("VK_EXT_KHR_surface")
+@extension("VK_KHR_surface")
 cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
         VkPhysicalDevice                            physicalDevice,
         u32                                         queueFamilyIndex,
@@ -4647,7 +4602,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_surface")
+@extension("VK_KHR_surface")
 cmd VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
         VkPhysicalDevice                            physicalDevice,
         VkSurfaceKHR                                surface,
@@ -4660,7 +4615,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_surface")
+@extension("VK_KHR_surface")
 cmd VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
         VkPhysicalDevice                            physicalDevice,
         VkSurfaceKHR                                surface,
@@ -4680,7 +4635,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_surface")
+@extension("VK_KHR_surface")
 cmd VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
         VkPhysicalDevice                            physicalDevice,
         VkSurfaceKHR                                surface,
@@ -4700,7 +4655,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_swapchain")
+@extension("VK_KHR_swapchain")
 cmd VkResult vkCreateSwapchainKHR(
         VkDevice                                 device,
         const VkSwapchainCreateInfoKHR*          pCreateInfo,
@@ -4715,7 +4670,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_swapchain")
+@extension("VK_KHR_swapchain")
 cmd void vkDestroySwapchainKHR(
         VkDevice                                 device,
         VkSwapchainKHR                           swapchain) {
@@ -4726,7 +4681,7 @@
     State.Swapchains[swapchain] = null
 }
 
-@extension("VK_EXT_KHR_swapchain")
+@extension("VK_KHR_swapchain")
 cmd VkResult vkGetSwapchainImagesKHR(
         VkDevice                                 device,
         VkSwapchainKHR                           swapchain,
@@ -4747,7 +4702,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_swapchain")
+@extension("VK_KHR_swapchain")
 cmd VkResult vkAcquireNextImageKHR(
         VkDevice                                 device,
         VkSwapchainKHR                           swapchain,
@@ -4764,7 +4719,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_swapchain")
+@extension("VK_KHR_swapchain")
 cmd VkResult vkQueuePresentKHR(
         VkQueue                                  queue,
         VkPresentInfoKHR*                        pPresentInfo) {
@@ -4776,7 +4731,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_display")
+@extension("VK_KHR_display")
 cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
         VkPhysicalDevice                        physicalDevice,
         u32*                                    pPropertyCount,
@@ -4785,7 +4740,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_display")
+@extension("VK_KHR_display")
 cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
         VkPhysicalDevice                        physicalDevice,
         u32*                                    pPropertyCount,
@@ -4794,7 +4749,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_display")
+@extension("VK_KHR_display")
 cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
         VkPhysicalDevice                        physicalDevice,
         u32*                                    pPropertyCount,
@@ -4803,7 +4758,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_display")
+@extension("VK_KHR_display")
 cmd VkResult vkGetDisplayModePropertiesKHR(
         VkPhysicalDevice                        physicalDevice,
         VkDisplayKHR                            display,
@@ -4813,7 +4768,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_display")
+@extension("VK_KHR_display")
 cmd VkResult vkCreateDisplayModeKHR(
         VkPhysicalDevice                        physicalDevice,
         VkDisplayKHR                            display,
@@ -4823,7 +4778,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_display")
+@extension("VK_KHR_display")
 cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
         VkPhysicalDevice                        physicalDevice,
         VkDisplayModeCreateInfoKHR              mode,
@@ -4833,7 +4788,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_display")
+@extension("VK_KHR_display")
 cmd VkResult vkCreateDisplayPlaneSurfaceKHR(
         VkInstance                              instance,
         const VkDisplaySurfaceCreateInfoKHR*    pCreateInfo,
@@ -4841,7 +4796,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_xlib_surface")
+@extension("VK_KHR_xlib_surface")
 cmd VkResult vkCreateXlibSurfaceKHR(
         VkInstance                              instance,
         platform.Display*                       dpy,
@@ -4851,7 +4806,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_xlib_surface")
+@extension("VK_KHR_xlib_surface")
 cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
         VkPhysicalDevice                        physicalDevice,
         u32                                     queueFamilyIndex,
@@ -4861,7 +4816,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_xcb_surface")
+@extension("VK_KHR_xcb_surface")
 cmd VkResult vkCreateXCBSurfaceKHR(
         VkInstance                              instance,
         platform.xcb_connection_t*              connection,
@@ -4871,7 +4826,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_xlib_surface")
+@extension("VK_KHR_xlib_surface")
 cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
         VkPhysicalDevice                        physicalDevice,
         u32                                     queueFamilyIndex,
@@ -4881,7 +4836,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_wayland_surface")
+@extension("VK_KHR_wayland_surface")
 cmd VkResult vkCreateWaylandSurfaceKHR(
         VkInstance                              instance,
         platform.wl_display*                    display,
@@ -4891,7 +4846,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_wayland_surface")
+@extension("VK_KHR_wayland_surface")
 cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
         VkPhysicalDevice                        physicalDevice,
         u32                                     queueFamilyIndex,
@@ -4900,7 +4855,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_mir_surface")
+@extension("VK_KHR_mir_surface")
 cmd VkResult vkCreateMirSurfaceKHR(
         VkInstance                              instance,
         platform.MirConnection*                 connection,
@@ -4910,7 +4865,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_mir_surface")
+@extension("VK_KHR_mir_surface")
 cmd VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR(
         VkPhysicalDevice                        physicalDevice,
         u32                                     queueFamilyIndex,
@@ -4919,7 +4874,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_android_surface")
+@extension("VK_KHR_android_surface")
 cmd VkResult vkCreateAndroidSurfaceKHR(
         VkInstance                              instance,
         platform.ANativeWindow*                 window
@@ -4928,7 +4883,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_win32_surface")
+@extension("VK_KHR_win32_surface")
 cmd VkResult vkCreateWin32SurfaceKHR(
         VkInstance                              instance,
         platform.HINSTANCE                      hinstance,
@@ -4938,7 +4893,7 @@
     return ?
 }
 
-@extension("VK_EXT_KHR_win32_surface")
+@extension("VK_KHR_win32_surface")
 cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR(
         VkPhysicalDevice                        physicalDevice,
         u32                                     queueFamilyIndex) {
@@ -4975,7 +4930,6 @@
     map!(VkImage,                    ref!ImageObject)                    Images
     map!(VkImageView,                ref!ImageViewObject)                ImageViews
     map!(VkShaderModule,             ref!ShaderModuleObject)             ShaderModules
-    map!(VkShader,                   ref!ShaderObject)                   Shaders
     map!(VkPipeline,                 ref!PipelineObject)                 Pipelines
     map!(VkPipelineLayout,           ref!PipelineLayoutObject)           PipelineLayouts
     map!(VkSampler,                  ref!SamplerObject)                  Samplers
@@ -5168,11 +5122,6 @@
     return State.ImageViews[imageView]
 }
 
-macro ref!ShaderObject GetShader(VkShader shader) {
-    assert(shader in State.Shaders)
-    return State.Shaders[shader]
-}
-
 macro ref!ShaderModuleObject GetShaderModule(VkShaderModule shaderModule) {
     assert(shaderModule in State.ShaderModules)
     return State.ShaderModules[shaderModule]
diff --git a/vulkan/include/vulkan/vk_ext_android_native_buffer.h b/vulkan/include/vulkan/vk_android_native_buffer.h
similarity index 83%
rename from vulkan/include/vulkan/vk_ext_android_native_buffer.h
rename to vulkan/include/vulkan/vk_android_native_buffer.h
index f665164..f1f2676 100644
--- a/vulkan/include/vulkan/vk_ext_android_native_buffer.h
+++ b/vulkan/include/vulkan/vk_android_native_buffer.h
@@ -14,16 +14,16 @@
  * limitations under the License.
  */
 
-#ifndef __VK_EXT_ANDROID_NATIVE_BUFFER_H__
-#define __VK_EXT_ANDROID_NATIVE_BUFFER_H__
+#ifndef __VK_ANDROID_NATIVE_BUFFER_H__
+#define __VK_ANDROID_NATIVE_BUFFER_H__
 
 #include <vulkan/vulkan.h>
 #include <system/window.h>
 
 // TODO(jessehall): Get a real extension number officially assigned.
-#define VK_EXT_ANDROID_NATIVE_BUFFER_EXTENSION_NUMBER 1024
-#define VK_EXT_ANDROID_NATIVE_BUFFER_REVISION         1
-#define VK_EXT_ANDROID_NATIVE_BUFFER_EXTENSION_NAME   "VK_EXT_ANDROID_gralloc"
+#define VK_ANDROID_NATIVE_BUFFER_EXTENSION_NUMBER 1024
+#define VK_ANDROID_NATIVE_BUFFER_REVISION         1
+#define VK_ANDROID_NATIVE_BUFFER_EXTENSION_NAME   "VK_ANDROID_native_buffer"
 
 #ifdef __cplusplus
 extern "C" {
@@ -31,8 +31,8 @@
 
 // See https://gitlab.khronos.org/vulkan/vulkan/blob/master/doc/proposals/proposed/NVIDIA/VulkanRegistryProposal.txt
 // and Khronos bug 14154 for explanation of these magic numbers.
-#define VK_EXT_ANDROID_NATIVE_BUFFER_ENUM(type,id)    ((type)((int)0xc0000000 - VK_EXT_ANDROID_NATIVE_BUFFER_EXTENSION_NUMBER * -1024 + (id)))
-#define VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID       VK_EXT_ANDROID_NATIVE_BUFFER_ENUM(VkStructureType, 0)
+#define VK_ANDROID_NATIVE_BUFFER_ENUM(type,id)    ((type)((int)0xc0000000 - VK_ANDROID_NATIVE_BUFFER_EXTENSION_NUMBER * -1024 + (id)))
+#define VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID   VK_ANDROID_NATIVE_BUFFER_ENUM(VkStructureType, 0)
 
 typedef struct {
     VkStructureType             sType; // must be VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID
@@ -90,4 +90,4 @@
 }
 #endif
 
-#endif // __VK_EXT_ANDROID_NATIVE_BUFFER_H__
+#endif // __VK_ANDROID_NATIVE_BUFFER_H__
diff --git a/vulkan/include/vulkan/vulkan.h b/vulkan/include/vulkan/vulkan.h
index 60583c2..2e66e27 100644
--- a/vulkan/include/vulkan/vulkan.h
+++ b/vulkan/include/vulkan/vulkan.h
@@ -41,11 +41,11 @@
     ((major << 22) | (minor << 12) | patch)
 
 // Vulkan API version supported by this file
-#define VK_API_VERSION VK_MAKE_VERSION(0, 198, 0)
+#define VK_API_VERSION VK_MAKE_VERSION(0, 200, 0)
 
 
 #define VK_NULL_HANDLE 0
-
+        
 
 
 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
@@ -56,7 +56,7 @@
 #else
         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
 #endif
-
+        
 
 
 typedef uint32_t VkFlags;
@@ -79,7 +79,6 @@
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
-VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShader)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
@@ -108,7 +107,7 @@
 #define VK_MAX_DESCRIPTION_SIZE           256
 
 
-typedef enum {
+typedef enum VkResult {
     VK_SUCCESS = 0,
     VK_NOT_READY = 1,
     VK_TIMEOUT = 2,
@@ -130,7 +129,7 @@
     VK_RESULT_MAX_ENUM = 0x7FFFFFFF
 } VkResult;
 
-typedef enum {
+typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
     VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
     VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
@@ -148,57 +147,56 @@
     VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
     VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
     VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
-    VK_STRUCTURE_TYPE_SHADER_CREATE_INFO = 17,
-    VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 18,
-    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 19,
-    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 20,
-    VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 21,
-    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 22,
-    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 23,
-    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 24,
-    VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 25,
-    VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 26,
-    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 27,
-    VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 28,
-    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 29,
-    VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 30,
-    VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 31,
-    VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 32,
-    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 33,
-    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 34,
-    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO = 35,
-    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 36,
-    VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 37,
-    VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 38,
-    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 39,
-    VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 40,
-    VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOC_INFO = 41,
-    VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
-    VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
-    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
-    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
-    VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
-    VK_STRUCTURE_TYPE_LAYER_INSTANCE_CREATE_INFO = 47,
-    VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO = 48,
+    VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
+    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
+    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
+    VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
+    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
+    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
+    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
+    VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
+    VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
+    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
+    VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
+    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
+    VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
+    VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
+    VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
+    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
+    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
+    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO = 34,
+    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
+    VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
+    VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
+    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
+    VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
+    VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOC_INFO = 40,
+    VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 41,
+    VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 42,
+    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 43,
+    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 44,
+    VK_STRUCTURE_TYPE_MEMORY_BARRIER = 45,
+    VK_STRUCTURE_TYPE_LAYER_INSTANCE_CREATE_INFO = 46,
+    VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO = 47,
     VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
     VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO,
     VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
     VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkStructureType;
 
-typedef enum {
-    VK_SYSTEM_ALLOCATION_SCOPE_FUNCTION = 0,
+typedef enum VkSystemAllocationScope {
+    VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
     VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
     VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
-    VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_FUNCTION,
+    VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
     VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
-    VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_FUNCTION + 1),
+    VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1),
     VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
 } VkSystemAllocationScope;
 
-typedef enum {
+typedef enum VkInternalAllocationType {
     VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
     VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
     VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
@@ -206,7 +204,7 @@
     VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkInternalAllocationType;
 
-typedef enum {
+typedef enum VkFormat {
     VK_FORMAT_UNDEFINED = 0,
     VK_FORMAT_R4G4_UNORM = 1,
     VK_FORMAT_R4G4_USCALED = 2,
@@ -387,7 +385,7 @@
     VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
 } VkFormat;
 
-typedef enum {
+typedef enum VkImageType {
     VK_IMAGE_TYPE_1D = 0,
     VK_IMAGE_TYPE_2D = 1,
     VK_IMAGE_TYPE_3D = 2,
@@ -397,7 +395,7 @@
     VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkImageType;
 
-typedef enum {
+typedef enum VkImageTiling {
     VK_IMAGE_TILING_OPTIMAL = 0,
     VK_IMAGE_TILING_LINEAR = 1,
     VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
@@ -406,7 +404,7 @@
     VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
 } VkImageTiling;
 
-typedef enum {
+typedef enum VkPhysicalDeviceType {
     VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
     VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
     VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
@@ -418,7 +416,7 @@
     VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkPhysicalDeviceType;
 
-typedef enum {
+typedef enum VkQueryType {
     VK_QUERY_TYPE_OCCLUSION = 0,
     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
     VK_QUERY_TYPE_TIMESTAMP = 2,
@@ -428,7 +426,7 @@
     VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkQueryType;
 
-typedef enum {
+typedef enum VkSharingMode {
     VK_SHARING_MODE_EXCLUSIVE = 0,
     VK_SHARING_MODE_CONCURRENT = 1,
     VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
@@ -437,7 +435,7 @@
     VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
 } VkSharingMode;
 
-typedef enum {
+typedef enum VkImageLayout {
     VK_IMAGE_LAYOUT_UNDEFINED = 0,
     VK_IMAGE_LAYOUT_GENERAL = 1,
     VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
@@ -453,7 +451,7 @@
     VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
 } VkImageLayout;
 
-typedef enum {
+typedef enum VkImageViewType {
     VK_IMAGE_VIEW_TYPE_1D = 0,
     VK_IMAGE_VIEW_TYPE_2D = 1,
     VK_IMAGE_VIEW_TYPE_3D = 2,
@@ -467,7 +465,7 @@
     VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkImageViewType;
 
-typedef enum {
+typedef enum VkComponentSwizzle {
     VK_COMPONENT_SWIZZLE_IDENTITY = 0,
     VK_COMPONENT_SWIZZLE_ZERO = 1,
     VK_COMPONENT_SWIZZLE_ONE = 2,
@@ -481,7 +479,7 @@
     VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
 } VkComponentSwizzle;
 
-typedef enum {
+typedef enum VkVertexInputRate {
     VK_VERTEX_INPUT_RATE_VERTEX = 0,
     VK_VERTEX_INPUT_RATE_INSTANCE = 1,
     VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
@@ -490,7 +488,7 @@
     VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
 } VkVertexInputRate;
 
-typedef enum {
+typedef enum VkPrimitiveTopology {
     VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
     VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
@@ -508,7 +506,7 @@
     VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
 } VkPrimitiveTopology;
 
-typedef enum {
+typedef enum VkPolygonMode {
     VK_POLYGON_MODE_FILL = 0,
     VK_POLYGON_MODE_LINE = 1,
     VK_POLYGON_MODE_POINT = 2,
@@ -518,7 +516,7 @@
     VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
 } VkPolygonMode;
 
-typedef enum {
+typedef enum VkFrontFace {
     VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
     VK_FRONT_FACE_CLOCKWISE = 1,
     VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
@@ -527,7 +525,7 @@
     VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
 } VkFrontFace;
 
-typedef enum {
+typedef enum VkCompareOp {
     VK_COMPARE_OP_NEVER = 0,
     VK_COMPARE_OP_LESS = 1,
     VK_COMPARE_OP_EQUAL = 2,
@@ -542,7 +540,7 @@
     VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
 } VkCompareOp;
 
-typedef enum {
+typedef enum VkStencilOp {
     VK_STENCIL_OP_KEEP = 0,
     VK_STENCIL_OP_ZERO = 1,
     VK_STENCIL_OP_REPLACE = 2,
@@ -557,7 +555,7 @@
     VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
 } VkStencilOp;
 
-typedef enum {
+typedef enum VkLogicOp {
     VK_LOGIC_OP_CLEAR = 0,
     VK_LOGIC_OP_AND = 1,
     VK_LOGIC_OP_AND_REVERSE = 2,
@@ -580,7 +578,7 @@
     VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
 } VkLogicOp;
 
-typedef enum {
+typedef enum VkBlendFactor {
     VK_BLEND_FACTOR_ZERO = 0,
     VK_BLEND_FACTOR_ONE = 1,
     VK_BLEND_FACTOR_SRC_COLOR = 2,
@@ -606,7 +604,7 @@
     VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
 } VkBlendFactor;
 
-typedef enum {
+typedef enum VkBlendOp {
     VK_BLEND_OP_ADD = 0,
     VK_BLEND_OP_SUBTRACT = 1,
     VK_BLEND_OP_REVERSE_SUBTRACT = 2,
@@ -618,7 +616,7 @@
     VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
 } VkBlendOp;
 
-typedef enum {
+typedef enum VkDynamicState {
     VK_DYNAMIC_STATE_VIEWPORT = 0,
     VK_DYNAMIC_STATE_SCISSOR = 1,
     VK_DYNAMIC_STATE_LINE_WIDTH = 2,
@@ -634,7 +632,7 @@
     VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
 } VkDynamicState;
 
-typedef enum {
+typedef enum VkFilter {
     VK_FILTER_NEAREST = 0,
     VK_FILTER_LINEAR = 1,
     VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
@@ -643,7 +641,7 @@
     VK_FILTER_MAX_ENUM = 0x7FFFFFFF
 } VkFilter;
 
-typedef enum {
+typedef enum VkSamplerMipmapMode {
     VK_SAMPLER_MIPMAP_MODE_BASE = 0,
     VK_SAMPLER_MIPMAP_MODE_NEAREST = 1,
     VK_SAMPLER_MIPMAP_MODE_LINEAR = 2,
@@ -653,7 +651,7 @@
     VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
 } VkSamplerMipmapMode;
 
-typedef enum {
+typedef enum VkSamplerAddressMode {
     VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
     VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
@@ -665,7 +663,7 @@
     VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
 } VkSamplerAddressMode;
 
-typedef enum {
+typedef enum VkBorderColor {
     VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
     VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
     VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
@@ -678,7 +676,7 @@
     VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
 } VkBorderColor;
 
-typedef enum {
+typedef enum VkDescriptorType {
     VK_DESCRIPTOR_TYPE_SAMPLER = 0,
     VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
     VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
@@ -696,7 +694,7 @@
     VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkDescriptorType;
 
-typedef enum {
+typedef enum VkAttachmentLoadOp {
     VK_ATTACHMENT_LOAD_OP_LOAD = 0,
     VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
     VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
@@ -706,7 +704,7 @@
     VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
 } VkAttachmentLoadOp;
 
-typedef enum {
+typedef enum VkAttachmentStoreOp {
     VK_ATTACHMENT_STORE_OP_STORE = 0,
     VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
     VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
@@ -715,7 +713,7 @@
     VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
 } VkAttachmentStoreOp;
 
-typedef enum {
+typedef enum VkPipelineBindPoint {
     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
     VK_PIPELINE_BIND_POINT_COMPUTE = 1,
     VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
@@ -724,7 +722,7 @@
     VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
 } VkPipelineBindPoint;
 
-typedef enum {
+typedef enum VkCommandBufferLevel {
     VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
     VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
     VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
@@ -733,7 +731,7 @@
     VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
 } VkCommandBufferLevel;
 
-typedef enum {
+typedef enum VkIndexType {
     VK_INDEX_TYPE_UINT16 = 0,
     VK_INDEX_TYPE_UINT32 = 1,
     VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
@@ -742,7 +740,7 @@
     VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkIndexType;
 
-typedef enum {
+typedef enum VkSubpassContents {
     VK_SUBPASS_CONTENTS_INLINE = 0,
     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
     VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
@@ -753,7 +751,7 @@
 
 typedef VkFlags VkInstanceCreateFlags;
 
-typedef enum {
+typedef enum VkFormatFeatureFlagBits {
     VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
     VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
     VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
@@ -769,7 +767,7 @@
 } VkFormatFeatureFlagBits;
 typedef VkFlags VkFormatFeatureFlags;
 
-typedef enum {
+typedef enum VkImageUsageFlagBits {
     VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
     VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
     VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
@@ -781,7 +779,7 @@
 } VkImageUsageFlagBits;
 typedef VkFlags VkImageUsageFlags;
 
-typedef enum {
+typedef enum VkImageCreateFlagBits {
     VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
     VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
     VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
@@ -790,7 +788,7 @@
 } VkImageCreateFlagBits;
 typedef VkFlags VkImageCreateFlags;
 
-typedef enum {
+typedef enum VkSampleCountFlagBits {
     VK_SAMPLE_COUNT_1_BIT = 0x00000001,
     VK_SAMPLE_COUNT_2_BIT = 0x00000002,
     VK_SAMPLE_COUNT_4_BIT = 0x00000004,
@@ -801,7 +799,7 @@
 } VkSampleCountFlagBits;
 typedef VkFlags VkSampleCountFlags;
 
-typedef enum {
+typedef enum VkQueueFlagBits {
     VK_QUEUE_GRAPHICS_BIT = 0x00000001,
     VK_QUEUE_COMPUTE_BIT = 0x00000002,
     VK_QUEUE_TRANSFER_BIT = 0x00000004,
@@ -809,7 +807,7 @@
 } VkQueueFlagBits;
 typedef VkFlags VkQueueFlags;
 
-typedef enum {
+typedef enum VkMemoryPropertyFlagBits {
     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
     VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
     VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
@@ -818,7 +816,7 @@
 } VkMemoryPropertyFlagBits;
 typedef VkFlags VkMemoryPropertyFlags;
 
-typedef enum {
+typedef enum VkMemoryHeapFlagBits {
     VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
 } VkMemoryHeapFlagBits;
 typedef VkFlags VkMemoryHeapFlags;
@@ -826,14 +824,15 @@
 typedef VkFlags VkDeviceQueueCreateFlags;
 typedef VkFlags VkMemoryMapFlags;
 
-typedef enum {
+typedef enum VkImageAspectFlagBits {
     VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
     VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
     VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
     VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
 } VkImageAspectFlagBits;
+typedef VkFlags VkImageAspectFlags;
 
-typedef enum {
+typedef enum VkSparseImageFormatFlagBits {
     VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
     VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
     VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
@@ -841,7 +840,7 @@
 typedef VkFlags VkSparseImageFormatFlags;
 typedef VkFlags VkSparseMemoryBindFlags;
 
-typedef enum {
+typedef enum VkFenceCreateFlagBits {
     VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
 } VkFenceCreateFlagBits;
 typedef VkFlags VkFenceCreateFlags;
@@ -849,7 +848,7 @@
 typedef VkFlags VkEventCreateFlags;
 typedef VkFlags VkQueryPoolCreateFlags;
 
-typedef enum {
+typedef enum VkQueryPipelineStatisticFlagBits {
     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
     VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
@@ -864,7 +863,7 @@
 } VkQueryPipelineStatisticFlagBits;
 typedef VkFlags VkQueryPipelineStatisticFlags;
 
-typedef enum {
+typedef enum VkQueryResultFlagBits {
     VK_QUERY_RESULT_DEFAULT = 0,
     VK_QUERY_RESULT_64_BIT = 0x00000001,
     VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
@@ -873,14 +872,14 @@
 } VkQueryResultFlagBits;
 typedef VkFlags VkQueryResultFlags;
 
-typedef enum {
+typedef enum VkBufferCreateFlagBits {
     VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
     VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
     VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
 } VkBufferCreateFlagBits;
 typedef VkFlags VkBufferCreateFlags;
 
-typedef enum {
+typedef enum VkBufferUsageFlagBits {
     VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
     VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
     VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
@@ -894,11 +893,18 @@
 typedef VkFlags VkBufferUsageFlags;
 typedef VkFlags VkBufferViewCreateFlags;
 typedef VkFlags VkImageViewCreateFlags;
-typedef VkFlags VkImageAspectFlags;
 typedef VkFlags VkShaderModuleCreateFlags;
-typedef VkFlags VkShaderCreateFlags;
+typedef VkFlags VkPipelineCacheCreateFlags;
 
-typedef enum {
+typedef enum VkPipelineCreateFlagBits {
+    VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
+    VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
+    VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
+} VkPipelineCreateFlagBits;
+typedef VkFlags VkPipelineCreateFlags;
+typedef VkFlags VkPipelineShaderStageCreateFlags;
+
+typedef enum VkShaderStageFlagBits {
     VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
     VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
     VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
@@ -908,22 +914,13 @@
     VK_SHADER_STAGE_ALL_GRAPHICS = 0x1F,
     VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
 } VkShaderStageFlagBits;
-typedef VkFlags VkPipelineCacheCreateFlags;
-
-typedef enum {
-    VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
-    VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
-    VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
-} VkPipelineCreateFlagBits;
-typedef VkFlags VkPipelineCreateFlags;
-typedef VkFlags VkPipelineShaderStageCreateFlags;
 typedef VkFlags VkPipelineVertexInputStateCreateFlags;
 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
 typedef VkFlags VkPipelineTesselationStateCreateFlags;
 typedef VkFlags VkPipelineViewportStateCreateFlags;
 typedef VkFlags VkPipelineRasterizationStateCreateFlags;
 
-typedef enum {
+typedef enum VkCullModeFlagBits {
     VK_CULL_MODE_NONE = 0,
     VK_CULL_MODE_FRONT_BIT = 0x00000001,
     VK_CULL_MODE_BACK_BIT = 0x00000002,
@@ -934,7 +931,7 @@
 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
 
-typedef enum {
+typedef enum VkColorComponentFlagBits {
     VK_COLOR_COMPONENT_R_BIT = 0x00000001,
     VK_COLOR_COMPONENT_G_BIT = 0x00000002,
     VK_COLOR_COMPONENT_B_BIT = 0x00000004,
@@ -947,7 +944,7 @@
 typedef VkFlags VkSamplerCreateFlags;
 typedef VkFlags VkDescriptorSetLayoutCreateFlags;
 
-typedef enum {
+typedef enum VkDescriptorPoolCreateFlagBits {
     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
 } VkDescriptorPoolCreateFlagBits;
 typedef VkFlags VkDescriptorPoolCreateFlags;
@@ -955,13 +952,13 @@
 typedef VkFlags VkFramebufferCreateFlags;
 typedef VkFlags VkRenderPassCreateFlags;
 
-typedef enum {
+typedef enum VkAttachmentDescriptionFlagBits {
     VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
 } VkAttachmentDescriptionFlagBits;
 typedef VkFlags VkAttachmentDescriptionFlags;
 typedef VkFlags VkSubpassDescriptionFlags;
 
-typedef enum {
+typedef enum VkPipelineStageFlagBits {
     VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
     VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
     VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
@@ -981,58 +978,56 @@
 } VkPipelineStageFlagBits;
 typedef VkFlags VkPipelineStageFlags;
 
-typedef enum {
-    VK_MEMORY_OUTPUT_HOST_WRITE_BIT = 0x00000001,
-    VK_MEMORY_OUTPUT_SHADER_WRITE_BIT = 0x00000002,
-    VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT = 0x00000004,
-    VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000008,
-    VK_MEMORY_OUTPUT_TRANSFER_BIT = 0x00000010,
-} VkMemoryOutputFlagBits;
-typedef VkFlags VkMemoryOutputFlags;
+typedef enum VkAccessFlagBits {
+    VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
+    VK_ACCESS_INDEX_READ_BIT = 0x00000002,
+    VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
+    VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
+    VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
+    VK_ACCESS_SHADER_READ_BIT = 0x00000020,
+    VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
+    VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
+    VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
+    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
+    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
+    VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
+    VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
+    VK_ACCESS_HOST_READ_BIT = 0x00002000,
+    VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
+    VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
+    VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
+} VkAccessFlagBits;
+typedef VkFlags VkAccessFlags;
 
-typedef enum {
-    VK_MEMORY_INPUT_HOST_READ_BIT = 0x00000001,
-    VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT = 0x00000002,
-    VK_MEMORY_INPUT_INDEX_FETCH_BIT = 0x00000004,
-    VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT = 0x00000008,
-    VK_MEMORY_INPUT_UNIFORM_READ_BIT = 0x00000010,
-    VK_MEMORY_INPUT_SHADER_READ_BIT = 0x00000020,
-    VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT = 0x00000040,
-    VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000080,
-    VK_MEMORY_INPUT_INPUT_ATTACHMENT_BIT = 0x00000100,
-    VK_MEMORY_INPUT_TRANSFER_BIT = 0x00000200,
-} VkMemoryInputFlagBits;
-typedef VkFlags VkMemoryInputFlags;
-
-typedef enum {
+typedef enum VkDependencyFlagBits {
     VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
 } VkDependencyFlagBits;
 typedef VkFlags VkDependencyFlags;
 
-typedef enum {
+typedef enum VkCommandPoolCreateFlagBits {
     VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
     VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
 } VkCommandPoolCreateFlagBits;
 typedef VkFlags VkCommandPoolCreateFlags;
 
-typedef enum {
+typedef enum VkCommandPoolResetFlagBits {
     VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
 } VkCommandPoolResetFlagBits;
 typedef VkFlags VkCommandPoolResetFlags;
 
-typedef enum {
+typedef enum VkCommandBufferUsageFlagBits {
     VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
     VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
     VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
 } VkCommandBufferUsageFlagBits;
 typedef VkFlags VkCommandBufferUsageFlags;
 
-typedef enum {
+typedef enum VkCommandBufferResetFlagBits {
     VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
 } VkCommandBufferResetFlagBits;
 typedef VkFlags VkCommandBufferResetFlags;
 
-typedef enum {
+typedef enum VkStencilFaceFlagBits {
     VK_STENCIL_FACE_NONE = 0,
     VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
     VK_STENCIL_FACE_BACK_BIT = 0x00000002,
@@ -1040,43 +1035,43 @@
 } VkStencilFaceFlagBits;
 typedef VkFlags VkStencilFaceFlags;
 
-typedef enum {
+typedef enum VkQueryControlFlagBits {
     VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
 } VkQueryControlFlagBits;
 typedef VkFlags VkQueryControlFlags;
 
 typedef void* (VKAPI *PFN_vkAllocationFunction)(
-    void*              pUserData,
-    size_t             size,
-    size_t             alignment,
-    VkSystemAllocationScope allocationScope);
+    void*                                       pUserData,
+    size_t                                      size,
+    size_t                                      alignment,
+    VkSystemAllocationScope                     allocationScope);
 
 typedef void* (VKAPI *PFN_vkReallocationFunction)(
-    void*              pUserData,
-    void*              pOriginal,
-    size_t             size,
-    size_t             alignment,
-    VkSystemAllocationScope allocationScope);
+    void*                                       pUserData,
+    void*                                       pOriginal,
+    size_t                                      size,
+    size_t                                      alignment,
+    VkSystemAllocationScope                     allocationScope);
 
 typedef void (VKAPI *PFN_vkFreeFunction)(
-    void*                           pUserData,
-    void*                           pMemory);
+    void*                                       pUserData,
+    void*                                       pMemory);
 
 typedef void (VKAPI *PFN_vkInternalAllocationNotification)(
-    void*              pUserData,
-    size_t                           size,
-    VkInternalAllocationType              allocationType,
-    VkSystemAllocationScope               allocationScope);
+    void*                                       pUserData,
+    size_t                                      size,
+    VkInternalAllocationType                    allocationType,
+    VkSystemAllocationScope                     allocationScope);
 
 typedef void (VKAPI *PFN_vkInternalFreeNotification)(
-    void*              pUserData,
-    size_t                           size,
-    VkInternalAllocationType              allocationType,
-    VkSystemAllocationScope               allocationScope);
+    void*                                       pUserData,
+    size_t                                      size,
+    VkInternalAllocationType                    allocationType,
+    VkSystemAllocationScope                     allocationScope);
 
 typedef void (VKAPI *PFN_vkVoidFunction)(void);
 
-typedef struct {
+typedef struct VkApplicationInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     const char*                                 pApplicationName;
@@ -1086,7 +1081,7 @@
     uint32_t                                    apiVersion;
 } VkApplicationInfo;
 
-typedef struct {
+typedef struct VkInstanceCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkInstanceCreateFlags                       flags;
@@ -1097,7 +1092,7 @@
     const char*const*                           ppEnabledExtensionNames;
 } VkInstanceCreateInfo;
 
-typedef struct {
+typedef struct VkAllocationCallbacks {
     void*                                       pUserData;
     PFN_vkAllocationFunction                    pfnAllocation;
     PFN_vkReallocationFunction                  pfnReallocation;
@@ -1106,7 +1101,7 @@
     PFN_vkInternalFreeNotification              pfnInternalFree;
 } VkAllocationCallbacks;
 
-typedef struct {
+typedef struct VkPhysicalDeviceFeatures {
     VkBool32                                    robustBufferAccess;
     VkBool32                                    fullDrawIndexUint32;
     VkBool32                                    imageCubeArray;
@@ -1162,19 +1157,19 @@
     VkBool32                                    variableMultisampleRate;
 } VkPhysicalDeviceFeatures;
 
-typedef struct {
+typedef struct VkFormatProperties {
     VkFormatFeatureFlags                        linearTilingFeatures;
     VkFormatFeatureFlags                        optimalTilingFeatures;
     VkFormatFeatureFlags                        bufferFeatures;
 } VkFormatProperties;
 
-typedef struct {
+typedef struct VkExtent3D {
     int32_t                                     width;
     int32_t                                     height;
     int32_t                                     depth;
 } VkExtent3D;
 
-typedef struct {
+typedef struct VkImageFormatProperties {
     VkExtent3D                                  maxExtent;
     uint32_t                                    maxMipLevels;
     uint32_t                                    maxArrayLayers;
@@ -1182,7 +1177,7 @@
     VkDeviceSize                                maxResourceSize;
 } VkImageFormatProperties;
 
-typedef struct {
+typedef struct VkPhysicalDeviceLimits {
     uint32_t                                    maxImageDimension1D;
     uint32_t                                    maxImageDimension2D;
     uint32_t                                    maxImageDimension3D;
@@ -1284,7 +1279,7 @@
     VkDeviceSize                                optimalBufferCopyRowPitchAlignment;
 } VkPhysicalDeviceLimits;
 
-typedef struct {
+typedef struct VkPhysicalDeviceSparseProperties {
     VkBool32                                    residencyStandard2DBlockShape;
     VkBool32                                    residencyStandard2DMultisampleBlockShape;
     VkBool32                                    residencyStandard3DBlockShape;
@@ -1292,7 +1287,7 @@
     VkBool32                                    residencyNonResidentStrict;
 } VkPhysicalDeviceSparseProperties;
 
-typedef struct {
+typedef struct VkPhysicalDeviceProperties {
     uint32_t                                    apiVersion;
     uint32_t                                    driverVersion;
     uint32_t                                    vendorID;
@@ -1304,31 +1299,31 @@
     VkPhysicalDeviceSparseProperties            sparseProperties;
 } VkPhysicalDeviceProperties;
 
-typedef struct {
+typedef struct VkQueueFamilyProperties {
     VkQueueFlags                                queueFlags;
     uint32_t                                    queueCount;
     uint32_t                                    timestampValidBits;
     VkExtent3D                                  minImageTransferGranularity;
 } VkQueueFamilyProperties;
 
-typedef struct {
+typedef struct VkMemoryType {
     VkMemoryPropertyFlags                       propertyFlags;
     uint32_t                                    heapIndex;
 } VkMemoryType;
 
-typedef struct {
+typedef struct VkMemoryHeap {
     VkDeviceSize                                size;
     VkMemoryHeapFlags                           flags;
 } VkMemoryHeap;
 
-typedef struct {
+typedef struct VkPhysicalDeviceMemoryProperties {
     uint32_t                                    memoryTypeCount;
     VkMemoryType                                memoryTypes[VK_MAX_MEMORY_TYPES];
     uint32_t                                    memoryHeapCount;
     VkMemoryHeap                                memoryHeaps[VK_MAX_MEMORY_HEAPS];
 } VkPhysicalDeviceMemoryProperties;
 
-typedef struct {
+typedef struct VkDeviceQueueCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkDeviceQueueCreateFlags                    flags;
@@ -1337,7 +1332,7 @@
     const float*                                pQueuePriorities;
 } VkDeviceQueueCreateInfo;
 
-typedef struct {
+typedef struct VkDeviceCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkDeviceCreateFlags                         flags;
@@ -1350,19 +1345,19 @@
     const VkPhysicalDeviceFeatures*             pEnabledFeatures;
 } VkDeviceCreateInfo;
 
-typedef struct {
+typedef struct VkExtensionProperties {
     char                                        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
     uint32_t                                    specVersion;
 } VkExtensionProperties;
 
-typedef struct {
+typedef struct VkLayerProperties {
     char                                        layerName[VK_MAX_EXTENSION_NAME_SIZE];
     uint32_t                                    specVersion;
     uint32_t                                    implementationVersion;
     char                                        description[VK_MAX_DESCRIPTION_SIZE];
 } VkLayerProperties;
 
-typedef struct {
+typedef struct VkSubmitInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     uint32_t                                    waitSemaphoreCount;
@@ -1373,14 +1368,14 @@
     const VkSemaphore*                          pSignalSemaphores;
 } VkSubmitInfo;
 
-typedef struct {
+typedef struct VkMemoryAllocateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkDeviceSize                                allocationSize;
     uint32_t                                    memoryTypeIndex;
 } VkMemoryAllocateInfo;
 
-typedef struct {
+typedef struct VkMappedMemoryRange {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkDeviceMemory                              memory;
@@ -1388,19 +1383,19 @@
     VkDeviceSize                                size;
 } VkMappedMemoryRange;
 
-typedef struct {
+typedef struct VkMemoryRequirements {
     VkDeviceSize                                size;
     VkDeviceSize                                alignment;
     uint32_t                                    memoryTypeBits;
 } VkMemoryRequirements;
 
-typedef struct {
-    VkImageAspectFlagBits                       aspect;
+typedef struct VkSparseImageFormatProperties {
+    VkImageAspectFlags                          aspectMask;
     VkExtent3D                                  imageGranularity;
     VkSparseImageFormatFlags                    flags;
 } VkSparseImageFormatProperties;
 
-typedef struct {
+typedef struct VkSparseImageMemoryRequirements {
     VkSparseImageFormatProperties               formatProperties;
     uint32_t                                    imageMipTailStartLod;
     VkDeviceSize                                imageMipTailSize;
@@ -1408,7 +1403,7 @@
     VkDeviceSize                                imageMipTailStride;
 } VkSparseImageMemoryRequirements;
 
-typedef struct {
+typedef struct VkSparseMemoryBind {
     VkDeviceSize                                resourceOffset;
     VkDeviceSize                                size;
     VkDeviceMemory                              memory;
@@ -1416,31 +1411,31 @@
     VkSparseMemoryBindFlags                     flags;
 } VkSparseMemoryBind;
 
-typedef struct {
+typedef struct VkSparseBufferMemoryBindInfo {
     VkBuffer                                    buffer;
     uint32_t                                    bindCount;
     const VkSparseMemoryBind*                   pBinds;
 } VkSparseBufferMemoryBindInfo;
 
-typedef struct {
+typedef struct VkSparseImageOpaqueMemoryBindInfo {
     VkImage                                     image;
     uint32_t                                    bindCount;
     const VkSparseMemoryBind*                   pBinds;
 } VkSparseImageOpaqueMemoryBindInfo;
 
-typedef struct {
-    VkImageAspectFlagBits                       aspect;
+typedef struct VkImageSubresource {
+    VkImageAspectFlags                          aspectMask;
     uint32_t                                    mipLevel;
     uint32_t                                    arrayLayer;
 } VkImageSubresource;
 
-typedef struct {
+typedef struct VkOffset3D {
     int32_t                                     x;
     int32_t                                     y;
     int32_t                                     z;
 } VkOffset3D;
 
-typedef struct {
+typedef struct VkSparseImageMemoryBind {
     VkImageSubresource                          subresource;
     VkOffset3D                                  offset;
     VkExtent3D                                  extent;
@@ -1449,13 +1444,13 @@
     VkSparseMemoryBindFlags                     flags;
 } VkSparseImageMemoryBind;
 
-typedef struct {
+typedef struct VkSparseImageMemoryBindInfo {
     VkImage                                     image;
     uint32_t                                    bindCount;
     const VkSparseImageMemoryBind*              pBinds;
 } VkSparseImageMemoryBindInfo;
 
-typedef struct {
+typedef struct VkBindSparseInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     uint32_t                                    waitSemaphoreCount;
@@ -1470,25 +1465,25 @@
     const VkSemaphore*                          pSignalSemaphores;
 } VkBindSparseInfo;
 
-typedef struct {
+typedef struct VkFenceCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkFenceCreateFlags                          flags;
 } VkFenceCreateInfo;
 
-typedef struct {
+typedef struct VkSemaphoreCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkSemaphoreCreateFlags                      flags;
 } VkSemaphoreCreateInfo;
 
-typedef struct {
+typedef struct VkEventCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkEventCreateFlags                          flags;
 } VkEventCreateInfo;
 
-typedef struct {
+typedef struct VkQueryPoolCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkQueryPoolCreateFlags                      flags;
@@ -1497,7 +1492,7 @@
     VkQueryPipelineStatisticFlags               pipelineStatistics;
 } VkQueryPoolCreateInfo;
 
-typedef struct {
+typedef struct VkBufferCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkBufferCreateFlags                         flags;
@@ -1508,7 +1503,7 @@
     const uint32_t*                             pQueueFamilyIndices;
 } VkBufferCreateInfo;
 
-typedef struct {
+typedef struct VkBufferViewCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkBufferViewCreateFlags                     flags;
@@ -1518,7 +1513,7 @@
     VkDeviceSize                                range;
 } VkBufferViewCreateInfo;
 
-typedef struct {
+typedef struct VkImageCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkImageCreateFlags                          flags;
@@ -1536,21 +1531,21 @@
     VkImageLayout                               initialLayout;
 } VkImageCreateInfo;
 
-typedef struct {
+typedef struct VkSubresourceLayout {
     VkDeviceSize                                offset;
     VkDeviceSize                                size;
     VkDeviceSize                                rowPitch;
     VkDeviceSize                                depthPitch;
 } VkSubresourceLayout;
 
-typedef struct {
+typedef struct VkComponentMapping {
     VkComponentSwizzle                          r;
     VkComponentSwizzle                          g;
     VkComponentSwizzle                          b;
     VkComponentSwizzle                          a;
 } VkComponentMapping;
 
-typedef struct {
+typedef struct VkImageSubresourceRange {
     VkImageAspectFlags                          aspectMask;
     uint32_t                                    baseMipLevel;
     uint32_t                                    levelCount;
@@ -1558,7 +1553,7 @@
     uint32_t                                    layerCount;
 } VkImageSubresourceRange;
 
-typedef struct {
+typedef struct VkImageViewCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkImageViewCreateFlags                      flags;
@@ -1569,7 +1564,7 @@
     VkImageSubresourceRange                     subresourceRange;
 } VkImageViewCreateInfo;
 
-typedef struct {
+typedef struct VkShaderModuleCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkShaderModuleCreateFlags                   flags;
@@ -1577,16 +1572,7 @@
     const uint32_t*                             pCode;
 } VkShaderModuleCreateInfo;
 
-typedef struct {
-    VkStructureType                             sType;
-    const void*                                 pNext;
-    VkShaderCreateFlags                         flags;
-    VkShaderModule                              module;
-    const char*                                 pName;
-    VkShaderStageFlagBits                       stage;
-} VkShaderCreateInfo;
-
-typedef struct {
+typedef struct VkPipelineCacheCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkPipelineCacheCreateFlags                  flags;
@@ -1594,41 +1580,43 @@
     const void*                                 pInitialData;
 } VkPipelineCacheCreateInfo;
 
-typedef struct {
+typedef struct VkSpecializationMapEntry {
     uint32_t                                    constantID;
     uint32_t                                    offset;
     size_t                                      size;
 } VkSpecializationMapEntry;
 
-typedef struct {
+typedef struct VkSpecializationInfo {
     uint32_t                                    mapEntryCount;
     const VkSpecializationMapEntry*             pMapEntries;
     size_t                                      dataSize;
     const void*                                 pData;
 } VkSpecializationInfo;
 
-typedef struct {
+typedef struct VkPipelineShaderStageCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkPipelineShaderStageCreateFlags            flags;
-    VkShader                                    shader;
+    VkShaderStageFlagBits                       stage;
+    VkShaderModule                              module;
+    const char*                                 pName;
     const VkSpecializationInfo*                 pSpecializationInfo;
 } VkPipelineShaderStageCreateInfo;
 
-typedef struct {
+typedef struct VkVertexInputBindingDescription {
     uint32_t                                    binding;
     uint32_t                                    stride;
     VkVertexInputRate                           inputRate;
 } VkVertexInputBindingDescription;
 
-typedef struct {
+typedef struct VkVertexInputAttributeDescription {
     uint32_t                                    location;
     uint32_t                                    binding;
     VkFormat                                    format;
     uint32_t                                    offset;
 } VkVertexInputAttributeDescription;
 
-typedef struct {
+typedef struct VkPipelineVertexInputStateCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkPipelineVertexInputStateCreateFlags       flags;
@@ -1638,7 +1626,7 @@
     const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
 } VkPipelineVertexInputStateCreateInfo;
 
-typedef struct {
+typedef struct VkPipelineInputAssemblyStateCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkPipelineInputAssemblyStateCreateFlags     flags;
@@ -1646,14 +1634,14 @@
     VkBool32                                    primitiveRestartEnable;
 } VkPipelineInputAssemblyStateCreateInfo;
 
-typedef struct {
+typedef struct VkPipelineTessellationStateCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkPipelineTesselationStateCreateFlags       flags;
     uint32_t                                    patchControlPoints;
 } VkPipelineTessellationStateCreateInfo;
 
-typedef struct {
+typedef struct VkViewport {
     float                                       x;
     float                                       y;
     float                                       width;
@@ -1662,22 +1650,22 @@
     float                                       maxDepth;
 } VkViewport;
 
-typedef struct {
+typedef struct VkOffset2D {
     int32_t                                     x;
     int32_t                                     y;
 } VkOffset2D;
 
-typedef struct {
+typedef struct VkExtent2D {
     int32_t                                     width;
     int32_t                                     height;
 } VkExtent2D;
 
-typedef struct {
+typedef struct VkRect2D {
     VkOffset2D                                  offset;
     VkExtent2D                                  extent;
 } VkRect2D;
 
-typedef struct {
+typedef struct VkPipelineViewportStateCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkPipelineViewportStateCreateFlags          flags;
@@ -1687,7 +1675,7 @@
     const VkRect2D*                             pScissors;
 } VkPipelineViewportStateCreateInfo;
 
-typedef struct {
+typedef struct VkPipelineRasterizationStateCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkPipelineRasterizationStateCreateFlags     flags;
@@ -1703,7 +1691,7 @@
     float                                       lineWidth;
 } VkPipelineRasterizationStateCreateInfo;
 
-typedef struct {
+typedef struct VkPipelineMultisampleStateCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkPipelineMultisampleStateCreateFlags       flags;
@@ -1715,7 +1703,7 @@
     VkBool32                                    alphaToOneEnable;
 } VkPipelineMultisampleStateCreateInfo;
 
-typedef struct {
+typedef struct VkStencilOpState {
     VkStencilOp                                 failOp;
     VkStencilOp                                 passOp;
     VkStencilOp                                 depthFailOp;
@@ -1725,7 +1713,7 @@
     uint32_t                                    reference;
 } VkStencilOpState;
 
-typedef struct {
+typedef struct VkPipelineDepthStencilStateCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkPipelineDepthStencilStateCreateFlags      flags;
@@ -1740,7 +1728,7 @@
     float                                       maxDepthBounds;
 } VkPipelineDepthStencilStateCreateInfo;
 
-typedef struct {
+typedef struct VkPipelineColorBlendAttachmentState {
     VkBool32                                    blendEnable;
     VkBlendFactor                               srcColorBlendFactor;
     VkBlendFactor                               dstColorBlendFactor;
@@ -1751,7 +1739,7 @@
     VkColorComponentFlags                       colorWriteMask;
 } VkPipelineColorBlendAttachmentState;
 
-typedef struct {
+typedef struct VkPipelineColorBlendStateCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkPipelineColorBlendStateCreateFlags        flags;
@@ -1762,7 +1750,7 @@
     float                                       blendConstants[4];
 } VkPipelineColorBlendStateCreateInfo;
 
-typedef struct {
+typedef struct VkPipelineDynamicStateCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkPipelineDynamicStateCreateFlags           flags;
@@ -1770,7 +1758,7 @@
     const VkDynamicState*                       pDynamicStates;
 } VkPipelineDynamicStateCreateInfo;
 
-typedef struct {
+typedef struct VkGraphicsPipelineCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkPipelineCreateFlags                       flags;
@@ -1792,7 +1780,7 @@
     int32_t                                     basePipelineIndex;
 } VkGraphicsPipelineCreateInfo;
 
-typedef struct {
+typedef struct VkComputePipelineCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkPipelineCreateFlags                       flags;
@@ -1802,13 +1790,13 @@
     int32_t                                     basePipelineIndex;
 } VkComputePipelineCreateInfo;
 
-typedef struct {
+typedef struct VkPushConstantRange {
     VkShaderStageFlags                          stageFlags;
     uint32_t                                    offset;
     uint32_t                                    size;
 } VkPushConstantRange;
 
-typedef struct {
+typedef struct VkPipelineLayoutCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkPipelineLayoutCreateFlags                 flags;
@@ -1818,7 +1806,7 @@
     const VkPushConstantRange*                  pPushConstantRanges;
 } VkPipelineLayoutCreateInfo;
 
-typedef struct {
+typedef struct VkSamplerCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkSamplerCreateFlags                        flags;
@@ -1838,27 +1826,27 @@
     VkBool32                                    unnormalizedCoordinates;
 } VkSamplerCreateInfo;
 
-typedef struct {
+typedef struct VkDescriptorSetLayoutBinding {
     VkDescriptorType                            descriptorType;
     uint32_t                                    arraySize;
     VkShaderStageFlags                          stageFlags;
     const VkSampler*                            pImmutableSamplers;
 } VkDescriptorSetLayoutBinding;
 
-typedef struct {
+typedef struct VkDescriptorSetLayoutCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkDescriptorSetLayoutCreateFlags            flags;
     uint32_t                                    bindingCount;
-    const VkDescriptorSetLayoutBinding*         pBindings;
+    const VkDescriptorSetLayoutBinding*         pBinding;
 } VkDescriptorSetLayoutCreateInfo;
 
-typedef struct {
+typedef struct VkDescriptorPoolSize {
     VkDescriptorType                            type;
     uint32_t                                    descriptorCount;
 } VkDescriptorPoolSize;
 
-typedef struct {
+typedef struct VkDescriptorPoolCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkDescriptorPoolCreateFlags                 flags;
@@ -1867,7 +1855,7 @@
     const VkDescriptorPoolSize*                 pPoolSizes;
 } VkDescriptorPoolCreateInfo;
 
-typedef struct {
+typedef struct VkDescriptorSetAllocateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkDescriptorPool                            descriptorPool;
@@ -1875,19 +1863,19 @@
     const VkDescriptorSetLayout*                pSetLayouts;
 } VkDescriptorSetAllocateInfo;
 
-typedef struct {
+typedef struct VkDescriptorImageInfo {
     VkSampler                                   sampler;
     VkImageView                                 imageView;
     VkImageLayout                               imageLayout;
 } VkDescriptorImageInfo;
 
-typedef struct {
+typedef struct VkDescriptorBufferInfo {
     VkBuffer                                    buffer;
     VkDeviceSize                                offset;
     VkDeviceSize                                range;
 } VkDescriptorBufferInfo;
 
-typedef struct {
+typedef struct VkWriteDescriptorSet {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkDescriptorSet                             dstSet;
@@ -1900,7 +1888,7 @@
     const VkBufferView*                         pTexelBufferView;
 } VkWriteDescriptorSet;
 
-typedef struct {
+typedef struct VkCopyDescriptorSet {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkDescriptorSet                             srcSet;
@@ -1912,7 +1900,7 @@
     uint32_t                                    descriptorCount;
 } VkCopyDescriptorSet;
 
-typedef struct {
+typedef struct VkFramebufferCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkFramebufferCreateFlags                    flags;
@@ -1924,7 +1912,7 @@
     uint32_t                                    layers;
 } VkFramebufferCreateInfo;
 
-typedef struct {
+typedef struct VkAttachmentDescription {
     VkAttachmentDescriptionFlags                flags;
     VkFormat                                    format;
     uint32_t                                    samples;
@@ -1936,12 +1924,12 @@
     VkImageLayout                               finalLayout;
 } VkAttachmentDescription;
 
-typedef struct {
+typedef struct VkAttachmentReference {
     uint32_t                                    attachment;
     VkImageLayout                               layout;
 } VkAttachmentReference;
 
-typedef struct {
+typedef struct VkSubpassDescription {
     VkSubpassDescriptionFlags                   flags;
     VkPipelineBindPoint                         pipelineBindPoint;
     uint32_t                                    inputAttachmentCount;
@@ -1954,17 +1942,17 @@
     const VkAttachmentReference*                pPreserveAttachments;
 } VkSubpassDescription;
 
-typedef struct {
+typedef struct VkSubpassDependency {
     uint32_t                                    srcSubpass;
     uint32_t                                    dstSubpass;
     VkPipelineStageFlags                        srcStageMask;
     VkPipelineStageFlags                        dstStageMask;
-    VkMemoryOutputFlags                         outputMask;
-    VkMemoryInputFlags                          inputMask;
+    VkAccessFlags                               srcAccessMask;
+    VkAccessFlags                               dstAccessMask;
     VkDependencyFlags                           dependencyFlags;
 } VkSubpassDependency;
 
-typedef struct {
+typedef struct VkRenderPassCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkRenderPassCreateFlags                     flags;
@@ -1976,14 +1964,14 @@
     const VkSubpassDependency*                  pDependencies;
 } VkRenderPassCreateInfo;
 
-typedef struct {
+typedef struct VkCommandPoolCreateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkCommandPoolCreateFlags                    flags;
     uint32_t                                    queueFamilyIndex;
 } VkCommandPoolCreateInfo;
 
-typedef struct {
+typedef struct VkCommandBufferAllocateInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkCommandPool                               commandPool;
@@ -1991,7 +1979,7 @@
     uint32_t                                    bufferCount;
 } VkCommandBufferAllocateInfo;
 
-typedef struct {
+typedef struct VkCommandBufferBeginInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkCommandBufferUsageFlags                   flags;
@@ -2000,20 +1988,20 @@
     VkFramebuffer                               framebuffer;
 } VkCommandBufferBeginInfo;
 
-typedef struct {
+typedef struct VkBufferCopy {
     VkDeviceSize                                srcOffset;
     VkDeviceSize                                dstOffset;
     VkDeviceSize                                size;
 } VkBufferCopy;
 
-typedef struct {
+typedef struct VkImageSubresourceLayers {
     VkImageAspectFlags                          aspectMask;
     uint32_t                                    mipLevel;
     uint32_t                                    baseArrayLayer;
     uint32_t                                    layerCount;
 } VkImageSubresourceLayers;
 
-typedef struct {
+typedef struct VkImageCopy {
     VkImageSubresourceLayers                    srcSubresource;
     VkOffset3D                                  srcOffset;
     VkImageSubresourceLayers                    dstSubresource;
@@ -2021,7 +2009,7 @@
     VkExtent3D                                  extent;
 } VkImageCopy;
 
-typedef struct {
+typedef struct VkImageBlit {
     VkImageSubresourceLayers                    srcSubresource;
     VkOffset3D                                  srcOffset;
     VkExtent3D                                  srcExtent;
@@ -2030,7 +2018,7 @@
     VkExtent3D                                  dstExtent;
 } VkImageBlit;
 
-typedef struct {
+typedef struct VkBufferImageCopy {
     VkDeviceSize                                bufferOffset;
     uint32_t                                    bufferRowLength;
     uint32_t                                    bufferImageHeight;
@@ -2039,35 +2027,35 @@
     VkExtent3D                                  imageExtent;
 } VkBufferImageCopy;
 
-typedef union {
+typedef union VkClearColorValue {
     float                                       float32[4];
     int32_t                                     int32[4];
     uint32_t                                    uint32[4];
 } VkClearColorValue;
 
-typedef struct {
+typedef struct VkClearDepthStencilValue {
     float                                       depth;
     uint32_t                                    stencil;
 } VkClearDepthStencilValue;
 
-typedef union {
+typedef union VkClearValue {
     VkClearColorValue                           color;
     VkClearDepthStencilValue                    depthStencil;
 } VkClearValue;
 
-typedef struct {
+typedef struct VkClearAttachment {
     VkImageAspectFlags                          aspectMask;
     uint32_t                                    colorAttachment;
     VkClearValue                                clearValue;
 } VkClearAttachment;
 
-typedef struct {
+typedef struct VkClearRect {
     VkRect2D                                    rect;
     uint32_t                                    baseArrayLayer;
     uint32_t                                    layerCount;
 } VkClearRect;
 
-typedef struct {
+typedef struct VkImageResolve {
     VkImageSubresourceLayers                    srcSubresource;
     VkOffset3D                                  srcOffset;
     VkImageSubresourceLayers                    dstSubresource;
@@ -2075,7 +2063,7 @@
     VkExtent3D                                  extent;
 } VkImageResolve;
 
-typedef struct {
+typedef struct VkRenderPassBeginInfo {
     VkStructureType                             sType;
     const void*                                 pNext;
     VkRenderPass                                renderPass;
@@ -2085,11 +2073,11 @@
     const VkClearValue*                         pClearValues;
 } VkRenderPassBeginInfo;
 
-typedef struct {
+typedef struct VkBufferMemoryBarrier {
     VkStructureType                             sType;
     const void*                                 pNext;
-    VkMemoryOutputFlags                         outputMask;
-    VkMemoryInputFlags                          inputMask;
+    VkAccessFlags                               srcAccessMask;
+    VkAccessFlags                               dstAccessMask;
     uint32_t                                    srcQueueFamilyIndex;
     uint32_t                                    dstQueueFamilyIndex;
     VkBuffer                                    buffer;
@@ -2097,13 +2085,13 @@
     VkDeviceSize                                size;
 } VkBufferMemoryBarrier;
 
-typedef struct {
+typedef struct VkDispatchIndirectCommand {
     uint32_t                                    x;
     uint32_t                                    y;
     uint32_t                                    z;
 } VkDispatchIndirectCommand;
 
-typedef struct {
+typedef struct VkDrawIndexedIndirectCommand {
     uint32_t                                    indexCount;
     uint32_t                                    instanceCount;
     uint32_t                                    firstIndex;
@@ -2111,18 +2099,18 @@
     uint32_t                                    firstInstance;
 } VkDrawIndexedIndirectCommand;
 
-typedef struct {
+typedef struct VkDrawIndirectCommand {
     uint32_t                                    vertexCount;
     uint32_t                                    instanceCount;
     uint32_t                                    firstVertex;
     uint32_t                                    firstInstance;
 } VkDrawIndirectCommand;
 
-typedef struct {
+typedef struct VkImageMemoryBarrier {
     VkStructureType                             sType;
     const void*                                 pNext;
-    VkMemoryOutputFlags                         outputMask;
-    VkMemoryInputFlags                          inputMask;
+    VkAccessFlags                               srcAccessMask;
+    VkAccessFlags                               dstAccessMask;
     VkImageLayout                               oldLayout;
     VkImageLayout                               newLayout;
     uint32_t                                    srcQueueFamilyIndex;
@@ -2131,11 +2119,11 @@
     VkImageSubresourceRange                     subresourceRange;
 } VkImageMemoryBarrier;
 
-typedef struct {
+typedef struct VkMemoryBarrier {
     VkStructureType                             sType;
     const void*                                 pNext;
-    VkMemoryOutputFlags                         outputMask;
-    VkMemoryInputFlags                          inputMask;
+    VkAccessFlags                               srcAccessMask;
+    VkAccessFlags                               dstAccessMask;
 } VkMemoryBarrier;
 
 
@@ -2200,8 +2188,6 @@
 typedef void (VKAPI *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
 typedef VkResult (VKAPI *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
 typedef void (VKAPI *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
-typedef VkResult (VKAPI *PFN_vkCreateShader)(VkDevice device, const VkShaderCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShader* pShader);
-typedef void (VKAPI *PFN_vkDestroyShader)(VkDevice device, VkShader shader, const VkAllocationCallbacks* pAllocator);
 typedef VkResult (VKAPI *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
 typedef void (VKAPI *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
 typedef VkResult (VKAPI *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
@@ -2606,17 +2592,6 @@
     VkShaderModule                              shaderModule,
     const VkAllocationCallbacks*                pAllocator);
 
-VkResult VKAPI vkCreateShader(
-    VkDevice                                    device,
-    const VkShaderCreateInfo*                   pCreateInfo,
-    const VkAllocationCallbacks*                pAllocator,
-    VkShader*                                   pShader);
-
-void VKAPI vkDestroyShader(
-    VkDevice                                    device,
-    VkShader                                    shader,
-    const VkAllocationCallbacks*                pAllocator);
-
 VkResult VKAPI vkCreatePipelineCache(
     VkDevice                                    device,
     const VkPipelineCacheCreateInfo*            pCreateInfo,
@@ -3079,16 +3054,16 @@
     const VkCommandBuffer*                      pCommandBuffers);
 #endif
 
-#define vk_ext_khr_surface 1
+#define vk_khr_surface 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
 
-#define VK_EXT_KHR_SURFACE_REVISION       20
-#define VK_EXT_KHR_SURFACE_EXTENSION_NUMBER 1
-#define VK_EXT_KHR_SURFACE_EXTENSION_NAME "VK_EXT_KHR_surface"
+#define VK_KHR_SURFACE_REVISION           22
+#define VK_KHR_SURFACE_EXTENSION_NUMBER   1
+#define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
 #define VK_ERROR_SURFACE_LOST_KHR         ((VkResult)(int)0xc0000400)
 
 
-typedef enum {
+typedef enum VkSurfaceTransformKHR {
     VK_SURFACE_TRANSFORM_NONE_KHR = 0,
     VK_SURFACE_TRANSFORM_ROT90_KHR = 1,
     VK_SURFACE_TRANSFORM_ROT180_KHR = 2,
@@ -3104,7 +3079,7 @@
     VK_SURFACE_TRANSFORM_MAX_ENUM = 0x7FFFFFFF
 } VkSurfaceTransformKHR;
 
-typedef enum {
+typedef enum VkColorSpaceKHR {
     VK_COLORSPACE_SRGB_NONLINEAR_KHR = 0,
     VK_COLORSPACE_BEGIN_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
     VK_COLORSPACE_END_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
@@ -3112,7 +3087,7 @@
     VK_COLORSPACE_MAX_ENUM = 0x7FFFFFFF
 } VkColorSpaceKHR;
 
-typedef enum {
+typedef enum VkPresentModeKHR {
     VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
     VK_PRESENT_MODE_MAILBOX_KHR = 1,
     VK_PRESENT_MODE_FIFO_KHR = 2,
@@ -3124,7 +3099,7 @@
 } VkPresentModeKHR;
 
 
-typedef enum {
+typedef enum VkSurfaceTransformFlagBitsKHR {
     VK_SURFACE_TRANSFORM_NONE_BIT_KHR = 0x00000001,
     VK_SURFACE_TRANSFORM_ROT90_BIT_KHR = 0x00000002,
     VK_SURFACE_TRANSFORM_ROT180_BIT_KHR = 0x00000004,
@@ -3137,7 +3112,7 @@
 } VkSurfaceTransformFlagBitsKHR;
 typedef VkFlags VkSurfaceTransformFlagsKHR;
 
-typedef enum {
+typedef enum VkCompositeAlphaFlagBitsKHR {
     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
     VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
     VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
@@ -3145,7 +3120,7 @@
 } VkCompositeAlphaFlagBitsKHR;
 typedef VkFlags VkCompositeAlphaFlagsKHR;
 
-typedef struct {
+typedef struct VkSurfaceCapabilitiesKHR {
     uint32_t                                    minImageCount;
     uint32_t                                    maxImageCount;
     VkExtent2D                                  currentExtent;
@@ -3158,7 +3133,7 @@
     VkImageUsageFlags                           supportedUsageFlags;
 } VkSurfaceCapabilitiesKHR;
 
-typedef struct {
+typedef struct VkSurfaceFormatKHR {
     VkFormat                                    format;
     VkColorSpaceKHR                             colorSpace;
 } VkSurfaceFormatKHR;
@@ -3199,19 +3174,19 @@
     VkPresentModeKHR*                           pPresentModes);
 #endif
 
-#define vk_ext_khr_swapchain 1
+#define vk_khr_swapchain 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
 
-#define VK_EXT_KHR_SWAPCHAIN_REVISION     62
-#define VK_EXT_KHR_SWAPCHAIN_EXTENSION_NUMBER 2
-#define VK_EXT_KHR_SWAPCHAIN_EXTENSION_NAME "VK_EXT_KHR_swapchain"
+#define VK_KHR_SWAPCHAIN_REVISION         64
+#define VK_KHR_SWAPCHAIN_EXTENSION_NUMBER 2
+#define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
 #define VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000800)
 #define VK_STRUCTURE_TYPE_PRESENT_INFO_KHR ((VkStructureType)(int)0xc0000801)
 #define VK_IMAGE_LAYOUT_PRESENT_SRC_KHR   ((VkImageLayout)(int)0xc0000802)
 #define VK_SUBOPTIMAL_KHR                 ((VkResult)(int)0x40000403)
 #define VK_ERROR_OUT_OF_DATE_KHR          ((VkResult)(int)0xc0000804)
 
-typedef struct {
+typedef struct VkSwapchainCreateInfoKHR {
     VkStructureType                             sType;
     const void*                                   pNext;
     VkSurfaceKHR                                surface;
@@ -3231,7 +3206,7 @@
     VkBool32                                    clipped;
 } VkSwapchainCreateInfoKHR;
 
-typedef struct {
+typedef struct VkPresentInfoKHR {
     VkStructureType                             sType;
     const void*                                   pNext;
     uint32_t                                    waitSemaphoreCount;
@@ -3277,25 +3252,25 @@
     VkPresentInfoKHR*                            pPresentInfo);
 #endif
 
-#define vk_ext_khr_display 1
+#define vk_khr_display 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
 
-#define VK_EXT_KHR_DISPLAY_REVISION       17
-#define VK_EXT_KHR_DISPLAY_EXTENSION_NUMBER 3
-#define VK_EXT_KHR_DISPLAY_EXTENSION_NAME "VK_EXT_KHR_display"
+#define VK_KHR_DISPLAY_REVISION           18
+#define VK_KHR_DISPLAY_EXTENSION_NUMBER   3
+#define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
 #define VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000c00)
 #define VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000c01)
 
 
-typedef enum {
+typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
     VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000001,
     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000002,
     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000004,
 } VkDisplayPlaneAlphaFlagBitsKHR;
 typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
 
-typedef struct {
+typedef struct VkDisplayPropertiesKHR {
     VkDisplayKHR                                display;
     const char*                                 displayName;
     VkExtent2D                                  physicalDimensions;
@@ -3305,23 +3280,23 @@
     VkBool32                                    persistentContent;
 } VkDisplayPropertiesKHR;
 
-typedef struct {
+typedef struct VkDisplayModeParametersKHR {
     VkExtent2D                                  visibleRegion;
     uint32_t                                    refreshRate;
 } VkDisplayModeParametersKHR;
 
-typedef struct {
+typedef struct VkDisplayModePropertiesKHR {
     VkDisplayModeKHR                            displayMode;
     VkDisplayModeParametersKHR                  parameters;
 } VkDisplayModePropertiesKHR;
 
-typedef struct {
+typedef struct VkDisplayModeCreateInfoKHR {
     VkStructureType                             sType;
     const void*                                   pNext;
     VkDisplayModeParametersKHR                  parameters;
 } VkDisplayModeCreateInfoKHR;
 
-typedef struct {
+typedef struct VkDisplayPlaneCapabilitiesKHR {
     VkDisplayPlaneAlphaFlagsKHR                 supportedAlpha;
     VkOffset2D                                  minSrcPosition;
     VkOffset2D                                  maxSrcPosition;
@@ -3333,12 +3308,12 @@
     VkExtent2D                                  maxDstExtent;
 } VkDisplayPlaneCapabilitiesKHR;
 
-typedef struct {
+typedef struct VkDisplayPlanePropertiesKHR {
     VkDisplayKHR                                currentDisplay;
     uint32_t                                    currentStackIndex;
 } VkDisplayPlanePropertiesKHR;
 
-typedef struct {
+typedef struct VkDisplaySurfaceCreateInfoKHR {
     VkStructureType                             sType;
     const void*                                   pNext;
     VkDisplayModeKHR                            displayMode;
@@ -3399,21 +3374,21 @@
     VkSurfaceKHR*                               pSurface);
 #endif
 
-#define vk_ext_khr_display_swapchain 1
-#define VK_EXT_KHR_DISPLAY_SWAPCHAIN_REVISION 6
-#define VK_EXT_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NUMBER 4
-#define VK_EXT_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_EXT_KHR_display_swapchain"
+#define vk_khr_display_swapchain 1
+#define VK_KHR_DISPLAY_SWAPCHAIN_REVISION 7
+#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NUMBER 4
+#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
 #define VK_STRUCTURE_TYPE_DISPLAY_SWAPCHAIN_CREATE_INFO_KHR ((VkStructureType)(int)0xc0001000)
 #define VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR ((VkStructureType)(int)0xc0001001)
 #define VK_ERROR_INCOMPATIBLE_DISPLAY_KHR ((VkResult)(int)0xc0001002)
 
-typedef struct {
+typedef struct VkDisplaySwapchainCreateInfoKHR {
     VkStructureType                             sType;
     const void*                                   pNext;
     const VkSwapchainCreateInfoKHR*             pNextSwapchainCreateInfo;
 } VkDisplaySwapchainCreateInfoKHR;
 
-typedef struct {
+typedef struct VkDisplayPresentInfoKHR {
     VkStructureType                             sType;
     const void*                                   pNext;
     VkRect2D                                    srcRect;
@@ -3424,12 +3399,12 @@
 
 
 #ifdef VK_USE_PLATFORM_XLIB_KHR
-#define vk_ext_khr_xlib_surface 1
+#define vk_khr_xlib_surface 1
 #include <X11/Xlib.h>
 
-#define VK_EXT_KHR_XLIB_SURFACE_REVISION  3
-#define VK_EXT_KHR_XLIB_SURFACE_EXTENSION_NUMBER 5
-#define VK_EXT_KHR_XLIB_SURFACE_EXTENSION_NAME "vk_ext_khr_xlib_surface"
+#define VK_KHR_XLIB_SURFACE_REVISION      4
+#define VK_KHR_XLIB_SURFACE_EXTENSION_NUMBER 5
+#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "vk_khr_xlib_surface"
 
 typedef VkResult (VKAPI *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, Display* dpy, Window window, VkSurfaceKHR* pSurface);
 typedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID);
@@ -3450,12 +3425,12 @@
 #endif /* VK_USE_PLATFORM_XLIB_KHR */
 
 #ifdef VK_USE_PLATFORM_XCB_KHR
-#define vk_ext_khr_xcb_surface 1
+#define vk_khr_xcb_surface 1
 #include <xcb/xcb.h>
 
-#define VK_EXT_KHR_XCB_SURFACE_REVISION   3
-#define VK_EXT_KHR_XCB_SURFACE_EXTENSION_NUMBER 6
-#define VK_EXT_KHR_XCB_SURFACE_EXTENSION_NAME "VK_EXT_KHR_xcb_surface"
+#define VK_KHR_XCB_SURFACE_REVISION       4
+#define VK_KHR_XCB_SURFACE_EXTENSION_NUMBER 6
+#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
 
 typedef VkResult (VKAPI *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, xcb_connection_t* connection, xcb_window_t window, VkSurfaceKHR* pSurface);
 typedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
@@ -3476,12 +3451,12 @@
 #endif /* VK_USE_PLATFORM_XCB_KHR */
 
 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
-#define vk_ext_khr_wayland_surface 1
+#define vk_khr_wayland_surface 1
 #include <wayland-client.h>
 
-#define VK_EXT_KHR_WAYLAND_SURFACE_REVISION 2
-#define VK_EXT_KHR_WAYLAND_SURFACE_EXTENSION_NUMBER 7
-#define VK_EXT_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_EXT_KHR_wayland_surface"
+#define VK_KHR_WAYLAND_SURFACE_REVISION   3
+#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NUMBER 7
+#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
 
 typedef VkResult (VKAPI *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, struct wl_display* display, struct wl_surface* surface, VkSurfaceKHR* pSurface);
 typedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
@@ -3501,12 +3476,12 @@
 #endif /* VK_USE_PLATFORM_WAYLAND_KHR */
 
 #ifdef VK_USE_PLATFORM_MIR_KHR
-#define vk_ext_khr_mir_surface 1
+#define vk_khr_mir_surface 1
 #include <mir_toolkit/client_types.h>
 
-#define VK_EXT_KHR_MIR_SURFACE_REVISION   2
-#define VK_EXT_KHR_MIR_SURFACE_EXTENSION_NUMBER 8
-#define VK_EXT_KHR_MIR_SURFACE_EXTENSION_NAME "VK_EXT_KHR_mir_surface"
+#define VK_KHR_MIR_SURFACE_REVISION       3
+#define VK_KHR_MIR_SURFACE_EXTENSION_NUMBER 8
+#define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface"
 
 typedef VkResult (VKAPI *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, MirConnection* connection, MirSurface* mirSurface, VkSurfaceKHR* pSurface);
 typedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
@@ -3526,12 +3501,12 @@
 #endif /* VK_USE_PLATFORM_MIR_KHR */
 
 #ifdef VK_USE_PLATFORM_ANDROID_KHR
-#define vk_ext_khr_android_surface 1
+#define vk_khr_android_surface 1
 #include <android/native_window.h>
 
-#define VK_EXT_KHR_ANDROID_SURFACE_REVISION 1
-#define VK_EXT_KHR_ANDROID_SURFACE_EXTENSION_NUMBER 9
-#define VK_EXT_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_EXT_KHR_android_surface"
+#define VK_KHR_ANDROID_SURFACE_REVISION   2
+#define VK_KHR_ANDROID_SURFACE_EXTENSION_NUMBER 9
+#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
 #define VK_ERROR_INVALID_ANDROID_WINDOW_KHR ((VkResult)(int)0xc0002400)
 #define VK_ERROR_ANDROID_WINDOW_IN_USE_KHR ((VkResult)(int)0xc0002401)
 
@@ -3546,12 +3521,12 @@
 #endif /* VK_USE_PLATFORM_ANDROID_KHR */
 
 #ifdef VK_USE_PLATFORM_WIN32_KHR
-#define vk_ext_khr_win32_surface 1
+#define vk_khr_win32_surface 1
 #include <windows.h>
 
-#define VK_EXT_KHR_WIN32_SURFACE_REVISION 2
-#define VK_EXT_KHR_WIN32_SURFACE_EXTENSION_NUMBER 10
-#define VK_EXT_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_EXT_KHR_win32_surface"
+#define VK_KHR_WIN32_SURFACE_REVISION     3
+#define VK_KHR_WIN32_SURFACE_EXTENSION_NUMBER 10
+#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
 
 typedef VkResult (VKAPI *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, HINSTANCE hinstance, HWND hwnd, VkSurfaceKHR* pSurface);
 typedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
diff --git a/vulkan/libvulkan/entry.cpp b/vulkan/libvulkan/entry.cpp
index 2b7faa9..9037e17 100644
--- a/vulkan/libvulkan/entry.cpp
+++ b/vulkan/libvulkan/entry.cpp
@@ -347,16 +347,6 @@
 }
 
 __attribute__((visibility("default")))
-VkResult vkCreateShader(VkDevice device, const VkShaderCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShader* pShader) {
-    return GetVtbl(device).CreateShader(device, pCreateInfo, pAllocator, pShader);
-}
-
-__attribute__((visibility("default")))
-void vkDestroyShader(VkDevice device, VkShader shader, const VkAllocationCallbacks* pAllocator) {
-    GetVtbl(device).DestroyShader(device, shader, pAllocator);
-}
-
-__attribute__((visibility("default")))
 VkResult vkCreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) {
     return GetVtbl(device).CreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
 }
diff --git a/vulkan/libvulkan/entry.cpp.tmpl b/vulkan/libvulkan/entry.cpp.tmpl
index 5aed3df..712558b 100644
--- a/vulkan/libvulkan/entry.cpp.tmpl
+++ b/vulkan/libvulkan/entry.cpp.tmpl
@@ -94,9 +94,9 @@
   {{$ext := GetAnnotation $ "extension"}}
   {{if $ext}}
     {{$extval := index $ext.Arguments 0}}
-    {{if      eq $extval "VK_EXT_KHR_surface"}}true
-    {{else if eq $extval "VK_EXT_KHR_swapchain"}}true
-    {{else if eq $extval "VK_EXT_KHR_android_surface"}}true{{end}}
+    {{if      eq $extval "VK_KHR_surface"}}true
+    {{else if eq $extval "VK_KHR_swapchain"}}true
+    {{else if eq $extval "VK_KHR_android_surface"}}true{{end}}
   {{else}}true{{end}}
 {{end}}
 
diff --git a/vulkan/libvulkan/get_proc_addr.cpp b/vulkan/libvulkan/get_proc_addr.cpp
index f6a6510..7f1f54e 100644
--- a/vulkan/libvulkan/get_proc_addr.cpp
+++ b/vulkan/libvulkan/get_proc_addr.cpp
@@ -142,7 +142,6 @@
     {"vkCreateRenderPass", reinterpret_cast<PFN_vkVoidFunction>(vkCreateRenderPass)},
     {"vkCreateSampler", reinterpret_cast<PFN_vkVoidFunction>(vkCreateSampler)},
     {"vkCreateSemaphore", reinterpret_cast<PFN_vkVoidFunction>(vkCreateSemaphore)},
-    {"vkCreateShader", reinterpret_cast<PFN_vkVoidFunction>(vkCreateShader)},
     {"vkCreateShaderModule", reinterpret_cast<PFN_vkVoidFunction>(vkCreateShaderModule)},
     {"vkCreateSwapchainKHR", reinterpret_cast<PFN_vkVoidFunction>(vkCreateSwapchainKHR)},
     {"vkDestroyBuffer", reinterpret_cast<PFN_vkVoidFunction>(vkDestroyBuffer)},
@@ -163,7 +162,6 @@
     {"vkDestroyRenderPass", reinterpret_cast<PFN_vkVoidFunction>(vkDestroyRenderPass)},
     {"vkDestroySampler", reinterpret_cast<PFN_vkVoidFunction>(vkDestroySampler)},
     {"vkDestroySemaphore", reinterpret_cast<PFN_vkVoidFunction>(vkDestroySemaphore)},
-    {"vkDestroyShader", reinterpret_cast<PFN_vkVoidFunction>(vkDestroyShader)},
     {"vkDestroyShaderModule", reinterpret_cast<PFN_vkVoidFunction>(vkDestroyShaderModule)},
     {"vkDestroySwapchainKHR", reinterpret_cast<PFN_vkVoidFunction>(vkDestroySwapchainKHR)},
     {"vkDeviceWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(vkDeviceWaitIdle)},
@@ -299,7 +297,6 @@
     {"vkCreateRenderPass", offsetof(DeviceVtbl, CreateRenderPass)},
     {"vkCreateSampler", offsetof(DeviceVtbl, CreateSampler)},
     {"vkCreateSemaphore", offsetof(DeviceVtbl, CreateSemaphore)},
-    {"vkCreateShader", offsetof(DeviceVtbl, CreateShader)},
     {"vkCreateShaderModule", offsetof(DeviceVtbl, CreateShaderModule)},
     {"vkCreateSwapchainKHR", offsetof(DeviceVtbl, CreateSwapchainKHR)},
     {"vkDestroyBuffer", offsetof(DeviceVtbl, DestroyBuffer)},
@@ -320,7 +317,6 @@
     {"vkDestroyRenderPass", offsetof(DeviceVtbl, DestroyRenderPass)},
     {"vkDestroySampler", offsetof(DeviceVtbl, DestroySampler)},
     {"vkDestroySemaphore", offsetof(DeviceVtbl, DestroySemaphore)},
-    {"vkDestroyShader", offsetof(DeviceVtbl, DestroyShader)},
     {"vkDestroyShaderModule", offsetof(DeviceVtbl, DestroyShaderModule)},
     {"vkDestroySwapchainKHR", offsetof(DeviceVtbl, DestroySwapchainKHR)},
     {"vkDeviceWaitIdle", offsetof(DeviceVtbl, DeviceWaitIdle)},
@@ -725,16 +721,6 @@
         ALOGE("missing device proc: %s", "vkDestroyShaderModule");
         success = false;
     }
-    vtbl.CreateShader = reinterpret_cast<PFN_vkCreateShader>(get_proc_addr(device, "vkCreateShader"));
-    if (UNLIKELY(!vtbl.CreateShader)) {
-        ALOGE("missing device proc: %s", "vkCreateShader");
-        success = false;
-    }
-    vtbl.DestroyShader = reinterpret_cast<PFN_vkDestroyShader>(get_proc_addr(device, "vkDestroyShader"));
-    if (UNLIKELY(!vtbl.DestroyShader)) {
-        ALOGE("missing device proc: %s", "vkDestroyShader");
-        success = false;
-    }
     vtbl.CreatePipelineCache = reinterpret_cast<PFN_vkCreatePipelineCache>(get_proc_addr(device, "vkCreatePipelineCache"));
     if (UNLIKELY(!vtbl.CreatePipelineCache)) {
         ALOGE("missing device proc: %s", "vkCreatePipelineCache");
@@ -1166,7 +1152,7 @@
     vtbl.QueueSignalNativeFenceANDROID = reinterpret_cast<PFN_vkQueueSignalNativeFenceANDROID>(get_proc_addr(device, "vkQueueSignalNativeFenceANDROID"));
     if (!((!vtbl.AcquireImageANDROID && !vtbl.QueueSignalReleaseImageANDROID && vtbl.ImportNativeFenceANDROID && vtbl.QueueSignalNativeFenceANDROID) ||
     (vtbl.AcquireImageANDROID && vtbl.QueueSignalReleaseImageANDROID && !vtbl.ImportNativeFenceANDROID && !vtbl.QueueSignalNativeFenceANDROID))) {
-        ALOGE("driver doesn't support exactly one of old- or new-style VK_EXT_ANDROID_native_buffer commands");
+        ALOGE("driver doesn't support exactly one of old- or new-style VK_ANDROID_native_buffer commands");
         success = false;
     }
     // clang-format on
diff --git a/vulkan/libvulkan/get_proc_addr.cpp.tmpl b/vulkan/libvulkan/get_proc_addr.cpp.tmpl
index 217647f..aad177d 100644
--- a/vulkan/libvulkan/get_proc_addr.cpp.tmpl
+++ b/vulkan/libvulkan/get_proc_addr.cpp.tmpl
@@ -255,7 +255,7 @@
     vtbl.QueueSignalNativeFenceANDROID = reinterpret_cast<PFN_vkQueueSignalNativeFenceANDROID>(get_proc_addr(device, "vkQueueSignalNativeFenceANDROID"));
     if (!((!vtbl.AcquireImageANDROID && !vtbl.QueueSignalReleaseImageANDROID && vtbl.ImportNativeFenceANDROID && vtbl.QueueSignalNativeFenceANDROID) ||
           (vtbl.AcquireImageANDROID && vtbl.QueueSignalReleaseImageANDROID && !vtbl.ImportNativeFenceANDROID && !vtbl.QueueSignalNativeFenceANDROID))) {
-        ALOGE("driver doesn't support exactly one of old- or new-style VK_EXT_ANDROID_native_buffer commands");
+        ALOGE("driver doesn't support exactly one of old- or new-style VK_ANDROID_native_buffer commands");
         success = false;
     }
     // clang-format on
@@ -277,13 +277,13 @@
 */}}
 {{define "IsUnsupportedExtension"}}
   {{$ext := index $.Arguments 0}}
-  {{     if eq $ext "VK_EXT_KHR_display"}}true
-  {{else if eq $ext "VK_EXT_KHR_display_swapchain"}}true
-  {{else if eq $ext "VK_EXT_KHR_xlib_surface"}}true
-  {{else if eq $ext "VK_EXT_KHR_xcb_surface"}}true
-  {{else if eq $ext "VK_EXT_KHR_wayland_surface"}}true
-  {{else if eq $ext "VK_EXT_KHR_mir_surface"}}true
-  {{else if eq $ext "VK_EXT_KHR_win32_surface"}}true
+  {{     if eq $ext "VK_KHR_display"}}true
+  {{else if eq $ext "VK_KHR_display_swapchain"}}true
+  {{else if eq $ext "VK_KHR_xlib_surface"}}true
+  {{else if eq $ext "VK_KHR_xcb_surface"}}true
+  {{else if eq $ext "VK_KHR_wayland_surface"}}true
+  {{else if eq $ext "VK_KHR_mir_surface"}}true
+  {{else if eq $ext "VK_KHR_win32_surface"}}true
   {{end}}
 {{end}}
 
diff --git a/vulkan/libvulkan/loader.h b/vulkan/libvulkan/loader.h
index bf71c8f..5765d65 100644
--- a/vulkan/libvulkan/loader.h
+++ b/vulkan/libvulkan/loader.h
@@ -20,7 +20,7 @@
 #define VK_PROTOTYPES
 #define VK_USE_PLATFORM_ANDROID_KHR
 #include <vulkan/vulkan.h>
-#include <vulkan/vk_ext_android_native_buffer.h>
+#include <vulkan/vk_android_native_buffer.h>
 
 namespace vulkan {
 
@@ -105,8 +105,6 @@
     PFN_vkDestroyImageView DestroyImageView;
     PFN_vkCreateShaderModule CreateShaderModule;
     PFN_vkDestroyShaderModule DestroyShaderModule;
-    PFN_vkCreateShader CreateShader;
-    PFN_vkDestroyShader DestroyShader;
     PFN_vkCreatePipelineCache CreatePipelineCache;
     PFN_vkDestroyPipelineCache DestroyPipelineCache;
     PFN_vkGetPipelineCacheData GetPipelineCacheData;
diff --git a/vulkan/nulldrv/null_driver.cpp b/vulkan/nulldrv/null_driver.cpp
index 85d018b..e75eb3a 100644
--- a/vulkan/nulldrv/null_driver.cpp
+++ b/vulkan/nulldrv/null_driver.cpp
@@ -81,7 +81,6 @@
     kRenderPass,
     kSampler,
     kSemaphore,
-    kShader,
     kShaderModule,
 
     kNumTypes
@@ -705,14 +704,6 @@
     return VK_SUCCESS;
 }
 
-VkResult CreateShader(VkDevice device,
-                      const VkShaderCreateInfo*,
-                      const VkAllocationCallbacks* /*allocator*/,
-                      VkShader* shader) {
-    *shader = AllocHandle(device, HandleType::kShader);
-    return VK_SUCCESS;
-}
-
 VkResult CreateShaderModule(VkDevice device,
                             const VkShaderModuleCreateInfo*,
                             const VkAllocationCallbacks* /*allocator*/,
@@ -884,9 +875,6 @@
 void DestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* allocator) {
 }
 
-void DestroyShader(VkDevice device, VkShader shader, const VkAllocationCallbacks* allocator) {
-}
-
 void DestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* allocator) {
 }
 
diff --git a/vulkan/nulldrv/null_driver.h b/vulkan/nulldrv/null_driver.h
index 91b8d34..6d14e57 100644
--- a/vulkan/nulldrv/null_driver.h
+++ b/vulkan/nulldrv/null_driver.h
@@ -19,7 +19,7 @@
 
 #define VK_PROTOTYPES
 #include <vulkan/vulkan.h>
-#include <vulkan/vk_ext_android_native_buffer.h>
+#include <vulkan/vk_android_native_buffer.h>
 
 namespace null_driver {
 
@@ -87,8 +87,6 @@
 void DestroyImageView(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* allocator);
 VkResult CreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* allocator, VkShaderModule* pShaderModule);
 void DestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* allocator);
-VkResult CreateShader(VkDevice device, const VkShaderCreateInfo* pCreateInfo, const VkAllocationCallbacks* allocator, VkShader* pShader);
-void DestroyShader(VkDevice device, VkShader shader, const VkAllocationCallbacks* allocator);
 VkResult CreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* allocator, VkPipelineCache* pPipelineCache);
 void DestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* allocator);
 VkResult GetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
diff --git a/vulkan/nulldrv/null_driver_gen.cpp b/vulkan/nulldrv/null_driver_gen.cpp
index 9b1b042..c732131 100644
--- a/vulkan/nulldrv/null_driver_gen.cpp
+++ b/vulkan/nulldrv/null_driver_gen.cpp
@@ -135,7 +135,6 @@
     {"vkCreateRenderPass", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateRenderPass>(CreateRenderPass))},
     {"vkCreateSampler", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateSampler>(CreateSampler))},
     {"vkCreateSemaphore", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateSemaphore>(CreateSemaphore))},
-    {"vkCreateShader", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateShader>(CreateShader))},
     {"vkCreateShaderModule", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateShaderModule>(CreateShaderModule))},
     {"vkDestroyBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyBuffer>(DestroyBuffer))},
     {"vkDestroyBufferView", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyBufferView>(DestroyBufferView))},
@@ -155,7 +154,6 @@
     {"vkDestroyRenderPass", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyRenderPass>(DestroyRenderPass))},
     {"vkDestroySampler", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroySampler>(DestroySampler))},
     {"vkDestroySemaphore", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroySemaphore>(DestroySemaphore))},
-    {"vkDestroyShader", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyShader>(DestroyShader))},
     {"vkDestroyShaderModule", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyShaderModule>(DestroyShaderModule))},
     {"vkDeviceWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDeviceWaitIdle>(DeviceWaitIdle))},
     {"vkEndCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEndCommandBuffer>(EndCommandBuffer))},