diff --git a/ash/src/vk/const_debugs.rs b/ash/src/vk/const_debugs.rs
index 5fa0a2df8..af404560b 100644
--- a/ash/src/vk/const_debugs.rs
+++ b/ash/src/vk/const_debugs.rs
@@ -58,10 +58,16 @@ impl fmt::Debug for AccelerationStructureCompatibilityKHR {
 }
 impl fmt::Debug for AccelerationStructureCreateFlagsKHR {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        const KNOWN: &[(Flags, &str)] = &[(
-            AccelerationStructureCreateFlagsKHR::DEVICE_ADDRESS_CAPTURE_REPLAY.0,
-            "DEVICE_ADDRESS_CAPTURE_REPLAY",
-        )];
+        const KNOWN: &[(Flags, &str)] = &[
+            (
+                AccelerationStructureCreateFlagsKHR::DEVICE_ADDRESS_CAPTURE_REPLAY.0,
+                "DEVICE_ADDRESS_CAPTURE_REPLAY",
+            ),
+            (
+                AccelerationStructureCreateFlagsKHR::RESERVED_2_NV.0,
+                "RESERVED_2_NV",
+            ),
+        ];
         debug_flags(f, KNOWN, self.0)
     }
 }
@@ -464,6 +470,10 @@ impl fmt::Debug for BuildAccelerationStructureFlagsKHR {
                 BuildAccelerationStructureFlagsKHR::LOW_MEMORY.0,
                 "LOW_MEMORY",
             ),
+            (
+                BuildAccelerationStructureFlagsKHR::RESERVED_5_NV.0,
+                "RESERVED_5_NV",
+            ),
         ];
         debug_flags(f, KNOWN, self.0)
     }
@@ -1255,6 +1265,14 @@ impl fmt::Debug for ExternalFenceHandleTypeFlags {
                 ExternalFenceHandleTypeFlags::EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD.0,
                 "EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD",
             ),
+            (
+                ExternalFenceHandleTypeFlags::EXTERNAL_FENCE_HANDLE_TYPE_RESERVED_4_NV.0,
+                "EXTERNAL_FENCE_HANDLE_TYPE_RESERVED_4_NV",
+            ),
+            (
+                ExternalFenceHandleTypeFlags::EXTERNAL_FENCE_HANDLE_TYPE_RESERVED_5_NV.0,
+                "EXTERNAL_FENCE_HANDLE_TYPE_RESERVED_5_NV",
+            ),
         ];
         debug_flags(f, KNOWN, self.0)
     }
@@ -1364,6 +1382,14 @@ impl fmt::Debug for ExternalSemaphoreHandleTypeFlags {
                 ExternalSemaphoreHandleTypeFlags::EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD.0,
                 "EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD",
             ),
+            (
+                ExternalSemaphoreHandleTypeFlags::EXTERNAL_SEMAPHORE_HANDLE_TYPE_RESERVED_5_NV.0,
+                "EXTERNAL_SEMAPHORE_HANDLE_TYPE_RESERVED_5_NV",
+            ),
+            (
+                ExternalSemaphoreHandleTypeFlags::EXTERNAL_SEMAPHORE_HANDLE_TYPE_RESERVED_6_NV.0,
+                "EXTERNAL_SEMAPHORE_HANDLE_TYPE_RESERVED_6_NV",
+            ),
         ];
         debug_flags(f, KNOWN, self.0)
     }
@@ -4259,6 +4285,9 @@ impl fmt::Debug for StructureType {
                 Some("DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV")
             }
             Self::RESERVED_QCOM => Some("RESERVED_QCOM"),
+            Self::PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR => {
+                Some("PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR")
+            }
             Self::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV => {
                 Some("PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV")
             }
