vulkan: Update from version 0.193.0 to 0.194.0

Change-Id: I6a4508a61414375112bae3ffd16b0490ce3e4294
(cherry picked from commit 83c7f0486d495e9e7ab6f901ddeed931fff9ebad)
diff --git a/vulkan/api/vulkan.api b/vulkan/api/vulkan.api
index bd3049c..418318a 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 193
+define VERSION_MINOR 194
 define VERSION_PATCH 0
 
 // API limits
@@ -170,8 +170,8 @@
 }
 
 enum VkImageTiling {
-    VK_IMAGE_TILING_LINEAR                                  = 0x00000000,
-    VK_IMAGE_TILING_OPTIMAL                                 = 0x00000001,
+    VK_IMAGE_TILING_OPTIMAL                                 = 0x00000000,
+    VK_IMAGE_TILING_LINEAR                                  = 0x00000001,
 }
 
 enum VkImageViewType {
@@ -190,12 +190,13 @@
 }
 
 enum VkChannelSwizzle {
-    VK_CHANNEL_SWIZZLE_ZERO                                 = 0x00000000,
-    VK_CHANNEL_SWIZZLE_ONE                                  = 0x00000001,
-    VK_CHANNEL_SWIZZLE_R                                    = 0x00000002,
-    VK_CHANNEL_SWIZZLE_G                                    = 0x00000003,
-    VK_CHANNEL_SWIZZLE_B                                    = 0x00000004,
-    VK_CHANNEL_SWIZZLE_A                                    = 0x00000005,
+    VK_CHANNEL_SWIZZLE_IDENTITY                             = 0x00000000,
+    VK_CHANNEL_SWIZZLE_ZERO                                 = 0x00000001,
+    VK_CHANNEL_SWIZZLE_ONE                                  = 0x00000002,
+    VK_CHANNEL_SWIZZLE_R                                    = 0x00000003,
+    VK_CHANNEL_SWIZZLE_G                                    = 0x00000004,
+    VK_CHANNEL_SWIZZLE_B                                    = 0x00000005,
+    VK_CHANNEL_SWIZZLE_A                                    = 0x00000006,
 }
 
 enum VkDescriptorType {
@@ -228,8 +229,8 @@
 }
 
 enum VkPipelineBindPoint {
-    VK_PIPELINE_BIND_POINT_COMPUTE                          = 0x00000000,
-    VK_PIPELINE_BIND_POINT_GRAPHICS                         = 0x00000001,
+    VK_PIPELINE_BIND_POINT_GRAPHICS                         = 0x00000000,
+    VK_PIPELINE_BIND_POINT_COMPUTE                          = 0x00000001,
 }
 
 enum VkPrimitiveTopology {
@@ -268,11 +269,11 @@
 }
 
 enum VkSamplerAddressMode {
-    VK_SAMPLER_ADDRESS_MODE_WRAP                            = 0x00000000,
-    VK_SAMPLER_ADDRESS_MODE_MIRROR                          = 0x00000001,
-    VK_SAMPLER_ADDRESS_MODE_CLAMP                           = 0x00000002,
-    VK_SAMPLER_ADDRESS_MODE_MIRROR_ONCE                     = 0x00000003,
-    VK_SAMPLER_ADDRESS_MODE_CLAMP_BORDER                    = 0x00000004,
+    VK_SAMPLER_ADDRESS_MODE_REPEAT                          = 0x00000000,
+    VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT                 = 0x00000001,
+    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE                   = 0x00000002,
+    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER                 = 0x00000003,
+    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE            = 0x00000004,
 }
 
 enum VkCompareOp {
@@ -287,16 +288,9 @@
 }
 
 enum VkFillMode {
-    VK_FILL_MODE_POINTS                                     = 0x00000000,
+    VK_FILL_MODE_SOLID                                      = 0x00000000,
     VK_FILL_MODE_WIREFRAME                                  = 0x00000001,
-    VK_FILL_MODE_SOLID                                      = 0x00000002,
-}
-
-enum VkCullMode {
-    VK_CULL_MODE_NONE                                       = 0x00000000,
-    VK_CULL_MODE_FRONT                                      = 0x00000001,
-    VK_CULL_MODE_BACK                                       = 0x00000002,
-    VK_CULL_MODE_FRONT_AND_BACK                             = 0x00000003,
+    VK_FILL_MODE_POINTS                                     = 0x00000002,
 }
 
 enum VkFrontFace {
@@ -570,57 +564,54 @@
 /// Structure type enumerant
 enum VkStructureType {
     VK_STRUCTURE_TYPE_APPLICATION_INFO                          = 0,
-    VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO                        = 1,
-    VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO                         = 2,
-    VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO                    = 3,
-    VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO                 = 4,
-    VK_STRUCTURE_TYPE_SHADER_CREATE_INFO                        = 5,
-    VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO              = 6,
-    VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO                       = 7,
-    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO         = 8,
-    VK_STRUCTURE_TYPE_CMD_BUFFER_ALLOC_INFO                     = 9,
+    VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO                      = 1,
+    VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO                  = 2,
+    VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO                        = 3,
+    VK_STRUCTURE_TYPE_SUBMIT_INFO                               = 4,
+    VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO                         = 5,
+    VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE                       = 6,
+    VK_STRUCTURE_TYPE_BIND_SPARSE_INFO                          = 7,
+    VK_STRUCTURE_TYPE_FENCE_CREATE_INFO                         = 8,
+    VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO                     = 9,
     VK_STRUCTURE_TYPE_EVENT_CREATE_INFO                         = 10,
-    VK_STRUCTURE_TYPE_FENCE_CREATE_INFO                         = 11,
-    VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO                     = 12,
-    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO                    = 13,
-    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO         = 14,
-    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO             = 15,
-    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO   = 16,
-    VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 17,
-    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO   = 18,
-    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO       = 19,
-    VK_STRUCTURE_TYPE_PIPELINE_RASTER_STATE_CREATE_INFO         = 20,
-    VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO    = 21,
-    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO    = 22,
-    VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO  = 23,
-    VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO                         = 24,
-    VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO                        = 25,
-    VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO                   = 26,
-    VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO                   = 27,
-    VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO                     = 28,
-    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO                   = 29,
-    VK_STRUCTURE_TYPE_MEMORY_BARRIER                            = 30,
-    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER                     = 31,
-    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER                      = 32,
-    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO               = 33,
-    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET                      = 34,
-    VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET                       = 35,
-    VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO                      = 36,
-    VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO               = 37,
-    VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE                       = 38,
-    VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO                = 39,
-    VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION                    = 40,
-    VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION                       = 41,
-    VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY                        = 42,
+    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO                    = 11,
+    VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO                        = 12,
+    VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO                   = 13,
+    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_RASTER_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_CMD_POOL_CREATE_INFO                      = 40,
+    VK_STRUCTURE_TYPE_CMD_BUFFER_ALLOC_INFO                     = 41,
+    VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO                     = 42,
     VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO                    = 43,
-    VK_STRUCTURE_TYPE_CMD_POOL_CREATE_INFO                      = 44,
-    VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO                  = 45,
-    VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO        = 46,
-    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO                 = 47,
-    VK_STRUCTURE_TYPE_SUBMIT_INFO                               = 48,
-    VK_STRUCTURE_TYPE_LAYER_INSTANCE_CREATE_INFO                = 49,
-    VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO                  = 50,
-    VK_STRUCTURE_TYPE_BIND_SPARSE_INFO                          = 51,
+    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,
 
     //@extension("VK_EXT_KHR_swapchain")
     VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR                 = 0xc0000801,
@@ -802,6 +793,7 @@
     VK_SHADER_STAGE_GEOMETRY_BIT                            = 0x00000008,
     VK_SHADER_STAGE_FRAGMENT_BIT                            = 0x00000010,
     VK_SHADER_STAGE_COMPUTE_BIT                             = 0x00000020,
+    VK_SHADER_STAGE_ALL_GRAPHICS                            = 0x0000001F,
 
     VK_SHADER_STAGE_ALL                                     = 0x7FFFFFFF,
 }
@@ -1040,6 +1032,7 @@
     VK_STENCIL_FACE_NONE                                    = 0x00000000,   /// No faces
     VK_STENCIL_FACE_FRONT_BIT                               = 0x00000001,   /// Front face
     VK_STENCIL_FACE_BACK_BIT                                = 0x00000002,   /// Back face
+    VK_STENCIL_FRONT_AND_BACK                               = 0x00000003,
 }
 
 /// Instance creation flags
