<div dir="ltr"><div>Acked-by: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>></div><div><br></div><div>Let's land the header.<br></div></div><br><div class="gmail_quote"><div dir="ltr">On Sat, Oct 13, 2018 at 7:55 AM Samuel Pitoiset <<a href="mailto:samuel.pitoiset@gmail.com">samuel.pitoiset@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Signed-off-by: Samuel Pitoiset <<a href="mailto:samuel.pitoiset@gmail.com" target="_blank">samuel.pitoiset@gmail.com</a>><br>
---<br>
 include/vulkan/vulkan_core.h | 244 ++++++++++++++++++++++++++++++++-<br>
 src/vulkan/registry/vk.xml   | 253 ++++++++++++++++++++++++++++++-----<br>
 2 files changed, 462 insertions(+), 35 deletions(-)<br>
<br>
diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h<br>
index 39f4dc6f05..a7780a0f76 100644<br>
--- a/include/vulkan/vulkan_core.h<br>
+++ b/include/vulkan/vulkan_core.h<br>
@@ -43,7 +43,7 @@ extern "C" {<br>
 #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)<br>
 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)<br>
 // Version of this file<br>
-#define VK_HEADER_VERSION 86<br>
+#define VK_HEADER_VERSION 88<br>
<br>
<br>
 #define VK_NULL_HANDLE 0<br>