@@ -4278,6 +4307,9 @@ impl fmt::Debug for StructureType {
             Self::PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT => {
                 Some("PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT")
             }
+            Self::PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR => {
+                Some("PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR")
+            }
             Self::COPY_BUFFER_INFO_2_KHR => Some("COPY_BUFFER_INFO_2_KHR"),
             Self::COPY_IMAGE_INFO_2_KHR => Some("COPY_IMAGE_INFO_2_KHR"),
             Self::COPY_BUFFER_TO_IMAGE_INFO_2_KHR => Some("COPY_BUFFER_TO_IMAGE_INFO_2_KHR"),
@@ -4299,6 +4331,7 @@ impl fmt::Debug for StructureType {
             Self::MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE => {
                 Some("MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE")
             }
+            Self::SCREEN_SURFACE_CREATE_INFO_QNX => Some("SCREEN_SURFACE_CREATE_INFO_QNX"),
             Self::PHYSICAL_DEVICE_SUBGROUP_PROPERTIES => {
                 Some("PHYSICAL_DEVICE_SUBGROUP_PROPERTIES")
             }
diff --git a/ash/src/vk/definitions.rs b/ash/src/vk/definitions.rs
index c7a6faa49..627a1574f 100644
--- a/ash/src/vk/definitions.rs
+++ b/ash/src/vk/definitions.rs
@@ -9,7 +9,7 @@ use std::os::raw::*;
 pub const API_VERSION_1_0: u32 = crate::vk::make_version(1, 0, 0);
 pub const API_VERSION_1_1: u32 = crate::vk::make_version(1, 1, 0);
 pub const API_VERSION_1_2: u32 = crate::vk::make_version(1, 2, 0);
-pub const HEADER_VERSION: u32 = 166u32;
+pub const HEADER_VERSION: u32 = 168u32;
 pub const HEADER_VERSION_COMPLETE: u32 = crate::vk::make_version(1, 2, HEADER_VERSION);
 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSampleMask.html>"]
 pub type SampleMask = u32;
@@ -46217,6 +46217,70 @@ impl<'a> DeviceDiagnosticsConfigCreateInfoNVBuilder<'a> {
 }
 #[repr(C)]
 #[derive(Copy, Clone, Debug)]
+#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR.html>"]
+pub struct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR {
+    pub s_type: StructureType,
+    pub p_next: *mut c_void,
+    pub shader_zero_initialize_workgroup_memory: Bool32,
+}
+impl ::std::default::Default for PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR {
+    fn default() -> PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR {
+        PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR {
+            s_type: StructureType::PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR,
+            p_next: ::std::ptr::null_mut(),
+            shader_zero_initialize_workgroup_memory: Bool32::default(),
+        }
+    }
+}
+impl PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR {
+    pub fn builder<'a>() -> PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHRBuilder<'a> {
+        PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHRBuilder {
+            inner: PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR::default(),
+            marker: ::std::marker::PhantomData,
+        }
+    }
+}
+#[repr(transparent)]
+pub struct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHRBuilder<'a> {
+    inner: PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR,
+    marker: ::std::marker::PhantomData<&'a ()>,
+}
+unsafe impl ExtendsDeviceCreateInfo
+    for PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHRBuilder<'_>
+{
+}
+unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR {}
+impl<'a> ::std::ops::Deref for PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHRBuilder<'a> {
+    type Target = PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
+    fn deref(&self) -> &Self::Target {
+        &self.inner
+    }
+}
+impl<'a> ::std::ops::DerefMut
+    for PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHRBuilder<'a>
+{
+    fn deref_mut(&mut self) -> &mut Self::Target {
+        &mut self.inner
+    }
+}
+impl<'a> PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHRBuilder<'a> {
+    pub fn shader_zero_initialize_workgroup_memory(
+        mut self,
+        shader_zero_initialize_workgroup_memory: bool,
+    ) -> PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHRBuilder<'a> {
+        self.inner.shader_zero_initialize_workgroup_memory =
+            shader_zero_initialize_workgroup_memory.into();
+        self
+    }
+    #[doc = r" Calling build will **discard** all the lifetime information. Only call this if"]
+    #[doc = r" necessary! Builders implement `Deref` targeting their corresponding Vulkan struct,"]
+    #[doc = r" so references to builders can be passed directly to Vulkan functions."]
+    pub fn build(self) -> PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR {
+        self.inner
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone, Debug)]
 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPhysicalDeviceRobustness2FeaturesEXT.html>"]
 pub struct PhysicalDeviceRobustness2FeaturesEXT {
     pub s_type: StructureType,
@@ -46420,6 +46484,100 @@ impl<'a> PhysicalDeviceImageRobustnessFeaturesEXTBuilder<'a> {
 }
 #[repr(C)]
 #[derive(Copy, Clone, Debug)]
+#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.html>"]
+pub struct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
+    pub s_type: StructureType,
+    pub p_next: *mut c_void,
+    pub workgroup_memory_explicit_layout: Bool32,
+    pub workgroup_memory_explicit_layout_scalar_block_layout: Bool32,
+    pub workgroup_memory_explicit_layout8_bit_access: Bool32,
+    pub workgroup_memory_explicit_layout16_bit_access: Bool32,
+}
+impl ::std::default::Default for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
+    fn default() -> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
+        PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
+            s_type: StructureType::PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR,
+            p_next: ::std::ptr::null_mut(),
+            workgroup_memory_explicit_layout: Bool32::default(),
+            workgroup_memory_explicit_layout_scalar_block_layout: Bool32::default(),
+            workgroup_memory_explicit_layout8_bit_access: Bool32::default(),
+            workgroup_memory_explicit_layout16_bit_access: Bool32::default(),
+        }
+    }
+}
+impl PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
+    pub fn builder<'a>() -> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRBuilder<'a> {
+        PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRBuilder {
+            inner: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR::default(),
+            marker: ::std::marker::PhantomData,
+        }
+    }
+}
+#[repr(transparent)]
+pub struct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRBuilder<'a> {
+    inner: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR,
+    marker: ::std::marker::PhantomData<&'a ()>,
+}
+unsafe impl ExtendsDeviceCreateInfo
+    for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRBuilder<'_>
+{
+}
+unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {}
+impl<'a> ::std::ops::Deref for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRBuilder<'a> {
+    type Target = PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
+    fn deref(&self) -> &Self::Target {
+        &self.inner
+    }
+}
+impl<'a> ::std::ops::DerefMut
+    for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRBuilder<'a>
+{
+    fn deref_mut(&mut self) -> &mut Self::Target {
+        &mut self.inner
+    }
+}
+impl<'a> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRBuilder<'a> {
+    pub fn workgroup_memory_explicit_layout(
+        mut self,
+        workgroup_memory_explicit_layout: bool,
+    ) -> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRBuilder<'a> {
+        self.inner.workgroup_memory_explicit_layout = workgroup_memory_explicit_layout.into();
+        self
+    }
+    pub fn workgroup_memory_explicit_layout_scalar_block_layout(
+        mut self,
+        workgroup_memory_explicit_layout_scalar_block_layout: bool,
+    ) -> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRBuilder<'a> {
+        self.inner
+            .workgroup_memory_explicit_layout_scalar_block_layout =
+            workgroup_memory_explicit_layout_scalar_block_layout.into();
+        self
+    }
+    pub fn workgroup_memory_explicit_layout8_bit_access(
+        mut self,
+        workgroup_memory_explicit_layout8_bit_access: bool,
+    ) -> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRBuilder<'a> {
+        self.inner.workgroup_memory_explicit_layout8_bit_access =
+            workgroup_memory_explicit_layout8_bit_access.into();
+        self
+    }
+    pub fn workgroup_memory_explicit_layout16_bit_access(
+        mut self,
+        workgroup_memory_explicit_layout16_bit_access: bool,
+    ) -> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRBuilder<'a> {
+        self.inner.workgroup_memory_explicit_layout16_bit_access =
+            workgroup_memory_explicit_layout16_bit_access.into();
+        self
+    }
+    #[doc = r" Calling build will **discard** all the lifetime information. Only call this if"]
+    #[doc = r" necessary! Builders implement `Deref` targeting their corresponding Vulkan struct,"]
+    #[doc = r" so references to builders can be passed directly to Vulkan functions."]
+    pub fn build(self) -> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
+        self.inner
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone, Debug)]
 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPhysicalDevicePortabilitySubsetFeaturesKHR.html>"]
 pub struct PhysicalDevicePortabilitySubsetFeaturesKHR {
     pub s_type: StructureType,
diff --git a/ash/src/vk/extensions.rs b/ash/src/vk/extensions.rs
index c93263f56..0eca80ffb 100644
--- a/ash/src/vk/extensions.rs
+++ b/ash/src/vk/extensions.rs
@@ -22030,7 +22030,7 @@ impl ExtDeviceMemoryReportFn {
         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_device_memory_report\0")
             .expect("Wrong extension string")
     }
-    pub const SPEC_VERSION: u32 = 1u32;
+    pub const SPEC_VERSION: u32 = 2u32;
 }
 pub struct ExtDeviceMemoryReportFn {}
 unsafe impl Send for ExtDeviceMemoryReportFn {}