@@ -1153,6 +1146,15 @@
     VK_DEPENDENCY_BY_REGION_BIT                             = 0x00000001,
 }
 
+/// Cull mode flags
+type VkFlags VkCullModeFlags
+bitfield VkCullModeFlagBits {
+    VK_CULL_MODE_NONE                                       = 0x00000000,
+    VK_CULL_MODE_FRONT_BIT                                  = 0x00000001,
+    VK_CULL_MODE_BACK_BIT                                   = 0x00000002,
+    VK_CULL_MODE_FRONT_AND_BACK                             = 0x00000003,
+}
+
 @extension("VK_EXT_KHR_swapchain")
 type VkFlags VkSurfaceTransformFlagsKHR
 @extension("VK_EXT_KHR_swapchain")
@@ -1777,7 +1779,7 @@
     VkBool32                                    depthClampEnable
     VkBool32                                    rasterizerDiscardEnable
     VkFillMode                                  fillMode                   /// optional (GL45)
-    VkCullMode                                  cullMode
+    VkCullModeFlags                             cullMode
     VkFrontFace                                 frontFace
     VkBool32                                    depthBiasEnable
     f32                                         depthBiasConstantFactor
@@ -1981,8 +1983,6 @@
 }
 
 class VkAttachmentDescription {
-    VkStructureType                             sType           /// Must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION
-    const void*                                 pNext           /// Pointer to next structure
     VkAttachmentDescriptionFlags                flags
     VkFormat                                    format
     u32                                         samples
@@ -2000,8 +2000,6 @@
 }
 
 class VkSubpassDescription {
-    VkStructureType                             sType              /// Must be VK_STRUCTURE_SUBPASS_DESCRIPTION
-    const void*                                 pNext              /// Pointer to next structure
     VkSubpassDescriptionFlags                   flags
     VkPipelineBindPoint                         pipelineBindPoint  /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
     u32                                         inputAttachmentCount
@@ -2009,14 +2007,12 @@
     u32                                         colorAttachmentCount
     const VkAttachmentReference*                pColorAttachments
     const VkAttachmentReference*                pResolveAttachments
-    VkAttachmentReference                       depthStencilAttachment
+    const VkAttachmentReference*                pDepthStencilAttachment
     u32                                         preserveAttachmentCount
     const VkAttachmentReference*                pPreserveAttachments
 }
 
 class VkSubpassDependency {
-    VkStructureType                             sType      /// Must be VK_STRUCTURE_SUBPASS_DEPENDENCY
-    const void*                                 pNext      /// Pointer to next structure
     u32                                         srcSubpass
     u32                                         destSubpass
     VkPipelineStageFlags                        srcStageMask
@@ -2202,7 +2198,8 @@
     u32                                         maxColorAttachments                       /// max num of framebuffer color attachments
 
     u32                                         maxSampledImageColorSamples               /// max num of color samples for a non-integer sampled image
-    u32                                         maxSampledImageDepthSamples               /// max num of depth/stencil samples for a sampled image
+    u32                                         maxSampledImageDepthSamples               /// max num of depth samples for a sampled image
+    u32                                         maxSampledImageStencilSamples             /// max num of stencil samples for a sampled image
     u32                                         maxSampledImageIntegerSamples             /// max num of samples supported for an integer image
     u32                                         maxStorageImageSamples                    /// max num of samples for a storage image
     u32                                         maxSampleMaskWords                        /// max num of sample mask words
diff --git a/vulkan/include/vulkan/vulkan.h b/vulkan/include/vulkan/vulkan.h
index 8442325..af0ccdf 100644
--- a/vulkan/include/vulkan/vulkan.h
+++ b/vulkan/include/vulkan/vulkan.h
@@ -41,7 +41,7 @@
     ((major << 22) | (minor << 12) | patch)
 
 // Vulkan API version supported by this file
-#define VK_API_VERSION VK_MAKE_VERSION(0, 193, 0)
+#define VK_API_VERSION VK_MAKE_VERSION(0, 194, 0)
 
 
 #define VK_NULL_HANDLE 0
@@ -132,60 +132,57 @@
 
 typedef enum {
     VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
-    VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 1,
-    VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO = 2,
-    VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 3,
-    VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 4,
-    VK_STRUCTURE_TYPE_SHADER_CREATE_INFO = 5,
-    VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 6,
-    VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 7,
-    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 8,
-    VK_STRUCTURE_TYPE_CMD_BUFFER_ALLOC_INFO = 9,
+    VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
+    VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
+    VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
+    VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
+    VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO = 5,
+    VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
+    VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
+    VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
+    VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
     VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
-    VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 11,
-    VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 12,
-    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 13,
-    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 14,
-    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 15,
-    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 16,
-    VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 17,
-    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 18,
-    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 19,
-    VK_STRUCTURE_TYPE_PIPELINE_RASTER_STATE_CREATE_INFO = 20,
-    VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 21,
-    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 22,
-    VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 23,
-    VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 24,
-    VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 25,
-    VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 26,
-    VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 27,
-    VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO = 28,
-    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 29,
-    VK_STRUCTURE_TYPE_MEMORY_BARRIER = 30,
-    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 31,
-    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 32,
-    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
-    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 34,
-    VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 35,
-    VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 36,
-    VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 37,
-    VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 38,
-    VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 39,
-    VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION = 40,
-    VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION = 41,
-    VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY = 42,
+    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
+    VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
+    VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
+    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_RASTER_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_CMD_POOL_CREATE_INFO = 40,
+    VK_STRUCTURE_TYPE_CMD_BUFFER_ALLOC_INFO = 41,
+    VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO = 42,
     VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
-    VK_STRUCTURE_TYPE_CMD_POOL_CREATE_INFO = 44,
-    VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 45,
-    VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 46,
-    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO = 47,
-    VK_STRUCTURE_TYPE_SUBMIT_INFO = 48,
-    VK_STRUCTURE_TYPE_LAYER_INSTANCE_CREATE_INFO = 49,
-    VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO = 50,
-    VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 51,
+    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_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
-    VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO,
-    VK_STRUCTURE_TYPE_NUM = (VK_STRUCTURE_TYPE_BIND_SPARSE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
+    VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO,
+    VK_STRUCTURE_TYPE_NUM = (VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
     VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkStructureType;
 
@@ -401,11 +398,11 @@
 } VkImageType;
 
 typedef enum {
-    VK_IMAGE_TILING_LINEAR = 0,
-    VK_IMAGE_TILING_OPTIMAL = 1,
-    VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_LINEAR,
-    VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_OPTIMAL,
-    VK_IMAGE_TILING_NUM = (VK_IMAGE_TILING_OPTIMAL - VK_IMAGE_TILING_LINEAR + 1),
+    VK_IMAGE_TILING_OPTIMAL = 0,
+    VK_IMAGE_TILING_LINEAR = 1,
+    VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
+    VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
+    VK_IMAGE_TILING_NUM = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
     VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
 } VkImageTiling;
 
@@ -471,15 +468,16 @@
 } VkImageViewType;
 
 typedef enum {
-    VK_CHANNEL_SWIZZLE_ZERO = 0,
-    VK_CHANNEL_SWIZZLE_ONE = 1,
-    VK_CHANNEL_SWIZZLE_R = 2,
-    VK_CHANNEL_SWIZZLE_G = 3,
-    VK_CHANNEL_SWIZZLE_B = 4,
-    VK_CHANNEL_SWIZZLE_A = 5,
-    VK_CHANNEL_SWIZZLE_BEGIN_RANGE = VK_CHANNEL_SWIZZLE_ZERO,
+    VK_CHANNEL_SWIZZLE_IDENTITY = 0,
+    VK_CHANNEL_SWIZZLE_ZERO = 1,
+    VK_CHANNEL_SWIZZLE_ONE = 2,
+    VK_CHANNEL_SWIZZLE_R = 3,
+    VK_CHANNEL_SWIZZLE_G = 4,
+    VK_CHANNEL_SWIZZLE_B = 5,
+    VK_CHANNEL_SWIZZLE_A = 6,
+    VK_CHANNEL_SWIZZLE_BEGIN_RANGE = VK_CHANNEL_SWIZZLE_IDENTITY,
     VK_CHANNEL_SWIZZLE_END_RANGE = VK_CHANNEL_SWIZZLE_A,
-    VK_CHANNEL_SWIZZLE_NUM = (VK_CHANNEL_SWIZZLE_A - VK_CHANNEL_SWIZZLE_ZERO + 1),
+    VK_CHANNEL_SWIZZLE_NUM = (VK_CHANNEL_SWIZZLE_A - VK_CHANNEL_SWIZZLE_IDENTITY + 1),
     VK_CHANNEL_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
 } VkChannelSwizzle;
 
@@ -511,27 +509,16 @@
 } VkPrimitiveTopology;
 
 typedef enum {
-    VK_FILL_MODE_POINTS = 0,
+    VK_FILL_MODE_SOLID = 0,
     VK_FILL_MODE_WIREFRAME = 1,
-    VK_FILL_MODE_SOLID = 2,
-    VK_FILL_MODE_BEGIN_RANGE = VK_FILL_MODE_POINTS,
-    VK_FILL_MODE_END_RANGE = VK_FILL_MODE_SOLID,
-    VK_FILL_MODE_NUM = (VK_FILL_MODE_SOLID - VK_FILL_MODE_POINTS + 1),
+    VK_FILL_MODE_POINTS = 2,
+    VK_FILL_MODE_BEGIN_RANGE = VK_FILL_MODE_SOLID,
+    VK_FILL_MODE_END_RANGE = VK_FILL_MODE_POINTS,
+    VK_FILL_MODE_NUM = (VK_FILL_MODE_POINTS - VK_FILL_MODE_SOLID + 1),
     VK_FILL_MODE_MAX_ENUM = 0x7FFFFFFF
 } VkFillMode;
 
 typedef enum {
-    VK_CULL_MODE_NONE = 0,
-    VK_CULL_MODE_FRONT = 1,
-    VK_CULL_MODE_BACK = 2,
-    VK_CULL_MODE_FRONT_AND_BACK = 3,
-    VK_CULL_MODE_BEGIN_RANGE = VK_CULL_MODE_NONE,
-    VK_CULL_MODE_END_RANGE = VK_CULL_MODE_FRONT_AND_BACK,
-    VK_CULL_MODE_NUM = (VK_CULL_MODE_FRONT_AND_BACK - VK_CULL_MODE_NONE + 1),
-    VK_CULL_MODE_MAX_ENUM = 0x7FFFFFFF
-} VkCullMode;
-
-typedef enum {
     VK_FRONT_FACE_CCW = 0,
     VK_FRONT_FACE_CW = 1,
     VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_CCW,
@@ -667,14 +654,14 @@
 } VkSamplerMipmapMode;
 
 typedef enum {
-    VK_SAMPLER_ADDRESS_MODE_WRAP = 0,
-    VK_SAMPLER_ADDRESS_MODE_MIRROR = 1,
-    VK_SAMPLER_ADDRESS_MODE_CLAMP = 2,
-    VK_SAMPLER_ADDRESS_MODE_MIRROR_ONCE = 3,
-    VK_SAMPLER_ADDRESS_MODE_CLAMP_BORDER = 4,
-    VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_WRAP,
-    VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_BORDER,
-    VK_SAMPLER_ADDRESS_MODE_NUM = (VK_SAMPLER_ADDRESS_MODE_CLAMP_BORDER - VK_SAMPLER_ADDRESS_MODE_WRAP + 1),
+    VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
+    VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
+    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
+    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
+    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
+    VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
+    VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
+    VK_SAMPLER_ADDRESS_MODE_NUM = (VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
     VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
 } VkSamplerAddressMode;
 
@@ -729,11 +716,11 @@
 } VkAttachmentStoreOp;
 
 typedef enum {
-    VK_PIPELINE_BIND_POINT_COMPUTE = 0,
-    VK_PIPELINE_BIND_POINT_GRAPHICS = 1,
-    VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
-    VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
-    VK_PIPELINE_BIND_POINT_NUM = (VK_PIPELINE_BIND_POINT_GRAPHICS - VK_PIPELINE_BIND_POINT_COMPUTE + 1),
+    VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
+    VK_PIPELINE_BIND_POINT_COMPUTE = 1,
+    VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
+    VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
+    VK_PIPELINE_BIND_POINT_NUM = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
     VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
 } VkPipelineBindPoint;
 
@@ -922,6 +909,7 @@
     VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
     VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
     VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
+    VK_SHADER_STAGE_ALL_GRAPHICS = 0x1F,
     VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
 } VkShaderStageFlagBits;
 typedef VkFlags VkPipelineCacheCreateFlags;
