@@ -60,7 +60,7 @@ pub const API_VERSION_1_3: u32 = make_api_version(0, 1, 3, 0);
6060#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_API_VERSION_1_4.html>"]
6161pub const API_VERSION_1_4: u32 = make_api_version(0, 1, 4, 0);
6262#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_HEADER_VERSION.html>"]
63- pub const HEADER_VERSION: u32 = 307 ;
63+ pub const HEADER_VERSION: u32 = 310 ;
6464#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_HEADER_VERSION_COMPLETE.html>"]
6565pub const HEADER_VERSION_COMPLETE: u32 = make_api_version(0, 1, 4, HEADER_VERSION);
6666#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSampleMask.html>"]
@@ -36280,6 +36280,10 @@ unsafe impl<'a> TaggedStructure for AccelerationStructureGeometryLinearSweptSphe
3628036280 const STRUCTURE_TYPE: StructureType =
3628136281 StructureType::ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV;
3628236282}
36283+ unsafe impl ExtendsAccelerationStructureGeometryKHR
36284+ for AccelerationStructureGeometryLinearSweptSpheresDataNV<'_>
36285+ {
36286+ }
3628336287impl<'a> AccelerationStructureGeometryLinearSweptSpheresDataNV<'a> {
3628436288 #[inline]
3628536289 pub fn vertex_format(mut self, vertex_format: Format) -> Self {
@@ -36398,6 +36402,10 @@ unsafe impl<'a> TaggedStructure for AccelerationStructureGeometrySpheresDataNV<'
3639836402 const STRUCTURE_TYPE: StructureType =
3639936403 StructureType::ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV;
3640036404}
36405+ unsafe impl ExtendsAccelerationStructureGeometryKHR
36406+ for AccelerationStructureGeometrySpheresDataNV<'_>
36407+ {
36408+ }
3640136409impl<'a> AccelerationStructureGeometrySpheresDataNV<'a> {
3640236410 #[inline]
3640336411 pub fn vertex_format(mut self, vertex_format: Format) -> Self {
@@ -36501,6 +36509,7 @@ impl ::core::default::Default for AccelerationStructureGeometryKHR<'_> {
3650136509unsafe impl<'a> TaggedStructure for AccelerationStructureGeometryKHR<'a> {
3650236510 const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_GEOMETRY_KHR;
3650336511}
36512+ pub unsafe trait ExtendsAccelerationStructureGeometryKHR {}
3650436513impl<'a> AccelerationStructureGeometryKHR<'a> {
3650536514 #[inline]
3650636515 pub fn geometry_type(mut self, geometry_type: GeometryTypeKHR) -> Self {
@@ -36517,6 +36526,23 @@ impl<'a> AccelerationStructureGeometryKHR<'a> {
3651736526 self.flags = flags;
3651836527 self
3651936528 }
36529+ #[doc = r" Prepends the given extension struct between the root and the first pointer. This"]
36530+ #[doc = r" method only exists on structs that can be passed to a function directly. Only"]
36531+ #[doc = r" valid extension structs can be pushed into the chain."]
36532+ #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"]
36533+ #[doc = r" chain will look like `A -> D -> B -> C`."]
36534+ pub fn push_next<T: ExtendsAccelerationStructureGeometryKHR + ?Sized>(
36535+ mut self,
36536+ next: &'a mut T,
36537+ ) -> Self {
36538+ unsafe {
36539+ let next_ptr = <*const T>::cast(next);
36540+ let last_next = ptr_chain_iter(next).last().unwrap();
36541+ (*last_next).p_next = self.p_next as _;
36542+ self.p_next = next_ptr;
36543+ }
36544+ self
36545+ }
3652036546}
3652136547#[repr(C)]
3652236548#[derive(Copy, Clone)]
@@ -42396,7 +42422,6 @@ unsafe impl<'a> TaggedStructure for MemoryBarrier2<'a> {
4239642422 const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_BARRIER_2;
4239742423}
4239842424unsafe impl ExtendsSubpassDependency2 for MemoryBarrier2<'_> {}
42399- pub unsafe trait ExtendsMemoryBarrier2 {}
4240042425impl<'a> MemoryBarrier2<'a> {
4240142426 #[inline]
4240242427 pub fn src_stage_mask(mut self, src_stage_mask: PipelineStageFlags2) -> Self {
@@ -42418,20 +42443,6 @@ impl<'a> MemoryBarrier2<'a> {
4241842443 self.dst_access_mask = dst_access_mask;
4241942444 self
4242042445 }
42421- #[doc = r" Prepends the given extension struct between the root and the first pointer. This"]
42422- #[doc = r" method only exists on structs that can be passed to a function directly. Only"]
42423- #[doc = r" valid extension structs can be pushed into the chain."]
42424- #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"]
42425- #[doc = r" chain will look like `A -> D -> B -> C`."]
42426- pub fn push_next<T: ExtendsMemoryBarrier2 + ?Sized>(mut self, next: &'a mut T) -> Self {
42427- unsafe {
42428- let next_ptr = <*const T>::cast(next);
42429- let last_next = ptr_chain_iter(next).last().unwrap();
42430- (*last_next).p_next = self.p_next as _;
42431- self.p_next = next_ptr;
42432- }
42433- self
42434- }
4243542446}
4243642447#[repr(C)]
4243742448#[cfg_attr(feature = "debug", derive(Debug))]
@@ -42679,7 +42690,7 @@ impl ::core::default::Default for MemoryBarrierAccessFlags3KHR<'_> {
4267942690unsafe impl<'a> TaggedStructure for MemoryBarrierAccessFlags3KHR<'a> {
4268042691 const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_BARRIER_ACCESS_FLAGS_3_KHR;
4268142692}
42682- unsafe impl ExtendsMemoryBarrier2 for MemoryBarrierAccessFlags3KHR<'_> {}
42693+ unsafe impl ExtendsSubpassDependency2 for MemoryBarrierAccessFlags3KHR<'_> {}
4268342694unsafe impl ExtendsBufferMemoryBarrier2 for MemoryBarrierAccessFlags3KHR<'_> {}
4268442695unsafe impl ExtendsImageMemoryBarrier2 for MemoryBarrierAccessFlags3KHR<'_> {}
4268542696impl<'a> MemoryBarrierAccessFlags3KHR<'a> {
@@ -64782,3 +64793,82 @@ impl<'a> ConvertCooperativeVectorMatrixInfoNV<'a> {
6478264793 self
6478364794 }
6478464795}
64796+ #[repr(C)]
64797+ #[cfg_attr(feature = "debug", derive(Debug))]
64798+ #[derive(Copy, Clone)]
64799+ #[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSetPresentConfigNV.html>"]
64800+ #[must_use]
64801+ pub struct SetPresentConfigNV<'a> {
64802+ pub s_type: StructureType,
64803+ pub p_next: *const c_void,
64804+ pub num_frames_per_batch: u32,
64805+ pub present_config_feedback: u32,
64806+ pub _marker: PhantomData<&'a ()>,
64807+ }
64808+ unsafe impl Send for SetPresentConfigNV<'_> {}
64809+ unsafe impl Sync for SetPresentConfigNV<'_> {}
64810+ impl ::core::default::Default for SetPresentConfigNV<'_> {
64811+ #[inline]
64812+ fn default() -> Self {
64813+ Self {
64814+ s_type: Self::STRUCTURE_TYPE,
64815+ p_next: ::core::ptr::null(),
64816+ num_frames_per_batch: u32::default(),
64817+ present_config_feedback: u32::default(),
64818+ _marker: PhantomData,
64819+ }
64820+ }
64821+ }
64822+ unsafe impl<'a> TaggedStructure for SetPresentConfigNV<'a> {
64823+ const STRUCTURE_TYPE: StructureType = StructureType::SET_PRESENT_CONFIG_NV;
64824+ }
64825+ unsafe impl ExtendsPresentInfoKHR for SetPresentConfigNV<'_> {}
64826+ impl<'a> SetPresentConfigNV<'a> {
64827+ #[inline]
64828+ pub fn num_frames_per_batch(mut self, num_frames_per_batch: u32) -> Self {
64829+ self.num_frames_per_batch = num_frames_per_batch;
64830+ self
64831+ }
64832+ #[inline]
64833+ pub fn present_config_feedback(mut self, present_config_feedback: u32) -> Self {
64834+ self.present_config_feedback = present_config_feedback;
64835+ self
64836+ }
64837+ }
64838+ #[repr(C)]
64839+ #[cfg_attr(feature = "debug", derive(Debug))]
64840+ #[derive(Copy, Clone)]
64841+ #[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePresentMeteringFeaturesNV.html>"]
64842+ #[must_use]
64843+ pub struct PhysicalDevicePresentMeteringFeaturesNV<'a> {
64844+ pub s_type: StructureType,
64845+ pub p_next: *mut c_void,
64846+ pub present_metering: Bool32,
64847+ pub _marker: PhantomData<&'a ()>,
64848+ }
64849+ unsafe impl Send for PhysicalDevicePresentMeteringFeaturesNV<'_> {}
64850+ unsafe impl Sync for PhysicalDevicePresentMeteringFeaturesNV<'_> {}
64851+ impl ::core::default::Default for PhysicalDevicePresentMeteringFeaturesNV<'_> {
64852+ #[inline]
64853+ fn default() -> Self {
64854+ Self {
64855+ s_type: Self::STRUCTURE_TYPE,
64856+ p_next: ::core::ptr::null_mut(),
64857+ present_metering: Bool32::default(),
64858+ _marker: PhantomData,
64859+ }
64860+ }
64861+ }
64862+ unsafe impl<'a> TaggedStructure for PhysicalDevicePresentMeteringFeaturesNV<'a> {
64863+ const STRUCTURE_TYPE: StructureType =
64864+ StructureType::PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV;
64865+ }
64866+ unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentMeteringFeaturesNV<'_> {}
64867+ unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentMeteringFeaturesNV<'_> {}
64868+ impl<'a> PhysicalDevicePresentMeteringFeaturesNV<'a> {
64869+ #[inline]
64870+ pub fn present_metering(mut self, present_metering: bool) -> Self {
64871+ self.present_metering = present_metering.into();
64872+ self
64873+ }
64874+ }
0 commit comments