@@ -23388,29 +23388,34 @@ impl KhrExtension325Fn {
         KhrExtension325Fn {}
     }
 }
-impl KhrExtension326Fn {
+impl KhrZeroInitializeWorkgroupMemoryFn {
     pub fn name() -> &'static ::std::ffi::CStr {
-        ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_326\0")
+        ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_zero_initialize_workgroup_memory\0")
             .expect("Wrong extension string")
     }
-    pub const SPEC_VERSION: u32 = 0u32;
+    pub const SPEC_VERSION: u32 = 1u32;
 }
-pub struct KhrExtension326Fn {}
-unsafe impl Send for KhrExtension326Fn {}
-unsafe impl Sync for KhrExtension326Fn {}
-impl ::std::clone::Clone for KhrExtension326Fn {
+pub struct KhrZeroInitializeWorkgroupMemoryFn {}
+unsafe impl Send for KhrZeroInitializeWorkgroupMemoryFn {}
+unsafe impl Sync for KhrZeroInitializeWorkgroupMemoryFn {}
+impl ::std::clone::Clone for KhrZeroInitializeWorkgroupMemoryFn {
     fn clone(&self) -> Self {
-        KhrExtension326Fn {}
+        KhrZeroInitializeWorkgroupMemoryFn {}
     }
 }
-impl KhrExtension326Fn {
+impl KhrZeroInitializeWorkgroupMemoryFn {
     pub fn load<F>(mut _f: F) -> Self
     where
         F: FnMut(&::std::ffi::CStr) -> *const c_void,
     {
-        KhrExtension326Fn {}
+        KhrZeroInitializeWorkgroupMemoryFn {}
     }
 }
+#[doc = "Generated from 'VK_KHR_zero_initialize_workgroup_memory'"]
+impl StructureType {
+    pub const PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR: Self =
+        Self(1_000_325_000);
+}
 impl NvFragmentShadingRateEnumsFn {
     pub fn name() -> &'static ::std::ffi::CStr {
         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_fragment_shading_rate_enums\0")
@@ -23513,6 +23518,14 @@ impl NvExtension328Fn {
         NvExtension328Fn {}
     }
 }
+#[doc = "Generated from 'VK_NV_extension_328'"]
+impl BuildAccelerationStructureFlagsKHR {
+    pub const RESERVED_5_NV: Self = Self(0b10_0000);
+}
+#[doc = "Generated from 'VK_NV_extension_328'"]
+impl AccelerationStructureCreateFlagsKHR {
+    pub const RESERVED_2_NV: Self = Self(0b100);
+}
 impl NvExtension329Fn {
     pub fn name() -> &'static ::std::ffi::CStr {
         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_329\0")
@@ -23717,29 +23730,34 @@ impl ExtImageRobustnessFn {
 impl StructureType {
     pub const PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT: Self = Self(1_000_335_000);
 }
-impl KhrExtension337Fn {
+impl KhrWorkgroupMemoryExplicitLayoutFn {
     pub fn name() -> &'static ::std::ffi::CStr {
-        ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_337\0")
+        ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_workgroup_memory_explicit_layout\0")
             .expect("Wrong extension string")
     }
-    pub const SPEC_VERSION: u32 = 0u32;
+    pub const SPEC_VERSION: u32 = 1u32;
 }
-pub struct KhrExtension337Fn {}
-unsafe impl Send for KhrExtension337Fn {}
-unsafe impl Sync for KhrExtension337Fn {}
-impl ::std::clone::Clone for KhrExtension337Fn {
+pub struct KhrWorkgroupMemoryExplicitLayoutFn {}
+unsafe impl Send for KhrWorkgroupMemoryExplicitLayoutFn {}
+unsafe impl Sync for KhrWorkgroupMemoryExplicitLayoutFn {}
+impl ::std::clone::Clone for KhrWorkgroupMemoryExplicitLayoutFn {
     fn clone(&self) -> Self {
-        KhrExtension337Fn {}
+        KhrWorkgroupMemoryExplicitLayoutFn {}
     }
 }
-impl KhrExtension337Fn {
+impl KhrWorkgroupMemoryExplicitLayoutFn {
     pub fn load<F>(mut _f: F) -> Self
     where
         F: FnMut(&::std::ffi::CStr) -> *const c_void,
     {
-        KhrExtension337Fn {}
+        KhrWorkgroupMemoryExplicitLayoutFn {}
     }
 }
+#[doc = "Generated from 'VK_KHR_workgroup_memory_explicit_layout'"]
+impl StructureType {
+    pub const PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR: Self =
+        Self(1_000_336_000);
+}
 impl KhrCopyCommands2Fn {
     pub fn name() -> &'static ::std::ffi::CStr {
         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_copy_commands2\0")
@@ -25017,6 +25035,14 @@ impl NvExtension374Fn {
         NvExtension374Fn {}
     }
 }
+#[doc = "Generated from 'VK_NV_extension_374'"]
+impl ExternalFenceHandleTypeFlags {
+    pub const EXTERNAL_FENCE_HANDLE_TYPE_RESERVED_4_NV: Self = Self(0b1_0000);
+}
+#[doc = "Generated from 'VK_NV_extension_374'"]
+impl ExternalFenceHandleTypeFlags {
+    pub const EXTERNAL_FENCE_HANDLE_TYPE_RESERVED_5_NV: Self = Self(0b10_0000);
+}
 impl NvExtension375Fn {
     pub fn name() -> &'static ::std::ffi::CStr {
         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_375\0")
@@ -25040,6 +25066,14 @@ impl NvExtension375Fn {
         NvExtension375Fn {}
     }
 }
+#[doc = "Generated from 'VK_NV_extension_375'"]
+impl ExternalSemaphoreHandleTypeFlags {
+    pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_RESERVED_5_NV: Self = Self(0b10_0000);
+}
+#[doc = "Generated from 'VK_NV_extension_375'"]
+impl ExternalSemaphoreHandleTypeFlags {
+    pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_RESERVED_6_NV: Self = Self(0b100_0000);
+}
 impl ExtExtension376Fn {
     pub fn name() -> &'static ::std::ffi::CStr {
         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_376\0")
@@ -25109,3 +25143,214 @@ impl NvExtension378Fn {
         NvExtension378Fn {}
     }
 }
+impl QnxScreenSurfaceFn {
+    pub fn name() -> &'static ::std::ffi::CStr {
+        ::std::ffi::CStr::from_bytes_with_nul(b"VK_QNX_screen_surface\0")
+            .expect("Wrong extension string")
+    }
+    pub const SPEC_VERSION: u32 = 1u32;
+}
+pub struct QnxScreenSurfaceFn {}
+unsafe impl Send for QnxScreenSurfaceFn {}
+unsafe impl Sync for QnxScreenSurfaceFn {}
+impl ::std::clone::Clone for QnxScreenSurfaceFn {
+    fn clone(&self) -> Self {
+        QnxScreenSurfaceFn {}
+    }
+}
+impl QnxScreenSurfaceFn {
+    pub fn load<F>(mut _f: F) -> Self
+    where
+        F: FnMut(&::std::ffi::CStr) -> *const c_void,
+    {
+        QnxScreenSurfaceFn {}
+    }
+}
+#[doc = "Generated from 'VK_QNX_screen_surface'"]
+impl StructureType {
+    pub const SCREEN_SURFACE_CREATE_INFO_QNX: Self = Self(1_000_378_000);
+}
+impl KhrExtension380Fn {
+    pub fn name() -> &'static ::std::ffi::CStr {
+        ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_380\0")
+            .expect("Wrong extension string")
+    }
+    pub const SPEC_VERSION: u32 = 0u32;
+}
+pub struct KhrExtension380Fn {}
+unsafe impl Send for KhrExtension380Fn {}
+unsafe impl Sync for KhrExtension380Fn {}
+impl ::std::clone::Clone for KhrExtension380Fn {
+    fn clone(&self) -> Self {
+        KhrExtension380Fn {}
+    }
+}
+impl KhrExtension380Fn {
+    pub fn load<F>(mut _f: F) -> Self
+    where
+        F: FnMut(&::std::ffi::CStr) -> *const c_void,
+    {
+        KhrExtension380Fn {}
+    }
+}
+impl KhrExtension381Fn {
+    pub fn name() -> &'static ::std::ffi::CStr {
+        ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_381\0")
+            .expect("Wrong extension string")
+    }
+    pub const SPEC_VERSION: u32 = 0u32;
+}
+pub struct KhrExtension381Fn {}
+unsafe impl Send for KhrExtension381Fn {}
+unsafe impl Sync for KhrExtension381Fn {}
+impl ::std::clone::Clone for KhrExtension381Fn {
+    fn clone(&self) -> Self {
+        KhrExtension381Fn {}
+    }
+}
+impl KhrExtension381Fn {
+    pub fn load<F>(mut _f: F) -> Self
+    where
+        F: FnMut(&::std::ffi::CStr) -> *const c_void,
+    {
+        KhrExtension381Fn {}
+    }
+}
+impl ExtExtension382Fn {
+    pub fn name() -> &'static ::std::ffi::CStr {
+        ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_382\0")
+            .expect("Wrong extension string")
+    }
+    pub const SPEC_VERSION: u32 = 0u32;
+}
+pub struct ExtExtension382Fn {}
+unsafe impl Send for ExtExtension382Fn {}
+unsafe impl Sync for ExtExtension382Fn {}
+impl ::std::clone::Clone for ExtExtension382Fn {
+    fn clone(&self) -> Self {
+        ExtExtension382Fn {}
+    }
+}
+impl ExtExtension382Fn {
+    pub fn load<F>(mut _f: F) -> Self
+    where
+        F: FnMut(&::std::ffi::CStr) -> *const c_void,
+    {
+        ExtExtension382Fn {}
+    }
+}
+impl ExtExtension383Fn {
+    pub fn name() -> &'static ::std::ffi::CStr {
+        ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_383\0")
+            .expect("Wrong extension string")
+    }
+    pub const SPEC_VERSION: u32 = 0u32;
+}
+pub struct ExtExtension383Fn {}
+unsafe impl Send for ExtExtension383Fn {}
+unsafe impl Sync for ExtExtension383Fn {}
+impl ::std::clone::Clone for ExtExtension383Fn {
+    fn clone(&self) -> Self {
+        ExtExtension383Fn {}
+    }
+}
+impl ExtExtension383Fn {
+    pub fn load<F>(mut _f: F) -> Self
+    where
+        F: FnMut(&::std::ffi::CStr) -> *const c_void,
+    {
+        ExtExtension383Fn {}
+    }
+}
+impl ExtExtension384Fn {
+    pub fn name() -> &'static ::std::ffi::CStr {
+        ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_384\0")
+            .expect("Wrong extension string")
+    }
+    pub const SPEC_VERSION: u32 = 0u32;
+}
+pub struct ExtExtension384Fn {}
+unsafe impl Send for ExtExtension384Fn {}
+unsafe impl Sync for ExtExtension384Fn {}
+impl ::std::clone::Clone for ExtExtension384Fn {
+    fn clone(&self) -> Self {
+        ExtExtension384Fn {}
+    }
+}
+impl ExtExtension384Fn {
+    pub fn load<F>(mut _f: F) -> Self
+    where
+        F: FnMut(&::std::ffi::CStr) -> *const c_void,
+    {
+        ExtExtension384Fn {}
+    }
+}
+impl MesaExtension385Fn {
+    pub fn name() -> &'static ::std::ffi::CStr {
+        ::std::ffi::CStr::from_bytes_with_nul(b"VK_MESA_extension_385\0")
+            .expect("Wrong extension string")
+    }
+    pub const SPEC_VERSION: u32 = 0u32;
+}
+pub struct MesaExtension385Fn {}
+unsafe impl Send for MesaExtension385Fn {}
+unsafe impl Sync for MesaExtension385Fn {}
+impl ::std::clone::Clone for MesaExtension385Fn {
+    fn clone(&self) -> Self {
+        MesaExtension385Fn {}
+    }
+}
+impl MesaExtension385Fn {
+    pub fn load<F>(mut _f: F) -> Self
+    where
+        F: FnMut(&::std::ffi::CStr) -> *const c_void,
+    {
+        MesaExtension385Fn {}
+    }
+}
+impl GoogleExtension386Fn {
+    pub fn name() -> &'static ::std::ffi::CStr {
+        ::std::ffi::CStr::from_bytes_with_nul(b"VK_GOOGLE_extension_386\0")
+            .expect("Wrong extension string")
+    }
+    pub const SPEC_VERSION: u32 = 0u32;
+}
+pub struct GoogleExtension386Fn {}
+unsafe impl Send for GoogleExtension386Fn {}
+unsafe impl Sync for GoogleExtension386Fn {}
+impl ::std::clone::Clone for GoogleExtension386Fn {
+    fn clone(&self) -> Self {
+        GoogleExtension386Fn {}
+    }
+}
+impl GoogleExtension386Fn {
+    pub fn load<F>(mut _f: F) -> Self
+    where
+        F: FnMut(&::std::ffi::CStr) -> *const c_void,
+    {
+        GoogleExtension386Fn {}
+    }
+}
+impl KhrExtension387Fn {
+    pub fn name() -> &'static ::std::ffi::CStr {
+        ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_387\0")
+            .expect("Wrong extension string")
+    }
+    pub const SPEC_VERSION: u32 = 0u32;
+}
+pub struct KhrExtension387Fn {}
+unsafe impl Send for KhrExtension387Fn {}
+unsafe impl Sync for KhrExtension387Fn {}
+impl ::std::clone::Clone for KhrExtension387Fn {
+    fn clone(&self) -> Self {
+        KhrExtension387Fn {}
+    }
+}
+impl KhrExtension387Fn {
+    pub fn load<F>(mut _f: F) -> Self
+    where
+        F: FnMut(&::std::ffi::CStr) -> *const c_void,
+    {
+        KhrExtension387Fn {}
+    }
+}
diff --git a/generator/Vulkan-Headers b/generator/Vulkan-Headers
index 9efc4a631..9166a0677 160000
--- a/generator/Vulkan-Headers
+++ b/generator/Vulkan-Headers
@@ -1 +1 @@
-Subproject commit 9efc4a631161eeea11082bbd16d605cca0b7a01e
+Subproject commit 9166a0677e4412edbdcc774bdcd7c74cefc74ae5