@@ -938,6 +926,14 @@
 typedef VkFlags VkPipelineTesselationStateCreateFlags;
 typedef VkFlags VkPipelineViewportStateCreateFlags;
 typedef VkFlags VkPipelineRasterStateCreateFlags;
+
+typedef enum {
+    VK_CULL_MODE_NONE = 0,
+    VK_CULL_MODE_FRONT_BIT = 0x00000001,
+    VK_CULL_MODE_BACK_BIT = 0x00000002,
+    VK_CULL_MODE_FRONT_AND_BACK = 0x3,
+} VkCullModeFlagBits;
+typedef VkFlags VkCullModeFlags;
 typedef VkFlags VkPipelineMultisampleStateCreateFlags;
 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
@@ -1044,6 +1040,7 @@
     VK_STENCIL_FACE_NONE = 0,
     VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
     VK_STENCIL_FACE_BACK_BIT = 0x00000002,
+    VK_STENCIL_FRONT_AND_BACK = 0x3,
 } VkStencilFaceFlagBits;
 typedef VkFlags VkStencilFaceFlags;
 
@@ -1270,6 +1267,7 @@
     uint32_t                                    maxColorAttachments;
     uint32_t                                    maxSampledImageColorSamples;
     uint32_t                                    maxSampledImageDepthSamples;