@@ -147,6 +147,7 @@ typedef enum VkResult {<br>
     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,<br>
     VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,<br>
     VK_ERROR_INVALID_SHADER_NV = -1000012000,<br>
+    VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,<br>
     VK_ERROR_FRAGMENTATION_EXT = -1000161000,<br>
     VK_ERROR_NOT_PERMITTED_EXT = -1000174001,<br>
     VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,<br>
@@ -297,6 +298,9 @@ typedef enum VkStructureType {<br>
     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,<br>
     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,<br>
     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,<br>
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,<br>
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,<br>
+    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,<br>
     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,<br>
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,<br>
     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,<br>
@@ -398,6 +402,12 @@ typedef enum VkStructureType {<br>
     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,<br>
     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,<br>
     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,<br>
+    VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,<br>
+    VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001,<br>
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,<br>
+    VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,<br>
+    VK_STRUCTURE_TYPE_IMAGE_EXCPLICIT_DRM_FORMAT_MODIFIER_CREATE_INFO_EXT = 1000158004,<br>
+    VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,<br>
     VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,<br>
     VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,<br>
     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000,<br>
@@ -428,6 +438,7 @@ typedef enum VkStructureType {<br>
     VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,<br>
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,<br>
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000,<br>
+    VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000,<br>
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,<br>
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,<br>
     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,<br>
@@ -443,6 +454,8 @@ typedef enum VkStructureType {<br>
     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,<br>
     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,<br>
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000,<br>
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,<br>
+    VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,<br>
     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,<br>
     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,<br>
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,<br>
@@ -811,6 +824,7 @@ typedef enum VkImageType {<br>
 typedef enum VkImageTiling {<br>
     VK_IMAGE_TILING_OPTIMAL = 0,<br>
     VK_IMAGE_TILING_LINEAR = 1,<br>
+    VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,<br>
     VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,<br>
     VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,<br>
     VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),<br>
@@ -833,6 +847,7 @@ typedef enum VkQueryType {<br>
     VK_QUERY_TYPE_OCCLUSION = 0,<br>
     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,<br>
     VK_QUERY_TYPE_TIMESTAMP = 2,<br>
+    VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,<br>
     VK_QUERY_TYPE_COMPACTED_SIZE_NVX = 1000165000,<br>
     VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,<br>
     VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,<br>
@@ -1428,6 +1443,7 @@ typedef enum VkPipelineStageFlagBits {<br>
     VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,<br>
     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,<br>
     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,<br>
+    VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,<br>
     VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,<br>
     VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,<br>
     VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000,<br>
@@ -1447,6 +1463,10 @@ typedef enum VkImageAspectFlagBits {<br>
     VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,<br>
     VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,<br>
     VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,<br>
+    VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,<br>
+    VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,<br>
+    VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,<br>
+    VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,<br>
     VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,<br>
     VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,<br>
     VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,<br>
@@ -1521,6 +1541,8 @@ typedef enum VkBufferUsageFlagBits {<br>
     VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,<br>
     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,<br>
     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,<br>
+    VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,<br>
+    VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,<br>
     VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,<br>
     VK_BUFFER_USAGE_RAYTRACING_BIT_NVX = 0x00000400,<br>
     VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF<br>
@@ -1643,6 +1665,9 @@ typedef enum VkAccessFlagBits {<br>
     VK_ACCESS_HOST_WRITE_BIT = 0x00004000,<br>
     VK_ACCESS_MEMORY_READ_BIT = 0x00008000,<br>
     VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,<br>
+    VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,<br>
+    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,<br>
+    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,<br>
     VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,<br>
     VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,<br>
     VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,<br>
@@ -6092,7 +6117,7 @@ typedef struct VkConformanceVersionKHR {<br>
 typedef struct VkPhysicalDeviceDriverPropertiesKHR {<br>
     VkStructureType            sType;<br>
     void*                      pNext;<br>
-    uint32_t                   driverID;<br>
+    VkDriverIdKHR              driverID;<br>
     char                       driverName[VK_MAX_DRIVER_NAME_SIZE_KHR];<br>
     char                       driverInfo[VK_MAX_DRIVER_INFO_SIZE_KHR];<br>
     VkConformanceVersionKHR    conformanceVersion;<br>
@@ -6359,6 +6384,95 @@ typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {<br>
<br>
<br>
<br>
+#define VK_EXT_transform_feedback 1<br>
+#define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1<br>
+#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"<br>
+<br>
+typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;<br>
+<br>
+typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {<br>
+    VkStructureType    sType;<br>
+    void*              pNext;<br>
+    VkBool32           transformFeedback;<br>
+    VkBool32           geometryStreams;<br>
+} VkPhysicalDeviceTransformFeedbackFeaturesEXT;<br>
+<br>
+typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {<br>
+    VkStructureType    sType;<br>
+    void*              pNext;<br>
+    uint32_t           maxTransformFeedbackStreams;<br>
+    uint32_t           maxTransformFeedbackBuffers;<br>
+    VkDeviceSize       maxTransformFeedbackBufferSize;<br>
+    uint32_t           maxTransformFeedbackStreamDataSize;<br>
+    uint32_t           maxTransformFeedbackBufferDataSize;<br>
+    uint32_t           maxTransformFeedbackBufferDataStride;<br>
+    VkBool32           transformFeedbackQueries;<br>
+    VkBool32           transformFeedbackStreamsLinesTriangles;<br>
+    VkBool32           transformFeedbackRasterizationStreamSelect;<br>
+    VkBool32           transformFeedbackDraw;<br>
+} VkPhysicalDeviceTransformFeedbackPropertiesEXT;<br>
+<br>
+typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {<br>
+    VkStructureType                                     sType;<br>
+    const void*                                         pNext;<br>
+    VkPipelineRasterizationStateStreamCreateFlagsEXT    flags;<br>
+    uint32_t                                            rasterizationStream;<br>
+} VkPipelineRasterizationStateStreamCreateInfoEXT;<br>
+<br>
+<br>
+typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);<br>
+typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);<br>
+typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);<br>
+typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);<br>
+typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);<br>
+typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);<br>
+<br>
+#ifndef VK_NO_PROTOTYPES<br>
+VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(<br>
+    VkCommandBuffer                             commandBuffer,<br>
+    uint32_t                                    firstBinding,<br>
+    uint32_t                                    bindingCount,<br>
+    const VkBuffer*                             pBuffers,<br>
+    const VkDeviceSize*                         pOffsets,<br>
+    const VkDeviceSize*                         pSizes);<br>
+<br>
+VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(<br>
+    VkCommandBuffer                             commandBuffer,<br>
+    uint32_t                                    firstCounterBuffer,<br>
+    uint32_t                                    counterBufferCount,<br>
+    const VkBuffer*                             pCounterBuffers,<br>
+    const VkDeviceSize*                         pCounterBufferOffsets);<br>
+<br>
+VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(<br>
+    VkCommandBuffer                             commandBuffer,<br>
+    uint32_t                                    firstCounterBuffer,<br>
+    uint32_t                                    counterBufferCount,<br>
+    const VkBuffer*                             pCounterBuffers,<br>
+    const VkDeviceSize*                         pCounterBufferOffsets);<br>
+<br>
+VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(<br>
+    VkCommandBuffer                             commandBuffer,<br>
+    VkQueryPool                                 queryPool,<br>
+    uint32_t                                    query,<br>
+    VkQueryControlFlags                         flags,<br>
+    uint32_t                                    index);<br>
+<br>
+VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(<br>
+    VkCommandBuffer                             commandBuffer,<br>
+    VkQueryPool                                 queryPool,<br>
+    uint32_t                                    query,<br>
+    uint32_t                                    index);<br>
+<br>
+VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(<br>
+    VkCommandBuffer                             commandBuffer,<br>
+    uint32_t                                    instanceCount,<br>
+    uint32_t                                    firstInstance,<br>
+    VkBuffer                                    counterBuffer,<br>
+    VkDeviceSize                                counterBufferOffset,<br>
+    uint32_t                                    counterOffset,<br>
+    uint32_t                                    vertexStride);<br>
+#endif<br>
+<br>
 #define VK_AMD_draw_indirect_count 1<br>
 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1<br>
 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"<br>
@@ -7341,7 +7455,7 @@ typedef struct VkDebugUtilsMessengerCallbackDataEXT {<br>
<br>
 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(<br>
     VkDebugUtilsMessageSeverityFlagBitsEXT           messageSeverity,<br>
-    VkDebugUtilsMessageTypeFlagsEXT                  messageType,<br>
+    VkDebugUtilsMessageTypeFlagsEXT                  messageTypes,<br>
     const VkDebugUtilsMessengerCallbackDataEXT*      pCallbackData,<br>
     void*                                            pUserData);<br>
<br>
@@ -7676,6 +7790,65 @@ typedef struct VkPipelineCoverageModulationStateCreateInfoNV {<br>
 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"<br>
<br>
<br>
+#define VK_EXT_image_drm_format_modifier 1<br>
+#define VK_EXT_EXTENSION_159_SPEC_VERSION 0<br>
+#define VK_EXT_EXTENSION_159_EXTENSION_NAME "VK_EXT_extension_159"<br>
+#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1<br>
+#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"<br>
+<br>
+typedef struct VkDrmFormatModifierPropertiesEXT {<br>
+    uint64_t                drmFormatModifier;<br>
+    uint32_t                drmFormatModifierPlaneCount;<br>
+    VkFormatFeatureFlags    drmFormatModifierTilingFeatures;<br>
+} VkDrmFormatModifierPropertiesEXT;<br>
+<br>
+typedef struct VkDrmFormatModifierPropertiesListEXT {<br>
+    VkStructureType                      sType;<br>
+    void*                                pNext;<br>
+    uint32_t                             drmFormatModifierCount;<br>
+    VkDrmFormatModifierPropertiesEXT*    pDrmFormatModifierProperties;<br>
+} VkDrmFormatModifierPropertiesListEXT;<br>
+<br>
+typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {<br>
+    VkStructureType    sType;<br>
+    const void*        pNext;<br>
+    uint64_t           drmFormatModifier;<br>
+    VkSharingMode      sharingMode;<br>
+    uint32_t           queueFamilyIndexCount;<br>
+    const uint32_t*    pQueueFamilyIndices;<br>
+} VkPhysicalDeviceImageDrmFormatModifierInfoEXT;<br>
+<br>
+typedef struct VkImageDrmFormatModifierListCreateInfoEXT {<br>
+    VkStructureType    sType;<br>
+    const void*        pNext;<br>
+    uint32_t           drmFormatModifierCount;<br>
+    const uint64_t*    pDrmFormatModifiers;<br>
+} VkImageDrmFormatModifierListCreateInfoEXT;<br>
+<br>
+typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {<br>
+    VkStructureType               sType;<br>
+    const void*                   pNext;<br>
+    uint64_t                      drmFormatModifier;<br>
+    uint32_t                      drmFormatModifierPlaneCount;<br>
+    const VkSubresourceLayout*    pPlaneLayouts;<br>
+} VkImageDrmFormatModifierExplicitCreateInfoEXT;<br>
+<br>
+typedef struct VkImageDrmFormatModifierPropertiesEXT {<br>
+    VkStructureType    sType;<br>
+    void*              pNext;<br>
+    uint64_t           drmFormatModifier;<br>
+} VkImageDrmFormatModifierPropertiesEXT;<br>
+<br>
+<br>
+typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);<br>
+<br>
+#ifndef VK_NO_PROTOTYPES<br>
+VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(<br>
+    VkDevice                                    device,<br>
+    VkImage                                     image,<br>
+    VkImageDrmFormatModifierPropertiesEXT*      pProperties);<br>
+#endif<br>
+<br>
 #define VK_EXT_validation_cache 1<br>
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)<br>
<br>
@@ -8296,6 +8469,46 @@ VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(<br>
     uint32_t                                    marker);<br>
 #endif<br>
<br>
+#define VK_EXT_calibrated_timestamps 1<br>
+#define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1<br>
+#define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"<br>
+<br>
+<br>
+typedef enum VkTimeDomainEXT {<br>
+    VK_TIME_DOMAIN_DEVICE_EXT = 0,<br>
+    VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1,<br>
+    VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2,<br>
+    VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3,<br>
+    VK_TIME_DOMAIN_BEGIN_RANGE_EXT = VK_TIME_DOMAIN_DEVICE_EXT,<br>
+    VK_TIME_DOMAIN_END_RANGE_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT,<br>
+    VK_TIME_DOMAIN_RANGE_SIZE_EXT = (VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT - VK_TIME_DOMAIN_DEVICE_EXT + 1),<br>
+    VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF<br>
+} VkTimeDomainEXT;<br>
+<br>
+typedef struct VkCalibratedTimestampInfoEXT {<br>
+    VkStructureType    sType;<br>
+    const void*        pNext;<br>
+    VkTimeDomainEXT    timeDomain;<br>
+} VkCalibratedTimestampInfoEXT;<br>
+<br>
+<br>
+typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains);<br>
+typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);<br>
+<br>
+#ifndef VK_NO_PROTOTYPES<br>
+VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(<br>
+    VkPhysicalDevice                            physicalDevice,<br>
+    uint32_t*                                   pTimeDomainCount,<br>
+    VkTimeDomainEXT*                            pTimeDomains);<br>
+<br>
+VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(<br>
+    VkDevice                                    device,<br>
+    uint32_t                                    timestampCount,<br>
+    const VkCalibratedTimestampInfoEXT*         pTimestampInfos,<br>
+    uint64_t*                                   pTimestamps,<br>
+    uint64_t*                                   pMaxDeviation);<br>
+#endif<br>
+<br>
 #define VK_AMD_shader_core_properties 1<br>
 #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1<br>
 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"<br>
@@ -8516,6 +8729,31 @@ VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(<br>
     VkCheckpointDataNV*                         pCheckpointData);<br>
 #endif<br>
<br>
+#define VK_EXT_pci_bus_info 1<br>
+#define VK_EXT_PCI_BUS_INFO_SPEC_VERSION  1<br>
+#define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"<br>
+<br>
+typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {<br>
+    VkStructureType    sType;<br>
+    void*              pNext;<br>
+    uint16_t           pciDomain;<br>
+    uint8_t            pciBus;<br>
+    uint8_t            pciDevice;<br>
+    uint8_t            pciFunction;<br>
+} VkPhysicalDevicePCIBusInfoPropertiesEXT;<br>
+<br>
+<br>
+<br>
+#define VK_GOOGLE_hlsl_functionality1 1<br>
+#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 0<br>
+#define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"<br>
+<br>
+<br>
+#define VK_GOOGLE_decorate_string 1<br>
+#define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 0<br>
+#define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"<br>
+<br>
+<br>
 #ifdef __cplusplus<br>
 }<br>
 #endif<br>
diff --git a/src/vulkan/registry/vk.xml b/src/vulkan/registry/vk.xml<br>
index 3eb0fe02fe..5158f53480 100644<br>
--- a/src/vulkan/registry/vk.xml<br>
+++ b/src/vulkan/registry/vk.xml<br>
@@ -55,6 +55,7 @@ server.<br>
         <platform name="vi" protect="VK_USE_PLATFORM_VI_NN" comment="Nintendo Vi"/><br>
         <platform name="ios" protect="VK_USE_PLATFORM_IOS_MVK" comment="Apple IOS"/><br>
         <platform name="macos" protect="VK_USE_PLATFORM_MACOS_MVK" comment="Apple MacOS"/><br>
+        <platform name="fuchsia" protect="VK_USE_PLATFORM_FUCHSIA" comment="Fuchsia"/><br>
     </platforms><br>
<br>
     <tags comment="Vulkan vendor/author tags for extensions and layers"><br>
@@ -99,13 +100,14 @@ server.<br>
         <type category="include" name="wayland-client.h"/><br>
         <type category="include" name="windows.h"/><br>
         <type category="include" name="xcb/xcb.h"/><br>
+        <type category="include" name="zircon/types.h"/><br>
             <comment><br>
                 In the current header structure, each platform's interfaces<br>
                 are confined to a platform-specific header (vulkan_xlib.h,<br>
                 vulkan_win32.h, etc.). These headers are not self-contained,<br>
                 and should not include native headers (X11/Xlib.h,<br>
                 windows.h, etc.). Code should either include vulkan.h after<br>
-                defining the appropriate VK_USE_PLATFORM_platform_KHR<br>
+                defining the appropriate VK_USE_PLATFORM_platform<br>
                 macros, or include the required native headers prior to<br>
                 explicitly including the corresponding platform header.<br>
<br>
@@ -133,6 +135,7 @@ server.<br>
         <type requires="xcb/xcb.h" name="xcb_connection_t"/><br>
         <type requires="xcb/xcb.h" name="xcb_visualid_t"/><br>
         <type requires="xcb/xcb.h" name="xcb_window_t"/><br>
+        <type requires="zircon/types.h" name="zx_handle_t"/><br>
<br>
         <type category="define">#define <name>VK_MAKE_VERSION</name>(major, minor, patch) \<br>
     (((major) &lt;&lt; 22) | ((minor) &lt;&lt; 12) | (patch))</type><br>
@@ -147,7 +150,7 @@ server.<br>
         <type category="define">// Vulkan 1.1 version number<br>
 #define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_VERSION</type>(1, 1, 0)// Patch version should always be set to 0</type><br>
         <type category="define">// Version of this file<br>
-#define <name>VK_HEADER_VERSION</name> 86</type><br>
+#define <name>VK_HEADER_VERSION</name> 88</type><br>
<br>
         <type category="define"><br>
 #define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type><br>
@@ -179,6 +182,7 @@ server.<br>
         <type requires="vk_platform" name="char"/><br>
         <type requires="vk_platform" name="float"/><br>
         <type requires="vk_platform" name="uint8_t"/><br>
+        <type requires="vk_platform" name="uint16_t"/><br>
         <type requires="vk_platform" name="uint32_t"/><br>
         <type requires="vk_platform" name="uint64_t"/><br>
         <type requires="vk_platform" name="int32_t"/><br>
@@ -270,6 +274,7 @@ server.<br>
         <type                                             category="bitmask">typedef <type>VkFlags</type> <name>VkXcbSurfaceCreateFlagsKHR</name>;</type><br>
         <type                                             category="bitmask">typedef <type>VkFlags</type> <name>VkIOSSurfaceCreateFlagsMVK</name>;</type><br>
         <type                                             category="bitmask">typedef <type>VkFlags</type> <name>VkMacOSSurfaceCreateFlagsMVK</name>;</type><br>
+        <type                                             category="bitmask">typedef <type>VkFlags</type> <name>VkImagePipeSurfaceCreateFlagsFUCHSIA</name>;</type><br>
         <type requires="VkPeerMemoryFeatureFlagBits"   category="bitmask">typedef <type>VkFlags</type> <name>VkPeerMemoryFeatureFlags</name>;</type><br>
         <type                                             category="bitmask" name="VkPeerMemoryFeatureFlagsKHR"               alias="VkPeerMemoryFeatureFlags"/><br>
         <type requires="VkMemoryAllocateFlagBits"      category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryAllocateFlags</name>;</type><br>
@@ -310,6 +315,8 @@ server.<br>
         <type                                             category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationConservativeStateCreateFlagsEXT</name>;</type><br>
         <type requires="VkDescriptorBindingFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorBindingFlagsEXT</name>;</type><br>
         <type requires="VkConditionalRenderingFlagBitsEXT"   category="bitmask">typedef <type>VkFlags</type> <name>VkConditionalRenderingFlagsEXT</name>;</type><br>
+        <type                                             category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationStateStreamCreateFlagsEXT</name>;</type><br>
+<br>
<br>
             <comment>Types which can be void pointers or class pointers, selected at compile time</comment><br>
         <type category="handle"><type>VK_DEFINE_HANDLE</type>(<name>VkInstance</name>)</type><br>
@@ -461,6 +468,7 @@ server.<br>
         <type name="VkValidationCacheHeaderVersionEXT" category="enum"/><br>
         <type name="VkShaderInfoTypeAMD" category="enum"/><br>
         <type name="VkQueueGlobalPriorityEXT" category="enum"/><br>
+        <type name="VkTimeDomainEXT" category="enum"/><br>
         <type name="VkConservativeRasterizationModeEXT" category="enum"/><br>
         <type name="VkGeometryFlagBitsNVX" category="enum"/><br>
         <type name="VkGeometryInstanceFlagBitsNVX" category="enum"/><br>
@@ -570,7 +578,7 @@ server.<br>
             <comment>The PFN_vkDebugUtilsMessengerCallbackEXT type are used by the VK_EXT_debug_utils extension</comment><br>
         <type category="funcpointer" requires="VkDebugUtilsMessengerCallbackDataEXT">typedef VkBool32 (VKAPI_PTR *<name>PFN_vkDebugUtilsMessengerCallbackEXT</name>)(<br>
     <type>VkDebugUtilsMessageSeverityFlagBitsEXT</type>           messageSeverity,<br>
-    <type>VkDebugUtilsMessageTypeFlagsEXT</type>                  messageType,<br>
+    <type>VkDebugUtilsMessageTypeFlagsEXT</type>                  messageTypes,<br>
     const <type>VkDebugUtilsMessengerCallbackDataEXT</type>*      pCallbackData,<br>
     <type>void</type>*                                            pUserData);</type><br>
<br>
@@ -1125,7 +1133,7 @@ server.<br>
             <member values="VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member><br>
             <member>const <type>void</type>*            <name>pNext</name></member><br>
             <member optional="true"><type>VkPipelineDynamicStateCreateFlags</type>    <name>flags</name></member><br>
-            <member><type>uint32_t</type>               <name>dynamicStateCount</name></member><br>
+            <member optional="true"><type>uint32_t</type>               <name>dynamicStateCount</name></member><br>
             <member len="dynamicStateCount">const <type>VkDynamicState</type>*  <name>pDynamicStates</name></member><br>
         </type><br>
         <type category="struct" name="VkStencilOpState"><br>
@@ -1677,6 +1685,12 @@ server.<br>
             <member noautovalidity="true"><type>xcb_connection_t</type>*                <name>connection</name></member><br>
             <member><type>xcb_window_t</type>                     <name>window</name></member><br>
         </type><br>
+        <type category="struct" name="VkImagePipeSurfaceCreateInfoFUCHSIA"><br>
+            <member values="VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member><br>
+            <member>const <type>void</type>*                      <name>pNext</name></member><br>
+            <member optional="true"><type>VkImagePipeSurfaceCreateFlagsFUCHSIA</type>   <name>flags</name></member><br>
+            <member><type>zx_handle_t</type>                      <name>imagePipeHandle</name></member><br>
+        </type><br>
         <type category="struct" name="VkSurfaceFormatKHR" returnedonly="true"><br>
             <member><type>VkFormat</type>                         <name>format</name><comment>Supported pair of rendering format</comment></member><br>
             <member><type>VkColorSpaceKHR</type>                  <name>colorSpace</name><comment>and color space for the surface</comment></member><br>
@@ -1982,7 +1996,7 @@ server.<br>
         <type category="struct" name="VkPhysicalDeviceDriverPropertiesKHR" structextends="VkPhysicalDeviceProperties2" returnedonly="true"><br>
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member><br>
             <member><type>void</type>*                            <name>pNext</name></member><br>
-            <member><type>uint32_t</type>                         <name>driverID</name></member><br>
+            <member><type>VkDriverIdKHR</type>                    <name>driverID</name></member><br>
             <member><type>char</type>                             <name>driverName</name>[<enum>VK_MAX_DRIVER_NAME_SIZE_KHR</enum>]</member><br>
             <member><type>char</type>                             <name>driverInfo</name>[<enum>VK_MAX_DRIVER_INFO_SIZE_KHR</enum>]</member><br>
             <member><type>VkConformanceVersionKHR</type>          <name>conformanceVersion</name></member><br>
@@ -2776,10 +2790,10 @@ server.<br>
         </type><br>
         <type category="struct" name="VkSampleLocationsInfoEXT" structextends="VkImageMemoryBarrier"><br>
             <member values="VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member><br>
-            <member>const <type>void</type>*                      <name>pNext</name></member><br>
-            <member><type>VkSampleCountFlagBits</type>            <name>sampleLocationsPerPixel</name></member><br>
-            <member><type>VkExtent2D</type>                       <name>sampleLocationGridSize</name></member><br>
-            <member><type>uint32_t</type>                         <name>sampleLocationsCount</name></member><br>
+            <member>const <type>void</type>*                            <name>pNext</name></member><br>
+            <member optional="true"><type>VkSampleCountFlagBits</type>  <name>sampleLocationsPerPixel</name></member><br>
+            <member><type>VkExtent2D</type>                             <name>sampleLocationGridSize</name></member><br>
+            <member optional="true"><type>uint32_t</type>               <name>sampleLocationsCount</name></member><br>
             <member len="sampleLocationsCount">const <type>VkSampleLocationEXT</type>* <name>pSampleLocations</name></member><br>
         </type><br>
         <type category="struct" name="VkAttachmentSampleLocationsEXT"><br>
@@ -2880,7 +2894,7 @@ server.<br>
             <member><type>uint32_t</type>                                                                         <name>coverageModulationTableCount</name></member><br>
             <member noautovalidity="true" optional="true" len="coverageModulationTableCount">const <type>float</type>* <name>pCoverageModulationTable</name></member><br>
         </type><br>
-        <type category="struct" name="VkImageFormatListCreateInfoKHR" structextends="VkImageCreateInfo"><br>
+        <type category="struct" name="VkImageFormatListCreateInfoKHR" structextends="VkImageCreateInfo,VkPhysicalDeviceImageFormatInfo2"><br>
             <member values="VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member><br>
             <member>const <type>void</type>*            <name>pNext</name></member><br>
             <member optional="true"><type>uint32_t</type>               <name>viewFormatCount</name></member><br>
@@ -3019,6 +3033,11 @@ server.<br>
             <member><type>VkBool32</type>               <name>fullyCoveredFragmentShaderInputVariable</name><comment>true if the implementation supports the FullyCoveredEXT SPIR-V builtin fragment shader input variable</comment></member><br>
             <member><type>VkBool32</type>               <name>conservativeRasterizationPostDepthCoverage</name><comment>true if the implementation supports both conservative rasterization and post depth coverage sample coverage mask</comment></member><br>
         </type><br>
+        <type category="struct" name="VkCalibratedTimestampInfoEXT"><br>
+            <member values="VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member><br>
+            <member>const <type>void</type>*            <name>pNext</name></member><br>
+            <member><type>VkTimeDomainEXT</type>        <name>timeDomain</name></member><br>
+        </type><br>
         <type category="struct" name="VkPhysicalDeviceShaderCorePropertiesAMD" returnedonly="true" structextends="VkPhysicalDeviceProperties2"><br>
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD"><type>VkStructureType</type> <name>sType</name></member><br>
             <member><type>void</type>*    <name>pNext</name><comment>Pointer to next structure</comment></member><br>
@@ -3196,6 +3215,14 @@ server.<br>
             <member><type>void</type>*                  <name>pNext</name></member><br>
             <member><type>uint32_t</type>               <name>maxVertexAttribDivisor</name><comment>max value of vertex attribute divisor</comment></member><br>
         </type><br>
+        <type category="struct" name="VkPhysicalDevicePCIBusInfoPropertiesEXT" structextends="VkPhysicalDeviceProperties2" returnedonly="true"><br>
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member><br>
+            <member><type>void</type>*                  <name>pNext</name></member><br>
+            <member><type>uint16_t</type>               <name>pciDomain</name></member><br>
+            <member><type>uint8_t</type>                <name>pciBus</name></member><br>
+            <member><type>uint8_t</type>                <name>pciDevice</name></member><br>
+            <member><type>uint8_t</type>                <name>pciFunction</name></member><br>
+        </type><br>
         <type category="struct" name="VkImportAndroidHardwareBufferInfoANDROID" structextends="VkMemoryAllocateInfo"><br>
             <member values="VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"><type>VkStructureType</type> <name>sType</name></member><br>
             <member>const <type>void</type>*                        <name>pNext</name></member><br>
@@ -3291,6 +3318,32 @@ server.<br>
             <member noautovalidity="true"><type>void</type>*      <name>pNext</name></member><br>
             <member><type>VkBool32</type>                         <name>decodeModeSharedExponent</name></member><br>
         </type><br>
+        <type category="struct" name="VkPhysicalDeviceTransformFeedbackFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"><br>
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member><br>
+            <member><type>void</type>*                  <name>pNext</name></member><br>
+            <member><type>VkBool32</type>               <name>transformFeedback</name></member><br>
+            <member><type>VkBool32</type>               <name>geometryStreams</name></member><br>
+        </type><br>
+        <type category="struct" name="VkPhysicalDeviceTransformFeedbackPropertiesEXT" structextends="VkPhysicalDeviceProperties2" returnedonly="true"><br>
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member><br>
+            <member><type>void</type>*                  <name>pNext</name></member><br>
+            <member><type>uint32_t</type>               <name>maxTransformFeedbackStreams</name></member><br>
+            <member><type>uint32_t</type>               <name>maxTransformFeedbackBuffers</name></member><br>
+            <member><type>VkDeviceSize</type>           <name>maxTransformFeedbackBufferSize</name></member><br>
+            <member><type>uint32_t</type>               <name>maxTransformFeedbackStreamDataSize</name></member><br>
+            <member><type>uint32_t</type>               <name>maxTransformFeedbackBufferDataSize</name></member><br>
+            <member><type>uint32_t</type>               <name>maxTransformFeedbackBufferDataStride</name></member><br>
+            <member><type>VkBool32</type>               <name>transformFeedbackQueries</name></member><br>
+            <member><type>VkBool32</type>               <name>transformFeedbackStreamsLinesTriangles</name></member><br>
+            <member><type>VkBool32</type>               <name>transformFeedbackRasterizationStreamSelect</name></member><br>
+            <member><type>VkBool32</type>               <name>transformFeedbackDraw</name></member><br>
+        </type><br>
+        <type category="struct" name="VkPipelineRasterizationStateStreamCreateInfoEXT" structextends="VkPipelineRasterizationStateCreateInfo"><br>
+            <member values="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member><br>
+            <member>const <type>void</type>*                                                                      <name>pNext</name></member><br>
+            <member optional="true"><type>VkPipelineRasterizationStateStreamCreateFlagsEXT</type>                 <name>flags</name></member><br>
+            <member><type>uint32_t</type>                                                                         <name>rasterizationStream</name></member><br>
+        </type><br>
         <type category="struct" name="VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"><br>
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV"><type>VkStructureType</type><name>sType</name></member><br>
             <member noautovalidity="true"><type>void</type>*    <name>pNext</name></member><br>
@@ -3500,6 +3553,9 @@ server.<br>
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member><br>
             <member>const <type>void</type>* <name>pNext</name></member><br>
             <member><type>uint64_t</type> <name>drmFormatModifier</name></member><br>
+            <member><type>VkSharingMode</type> <name>sharingMode</name></member><br>
+            <member optional="true"><type>uint32_t</type> <name>queueFamilyIndexCount</name></member><br>
+            <member noautovalidity="true" len="queueFamilyIndexCount">const <type>uint32_t</type>* <name>pQueueFamilyIndices</name></member><br>
         </type><br>
         <type category="struct" name="VkImageDrmFormatModifierListCreateInfoEXT" structextends="VkImageCreateInfo"><br>
             <member values="VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member><br>
@@ -4331,6 +4387,12 @@ server.<br>
         <enum bitpos="7"    name="VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"/><br>
         <enum bitpos="8"    name="VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"/><br>
     </enums><br>
+    <enums name="VkTimeDomainEXT" type="enum"><br>
+        <enum value="0"     name="VK_TIME_DOMAIN_DEVICE_EXT"/><br>
+        <enum value="1"     name="VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT"/><br>
+        <enum value="2"     name="VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT"/><br>
+        <enum value="3"     name="VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT"/><br>
+    </enums><br>
     <enums name="VkDebugReportFlagBitsEXT" type="bitmask"><br>
         <enum bitpos="0"    name="VK_DEBUG_REPORT_INFORMATION_BIT_EXT"/><br>
         <enum bitpos="1"    name="VK_DEBUG_REPORT_WARNING_BIT_EXT"/><br>
@@ -5837,6 +5899,13 @@ server.<br>
             <param><type>xcb_connection_t</type>* <name>connection</name></param><br>
             <param><type>xcb_visualid_t</type> <name>visual_id</name></param><br>
         </command><br>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY"><br>
+            <proto><type>VkResult</type> <name>vkCreateImagePipeSurfaceFUCHSIA</name></proto><br>
+            <param><type>VkInstance</type> <name>instance</name></param><br>
+            <param>const <type>VkImagePipeSurfaceCreateInfoFUCHSIA</type>* <name>pCreateInfo</name></param><br>
+            <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param><br>
+            <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param><br>
+        </command><br>
         <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY"><br>
             <proto><type>VkResult</type> <name>vkCreateDebugReportCallbackEXT</name></proto><br>
             <param><type>VkInstance</type> <name>instance</name></param><br>
@@ -6500,6 +6569,20 @@ server.<br>
             <param optional="false,true"><type>size_t</type>* <name>pInfoSize</name></param><br>
             <param optional="true" len="pInfoSize"><type>void</type>* <name>pInfo</name></param><br>
         </command><br>
+        <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY"><br>
+            <proto><type>VkResult</type> <name>vkGetPhysicalDeviceCalibrateableTimeDomainsEXT</name></proto><br>
+            <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param><br>
+            <param optional="false,true"><type>uint32_t</type>* <name>pTimeDomainCount</name></param><br>
+            <param optional="true" len="pTimeDomainCount"><type>VkTimeDomainEXT</type>* <name>pTimeDomains</name></param><br>
+        </command><br>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY"><br>
+            <proto><type>VkResult</type> <name>vkGetCalibratedTimestampsEXT</name></proto><br>
+            <param><type>VkDevice</type> <name>device</name></param><br>
+            <param><type>uint32_t</type> <name>timestampCount</name></param><br>
+            <param len="timestampCount">const <type>VkCalibratedTimestampInfoEXT</type>* <name>pTimestampInfos</name></param><br>
+            <param len="timestampCount"><type>uint64_t</type>* <name>pTimestamps</name></param><br>
+            <param><type>uint64_t</type>* <name>pMaxDeviation</name></param><br>
+        </command><br>
         <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY"><br>
             <proto><type>VkResult</type> <name>vkSetDebugUtilsObjectNameEXT</name></proto><br>
             <param><type>VkDevice</type> <name>device</name></param><br>
@@ -6640,6 +6723,56 @@ server.<br>
             <param optional="false,true"><type>uint32_t</type>* <name>pCheckpointDataCount</name></param><br>
             <param optional="true" len="pCheckpointDataCount"><type>VkCheckpointDataNV</type>* <name>pCheckpointData</name></param><br>
         </command><br>
+        <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary"><br>
+            <proto><type>void</type> <name>vkCmdBindTransformFeedbackBuffersEXT</name></proto><br>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param><br>
+            <param><type>uint32_t</type> <name>firstBinding</name></param><br>
+            <param><type>uint32_t</type> <name>bindingCount</name></param><br>
+            <param len="bindingCount">const <type>VkBuffer</type>* <name>pBuffers</name></param><br>
+            <param len="bindingCount">const <type>VkDeviceSize</type>* <name>pOffsets</name></param><br>
+            <param optional="true" len="bindingCount">const <type>VkDeviceSize</type>* <name>pSizes</name></param><br>
+        </command><br>
+        <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary"><br>
+            <proto><type>void</type> <name>vkCmdBeginTransformFeedbackEXT</name></proto><br>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param><br>
+            <param><type>uint32_t</type> <name>firstCounterBuffer</name></param><br>
+            <param optional="false"><type>uint32_t</type> <name>counterBufferCount</name></param><br>
+            <param optional="true" len="counterBufferCount">const <type>VkBuffer</type>* <name>pCounterBuffers</name></param><br>
+            <param optional="true" len="counterBufferCount">const <type>VkDeviceSize</type>* <name>pCounterBufferOffsets</name></param><br>
+        </command><br>
+        <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary"><br>
+            <proto><type>void</type> <name>vkCmdEndTransformFeedbackEXT</name></proto><br>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param><br>
+            <param><type>uint32_t</type> <name>firstCounterBuffer</name></param><br>
+            <param optional="false"><type>uint32_t</type> <name>counterBufferCount</name></param><br>
+            <param optional="true" len="counterBufferCount">const <type>VkBuffer</type>* <name>pCounterBuffers</name></param><br>
+            <param optional="true" len="counterBufferCount">const <type>VkDeviceSize</type>* <name>pCounterBufferOffsets</name></param><br>
+        </command><br>
+        <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary"><br>
+            <proto><type>void</type> <name>vkCmdBeginQueryIndexedEXT</name></proto><br>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param><br>
+            <param><type>VkQueryPool</type> <name>queryPool</name></param><br>
+            <param><type>uint32_t</type> <name>query</name></param><br>
+            <param optional="true"><type>VkQueryControlFlags</type> <name>flags</name></param><br>
+            <param><type>uint32_t</type> <name>index</name></param><br>
+        </command><br>
+        <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary"><br>
+            <proto><type>void</type> <name>vkCmdEndQueryIndexedEXT</name></proto><br>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param><br>
+            <param><type>VkQueryPool</type> <name>queryPool</name></param><br>
+            <param><type>uint32_t</type> <name>query</name></param><br>
+            <param><type>uint32_t</type> <name>index</name></param><br>
+        </command><br>
+        <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary" pipeline="graphics"><br>
+            <proto><type>void</type> <name>vkCmdDrawIndirectByteCountEXT</name></proto><br>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param><br>
+            <param><type>uint32_t</type> <name>instanceCount</name></param><br>
+            <param><type>uint32_t</type> <name>firstInstance</name></param><br>
+            <param><type>VkBuffer</type> <name>counterBuffer</name></param><br>
+            <param><type>VkDeviceSize</type> <name>counterBufferOffset</name></param><br>
+            <param><type>uint32_t</type> <name>counterOffset</name></param><br>
+            <param><type>uint32_t</type> <name>vertexStride</name></param><br>
+        </command><br>
         <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary"><br>
             <proto><type>void</type> <name>vkCmdSetExclusiveScissorNV</name></proto><br>
             <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param><br>
@@ -7486,7 +7619,7 @@ server.<br>
                 <command name="vkGetPhysicalDeviceWaylandPresentationSupportKHR"/><br>
             </require><br>
         </extension><br>
-        <extension name="VK_KHR_mir_surface" number="8" type="instance" requires="VK_KHR_surface" platform="mir" author="KHR" contact="Jesse Hall @critsec,Ian Elliott @ianelliottus" supported="vulkan"><br>
+        <extension name="VK_KHR_mir_surface" number="8" type="instance" requires="VK_KHR_surface" platform="mir" author="KHR" contact="Jesse Hall @critsec,Ian Elliott @ianelliottus" obsoletedby="" supported="vulkan"><br>
             <require><br>
                 <enum value="4"                                                 name="VK_KHR_MIR_SURFACE_SPEC_VERSION"/><br>
                 <enum value="&quot;VK_KHR_mir_surface&quot;"                    name="VK_KHR_MIR_SURFACE_EXTENSION_NAME"/><br>
@@ -7672,10 +7805,37 @@ server.<br>
                 <enum value="&quot;VK_NV_extension_28&quot;"                    name="VK_EXT_EXTENSION_28_EXTENSION_NAME"/><br>
             </require><br>
         </extension><br>
-        <extension name="VK_NVX_extension_29" number="29" author="NVX" contact="Jeff Juliano @jjulianoatnv" supported="disabled"><br>
+        <extension name="VK_EXT_transform_feedback" number="29" type="device" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan" requires="VK_KHR_get_physical_device_properties2"><br>
             <require><br>
-                <enum value="0"                                                 name="VK_NVX_EXTENSION_29_SPEC_VERSION"/><br>
-                <enum value="&quot;VK_NVX_extension_29&quot;"                   name="VK_NVX_EXTENSION_29_EXTENSION_NAME"/><br>
+                <enum value="1"                                                 name="VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION"/><br>
+                <enum value="&quot;VK_EXT_transform_feedback&quot;"             name="VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME"/><br>
+                <command name="vkCmdBindTransformFeedbackBuffersEXT"/><br>
+                <command name="vkCmdBeginTransformFeedbackEXT"/><br>
+                <command name="vkCmdEndTransformFeedbackEXT"/><br>
+                <command name="vkCmdBeginQueryIndexedEXT"/><br>
+                <command name="vkCmdEndQueryIndexedEXT"/><br>
+                <command name="vkCmdDrawIndirectByteCountEXT"/><br>
+<br>
+                <enum offset="0" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT"/><br>
+                <enum offset="1" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT"/><br>
+                <enum offset="2" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT"/><br>
+<br>
+                <enum offset="4" extends="VkQueryType"                          name="VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT"/><br>
+<br>
+                <enum bitpos="11" extends="VkBufferUsageFlagBits"                name="VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"/><br>
+                <enum bitpos="12" extends="VkBufferUsageFlagBits"                name="VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"/><br>
+<br>
+                <enum bitpos="25" extends="VkAccessFlagBits"                    name="VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"/><br>
+                <enum bitpos="26" extends="VkAccessFlagBits"                    name="VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"/><br>
+                <enum bitpos="27" extends="VkAccessFlagBits"                    name="VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"/><br>
+<br>
+                <enum bitpos="24" extends="VkPipelineStageFlagBits"             name="VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT"/><br>
+<br>
+                <type name="VkPhysicalDeviceTransformFeedbackFeaturesEXT"/><br>
+                <type name="VkPhysicalDeviceTransformFeedbackPropertiesEXT"/><br>
+                <type name="VkPipelineRasterizationStateStreamCreateInfoEXT"/><br>
+<br>
+                <type name="VkPipelineRasterizationStateStreamCreateFlagsEXT"/><br>
             </require><br>
         </extension><br>
         <extension name="VK_NVX_extension_30" number="30" author="NVX" contact="Jeff Juliano @jjulianoatnv" supported="disabled"><br>
@@ -9193,7 +9353,7 @@ server.<br>
                 <type name="VkBindImageMemoryInfoKHR"/><br>
             </require><br>
         </extension><br>
-        <extension name="VK_EXT_image_drm_format_modifier" number="159" type="device" requires="VK_KHR_bind_memory2,VK_KHR_get_physical_device_properties2,VK_KHR_sampler_ycbcr_conversion" author="EXT" contact="Chad Versace @chadversary" supported="disabled"><br>
+        <extension name="VK_EXT_image_drm_format_modifier" number="159" type="device" requires="VK_KHR_bind_memory2,VK_KHR_get_physical_device_properties2,VK_KHR_image_format_list,VK_KHR_sampler_ycbcr_conversion" author="EXT" contact="Chad Versace @chadversary" supported="vulkan"><br>
             <require><br>
                 <enum value="0"                                             name="VK_EXT_EXTENSION_159_SPEC_VERSION"/><br>
                 <enum value="&quot;VK_EXT_extension_159&quot;"              name="VK_EXT_EXTENSION_159_EXTENSION_NAME"/><br>
@@ -9515,10 +9675,15 @@ server.<br>
                 <enum value="&quot;VK_AMD_extension_184&quot;"              name="VK_KHR_EXTENSION_184_EXTENSION_NAME"/><br>
             </require><br>
         </extension><br>
-        <extension name="VK_AMD_extension_185" number="185" author="AMD" contact="Daniel Rakos @drakos-amd" supported="disabled"><br>
+        <extension name="VK_EXT_calibrated_timestamps" number="185" type="device" author="EXT" contact="Daniel Rakos @drakos-amd" supported="vulkan"><br>
             <require><br>
-                <enum value="0"                                             name="VK_KHR_EXTENSION_185_SPEC_VERSION"/><br>
-                <enum value="&quot;VK_AMD_extension_185&quot;"              name="VK_KHR_EXTENSION_185_EXTENSION_NAME"/><br>
+                <enum value="1"                                             name="VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION"/><br>
+                <enum value="&quot;VK_EXT_calibrated_timestamps&quot;"      name="VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME"/><br>
+                <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT"/><br>
+                <type name="VkTimeDomainEXT"/><br>
+                <type name="VkCalibratedTimestampInfoEXT"/><br>
+                <command name="vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"/><br>
+                <command name="vkGetCalibratedTimestampsEXT"/><br>
             </require><br>
         </extension><br>
         <extension name="VK_AMD_shader_core_properties" number="186" type="device" author="AMD" requires="VK_KHR_get_physical_device_properties2" contact="Martin Dinkov @mdinkov" supported="vulkan"><br>
@@ -9731,10 +9896,12 @@ server.<br>
                 <type name="VkPhysicalDeviceVulkanMemoryModelFeaturesKHR"/><br>
             </require><br>
         </extension><br>
-        <extension name="VK_AMD_extension_213" number="213" author="AMD" contact="Neil Henning @sheredom" supported="disabled"><br>
+        <extension name="VK_EXT_pci_bus_info" number="213" type="device" author="EXT" requires="VK_KHR_get_physical_device_properties2" contact="Matthaeus G. Chajdas @anteru" supported="vulkan"><br>
             <require><br>
-                <enum value="0"                                             name="VK_KHR_EXTENSION_213_SPEC_VERSION"/><br>
-                <enum value="&quot;VK_KHR_extension_213&quot;"              name="VK_KHR_EXTENSION_213_EXTENSION_NAME"/><br>
+                <enum value="1"                                         name="VK_EXT_PCI_BUS_INFO_SPEC_VERSION"/><br>
+                <enum value="&quot;VK_EXT_pci_bus_info&quot;"           name="VK_EXT_PCI_BUS_INFO_EXTENSION_NAME"/><br>
+                <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT"/><br>
+                <type name="VkPhysicalDevicePCIBusInfoPropertiesEXT"/><br>
             </require><br>
         </extension><br>
         <extension name="VK_AMD_extension_214" number="214" author="AMD" contact="Neil Henning @sheredom" supported="disabled"><br>
@@ -9743,10 +9910,14 @@ server.<br>
                 <enum value="&quot;VK_KHR_extension_214&quot;"              name="VK_KHR_EXTENSION_214_EXTENSION_NAME"/><br>
             </require><br>
         </extension><br>
-        <extension name="VK_GOOGLE_extension_215" number="215" author="GOOGLE" contact="Jesse Hall @critsec" supported="disabled"><br>
+        <extension name="VK_FUCHSIA_imagepipe_surface" nu</blockquote></div>