+    uint32_t                                    maxSampledImageStencilSamples;
     uint32_t                                    maxSampledImageIntegerSamples;
     uint32_t                                    maxStorageImageSamples;
     uint32_t                                    maxSampleMaskWords;
@@ -1698,7 +1696,7 @@
     VkBool32                                    depthClampEnable;
     VkBool32                                    rasterizerDiscardEnable;
     VkFillMode                                  fillMode;
-    VkCullMode                                  cullMode;
+    VkCullModeFlags                             cullMode;
     VkFrontFace                                 frontFace;
     VkBool32                                    depthBiasEnable;
     float                                       depthBiasConstantFactor;
@@ -1929,8 +1927,6 @@
 } VkFramebufferCreateInfo;
 
 typedef struct {
-    VkStructureType                             sType;
-    const void*                                 pNext;
     VkAttachmentDescriptionFlags                flags;
     VkFormat                                    format;
     uint32_t                                    samples;
@@ -1948,8 +1944,6 @@
 } VkAttachmentReference;
 
 typedef struct {
-    VkStructureType                             sType;
-    const void*                                 pNext;
     VkSubpassDescriptionFlags                   flags;
     VkPipelineBindPoint                         pipelineBindPoint;
     uint32_t                                    inputAttachmentCount;
@@ -1957,14 +1951,12 @@
     uint32_t                                    colorAttachmentCount;
     const VkAttachmentReference*                pColorAttachments;
     const VkAttachmentReference*                pResolveAttachments;
-    VkAttachmentReference                       depthStencilAttachment;
+    const VkAttachmentReference*                pDepthStencilAttachment;
     uint32_t                                    preserveAttachmentCount;
     const VkAttachmentReference*                pPreserveAttachments;
 } VkSubpassDescription;
 
 typedef struct {
-    VkStructureType                             sType;
-    const void*                                 pNext;
     uint32_t                                    srcSubpass;
     uint32_t                                    destSubpass;
     VkPipelineStageFlags                        srcStageMask;