From 59a23d9837e1d5945f2fa8b40d1b9cf6111407b8 Mon Sep 17 00:00:00 2001 From: Zhixing Zhang Date: Sun, 13 Oct 2024 16:12:23 -0700 Subject: [PATCH 1/7] Create Extends and NextChainExt traits --- ash/src/lib.rs | 24 - ash/src/prelude.rs | 1 + ash/src/util.rs | 66 + ash/src/vk.rs | 20 +- ash/src/vk/definitions.rs | 4962 +++++++++++++++---------------------- ash/src/vk/prelude.rs | 7 + generator/src/lib.rs | 49 +- 7 files changed, 2136 insertions(+), 2993 deletions(-) diff --git a/ash/src/lib.rs b/ash/src/lib.rs index 831379702..135771b86 100644 --- a/ash/src/lib.rs +++ b/ash/src/lib.rs @@ -191,27 +191,3 @@ macro_rules! match_in_struct { } }; } - -#[cfg(test)] -mod tests { - use super::vk; - use alloc::vec::Vec; - #[test] - fn test_ptr_chains() { - let mut variable_pointers = vk::PhysicalDeviceVariablePointerFeatures::default(); - let mut corner = vk::PhysicalDeviceCornerSampledImageFeaturesNV::default(); - let chain = alloc::vec![ - <*mut _>::cast(&mut variable_pointers), - <*mut _>::cast(&mut corner), - ]; - let mut device_create_info = vk::DeviceCreateInfo::default() - .push_next(&mut corner) - .push_next(&mut variable_pointers); - let chain2: Vec<*mut vk::BaseOutStructure<'_>> = unsafe { - vk::ptr_chain_iter(&mut device_create_info) - .skip(1) - .collect() - }; - assert_eq!(chain, chain2); - } -} diff --git a/ash/src/prelude.rs b/ash/src/prelude.rs index 1341960f4..c0bc43516 100644 --- a/ash/src/prelude.rs +++ b/ash/src/prelude.rs @@ -5,6 +5,7 @@ use core::ptr; use crate::vk; pub type VkResult = Result; +pub use crate::util::NextChainExt; impl vk::Result { #[inline] diff --git a/ash/src/util.rs b/ash/src/util.rs index 0b32055f1..0d1a618e7 100644 --- a/ash/src/util.rs +++ b/ash/src/util.rs @@ -140,3 +140,69 @@ pub fn read_spv(x: &mut R) -> io::Result> { } Ok(result) } + +/// Iterates through the pointer chain. Includes the item that is passed into the function. +/// Stops at the last [`BaseOutStructure`] that has a null [`BaseOutStructure::p_next`] field. +unsafe fn ptr_chain_iter( + ptr: &mut T, +) -> impl Iterator> { + let ptr = <*mut T>::cast::>(ptr); + (0..).scan(ptr, |p_ptr, _| { + if p_ptr.is_null() { + return None; + } + let n_ptr = (**p_ptr).p_next; + let old = *p_ptr; + *p_ptr = n_ptr; + Some(old) + }) +} + +pub trait NextChainExt { + fn base_structure(&mut self) -> &mut vk::BaseOutStructure<'_>; + fn add_next>(&mut self, next: &mut T) -> &mut Self { + unsafe { + let next_ptr = <*mut T>::cast(next); + let last_next = ptr_chain_iter(next).last().unwrap(); + (*last_next).p_next = self.base_structure().p_next as _; + self.base_structure().p_next = next_ptr; + } + self + } + fn push_next>(mut self, next: &mut T) -> Self + where + Self: Sized, + { + self.add_next(next); + self + } +} +impl NextChainExt for T +where + T: vk::BaseTaggedStructure, +{ + fn base_structure(&mut self) -> &mut vk::BaseOutStructure<'_> { + self.as_base_out_structure() + } +} + +#[cfg(test)] +mod tests { + use super::*; + use alloc::vec::Vec; + #[test] + fn test_ptr_chains() { + let mut variable_pointers = vk::PhysicalDeviceVariablePointerFeatures::default(); + let mut corner = vk::PhysicalDeviceCornerSampledImageFeaturesNV::default(); + let chain = alloc::vec![ + <*mut _>::cast(&mut variable_pointers), + <*mut _>::cast(&mut corner), + ]; + let mut device_create_info = vk::DeviceCreateInfo::default() + .push_next(&mut corner) + .push_next(&mut variable_pointers); + let chain2: Vec<*mut vk::BaseOutStructure<'_>> = + unsafe { ptr_chain_iter(&mut device_create_info).skip(1).collect() }; + assert_eq!(chain, chain2); + } +} diff --git a/ash/src/vk.rs b/ash/src/vk.rs index 312741709..e9435f56d 100644 --- a/ash/src/vk.rs +++ b/ash/src/vk.rs @@ -30,22 +30,7 @@ pub use prelude::*; pub mod native; mod platform_types; pub use platform_types::*; -/// Iterates through the pointer chain. Includes the item that is passed into the function. -/// Stops at the last [`BaseOutStructure`] that has a null [`BaseOutStructure::p_next`] field. -pub(crate) unsafe fn ptr_chain_iter( - ptr: &mut T, -) -> impl Iterator> { - let ptr = <*mut T>::cast::>(ptr); - (0..).scan(ptr, |p_ptr, _| { - if p_ptr.is_null() { - return None; - } - let n_ptr = (**p_ptr).p_next; - let old = *p_ptr; - *p_ptr = n_ptr; - Some(old) - }) -} + pub trait Handle: Sized { const TYPE: ObjectType; fn as_raw(self) -> u64; @@ -64,3 +49,6 @@ pub trait Handle: Sized { self.as_raw() == 0 } } + +pub unsafe trait BaseTaggedStructure: TaggedStructure {} +pub unsafe trait Extends {} diff --git a/ash/src/vk/definitions.rs b/ash/src/vk/definitions.rs index 8ea977a51..952702c71 100644 --- a/ash/src/vk/definitions.rs +++ b/ash/src/vk/definitions.rs @@ -5,7 +5,7 @@ use crate::vk::enums::*; use crate::vk::native::*; use crate::vk::platform_types::*; use crate::vk::prelude::*; -use crate::vk::{ptr_chain_iter, Handle}; +use crate::vk::Handle; use core::ffi::*; use core::fmt; use core::marker::PhantomData; @@ -1261,7 +1261,7 @@ impl ::core::default::Default for DeviceQueueCreateInfo<'_> { unsafe impl<'a> TaggedStructure for DeviceQueueCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_QUEUE_CREATE_INFO; } -pub unsafe trait ExtendsDeviceQueueCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for DeviceQueueCreateInfo<'_> {} impl<'a> DeviceQueueCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: DeviceQueueCreateFlags) -> Self { @@ -1279,20 +1279,6 @@ impl<'a> DeviceQueueCreateInfo<'a> { self.p_queue_priorities = queue_priorities.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -1338,7 +1324,7 @@ impl ::core::default::Default for DeviceCreateInfo<'_> { unsafe impl<'a> TaggedStructure for DeviceCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_CREATE_INFO; } -pub unsafe trait ExtendsDeviceCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for DeviceCreateInfo<'_> {} impl<'a> DeviceCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: DeviceCreateFlags) -> Self { @@ -1373,20 +1359,6 @@ impl<'a> DeviceCreateInfo<'a> { self.p_enabled_features = enabled_features; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -1425,7 +1397,7 @@ impl ::core::default::Default for InstanceCreateInfo<'_> { unsafe impl<'a> TaggedStructure for InstanceCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::INSTANCE_CREATE_INFO; } -pub unsafe trait ExtendsInstanceCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for InstanceCreateInfo<'_> {} impl<'a> InstanceCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: InstanceCreateFlags) -> Self { @@ -1449,20 +1421,6 @@ impl<'a> InstanceCreateInfo<'a> { self.pp_enabled_extension_names = enabled_extension_names.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -1583,7 +1541,7 @@ impl ::core::default::Default for MemoryAllocateInfo<'_> { unsafe impl<'a> TaggedStructure for MemoryAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_ALLOCATE_INFO; } -pub unsafe trait ExtendsMemoryAllocateInfo {} +unsafe impl<'a> BaseTaggedStructure for MemoryAllocateInfo<'_> {} impl<'a> MemoryAllocateInfo<'a> { #[inline] pub fn allocation_size(mut self, allocation_size: DeviceSize) -> Self { @@ -1595,20 +1553,6 @@ impl<'a> MemoryAllocateInfo<'a> { self.memory_type_index = memory_type_index; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -1954,7 +1898,7 @@ impl ::core::default::Default for WriteDescriptorSet<'_> { unsafe impl<'a> TaggedStructure for WriteDescriptorSet<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET; } -pub unsafe trait ExtendsWriteDescriptorSet {} +unsafe impl<'a> BaseTaggedStructure for WriteDescriptorSet<'_> {} impl<'a> WriteDescriptorSet<'a> { #[inline] pub fn dst_set(mut self, dst_set: DescriptorSet) -> Self { @@ -1999,20 +1943,6 @@ impl<'a> WriteDescriptorSet<'a> { self.p_texel_buffer_view = texel_buffer_view.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -2117,10 +2047,13 @@ impl ::core::default::Default for BufferUsageFlags2CreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for BufferUsageFlags2CreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR; } -unsafe impl ExtendsBufferViewCreateInfo for BufferUsageFlags2CreateInfoKHR<'_> {} -unsafe impl ExtendsBufferCreateInfo for BufferUsageFlags2CreateInfoKHR<'_> {} -unsafe impl ExtendsPhysicalDeviceExternalBufferInfo for BufferUsageFlags2CreateInfoKHR<'_> {} -unsafe impl ExtendsDescriptorBufferBindingInfoEXT for BufferUsageFlags2CreateInfoKHR<'_> {} +unsafe impl<'a> Extends> for BufferUsageFlags2CreateInfoKHR<'a> {} +unsafe impl<'a> Extends> for BufferUsageFlags2CreateInfoKHR<'a> {} +unsafe impl<'a> Extends> + for BufferUsageFlags2CreateInfoKHR<'a> +{ +} +unsafe impl<'a> Extends> for BufferUsageFlags2CreateInfoKHR<'a> {} impl<'a> BufferUsageFlags2CreateInfoKHR<'a> { #[inline] pub fn usage(mut self, usage: BufferUsageFlags2KHR) -> Self { @@ -2165,7 +2098,7 @@ impl ::core::default::Default for BufferCreateInfo<'_> { unsafe impl<'a> TaggedStructure for BufferCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_CREATE_INFO; } -pub unsafe trait ExtendsBufferCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for BufferCreateInfo<'_> {} impl<'a> BufferCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: BufferCreateFlags) -> Self { @@ -2193,20 +2126,6 @@ impl<'a> BufferCreateInfo<'a> { self.p_queue_family_indices = queue_family_indices.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -2243,7 +2162,7 @@ impl ::core::default::Default for BufferViewCreateInfo<'_> { unsafe impl<'a> TaggedStructure for BufferViewCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_VIEW_CREATE_INFO; } -pub unsafe trait ExtendsBufferViewCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for BufferViewCreateInfo<'_> {} impl<'a> BufferViewCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: BufferViewCreateFlags) -> Self { @@ -2270,20 +2189,6 @@ impl<'a> BufferViewCreateInfo<'a> { self.range = range; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -2464,7 +2369,7 @@ impl ::core::default::Default for BufferMemoryBarrier<'_> { unsafe impl<'a> TaggedStructure for BufferMemoryBarrier<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_MEMORY_BARRIER; } -pub unsafe trait ExtendsBufferMemoryBarrier {} +unsafe impl<'a> BaseTaggedStructure for BufferMemoryBarrier<'_> {} impl<'a> BufferMemoryBarrier<'a> { #[inline] pub fn src_access_mask(mut self, src_access_mask: AccessFlags) -> Self { @@ -2501,20 +2406,6 @@ impl<'a> BufferMemoryBarrier<'a> { self.size = size; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -2557,7 +2448,7 @@ impl ::core::default::Default for ImageMemoryBarrier<'_> { unsafe impl<'a> TaggedStructure for ImageMemoryBarrier<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_MEMORY_BARRIER; } -pub unsafe trait ExtendsImageMemoryBarrier {} +unsafe impl<'a> BaseTaggedStructure for ImageMemoryBarrier<'_> {} impl<'a> ImageMemoryBarrier<'a> { #[inline] pub fn src_access_mask(mut self, src_access_mask: AccessFlags) -> Self { @@ -2599,20 +2490,6 @@ impl<'a> ImageMemoryBarrier<'a> { self.subresource_range = subresource_range; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -2665,7 +2542,7 @@ impl ::core::default::Default for ImageCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ImageCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_CREATE_INFO; } -pub unsafe trait ExtendsImageCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for ImageCreateInfo<'_> {} impl<'a> ImageCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: ImageCreateFlags) -> Self { @@ -2728,20 +2605,6 @@ impl<'a> ImageCreateInfo<'a> { self.initial_layout = initial_layout; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -2819,7 +2682,7 @@ impl ::core::default::Default for ImageViewCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ImageViewCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_CREATE_INFO; } -pub unsafe trait ExtendsImageViewCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for ImageViewCreateInfo<'_> {} impl<'a> ImageViewCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: ImageViewCreateFlags) -> Self { @@ -2851,20 +2714,6 @@ impl<'a> ImageViewCreateInfo<'a> { self.subresource_range = subresource_range; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -3133,7 +2982,7 @@ impl ::core::default::Default for BindSparseInfo<'_> { unsafe impl<'a> TaggedStructure for BindSparseInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_SPARSE_INFO; } -pub unsafe trait ExtendsBindSparseInfo {} +unsafe impl<'a> BaseTaggedStructure for BindSparseInfo<'_> {} impl<'a> BindSparseInfo<'a> { #[inline] pub fn wait_semaphores(mut self, wait_semaphores: &'a [Semaphore]) -> Self { @@ -3168,20 +3017,6 @@ impl<'a> BindSparseInfo<'a> { self.p_signal_semaphores = signal_semaphores.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -3453,8 +3288,8 @@ impl ::core::default::Default for ShaderModuleCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ShaderModuleCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SHADER_MODULE_CREATE_INFO; } -unsafe impl ExtendsPipelineShaderStageCreateInfo for ShaderModuleCreateInfo<'_> {} -pub unsafe trait ExtendsShaderModuleCreateInfo {} +unsafe impl<'a> Extends> for ShaderModuleCreateInfo<'a> {} +unsafe impl<'a> BaseTaggedStructure for ShaderModuleCreateInfo<'_> {} impl<'a> ShaderModuleCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: ShaderModuleCreateFlags) -> Self { @@ -3467,20 +3302,6 @@ impl<'a> ShaderModuleCreateInfo<'a> { self.p_code = code.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -3569,7 +3390,7 @@ impl ::core::default::Default for DescriptorSetLayoutCreateInfo<'_> { unsafe impl<'a> TaggedStructure for DescriptorSetLayoutCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_CREATE_INFO; } -pub unsafe trait ExtendsDescriptorSetLayoutCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for DescriptorSetLayoutCreateInfo<'_> {} impl<'a> DescriptorSetLayoutCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: DescriptorSetLayoutCreateFlags) -> Self { @@ -3582,23 +3403,6 @@ impl<'a> DescriptorSetLayoutCreateInfo<'a> { self.p_bindings = bindings.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -3654,7 +3458,7 @@ impl ::core::default::Default for DescriptorPoolCreateInfo<'_> { unsafe impl<'a> TaggedStructure for DescriptorPoolCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_POOL_CREATE_INFO; } -pub unsafe trait ExtendsDescriptorPoolCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for DescriptorPoolCreateInfo<'_> {} impl<'a> DescriptorPoolCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: DescriptorPoolCreateFlags) -> Self { @@ -3672,23 +3476,6 @@ impl<'a> DescriptorPoolCreateInfo<'a> { self.p_pool_sizes = pool_sizes.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -3721,7 +3508,7 @@ impl ::core::default::Default for DescriptorSetAllocateInfo<'_> { unsafe impl<'a> TaggedStructure for DescriptorSetAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_ALLOCATE_INFO; } -pub unsafe trait ExtendsDescriptorSetAllocateInfo {} +unsafe impl<'a> BaseTaggedStructure for DescriptorSetAllocateInfo<'_> {} impl<'a> DescriptorSetAllocateInfo<'a> { #[inline] pub fn descriptor_pool(mut self, descriptor_pool: DescriptorPool) -> Self { @@ -3734,23 +3521,6 @@ impl<'a> DescriptorSetAllocateInfo<'a> { self.p_set_layouts = set_layouts.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -3854,7 +3624,7 @@ impl ::core::default::Default for PipelineShaderStageCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineShaderStageCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_SHADER_STAGE_CREATE_INFO; } -pub unsafe trait ExtendsPipelineShaderStageCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for PipelineShaderStageCreateInfo<'_> {} impl<'a> PipelineShaderStageCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineShaderStageCreateFlags) -> Self { @@ -3889,23 +3659,6 @@ impl<'a> PipelineShaderStageCreateInfo<'a> { self.p_specialization_info = specialization_info; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -3942,7 +3695,7 @@ impl ::core::default::Default for ComputePipelineCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ComputePipelineCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMPUTE_PIPELINE_CREATE_INFO; } -pub unsafe trait ExtendsComputePipelineCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for ComputePipelineCreateInfo<'_> {} impl<'a> ComputePipelineCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineCreateFlags) -> Self { @@ -3969,23 +3722,6 @@ impl<'a> ComputePipelineCreateInfo<'a> { self.base_pipeline_index = base_pipeline_index; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -4018,7 +3754,7 @@ impl ::core::default::Default for ComputePipelineIndirectBufferInfoNV<'_> { unsafe impl<'a> TaggedStructure for ComputePipelineIndirectBufferInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV; } -unsafe impl ExtendsComputePipelineCreateInfo for ComputePipelineIndirectBufferInfoNV<'_> {} +unsafe impl<'a> Extends> for ComputePipelineIndirectBufferInfoNV<'a> {} impl<'a> ComputePipelineIndirectBufferInfoNV<'a> { #[inline] pub fn device_address(mut self, device_address: DeviceAddress) -> Self { @@ -4066,10 +3802,16 @@ impl ::core::default::Default for PipelineCreateFlags2CreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PipelineCreateFlags2CreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR; } -unsafe impl ExtendsComputePipelineCreateInfo for PipelineCreateFlags2CreateInfoKHR<'_> {} -unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineCreateFlags2CreateInfoKHR<'_> {} -unsafe impl ExtendsRayTracingPipelineCreateInfoNV for PipelineCreateFlags2CreateInfoKHR<'_> {} -unsafe impl ExtendsRayTracingPipelineCreateInfoKHR for PipelineCreateFlags2CreateInfoKHR<'_> {} +unsafe impl<'a> Extends> for PipelineCreateFlags2CreateInfoKHR<'a> {} +unsafe impl<'a> Extends> for PipelineCreateFlags2CreateInfoKHR<'a> {} +unsafe impl<'a> Extends> + for PipelineCreateFlags2CreateInfoKHR<'a> +{ +} +unsafe impl<'a> Extends> + for PipelineCreateFlags2CreateInfoKHR<'a> +{ +} impl<'a> PipelineCreateFlags2CreateInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: PipelineCreateFlags2KHR) -> Self { @@ -4172,7 +3914,7 @@ impl ::core::default::Default for PipelineVertexInputStateCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineVertexInputStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO; } -pub unsafe trait ExtendsPipelineVertexInputStateCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for PipelineVertexInputStateCreateInfo<'_> {} impl<'a> PipelineVertexInputStateCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineVertexInputStateCreateFlags) -> Self { @@ -4197,23 +3939,6 @@ impl<'a> PipelineVertexInputStateCreateInfo<'a> { self.p_vertex_attribute_descriptions = vertex_attribute_descriptions.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -4292,7 +4017,7 @@ impl ::core::default::Default for PipelineTessellationStateCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineTessellationStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_TESSELLATION_STATE_CREATE_INFO; } -pub unsafe trait ExtendsPipelineTessellationStateCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for PipelineTessellationStateCreateInfo<'_> {} impl<'a> PipelineTessellationStateCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineTessellationStateCreateFlags) -> Self { @@ -4304,23 +4029,6 @@ impl<'a> PipelineTessellationStateCreateInfo<'a> { self.patch_control_points = patch_control_points; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -4357,7 +4065,7 @@ impl ::core::default::Default for PipelineViewportStateCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineViewportStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_STATE_CREATE_INFO; } -pub unsafe trait ExtendsPipelineViewportStateCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for PipelineViewportStateCreateInfo<'_> {} impl<'a> PipelineViewportStateCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineViewportStateCreateFlags) -> Self { @@ -4386,23 +4094,6 @@ impl<'a> PipelineViewportStateCreateInfo<'a> { self.p_scissors = scissors.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -4451,7 +4142,7 @@ impl ::core::default::Default for PipelineRasterizationStateCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineRasterizationStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_STATE_CREATE_INFO; } -pub unsafe trait ExtendsPipelineRasterizationStateCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for PipelineRasterizationStateCreateInfo<'_> {} impl<'a> PipelineRasterizationStateCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineRasterizationStateCreateFlags) -> Self { @@ -4508,23 +4199,6 @@ impl<'a> PipelineRasterizationStateCreateInfo<'a> { self.line_width = line_width; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -4565,7 +4239,7 @@ impl ::core::default::Default for PipelineMultisampleStateCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineMultisampleStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_MULTISAMPLE_STATE_CREATE_INFO; } -pub unsafe trait ExtendsPipelineMultisampleStateCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for PipelineMultisampleStateCreateInfo<'_> {} impl<'a> PipelineMultisampleStateCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineMultisampleStateCreateFlags) -> Self { @@ -4611,23 +4285,6 @@ impl<'a> PipelineMultisampleStateCreateInfo<'a> { self.alpha_to_one_enable = alpha_to_one_enable.into(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -4723,7 +4380,7 @@ impl ::core::default::Default for PipelineColorBlendStateCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineColorBlendStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COLOR_BLEND_STATE_CREATE_INFO; } -pub unsafe trait ExtendsPipelineColorBlendStateCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for PipelineColorBlendStateCreateInfo<'_> {} impl<'a> PipelineColorBlendStateCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineColorBlendStateCreateFlags) -> Self { @@ -4751,23 +4408,6 @@ impl<'a> PipelineColorBlendStateCreateInfo<'a> { self.blend_constants = blend_constants; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -5020,7 +4660,7 @@ impl ::core::default::Default for GraphicsPipelineCreateInfo<'_> { unsafe impl<'a> TaggedStructure for GraphicsPipelineCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GRAPHICS_PIPELINE_CREATE_INFO; } -pub unsafe trait ExtendsGraphicsPipelineCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for GraphicsPipelineCreateInfo<'_> {} impl<'a> GraphicsPipelineCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineCreateFlags) -> Self { @@ -5127,23 +4767,6 @@ impl<'a> GraphicsPipelineCreateInfo<'a> { self.base_pipeline_index = base_pipeline_index; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -5502,9 +5125,9 @@ impl ::core::default::Default for PipelineBinaryInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PipelineBinaryInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_BINARY_INFO_KHR; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineBinaryInfoKHR<'_> {} -unsafe impl ExtendsComputePipelineCreateInfo for PipelineBinaryInfoKHR<'_> {} -unsafe impl ExtendsRayTracingPipelineCreateInfoKHR for PipelineBinaryInfoKHR<'_> {} +unsafe impl<'a> Extends> for PipelineBinaryInfoKHR<'a> {} +unsafe impl<'a> Extends> for PipelineBinaryInfoKHR<'a> {} +unsafe impl<'a> Extends> for PipelineBinaryInfoKHR<'a> {} impl<'a> PipelineBinaryInfoKHR<'a> { #[inline] pub fn pipeline_binaries(mut self, pipeline_binaries: &'a [PipelineBinaryKHR]) -> Self { @@ -5642,13 +5265,16 @@ impl ::core::default::Default for PipelineLayoutCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineLayoutCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_LAYOUT_CREATE_INFO; } -unsafe impl ExtendsBindDescriptorSetsInfoKHR for PipelineLayoutCreateInfo<'_> {} -unsafe impl ExtendsPushConstantsInfoKHR for PipelineLayoutCreateInfo<'_> {} -unsafe impl ExtendsPushDescriptorSetInfoKHR for PipelineLayoutCreateInfo<'_> {} -unsafe impl ExtendsPushDescriptorSetWithTemplateInfoKHR for PipelineLayoutCreateInfo<'_> {} -unsafe impl ExtendsSetDescriptorBufferOffsetsInfoEXT for PipelineLayoutCreateInfo<'_> {} -unsafe impl ExtendsBindDescriptorBufferEmbeddedSamplersInfoEXT for PipelineLayoutCreateInfo<'_> {} -unsafe impl ExtendsIndirectCommandsLayoutCreateInfoEXT for PipelineLayoutCreateInfo<'_> {} +unsafe impl<'a> Extends> for PipelineLayoutCreateInfo<'a> {} +unsafe impl<'a> Extends> for PipelineLayoutCreateInfo<'a> {} +unsafe impl<'a> Extends> for PipelineLayoutCreateInfo<'a> {} +unsafe impl<'a> Extends> for PipelineLayoutCreateInfo<'a> {} +unsafe impl<'a> Extends> for PipelineLayoutCreateInfo<'a> {} +unsafe impl<'a> Extends> + for PipelineLayoutCreateInfo<'a> +{ +} +unsafe impl<'a> Extends> for PipelineLayoutCreateInfo<'a> {} impl<'a> PipelineLayoutCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineLayoutCreateFlags) -> Self { @@ -5725,7 +5351,7 @@ impl ::core::default::Default for SamplerCreateInfo<'_> { unsafe impl<'a> TaggedStructure for SamplerCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_CREATE_INFO; } -pub unsafe trait ExtendsSamplerCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for SamplerCreateInfo<'_> {} impl<'a> SamplerCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: SamplerCreateFlags) -> Self { @@ -5807,20 +5433,6 @@ impl<'a> SamplerCreateInfo<'a> { self.unnormalized_coordinates = unnormalized_coordinates.into(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -5948,7 +5560,7 @@ impl ::core::default::Default for CommandBufferInheritanceInfo<'_> { unsafe impl<'a> TaggedStructure for CommandBufferInheritanceInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_INFO; } -pub unsafe trait ExtendsCommandBufferInheritanceInfo {} +unsafe impl<'a> BaseTaggedStructure for CommandBufferInheritanceInfo<'_> {} impl<'a> CommandBufferInheritanceInfo<'a> { #[inline] pub fn render_pass(mut self, render_pass: RenderPass) -> Self { @@ -5980,23 +5592,6 @@ impl<'a> CommandBufferInheritanceInfo<'a> { self.pipeline_statistics = pipeline_statistics; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -6027,7 +5622,7 @@ impl ::core::default::Default for CommandBufferBeginInfo<'_> { unsafe impl<'a> TaggedStructure for CommandBufferBeginInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_BEGIN_INFO; } -pub unsafe trait ExtendsCommandBufferBeginInfo {} +unsafe impl<'a> BaseTaggedStructure for CommandBufferBeginInfo<'_> {} impl<'a> CommandBufferBeginInfo<'a> { #[inline] pub fn flags(mut self, flags: CommandBufferUsageFlags) -> Self { @@ -6042,20 +5637,6 @@ impl<'a> CommandBufferBeginInfo<'a> { self.p_inheritance_info = inheritance_info; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[derive(Copy, Clone)] @@ -6105,7 +5686,7 @@ impl ::core::default::Default for RenderPassBeginInfo<'_> { unsafe impl<'a> TaggedStructure for RenderPassBeginInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_BEGIN_INFO; } -pub unsafe trait ExtendsRenderPassBeginInfo {} +unsafe impl<'a> BaseTaggedStructure for RenderPassBeginInfo<'_> {} impl<'a> RenderPassBeginInfo<'a> { #[inline] pub fn render_pass(mut self, render_pass: RenderPass) -> Self { @@ -6128,20 +5709,6 @@ impl<'a> RenderPassBeginInfo<'a> { self.p_clear_values = clear_values.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[derive(Copy, Clone)] @@ -6483,7 +6050,7 @@ impl ::core::default::Default for RenderPassCreateInfo<'_> { unsafe impl<'a> TaggedStructure for RenderPassCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_CREATE_INFO; } -pub unsafe trait ExtendsRenderPassCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for RenderPassCreateInfo<'_> {} impl<'a> RenderPassCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: RenderPassCreateFlags) -> Self { @@ -6508,20 +6075,6 @@ impl<'a> RenderPassCreateInfo<'a> { self.p_dependencies = dependencies.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -6550,27 +6103,13 @@ impl ::core::default::Default for EventCreateInfo<'_> { unsafe impl<'a> TaggedStructure for EventCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EVENT_CREATE_INFO; } -pub unsafe trait ExtendsEventCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for EventCreateInfo<'_> {} impl<'a> EventCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: EventCreateFlags) -> Self { self.flags = flags; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -6599,27 +6138,13 @@ impl ::core::default::Default for FenceCreateInfo<'_> { unsafe impl<'a> TaggedStructure for FenceCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FENCE_CREATE_INFO; } -pub unsafe trait ExtendsFenceCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for FenceCreateInfo<'_> {} impl<'a> FenceCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: FenceCreateFlags) -> Self { self.flags = flags; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -7963,27 +7488,13 @@ impl ::core::default::Default for SemaphoreCreateInfo<'_> { unsafe impl<'a> TaggedStructure for SemaphoreCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SEMAPHORE_CREATE_INFO; } -pub unsafe trait ExtendsSemaphoreCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for SemaphoreCreateInfo<'_> {} impl<'a> SemaphoreCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: SemaphoreCreateFlags) -> Self { self.flags = flags; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -8018,7 +7529,7 @@ impl ::core::default::Default for QueryPoolCreateInfo<'_> { unsafe impl<'a> TaggedStructure for QueryPoolCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUERY_POOL_CREATE_INFO; } -pub unsafe trait ExtendsQueryPoolCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for QueryPoolCreateInfo<'_> {} impl<'a> QueryPoolCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: QueryPoolCreateFlags) -> Self { @@ -8040,20 +7551,6 @@ impl<'a> QueryPoolCreateInfo<'a> { self.pipeline_statistics = pipeline_statistics; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -8094,7 +7591,7 @@ impl ::core::default::Default for FramebufferCreateInfo<'_> { unsafe impl<'a> TaggedStructure for FramebufferCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FRAMEBUFFER_CREATE_INFO; } -pub unsafe trait ExtendsFramebufferCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for FramebufferCreateInfo<'_> {} impl<'a> FramebufferCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: FramebufferCreateFlags) -> Self { @@ -8132,20 +7629,6 @@ impl<'a> FramebufferCreateInfo<'a> { self.layers = layers; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -8333,7 +7816,7 @@ impl ::core::default::Default for SubmitInfo<'_> { unsafe impl<'a> TaggedStructure for SubmitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBMIT_INFO; } -pub unsafe trait ExtendsSubmitInfo {} +unsafe impl<'a> BaseTaggedStructure for SubmitInfo<'_> {} impl<'a> SubmitInfo<'a> { #[inline] pub fn wait_semaphores(mut self, wait_semaphores: &'a [Semaphore]) -> Self { @@ -8359,20 +7842,6 @@ impl<'a> SubmitInfo<'a> { self.p_signal_semaphores = signal_semaphores.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -8732,7 +8201,7 @@ impl ::core::default::Default for DisplayPresentInfoKHR<'_> { unsafe impl<'a> TaggedStructure for DisplayPresentInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DISPLAY_PRESENT_INFO_KHR; } -unsafe impl ExtendsPresentInfoKHR for DisplayPresentInfoKHR<'_> {} +unsafe impl<'a> Extends> for DisplayPresentInfoKHR<'a> {} impl<'a> DisplayPresentInfoKHR<'a> { #[inline] pub fn src_rect(mut self, src_rect: Rect2D) -> Self { @@ -9352,7 +8821,7 @@ impl ::core::default::Default for SwapchainCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for SwapchainCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_CREATE_INFO_KHR; } -pub unsafe trait ExtendsSwapchainCreateInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for SwapchainCreateInfoKHR<'_> {} impl<'a> SwapchainCreateInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: SwapchainCreateFlagsKHR) -> Self { @@ -9430,20 +8899,6 @@ impl<'a> SwapchainCreateInfoKHR<'a> { self.old_swapchain = old_swapchain; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -9482,7 +8937,7 @@ impl ::core::default::Default for PresentInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PresentInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PRESENT_INFO_KHR; } -pub unsafe trait ExtendsPresentInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for PresentInfoKHR<'_> {} impl<'a> PresentInfoKHR<'a> { #[inline] pub fn wait_semaphores(mut self, wait_semaphores: &'a [Semaphore]) -> Self { @@ -9508,20 +8963,6 @@ impl<'a> PresentInfoKHR<'a> { self.p_results = results.as_mut_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[derive(Copy, Clone)] @@ -9565,7 +9006,7 @@ impl ::core::default::Default for DebugReportCallbackCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for DebugReportCallbackCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT; } -unsafe impl ExtendsInstanceCreateInfo for DebugReportCallbackCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> for DebugReportCallbackCreateInfoEXT<'a> {} impl<'a> DebugReportCallbackCreateInfoEXT<'a> { #[inline] pub fn flags(mut self, flags: DebugReportFlagsEXT) -> Self { @@ -9612,7 +9053,7 @@ impl ::core::default::Default for ValidationFlagsEXT<'_> { unsafe impl<'a> TaggedStructure for ValidationFlagsEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VALIDATION_FLAGS_EXT; } -unsafe impl ExtendsInstanceCreateInfo for ValidationFlagsEXT<'_> {} +unsafe impl<'a> Extends> for ValidationFlagsEXT<'a> {} impl<'a> ValidationFlagsEXT<'a> { #[inline] pub fn disabled_validation_checks( @@ -9657,9 +9098,9 @@ impl ::core::default::Default for ValidationFeaturesEXT<'_> { unsafe impl<'a> TaggedStructure for ValidationFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VALIDATION_FEATURES_EXT; } -unsafe impl ExtendsInstanceCreateInfo for ValidationFeaturesEXT<'_> {} -unsafe impl ExtendsShaderModuleCreateInfo for ValidationFeaturesEXT<'_> {} -unsafe impl ExtendsShaderCreateInfoEXT for ValidationFeaturesEXT<'_> {} +unsafe impl<'a> Extends> for ValidationFeaturesEXT<'a> {} +unsafe impl<'a> Extends> for ValidationFeaturesEXT<'a> {} +unsafe impl<'a> Extends> for ValidationFeaturesEXT<'a> {} impl<'a> ValidationFeaturesEXT<'a> { #[inline] pub fn enabled_validation_features( @@ -9709,7 +9150,7 @@ impl ::core::default::Default for LayerSettingsCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for LayerSettingsCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::LAYER_SETTINGS_CREATE_INFO_EXT; } -unsafe impl ExtendsInstanceCreateInfo for LayerSettingsCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> for LayerSettingsCreateInfoEXT<'a> {} impl<'a> LayerSettingsCreateInfoEXT<'a> { #[inline] pub fn settings(mut self, settings: &'a [LayerSettingEXT<'a>]) -> Self { @@ -9813,8 +9254,8 @@ unsafe impl<'a> TaggedStructure for PipelineRasterizationStateRasterizationOrder const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD; } -unsafe impl ExtendsPipelineRasterizationStateCreateInfo - for PipelineRasterizationStateRasterizationOrderAMD<'_> +unsafe impl<'a> Extends> + for PipelineRasterizationStateRasterizationOrderAMD<'a> { } impl<'a> PipelineRasterizationStateRasterizationOrderAMD<'a> { @@ -10014,7 +9455,7 @@ impl ::core::default::Default for DedicatedAllocationImageCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for DedicatedAllocationImageCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV; } -unsafe impl ExtendsImageCreateInfo for DedicatedAllocationImageCreateInfoNV<'_> {} +unsafe impl<'a> Extends> for DedicatedAllocationImageCreateInfoNV<'a> {} impl<'a> DedicatedAllocationImageCreateInfoNV<'a> { #[inline] pub fn dedicated_allocation(mut self, dedicated_allocation: bool) -> Self { @@ -10049,7 +9490,7 @@ impl ::core::default::Default for DedicatedAllocationBufferCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for DedicatedAllocationBufferCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV; } -unsafe impl ExtendsBufferCreateInfo for DedicatedAllocationBufferCreateInfoNV<'_> {} +unsafe impl<'a> Extends> for DedicatedAllocationBufferCreateInfoNV<'a> {} impl<'a> DedicatedAllocationBufferCreateInfoNV<'a> { #[inline] pub fn dedicated_allocation(mut self, dedicated_allocation: bool) -> Self { @@ -10087,7 +9528,7 @@ unsafe impl<'a> TaggedStructure for DedicatedAllocationMemoryAllocateInfoNV<'a> const STRUCTURE_TYPE: StructureType = StructureType::DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV; } -unsafe impl ExtendsMemoryAllocateInfo for DedicatedAllocationMemoryAllocateInfoNV<'_> {} +unsafe impl<'a> Extends> for DedicatedAllocationMemoryAllocateInfoNV<'a> {} impl<'a> DedicatedAllocationMemoryAllocateInfoNV<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { @@ -10172,7 +9613,7 @@ impl ::core::default::Default for ExternalMemoryImageCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for ExternalMemoryImageCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV; } -unsafe impl ExtendsImageCreateInfo for ExternalMemoryImageCreateInfoNV<'_> {} +unsafe impl<'a> Extends> for ExternalMemoryImageCreateInfoNV<'a> {} impl<'a> ExternalMemoryImageCreateInfoNV<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalMemoryHandleTypeFlagsNV) -> Self { @@ -10207,7 +9648,7 @@ impl ::core::default::Default for ExportMemoryAllocateInfoNV<'_> { unsafe impl<'a> TaggedStructure for ExportMemoryAllocateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_MEMORY_ALLOCATE_INFO_NV; } -unsafe impl ExtendsMemoryAllocateInfo for ExportMemoryAllocateInfoNV<'_> {} +unsafe impl<'a> Extends> for ExportMemoryAllocateInfoNV<'a> {} impl<'a> ExportMemoryAllocateInfoNV<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalMemoryHandleTypeFlagsNV) -> Self { @@ -10244,7 +9685,7 @@ impl ::core::default::Default for ImportMemoryWin32HandleInfoNV<'_> { unsafe impl<'a> TaggedStructure for ImportMemoryWin32HandleInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_WIN32_HANDLE_INFO_NV; } -unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryWin32HandleInfoNV<'_> {} +unsafe impl<'a> Extends> for ImportMemoryWin32HandleInfoNV<'a> {} impl<'a> ImportMemoryWin32HandleInfoNV<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlagsNV) -> Self { @@ -10286,7 +9727,7 @@ impl ::core::default::Default for ExportMemoryWin32HandleInfoNV<'_> { unsafe impl<'a> TaggedStructure for ExportMemoryWin32HandleInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_MEMORY_WIN32_HANDLE_INFO_NV; } -unsafe impl ExtendsMemoryAllocateInfo for ExportMemoryWin32HandleInfoNV<'_> {} +unsafe impl<'a> Extends> for ExportMemoryWin32HandleInfoNV<'a> {} impl<'a> ExportMemoryWin32HandleInfoNV<'a> { #[inline] pub fn attributes(mut self, attributes: &'a SECURITY_ATTRIBUTES) -> Self { @@ -10338,8 +9779,8 @@ impl ::core::default::Default for Win32KeyedMutexAcquireReleaseInfoNV<'_> { unsafe impl<'a> TaggedStructure for Win32KeyedMutexAcquireReleaseInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV; } -unsafe impl ExtendsSubmitInfo for Win32KeyedMutexAcquireReleaseInfoNV<'_> {} -unsafe impl ExtendsSubmitInfo2 for Win32KeyedMutexAcquireReleaseInfoNV<'_> {} +unsafe impl<'a> Extends> for Win32KeyedMutexAcquireReleaseInfoNV<'a> {} +unsafe impl<'a> Extends> for Win32KeyedMutexAcquireReleaseInfoNV<'a> {} impl<'a> Win32KeyedMutexAcquireReleaseInfoNV<'a> { #[inline] pub fn acquire_syncs(mut self, acquire_syncs: &'a [DeviceMemory]) -> Self { @@ -10400,8 +9841,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV<'a> +{ +} impl<'a> PhysicalDeviceDeviceGeneratedCommandsFeaturesNV<'a> { #[inline] pub fn device_generated_commands(mut self, device_generated_commands: bool) -> Self { @@ -10441,11 +9888,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsCompute const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV<'_> {} impl<'a> PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV<'a> { #[inline] pub fn device_generated_compute(mut self, device_generated_compute: bool) -> Self { @@ -10497,7 +9947,7 @@ impl ::core::default::Default for DevicePrivateDataCreateInfo<'_> { unsafe impl<'a> TaggedStructure for DevicePrivateDataCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_PRIVATE_DATA_CREATE_INFO; } -unsafe impl ExtendsDeviceCreateInfo for DevicePrivateDataCreateInfo<'_> {} +unsafe impl<'a> Extends> for DevicePrivateDataCreateInfo<'a> {} impl<'a> DevicePrivateDataCreateInfo<'a> { #[inline] pub fn private_data_slot_request_count(mut self, private_data_slot_request_count: u32) -> Self { @@ -10566,8 +10016,8 @@ impl ::core::default::Default for PhysicalDevicePrivateDataFeatures<'_> { unsafe impl<'a> TaggedStructure for PhysicalDevicePrivateDataFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePrivateDataFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePrivateDataFeatures<'_> {} +unsafe impl<'a> Extends> for PhysicalDevicePrivateDataFeatures<'a> {} +unsafe impl<'a> Extends> for PhysicalDevicePrivateDataFeatures<'a> {} impl<'a> PhysicalDevicePrivateDataFeatures<'a> { #[inline] pub fn private_data(mut self, private_data: bool) -> Self { @@ -10619,8 +10069,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsPropert const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceDeviceGeneratedCommandsPropertiesNV<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceDeviceGeneratedCommandsPropertiesNV<'a> { } impl<'a> PhysicalDeviceDeviceGeneratedCommandsPropertiesNV<'a> { @@ -10721,7 +10171,10 @@ impl ::core::default::Default for PhysicalDeviceMultiDrawPropertiesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiDrawPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMultiDrawPropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceMultiDrawPropertiesEXT<'a> +{ +} impl<'a> PhysicalDeviceMultiDrawPropertiesEXT<'a> { #[inline] pub fn max_multi_draw_count(mut self, max_multi_draw_count: u32) -> Self { @@ -10820,7 +10273,10 @@ unsafe impl<'a> TaggedStructure for GraphicsPipelineShaderGroupsCreateInfoNV<'a> const STRUCTURE_TYPE: StructureType = StructureType::GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for GraphicsPipelineShaderGroupsCreateInfoNV<'_> {} +unsafe impl<'a> Extends> + for GraphicsPipelineShaderGroupsCreateInfoNV<'a> +{ +} impl<'a> GraphicsPipelineShaderGroupsCreateInfoNV<'a> { #[inline] pub fn groups(mut self, groups: &'a [GraphicsShaderGroupCreateInfoNV<'a>]) -> Self { @@ -11381,31 +10837,14 @@ impl ::core::default::Default for PhysicalDeviceFeatures2<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceFeatures2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FEATURES_2; } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFeatures2<'_> {} -pub unsafe trait ExtendsPhysicalDeviceFeatures2 {} +unsafe impl<'a> Extends> for PhysicalDeviceFeatures2<'a> {} +unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceFeatures2<'_> {} impl<'a> PhysicalDeviceFeatures2<'a> { #[inline] pub fn features(mut self, features: PhysicalDeviceFeatures) -> Self { self.features = features; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -11434,30 +10873,13 @@ impl ::core::default::Default for PhysicalDeviceProperties2<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROPERTIES_2; } -pub unsafe trait ExtendsPhysicalDeviceProperties2 {} +unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceProperties2<'_> {} impl<'a> PhysicalDeviceProperties2<'a> { #[inline] pub fn properties(mut self, properties: PhysicalDeviceProperties) -> Self { self.properties = properties; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -11486,27 +10908,13 @@ impl ::core::default::Default for FormatProperties2<'_> { unsafe impl<'a> TaggedStructure for FormatProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FORMAT_PROPERTIES_2; } -pub unsafe trait ExtendsFormatProperties2 {} +unsafe impl<'a> BaseTaggedStructure for FormatProperties2<'_> {} impl<'a> FormatProperties2<'a> { #[inline] pub fn format_properties(mut self, format_properties: FormatProperties) -> Self { self.format_properties = format_properties; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -11535,7 +10943,7 @@ impl ::core::default::Default for ImageFormatProperties2<'_> { unsafe impl<'a> TaggedStructure for ImageFormatProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_FORMAT_PROPERTIES_2; } -pub unsafe trait ExtendsImageFormatProperties2 {} +unsafe impl<'a> BaseTaggedStructure for ImageFormatProperties2<'_> {} impl<'a> ImageFormatProperties2<'a> { #[inline] pub fn image_format_properties( @@ -11545,20 +10953,6 @@ impl<'a> ImageFormatProperties2<'a> { self.image_format_properties = image_format_properties; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -11595,7 +10989,7 @@ impl ::core::default::Default for PhysicalDeviceImageFormatInfo2<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceImageFormatInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2; } -pub unsafe trait ExtendsPhysicalDeviceImageFormatInfo2 {} +unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceImageFormatInfo2<'_> {} impl<'a> PhysicalDeviceImageFormatInfo2<'a> { #[inline] pub fn format(mut self, format: Format) -> Self { @@ -11622,23 +11016,6 @@ impl<'a> PhysicalDeviceImageFormatInfo2<'a> { self.flags = flags; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -11667,7 +11044,7 @@ impl ::core::default::Default for QueueFamilyProperties2<'_> { unsafe impl<'a> TaggedStructure for QueueFamilyProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_PROPERTIES_2; } -pub unsafe trait ExtendsQueueFamilyProperties2 {} +unsafe impl<'a> BaseTaggedStructure for QueueFamilyProperties2<'_> {} impl<'a> QueueFamilyProperties2<'a> { #[inline] pub fn queue_family_properties( @@ -11677,20 +11054,6 @@ impl<'a> QueueFamilyProperties2<'a> { self.queue_family_properties = queue_family_properties; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -11719,30 +11082,13 @@ impl ::core::default::Default for PhysicalDeviceMemoryProperties2<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMemoryProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_PROPERTIES_2; } -pub unsafe trait ExtendsPhysicalDeviceMemoryProperties2 {} +unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceMemoryProperties2<'_> {} impl<'a> PhysicalDeviceMemoryProperties2<'a> { #[inline] pub fn memory_properties(mut self, memory_properties: PhysicalDeviceMemoryProperties) -> Self { self.memory_properties = memory_properties; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -11868,7 +11214,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePushDescriptorPropertiesKHR<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePushDescriptorPropertiesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDevicePushDescriptorPropertiesKHR<'a> +{ +} impl<'a> PhysicalDevicePushDescriptorPropertiesKHR<'a> { #[inline] pub fn max_push_descriptors(mut self, max_push_descriptors: u32) -> Self { @@ -11954,7 +11303,7 @@ impl ::core::default::Default for PhysicalDeviceDriverProperties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceDriverProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DRIVER_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceDriverProperties<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceDriverProperties<'a> {} impl<'a> PhysicalDeviceDriverProperties<'a> { #[inline] pub fn driver_id(mut self, driver_id: DriverId) -> Self { @@ -12018,7 +11367,7 @@ impl ::core::default::Default for PresentRegionsKHR<'_> { unsafe impl<'a> TaggedStructure for PresentRegionsKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PRESENT_REGIONS_KHR; } -unsafe impl ExtendsPresentInfoKHR for PresentRegionsKHR<'_> {} +unsafe impl<'a> Extends> for PresentRegionsKHR<'a> {} impl<'a> PresentRegionsKHR<'a> { #[inline] pub fn regions(mut self, regions: &'a [PresentRegionKHR<'a>]) -> Self { @@ -12113,8 +11462,11 @@ impl ::core::default::Default for PhysicalDeviceVariablePointersFeatures<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceVariablePointersFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVariablePointersFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVariablePointersFeatures<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceVariablePointersFeatures<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceVariablePointersFeatures<'a> {} impl<'a> PhysicalDeviceVariablePointersFeatures<'a> { #[inline] pub fn variable_pointers_storage_buffer( @@ -12193,7 +11545,10 @@ impl ::core::default::Default for PhysicalDeviceExternalImageFormatInfo<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalImageFormatInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO; } -unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for PhysicalDeviceExternalImageFormatInfo<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceExternalImageFormatInfo<'a> +{ +} impl<'a> PhysicalDeviceExternalImageFormatInfo<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { @@ -12228,7 +11583,7 @@ impl ::core::default::Default for ExternalImageFormatProperties<'_> { unsafe impl<'a> TaggedStructure for ExternalImageFormatProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_IMAGE_FORMAT_PROPERTIES; } -unsafe impl ExtendsImageFormatProperties2 for ExternalImageFormatProperties<'_> {} +unsafe impl<'a> Extends> for ExternalImageFormatProperties<'a> {} impl<'a> ExternalImageFormatProperties<'a> { #[inline] pub fn external_memory_properties( @@ -12270,7 +11625,7 @@ impl ::core::default::Default for PhysicalDeviceExternalBufferInfo<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalBufferInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO; } -pub unsafe trait ExtendsPhysicalDeviceExternalBufferInfo {} +unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceExternalBufferInfo<'_> {} impl<'a> PhysicalDeviceExternalBufferInfo<'a> { #[inline] pub fn flags(mut self, flags: BufferCreateFlags) -> Self { @@ -12287,23 +11642,6 @@ impl<'a> PhysicalDeviceExternalBufferInfo<'a> { self.handle_type = handle_type; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -12377,7 +11715,7 @@ impl ::core::default::Default for PhysicalDeviceIDProperties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceIDProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ID_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceIDProperties<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceIDProperties<'a> {} impl<'a> PhysicalDeviceIDProperties<'a> { #[inline] pub fn device_uuid(mut self, device_uuid: [u8; UUID_SIZE]) -> Self { @@ -12432,7 +11770,7 @@ impl ::core::default::Default for ExternalMemoryImageCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ExternalMemoryImageCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_MEMORY_IMAGE_CREATE_INFO; } -unsafe impl ExtendsImageCreateInfo for ExternalMemoryImageCreateInfo<'_> {} +unsafe impl<'a> Extends> for ExternalMemoryImageCreateInfo<'a> {} impl<'a> ExternalMemoryImageCreateInfo<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalMemoryHandleTypeFlags) -> Self { @@ -12467,7 +11805,7 @@ impl ::core::default::Default for ExternalMemoryBufferCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ExternalMemoryBufferCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_MEMORY_BUFFER_CREATE_INFO; } -unsafe impl ExtendsBufferCreateInfo for ExternalMemoryBufferCreateInfo<'_> {} +unsafe impl<'a> Extends> for ExternalMemoryBufferCreateInfo<'a> {} impl<'a> ExternalMemoryBufferCreateInfo<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalMemoryHandleTypeFlags) -> Self { @@ -12502,7 +11840,7 @@ impl ::core::default::Default for ExportMemoryAllocateInfo<'_> { unsafe impl<'a> TaggedStructure for ExportMemoryAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_MEMORY_ALLOCATE_INFO; } -unsafe impl ExtendsMemoryAllocateInfo for ExportMemoryAllocateInfo<'_> {} +unsafe impl<'a> Extends> for ExportMemoryAllocateInfo<'a> {} impl<'a> ExportMemoryAllocateInfo<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalMemoryHandleTypeFlags) -> Self { @@ -12541,7 +11879,7 @@ impl ::core::default::Default for ImportMemoryWin32HandleInfoKHR<'_> { unsafe impl<'a> TaggedStructure for ImportMemoryWin32HandleInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR; } -unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryWin32HandleInfoKHR<'_> {} +unsafe impl<'a> Extends> for ImportMemoryWin32HandleInfoKHR<'a> {} impl<'a> ImportMemoryWin32HandleInfoKHR<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { @@ -12590,7 +11928,7 @@ impl ::core::default::Default for ExportMemoryWin32HandleInfoKHR<'_> { unsafe impl<'a> TaggedStructure for ExportMemoryWin32HandleInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR; } -unsafe impl ExtendsMemoryAllocateInfo for ExportMemoryWin32HandleInfoKHR<'_> {} +unsafe impl<'a> Extends> for ExportMemoryWin32HandleInfoKHR<'a> {} impl<'a> ExportMemoryWin32HandleInfoKHR<'a> { #[inline] pub fn attributes(mut self, attributes: &'a SECURITY_ATTRIBUTES) -> Self { @@ -12637,7 +11975,7 @@ impl ::core::default::Default for ImportMemoryZirconHandleInfoFUCHSIA<'_> { unsafe impl<'a> TaggedStructure for ImportMemoryZirconHandleInfoFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA; } -unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryZirconHandleInfoFUCHSIA<'_> {} +unsafe impl<'a> Extends> for ImportMemoryZirconHandleInfoFUCHSIA<'a> {} impl<'a> ImportMemoryZirconHandleInfoFUCHSIA<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { @@ -12829,7 +12167,7 @@ impl ::core::default::Default for ImportMemoryFdInfoKHR<'_> { unsafe impl<'a> TaggedStructure for ImportMemoryFdInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_FD_INFO_KHR; } -unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryFdInfoKHR<'_> {} +unsafe impl<'a> Extends> for ImportMemoryFdInfoKHR<'a> {} impl<'a> ImportMemoryFdInfoKHR<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { @@ -12956,8 +12294,8 @@ impl ::core::default::Default for Win32KeyedMutexAcquireReleaseInfoKHR<'_> { unsafe impl<'a> TaggedStructure for Win32KeyedMutexAcquireReleaseInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR; } -unsafe impl ExtendsSubmitInfo for Win32KeyedMutexAcquireReleaseInfoKHR<'_> {} -unsafe impl ExtendsSubmitInfo2 for Win32KeyedMutexAcquireReleaseInfoKHR<'_> {} +unsafe impl<'a> Extends> for Win32KeyedMutexAcquireReleaseInfoKHR<'a> {} +unsafe impl<'a> Extends> for Win32KeyedMutexAcquireReleaseInfoKHR<'a> {} impl<'a> Win32KeyedMutexAcquireReleaseInfoKHR<'a> { #[inline] pub fn acquire_syncs(mut self, acquire_syncs: &'a [DeviceMemory]) -> Self { @@ -13017,30 +12355,13 @@ impl ::core::default::Default for PhysicalDeviceExternalSemaphoreInfo<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalSemaphoreInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO; } -pub unsafe trait ExtendsPhysicalDeviceExternalSemaphoreInfo {} +unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceExternalSemaphoreInfo<'_> {} impl<'a> PhysicalDeviceExternalSemaphoreInfo<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalSemaphoreHandleTypeFlags) -> Self { self.handle_type = handle_type; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -13126,7 +12447,7 @@ impl ::core::default::Default for ExportSemaphoreCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ExportSemaphoreCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_SEMAPHORE_CREATE_INFO; } -unsafe impl ExtendsSemaphoreCreateInfo for ExportSemaphoreCreateInfo<'_> {} +unsafe impl<'a> Extends> for ExportSemaphoreCreateInfo<'a> {} impl<'a> ExportSemaphoreCreateInfo<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalSemaphoreHandleTypeFlags) -> Self { @@ -13227,7 +12548,7 @@ impl ::core::default::Default for ExportSemaphoreWin32HandleInfoKHR<'_> { unsafe impl<'a> TaggedStructure for ExportSemaphoreWin32HandleInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR; } -unsafe impl ExtendsSemaphoreCreateInfo for ExportSemaphoreWin32HandleInfoKHR<'_> {} +unsafe impl<'a> Extends> for ExportSemaphoreWin32HandleInfoKHR<'a> {} impl<'a> ExportSemaphoreWin32HandleInfoKHR<'a> { #[inline] pub fn attributes(mut self, attributes: &'a SECURITY_ATTRIBUTES) -> Self { @@ -13278,7 +12599,7 @@ impl ::core::default::Default for D3D12FenceSubmitInfoKHR<'_> { unsafe impl<'a> TaggedStructure for D3D12FenceSubmitInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::D3D12_FENCE_SUBMIT_INFO_KHR; } -unsafe impl ExtendsSubmitInfo for D3D12FenceSubmitInfoKHR<'_> {} +unsafe impl<'a> Extends> for D3D12FenceSubmitInfoKHR<'a> {} impl<'a> D3D12FenceSubmitInfoKHR<'a> { #[inline] pub fn wait_semaphore_values(mut self, wait_semaphore_values: &'a [u64]) -> Self { @@ -13645,7 +12966,7 @@ impl ::core::default::Default for ExportFenceCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ExportFenceCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_FENCE_CREATE_INFO; } -unsafe impl ExtendsFenceCreateInfo for ExportFenceCreateInfo<'_> {} +unsafe impl<'a> Extends> for ExportFenceCreateInfo<'a> {} impl<'a> ExportFenceCreateInfo<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalFenceHandleTypeFlags) -> Self { @@ -13746,7 +13067,7 @@ impl ::core::default::Default for ExportFenceWin32HandleInfoKHR<'_> { unsafe impl<'a> TaggedStructure for ExportFenceWin32HandleInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_FENCE_WIN32_HANDLE_INFO_KHR; } -unsafe impl ExtendsFenceCreateInfo for ExportFenceWin32HandleInfoKHR<'_> {} +unsafe impl<'a> Extends> for ExportFenceWin32HandleInfoKHR<'a> {} impl<'a> ExportFenceWin32HandleInfoKHR<'a> { #[inline] pub fn attributes(mut self, attributes: &'a SECURITY_ATTRIBUTES) -> Self { @@ -13932,8 +13253,8 @@ impl ::core::default::Default for PhysicalDeviceMultiviewFeatures<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiviewFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMultiviewFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMultiviewFeatures<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceMultiviewFeatures<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceMultiviewFeatures<'a> {} impl<'a> PhysicalDeviceMultiviewFeatures<'a> { #[inline] pub fn multiview(mut self, multiview: bool) -> Self { @@ -13980,7 +13301,7 @@ impl ::core::default::Default for PhysicalDeviceMultiviewProperties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiviewProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMultiviewProperties<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceMultiviewProperties<'a> {} impl<'a> PhysicalDeviceMultiviewProperties<'a> { #[inline] pub fn max_multiview_view_count(mut self, max_multiview_view_count: u32) -> Self { @@ -14030,7 +13351,7 @@ impl ::core::default::Default for RenderPassMultiviewCreateInfo<'_> { unsafe impl<'a> TaggedStructure for RenderPassMultiviewCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_MULTIVIEW_CREATE_INFO; } -unsafe impl ExtendsRenderPassCreateInfo for RenderPassMultiviewCreateInfo<'_> {} +unsafe impl<'a> Extends> for RenderPassMultiviewCreateInfo<'a> {} impl<'a> RenderPassMultiviewCreateInfo<'a> { #[inline] pub fn view_masks(mut self, view_masks: &'a [u32]) -> Self { @@ -14290,7 +13611,7 @@ impl ::core::default::Default for SwapchainCounterCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for SwapchainCounterCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_COUNTER_CREATE_INFO_EXT; } -unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainCounterCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> for SwapchainCounterCreateInfoEXT<'a> {} impl<'a> SwapchainCounterCreateInfoEXT<'a> { #[inline] pub fn surface_counters(mut self, surface_counters: SurfaceCounterFlagsEXT) -> Self { @@ -14386,7 +13707,7 @@ impl ::core::default::Default for MemoryAllocateFlagsInfo<'_> { unsafe impl<'a> TaggedStructure for MemoryAllocateFlagsInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_ALLOCATE_FLAGS_INFO; } -unsafe impl ExtendsMemoryAllocateInfo for MemoryAllocateFlagsInfo<'_> {} +unsafe impl<'a> Extends> for MemoryAllocateFlagsInfo<'a> {} impl<'a> MemoryAllocateFlagsInfo<'a> { #[inline] pub fn flags(mut self, flags: MemoryAllocateFlags) -> Self { @@ -14430,7 +13751,7 @@ impl ::core::default::Default for BindBufferMemoryInfo<'_> { unsafe impl<'a> TaggedStructure for BindBufferMemoryInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_BUFFER_MEMORY_INFO; } -pub unsafe trait ExtendsBindBufferMemoryInfo {} +unsafe impl<'a> BaseTaggedStructure for BindBufferMemoryInfo<'_> {} impl<'a> BindBufferMemoryInfo<'a> { #[inline] pub fn buffer(mut self, buffer: Buffer) -> Self { @@ -14447,20 +13768,6 @@ impl<'a> BindBufferMemoryInfo<'a> { self.memory_offset = memory_offset; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -14491,7 +13798,7 @@ impl ::core::default::Default for BindBufferMemoryDeviceGroupInfo<'_> { unsafe impl<'a> TaggedStructure for BindBufferMemoryDeviceGroupInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO; } -unsafe impl ExtendsBindBufferMemoryInfo for BindBufferMemoryDeviceGroupInfo<'_> {} +unsafe impl<'a> Extends> for BindBufferMemoryDeviceGroupInfo<'a> {} impl<'a> BindBufferMemoryDeviceGroupInfo<'a> { #[inline] pub fn device_indices(mut self, device_indices: &'a [u32]) -> Self { @@ -14531,7 +13838,7 @@ impl ::core::default::Default for BindImageMemoryInfo<'_> { unsafe impl<'a> TaggedStructure for BindImageMemoryInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_IMAGE_MEMORY_INFO; } -pub unsafe trait ExtendsBindImageMemoryInfo {} +unsafe impl<'a> BaseTaggedStructure for BindImageMemoryInfo<'_> {} impl<'a> BindImageMemoryInfo<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { @@ -14548,20 +13855,6 @@ impl<'a> BindImageMemoryInfo<'a> { self.memory_offset = memory_offset; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -14596,7 +13889,7 @@ impl ::core::default::Default for BindImageMemoryDeviceGroupInfo<'_> { unsafe impl<'a> TaggedStructure for BindImageMemoryDeviceGroupInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO; } -unsafe impl ExtendsBindImageMemoryInfo for BindImageMemoryDeviceGroupInfo<'_> {} +unsafe impl<'a> Extends> for BindImageMemoryDeviceGroupInfo<'a> {} impl<'a> BindImageMemoryDeviceGroupInfo<'a> { #[inline] pub fn device_indices(mut self, device_indices: &'a [u32]) -> Self { @@ -14645,8 +13938,8 @@ impl ::core::default::Default for DeviceGroupRenderPassBeginInfo<'_> { unsafe impl<'a> TaggedStructure for DeviceGroupRenderPassBeginInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_RENDER_PASS_BEGIN_INFO; } -unsafe impl ExtendsRenderPassBeginInfo for DeviceGroupRenderPassBeginInfo<'_> {} -unsafe impl ExtendsRenderingInfo for DeviceGroupRenderPassBeginInfo<'_> {} +unsafe impl<'a> Extends> for DeviceGroupRenderPassBeginInfo<'a> {} +unsafe impl<'a> Extends> for DeviceGroupRenderPassBeginInfo<'a> {} impl<'a> DeviceGroupRenderPassBeginInfo<'a> { #[inline] pub fn device_mask(mut self, device_mask: u32) -> Self { @@ -14687,7 +13980,7 @@ impl ::core::default::Default for DeviceGroupCommandBufferBeginInfo<'_> { unsafe impl<'a> TaggedStructure for DeviceGroupCommandBufferBeginInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO; } -unsafe impl ExtendsCommandBufferBeginInfo for DeviceGroupCommandBufferBeginInfo<'_> {} +unsafe impl<'a> Extends> for DeviceGroupCommandBufferBeginInfo<'a> {} impl<'a> DeviceGroupCommandBufferBeginInfo<'a> { #[inline] pub fn device_mask(mut self, device_mask: u32) -> Self { @@ -14732,7 +14025,7 @@ impl ::core::default::Default for DeviceGroupSubmitInfo<'_> { unsafe impl<'a> TaggedStructure for DeviceGroupSubmitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_SUBMIT_INFO; } -unsafe impl ExtendsSubmitInfo for DeviceGroupSubmitInfo<'_> {} +unsafe impl<'a> Extends> for DeviceGroupSubmitInfo<'a> {} impl<'a> DeviceGroupSubmitInfo<'a> { #[inline] pub fn wait_semaphore_device_indices( @@ -14788,7 +14081,7 @@ impl ::core::default::Default for DeviceGroupBindSparseInfo<'_> { unsafe impl<'a> TaggedStructure for DeviceGroupBindSparseInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_BIND_SPARSE_INFO; } -unsafe impl ExtendsBindSparseInfo for DeviceGroupBindSparseInfo<'_> {} +unsafe impl<'a> Extends> for DeviceGroupBindSparseInfo<'a> {} impl<'a> DeviceGroupBindSparseInfo<'a> { #[inline] pub fn resource_device_index(mut self, resource_device_index: u32) -> Self { @@ -14869,7 +14162,7 @@ impl ::core::default::Default for ImageSwapchainCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for ImageSwapchainCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_SWAPCHAIN_CREATE_INFO_KHR; } -unsafe impl ExtendsImageCreateInfo for ImageSwapchainCreateInfoKHR<'_> {} +unsafe impl<'a> Extends> for ImageSwapchainCreateInfoKHR<'a> {} impl<'a> ImageSwapchainCreateInfoKHR<'a> { #[inline] pub fn swapchain(mut self, swapchain: SwapchainKHR) -> Self { @@ -14906,7 +14199,7 @@ impl ::core::default::Default for BindImageMemorySwapchainInfoKHR<'_> { unsafe impl<'a> TaggedStructure for BindImageMemorySwapchainInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR; } -unsafe impl ExtendsBindImageMemoryInfo for BindImageMemorySwapchainInfoKHR<'_> {} +unsafe impl<'a> Extends> for BindImageMemorySwapchainInfoKHR<'a> {} impl<'a> BindImageMemorySwapchainInfoKHR<'a> { #[inline] pub fn swapchain(mut self, swapchain: SwapchainKHR) -> Self { @@ -15012,7 +14305,7 @@ impl ::core::default::Default for DeviceGroupPresentInfoKHR<'_> { unsafe impl<'a> TaggedStructure for DeviceGroupPresentInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_PRESENT_INFO_KHR; } -unsafe impl ExtendsPresentInfoKHR for DeviceGroupPresentInfoKHR<'_> {} +unsafe impl<'a> Extends> for DeviceGroupPresentInfoKHR<'a> {} impl<'a> DeviceGroupPresentInfoKHR<'a> { #[inline] pub fn device_masks(mut self, device_masks: &'a [u32]) -> Self { @@ -15055,7 +14348,7 @@ impl ::core::default::Default for DeviceGroupDeviceCreateInfo<'_> { unsafe impl<'a> TaggedStructure for DeviceGroupDeviceCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_DEVICE_CREATE_INFO; } -unsafe impl ExtendsDeviceCreateInfo for DeviceGroupDeviceCreateInfo<'_> {} +unsafe impl<'a> Extends> for DeviceGroupDeviceCreateInfo<'a> {} impl<'a> DeviceGroupDeviceCreateInfo<'a> { #[inline] pub fn physical_devices(mut self, physical_devices: &'a [PhysicalDevice]) -> Self { @@ -15091,7 +14384,7 @@ impl ::core::default::Default for DeviceGroupSwapchainCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for DeviceGroupSwapchainCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR; } -unsafe impl ExtendsSwapchainCreateInfoKHR for DeviceGroupSwapchainCreateInfoKHR<'_> {} +unsafe impl<'a> Extends> for DeviceGroupSwapchainCreateInfoKHR<'a> {} impl<'a> DeviceGroupSwapchainCreateInfoKHR<'a> { #[inline] pub fn modes(mut self, modes: DeviceGroupPresentModeFlagsKHR) -> Self { @@ -15274,8 +14567,8 @@ impl ::core::default::Default for PhysicalDevicePresentIdFeaturesKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDevicePresentIdFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentIdFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentIdFeaturesKHR<'_> {} +unsafe impl<'a> Extends> for PhysicalDevicePresentIdFeaturesKHR<'a> {} +unsafe impl<'a> Extends> for PhysicalDevicePresentIdFeaturesKHR<'a> {} impl<'a> PhysicalDevicePresentIdFeaturesKHR<'a> { #[inline] pub fn present_id(mut self, present_id: bool) -> Self { @@ -15312,7 +14605,7 @@ impl ::core::default::Default for PresentIdKHR<'_> { unsafe impl<'a> TaggedStructure for PresentIdKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PRESENT_ID_KHR; } -unsafe impl ExtendsPresentInfoKHR for PresentIdKHR<'_> {} +unsafe impl<'a> Extends> for PresentIdKHR<'a> {} impl<'a> PresentIdKHR<'a> { #[inline] pub fn present_ids(mut self, present_ids: &'a [u64]) -> Self { @@ -15348,8 +14641,8 @@ impl ::core::default::Default for PhysicalDevicePresentWaitFeaturesKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDevicePresentWaitFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentWaitFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentWaitFeaturesKHR<'_> {} +unsafe impl<'a> Extends> for PhysicalDevicePresentWaitFeaturesKHR<'a> {} +unsafe impl<'a> Extends> for PhysicalDevicePresentWaitFeaturesKHR<'a> {} impl<'a> PhysicalDevicePresentWaitFeaturesKHR<'a> { #[inline] pub fn present_wait(mut self, present_wait: bool) -> Self { @@ -15468,7 +14761,10 @@ unsafe impl<'a> TaggedStructure for DisplayNativeHdrSurfaceCapabilitiesAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD; } -unsafe impl ExtendsSurfaceCapabilities2KHR for DisplayNativeHdrSurfaceCapabilitiesAMD<'_> {} +unsafe impl<'a> Extends> + for DisplayNativeHdrSurfaceCapabilitiesAMD<'a> +{ +} impl<'a> DisplayNativeHdrSurfaceCapabilitiesAMD<'a> { #[inline] pub fn local_dimming_support(mut self, local_dimming_support: bool) -> Self { @@ -15504,7 +14800,7 @@ unsafe impl<'a> TaggedStructure for SwapchainDisplayNativeHdrCreateInfoAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD; } -unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainDisplayNativeHdrCreateInfoAMD<'_> {} +unsafe impl<'a> Extends> for SwapchainDisplayNativeHdrCreateInfoAMD<'a> {} impl<'a> SwapchainDisplayNativeHdrCreateInfoAMD<'a> { #[inline] pub fn local_dimming_enable(mut self, local_dimming_enable: bool) -> Self { @@ -15595,7 +14891,7 @@ impl ::core::default::Default for PresentTimesInfoGOOGLE<'_> { unsafe impl<'a> TaggedStructure for PresentTimesInfoGOOGLE<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PRESENT_TIMES_INFO_GOOGLE; } -unsafe impl ExtendsPresentInfoKHR for PresentTimesInfoGOOGLE<'_> {} +unsafe impl<'a> Extends> for PresentTimesInfoGOOGLE<'a> {} impl<'a> PresentTimesInfoGOOGLE<'a> { #[inline] pub fn times(mut self, times: &'a [PresentTimeGOOGLE]) -> Self { @@ -15801,8 +15097,8 @@ unsafe impl<'a> TaggedStructure for PipelineViewportWScalingStateCreateInfoNV<'a const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsPipelineViewportStateCreateInfo - for PipelineViewportWScalingStateCreateInfoNV<'_> +unsafe impl<'a> Extends> + for PipelineViewportWScalingStateCreateInfoNV<'a> { } impl<'a> PipelineViewportWScalingStateCreateInfoNV<'a> { @@ -15883,8 +15179,8 @@ unsafe impl<'a> TaggedStructure for PipelineViewportSwizzleStateCreateInfoNV<'a> const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsPipelineViewportStateCreateInfo - for PipelineViewportSwizzleStateCreateInfoNV<'_> +unsafe impl<'a> Extends> + for PipelineViewportSwizzleStateCreateInfoNV<'a> { } impl<'a> PipelineViewportSwizzleStateCreateInfoNV<'a> { @@ -15928,7 +15224,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDiscardRectanglePropertiesEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceDiscardRectanglePropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceDiscardRectanglePropertiesEXT<'a> +{ +} impl<'a> PhysicalDeviceDiscardRectanglePropertiesEXT<'a> { #[inline] pub fn max_discard_rectangles(mut self, max_discard_rectangles: u32) -> Self { @@ -15970,7 +15269,10 @@ unsafe impl<'a> TaggedStructure for PipelineDiscardRectangleStateCreateInfoEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineDiscardRectangleStateCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> + for PipelineDiscardRectangleStateCreateInfoEXT<'a> +{ +} impl<'a> PipelineDiscardRectangleStateCreateInfoEXT<'a> { #[inline] pub fn flags(mut self, flags: PipelineDiscardRectangleStateCreateFlagsEXT) -> Self { @@ -16020,8 +15322,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiviewPerViewAttributesProp const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX<'a> { } impl<'a> PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX<'a> { @@ -16091,7 +15393,10 @@ unsafe impl<'a> TaggedStructure for RenderPassInputAttachmentAspectCreateInfo<'a const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO; } -unsafe impl ExtendsRenderPassCreateInfo for RenderPassInputAttachmentAspectCreateInfo<'_> {} +unsafe impl<'a> Extends> + for RenderPassInputAttachmentAspectCreateInfo<'a> +{ +} impl<'a> RenderPassInputAttachmentAspectCreateInfo<'a> { #[inline] pub fn aspect_references( @@ -16130,30 +15435,13 @@ impl ::core::default::Default for PhysicalDeviceSurfaceInfo2KHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceSurfaceInfo2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SURFACE_INFO_2_KHR; } -pub unsafe trait ExtendsPhysicalDeviceSurfaceInfo2KHR {} +unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceSurfaceInfo2KHR<'_> {} impl<'a> PhysicalDeviceSurfaceInfo2KHR<'a> { #[inline] pub fn surface(mut self, surface: SurfaceKHR) -> Self { self.surface = surface; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -16182,30 +15470,13 @@ impl ::core::default::Default for SurfaceCapabilities2KHR<'_> { unsafe impl<'a> TaggedStructure for SurfaceCapabilities2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_2_KHR; } -pub unsafe trait ExtendsSurfaceCapabilities2KHR {} +unsafe impl<'a> BaseTaggedStructure for SurfaceCapabilities2KHR<'_> {} impl<'a> SurfaceCapabilities2KHR<'a> { #[inline] pub fn surface_capabilities(mut self, surface_capabilities: SurfaceCapabilitiesKHR) -> Self { self.surface_capabilities = surface_capabilities; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -16234,27 +15505,13 @@ impl ::core::default::Default for SurfaceFormat2KHR<'_> { unsafe impl<'a> TaggedStructure for SurfaceFormat2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_FORMAT_2_KHR; } -pub unsafe trait ExtendsSurfaceFormat2KHR {} +unsafe impl<'a> BaseTaggedStructure for SurfaceFormat2KHR<'_> {} impl<'a> SurfaceFormat2KHR<'a> { #[inline] pub fn surface_format(mut self, surface_format: SurfaceFormatKHR) -> Self { self.surface_format = surface_format; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -16466,7 +15723,7 @@ impl ::core::default::Default for SharedPresentSurfaceCapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for SharedPresentSurfaceCapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SHARED_PRESENT_SURFACE_CAPABILITIES_KHR; } -unsafe impl ExtendsSurfaceCapabilities2KHR for SharedPresentSurfaceCapabilitiesKHR<'_> {} +unsafe impl<'a> Extends> for SharedPresentSurfaceCapabilitiesKHR<'a> {} impl<'a> SharedPresentSurfaceCapabilitiesKHR<'a> { #[inline] pub fn shared_present_supported_usage_flags( @@ -16510,8 +15767,8 @@ impl ::core::default::Default for PhysicalDevice16BitStorageFeatures<'_> { unsafe impl<'a> TaggedStructure for PhysicalDevice16BitStorageFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevice16BitStorageFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevice16BitStorageFeatures<'_> {} +unsafe impl<'a> Extends> for PhysicalDevice16BitStorageFeatures<'a> {} +unsafe impl<'a> Extends> for PhysicalDevice16BitStorageFeatures<'a> {} impl<'a> PhysicalDevice16BitStorageFeatures<'a> { #[inline] pub fn storage_buffer16_bit_access(mut self, storage_buffer16_bit_access: bool) -> Self { @@ -16571,7 +15828,7 @@ impl ::core::default::Default for PhysicalDeviceSubgroupProperties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceSubgroupProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBGROUP_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceSubgroupProperties<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceSubgroupProperties<'a> {} impl<'a> PhysicalDeviceSubgroupProperties<'a> { #[inline] pub fn subgroup_size(mut self, subgroup_size: u32) -> Self { @@ -16622,11 +15879,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderSubgroupExtendedTypesFea const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceShaderSubgroupExtendedTypesFeatures<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceShaderSubgroupExtendedTypesFeatures<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderSubgroupExtendedTypesFeatures<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderSubgroupExtendedTypesFeatures<'_> {} impl<'a> PhysicalDeviceShaderSubgroupExtendedTypesFeatures<'a> { #[inline] pub fn shader_subgroup_extended_types(mut self, shader_subgroup_extended_types: bool) -> Self { @@ -16729,30 +15989,13 @@ impl ::core::default::Default for ImageMemoryRequirementsInfo2<'_> { unsafe impl<'a> TaggedStructure for ImageMemoryRequirementsInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_MEMORY_REQUIREMENTS_INFO_2; } -pub unsafe trait ExtendsImageMemoryRequirementsInfo2 {} +unsafe impl<'a> BaseTaggedStructure for ImageMemoryRequirementsInfo2<'_> {} impl<'a> ImageMemoryRequirementsInfo2<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { self.image = image; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -16856,27 +16099,13 @@ impl ::core::default::Default for MemoryRequirements2<'_> { unsafe impl<'a> TaggedStructure for MemoryRequirements2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_REQUIREMENTS_2; } -pub unsafe trait ExtendsMemoryRequirements2 {} +unsafe impl<'a> BaseTaggedStructure for MemoryRequirements2<'_> {} impl<'a> MemoryRequirements2<'a> { #[inline] pub fn memory_requirements(mut self, memory_requirements: MemoryRequirements) -> Self { self.memory_requirements = memory_requirements; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -16942,7 +16171,10 @@ impl ::core::default::Default for PhysicalDevicePointClippingProperties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDevicePointClippingProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePointClippingProperties<'_> {} +unsafe impl<'a> Extends> + for PhysicalDevicePointClippingProperties<'a> +{ +} impl<'a> PhysicalDevicePointClippingProperties<'a> { #[inline] pub fn point_clipping_behavior( @@ -16982,7 +16214,7 @@ impl ::core::default::Default for MemoryDedicatedRequirements<'_> { unsafe impl<'a> TaggedStructure for MemoryDedicatedRequirements<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_DEDICATED_REQUIREMENTS; } -unsafe impl ExtendsMemoryRequirements2 for MemoryDedicatedRequirements<'_> {} +unsafe impl<'a> Extends> for MemoryDedicatedRequirements<'a> {} impl<'a> MemoryDedicatedRequirements<'a> { #[inline] pub fn prefers_dedicated_allocation(mut self, prefers_dedicated_allocation: bool) -> Self { @@ -17024,7 +16256,7 @@ impl ::core::default::Default for MemoryDedicatedAllocateInfo<'_> { unsafe impl<'a> TaggedStructure for MemoryDedicatedAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_DEDICATED_ALLOCATE_INFO; } -unsafe impl ExtendsMemoryAllocateInfo for MemoryDedicatedAllocateInfo<'_> {} +unsafe impl<'a> Extends> for MemoryDedicatedAllocateInfo<'a> {} impl<'a> MemoryDedicatedAllocateInfo<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { @@ -17064,7 +16296,7 @@ impl ::core::default::Default for ImageViewUsageCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ImageViewUsageCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_USAGE_CREATE_INFO; } -unsafe impl ExtendsImageViewCreateInfo for ImageViewUsageCreateInfo<'_> {} +unsafe impl<'a> Extends> for ImageViewUsageCreateInfo<'a> {} impl<'a> ImageViewUsageCreateInfo<'a> { #[inline] pub fn usage(mut self, usage: ImageUsageFlags) -> Self { @@ -17101,7 +16333,7 @@ impl ::core::default::Default for ImageViewSlicedCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ImageViewSlicedCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_SLICED_CREATE_INFO_EXT; } -unsafe impl ExtendsImageViewCreateInfo for ImageViewSlicedCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> for ImageViewSlicedCreateInfoEXT<'a> {} impl<'a> ImageViewSlicedCreateInfoEXT<'a> { #[inline] pub fn slice_offset(mut self, slice_offset: u32) -> Self { @@ -17142,8 +16374,8 @@ unsafe impl<'a> TaggedStructure for PipelineTessellationDomainOriginStateCreateI const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO; } -unsafe impl ExtendsPipelineTessellationStateCreateInfo - for PipelineTessellationDomainOriginStateCreateInfo<'_> +unsafe impl<'a> Extends> + for PipelineTessellationDomainOriginStateCreateInfo<'a> { } impl<'a> PipelineTessellationDomainOriginStateCreateInfo<'a> { @@ -17180,8 +16412,8 @@ impl ::core::default::Default for SamplerYcbcrConversionInfo<'_> { unsafe impl<'a> TaggedStructure for SamplerYcbcrConversionInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_INFO; } -unsafe impl ExtendsSamplerCreateInfo for SamplerYcbcrConversionInfo<'_> {} -unsafe impl ExtendsImageViewCreateInfo for SamplerYcbcrConversionInfo<'_> {} +unsafe impl<'a> Extends> for SamplerYcbcrConversionInfo<'a> {} +unsafe impl<'a> Extends> for SamplerYcbcrConversionInfo<'a> {} impl<'a> SamplerYcbcrConversionInfo<'a> { #[inline] pub fn conversion(mut self, conversion: SamplerYcbcrConversion) -> Self { @@ -17230,7 +16462,7 @@ impl ::core::default::Default for SamplerYcbcrConversionCreateInfo<'_> { unsafe impl<'a> TaggedStructure for SamplerYcbcrConversionCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_CREATE_INFO; } -pub unsafe trait ExtendsSamplerYcbcrConversionCreateInfo {} +unsafe impl<'a> BaseTaggedStructure for SamplerYcbcrConversionCreateInfo<'_> {} impl<'a> SamplerYcbcrConversionCreateInfo<'a> { #[inline] pub fn format(mut self, format: Format) -> Self { @@ -17272,23 +16504,6 @@ impl<'a> SamplerYcbcrConversionCreateInfo<'a> { self.force_explicit_reconstruction = force_explicit_reconstruction.into(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -17317,7 +16532,7 @@ impl ::core::default::Default for BindImagePlaneMemoryInfo<'_> { unsafe impl<'a> TaggedStructure for BindImagePlaneMemoryInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_IMAGE_PLANE_MEMORY_INFO; } -unsafe impl ExtendsBindImageMemoryInfo for BindImagePlaneMemoryInfo<'_> {} +unsafe impl<'a> Extends> for BindImagePlaneMemoryInfo<'a> {} impl<'a> BindImagePlaneMemoryInfo<'a> { #[inline] pub fn plane_aspect(mut self, plane_aspect: ImageAspectFlags) -> Self { @@ -17352,7 +16567,7 @@ impl ::core::default::Default for ImagePlaneMemoryRequirementsInfo<'_> { unsafe impl<'a> TaggedStructure for ImagePlaneMemoryRequirementsInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO; } -unsafe impl ExtendsImageMemoryRequirementsInfo2 for ImagePlaneMemoryRequirementsInfo<'_> {} +unsafe impl<'a> Extends> for ImagePlaneMemoryRequirementsInfo<'a> {} impl<'a> ImagePlaneMemoryRequirementsInfo<'a> { #[inline] pub fn plane_aspect(mut self, plane_aspect: ImageAspectFlags) -> Self { @@ -17388,8 +16603,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSamplerYcbcrConversionFeatures const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceSamplerYcbcrConversionFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSamplerYcbcrConversionFeatures<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceSamplerYcbcrConversionFeatures<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceSamplerYcbcrConversionFeatures<'a> {} impl<'a> PhysicalDeviceSamplerYcbcrConversionFeatures<'a> { #[inline] pub fn sampler_ycbcr_conversion(mut self, sampler_ycbcr_conversion: bool) -> Self { @@ -17425,7 +16643,10 @@ unsafe impl<'a> TaggedStructure for SamplerYcbcrConversionImageFormatProperties< const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES; } -unsafe impl ExtendsImageFormatProperties2 for SamplerYcbcrConversionImageFormatProperties<'_> {} +unsafe impl<'a> Extends> + for SamplerYcbcrConversionImageFormatProperties<'a> +{ +} impl<'a> SamplerYcbcrConversionImageFormatProperties<'a> { #[inline] pub fn combined_image_sampler_descriptor_count( @@ -17463,7 +16684,7 @@ impl ::core::default::Default for TextureLODGatherFormatPropertiesAMD<'_> { unsafe impl<'a> TaggedStructure for TextureLODGatherFormatPropertiesAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD; } -unsafe impl ExtendsImageFormatProperties2 for TextureLODGatherFormatPropertiesAMD<'_> {} +unsafe impl<'a> Extends> for TextureLODGatherFormatPropertiesAMD<'a> {} impl<'a> TextureLODGatherFormatPropertiesAMD<'a> { #[inline] pub fn supports_texture_gather_lod_bias_amd( @@ -17549,7 +16770,7 @@ impl ::core::default::Default for ProtectedSubmitInfo<'_> { unsafe impl<'a> TaggedStructure for ProtectedSubmitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PROTECTED_SUBMIT_INFO; } -unsafe impl ExtendsSubmitInfo for ProtectedSubmitInfo<'_> {} +unsafe impl<'a> Extends> for ProtectedSubmitInfo<'a> {} impl<'a> ProtectedSubmitInfo<'a> { #[inline] pub fn protected_submit(mut self, protected_submit: bool) -> Self { @@ -17584,8 +16805,8 @@ impl ::core::default::Default for PhysicalDeviceProtectedMemoryFeatures<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceProtectedMemoryFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceProtectedMemoryFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceProtectedMemoryFeatures<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceProtectedMemoryFeatures<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceProtectedMemoryFeatures<'a> {} impl<'a> PhysicalDeviceProtectedMemoryFeatures<'a> { #[inline] pub fn protected_memory(mut self, protected_memory: bool) -> Self { @@ -17621,7 +16842,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceProtectedMemoryProperties<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceProtectedMemoryProperties<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceProtectedMemoryProperties<'a> +{ +} impl<'a> PhysicalDeviceProtectedMemoryProperties<'a> { #[inline] pub fn protected_no_fault(mut self, protected_no_fault: bool) -> Self { @@ -17709,8 +16933,8 @@ unsafe impl<'a> TaggedStructure for PipelineCoverageToColorStateCreateInfoNV<'a> const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsPipelineMultisampleStateCreateInfo - for PipelineCoverageToColorStateCreateInfoNV<'_> +unsafe impl<'a> Extends> + for PipelineCoverageToColorStateCreateInfoNV<'a> { } impl<'a> PipelineCoverageToColorStateCreateInfoNV<'a> { @@ -17760,7 +16984,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSamplerFilterMinmaxProperties< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceSamplerFilterMinmaxProperties<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceSamplerFilterMinmaxProperties<'a> +{ +} impl<'a> PhysicalDeviceSamplerFilterMinmaxProperties<'a> { #[inline] pub fn filter_minmax_single_component_formats( @@ -17833,8 +17060,8 @@ impl ::core::default::Default for SampleLocationsInfoEXT<'_> { unsafe impl<'a> TaggedStructure for SampleLocationsInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLE_LOCATIONS_INFO_EXT; } -unsafe impl ExtendsImageMemoryBarrier for SampleLocationsInfoEXT<'_> {} -unsafe impl ExtendsImageMemoryBarrier2 for SampleLocationsInfoEXT<'_> {} +unsafe impl<'a> Extends> for SampleLocationsInfoEXT<'a> {} +unsafe impl<'a> Extends> for SampleLocationsInfoEXT<'a> {} impl<'a> SampleLocationsInfoEXT<'a> { #[inline] pub fn sample_locations_per_pixel( @@ -17940,7 +17167,7 @@ unsafe impl<'a> TaggedStructure for RenderPassSampleLocationsBeginInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT; } -unsafe impl ExtendsRenderPassBeginInfo for RenderPassSampleLocationsBeginInfoEXT<'_> {} +unsafe impl<'a> Extends> for RenderPassSampleLocationsBeginInfoEXT<'a> {} impl<'a> RenderPassSampleLocationsBeginInfoEXT<'a> { #[inline] pub fn attachment_initial_sample_locations( @@ -17992,8 +17219,8 @@ unsafe impl<'a> TaggedStructure for PipelineSampleLocationsStateCreateInfoEXT<'a const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineMultisampleStateCreateInfo - for PipelineSampleLocationsStateCreateInfoEXT<'_> +unsafe impl<'a> Extends> + for PipelineSampleLocationsStateCreateInfoEXT<'a> { } impl<'a> PipelineSampleLocationsStateCreateInfoEXT<'a> { @@ -18047,7 +17274,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSampleLocationsPropertiesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceSampleLocationsPropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceSampleLocationsPropertiesEXT<'a> +{ +} impl<'a> PhysicalDeviceSampleLocationsPropertiesEXT<'a> { #[inline] pub fn sample_location_sample_counts( @@ -18148,7 +17378,7 @@ impl ::core::default::Default for SamplerReductionModeCreateInfo<'_> { unsafe impl<'a> TaggedStructure for SamplerReductionModeCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_REDUCTION_MODE_CREATE_INFO; } -unsafe impl ExtendsSamplerCreateInfo for SamplerReductionModeCreateInfo<'_> {} +unsafe impl<'a> Extends> for SamplerReductionModeCreateInfo<'a> {} impl<'a> SamplerReductionModeCreateInfo<'a> { #[inline] pub fn reduction_mode(mut self, reduction_mode: SamplerReductionMode) -> Self { @@ -18184,8 +17414,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceBlendOperationAdvancedFeatures const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceBlendOperationAdvancedFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceBlendOperationAdvancedFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceBlendOperationAdvancedFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceBlendOperationAdvancedFeaturesEXT<'a> +{ +} impl<'a> PhysicalDeviceBlendOperationAdvancedFeaturesEXT<'a> { #[inline] pub fn advanced_blend_coherent_operations( @@ -18223,8 +17459,8 @@ impl ::core::default::Default for PhysicalDeviceMultiDrawFeaturesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiDrawFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMultiDrawFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMultiDrawFeaturesEXT<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceMultiDrawFeaturesEXT<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceMultiDrawFeaturesEXT<'a> {} impl<'a> PhysicalDeviceMultiDrawFeaturesEXT<'a> { #[inline] pub fn multi_draw(mut self, multi_draw: bool) -> Self { @@ -18270,8 +17506,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceBlendOperationAdvancedProperti const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceBlendOperationAdvancedPropertiesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceBlendOperationAdvancedPropertiesEXT<'a> { } impl<'a> PhysicalDeviceBlendOperationAdvancedPropertiesEXT<'a> { @@ -18355,8 +17591,8 @@ unsafe impl<'a> TaggedStructure for PipelineColorBlendAdvancedStateCreateInfoEXT const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineColorBlendStateCreateInfo - for PipelineColorBlendAdvancedStateCreateInfoEXT<'_> +unsafe impl<'a> Extends> + for PipelineColorBlendAdvancedStateCreateInfoEXT<'a> { } impl<'a> PipelineColorBlendAdvancedStateCreateInfoEXT<'a> { @@ -18406,8 +17642,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceInlineUniformBlockFeatures<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceInlineUniformBlockFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceInlineUniformBlockFeatures<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceInlineUniformBlockFeatures<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceInlineUniformBlockFeatures<'a> {} impl<'a> PhysicalDeviceInlineUniformBlockFeatures<'a> { #[inline] pub fn inline_uniform_block(mut self, inline_uniform_block: bool) -> Self { @@ -18460,7 +17699,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceInlineUniformBlockProperties<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceInlineUniformBlockProperties<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceInlineUniformBlockProperties<'a> +{ +} impl<'a> PhysicalDeviceInlineUniformBlockProperties<'a> { #[inline] pub fn max_inline_uniform_block_size(mut self, max_inline_uniform_block_size: u32) -> Self { @@ -18532,7 +17774,7 @@ impl ::core::default::Default for WriteDescriptorSetInlineUniformBlock<'_> { unsafe impl<'a> TaggedStructure for WriteDescriptorSetInlineUniformBlock<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK; } -unsafe impl ExtendsWriteDescriptorSet for WriteDescriptorSetInlineUniformBlock<'_> {} +unsafe impl<'a> Extends> for WriteDescriptorSetInlineUniformBlock<'a> {} impl<'a> WriteDescriptorSetInlineUniformBlock<'a> { #[inline] pub fn data(mut self, data: &'a [u8]) -> Self { @@ -18569,7 +17811,10 @@ unsafe impl<'a> TaggedStructure for DescriptorPoolInlineUniformBlockCreateInfo<' const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO; } -unsafe impl ExtendsDescriptorPoolCreateInfo for DescriptorPoolInlineUniformBlockCreateInfo<'_> {} +unsafe impl<'a> Extends> + for DescriptorPoolInlineUniformBlockCreateInfo<'a> +{ +} impl<'a> DescriptorPoolInlineUniformBlockCreateInfo<'a> { #[inline] pub fn max_inline_uniform_block_bindings( @@ -18616,8 +17861,8 @@ unsafe impl<'a> TaggedStructure for PipelineCoverageModulationStateCreateInfoNV< const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsPipelineMultisampleStateCreateInfo - for PipelineCoverageModulationStateCreateInfoNV<'_> +unsafe impl<'a> Extends> + for PipelineCoverageModulationStateCreateInfoNV<'a> { } impl<'a> PipelineCoverageModulationStateCreateInfoNV<'a> { @@ -18678,9 +17923,9 @@ impl ::core::default::Default for ImageFormatListCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ImageFormatListCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_FORMAT_LIST_CREATE_INFO; } -unsafe impl ExtendsImageCreateInfo for ImageFormatListCreateInfo<'_> {} -unsafe impl ExtendsSwapchainCreateInfoKHR for ImageFormatListCreateInfo<'_> {} -unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for ImageFormatListCreateInfo<'_> {} +unsafe impl<'a> Extends> for ImageFormatListCreateInfo<'a> {} +unsafe impl<'a> Extends> for ImageFormatListCreateInfo<'a> {} +unsafe impl<'a> Extends> for ImageFormatListCreateInfo<'a> {} impl<'a> ImageFormatListCreateInfo<'a> { #[inline] pub fn view_formats(mut self, view_formats: &'a [Format]) -> Self { @@ -18761,8 +18006,14 @@ unsafe impl<'a> TaggedStructure for ShaderModuleValidationCacheCreateInfoEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT; } -unsafe impl ExtendsShaderModuleCreateInfo for ShaderModuleValidationCacheCreateInfoEXT<'_> {} -unsafe impl ExtendsPipelineShaderStageCreateInfo for ShaderModuleValidationCacheCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> + for ShaderModuleValidationCacheCreateInfoEXT<'a> +{ +} +unsafe impl<'a> Extends> + for ShaderModuleValidationCacheCreateInfoEXT<'a> +{ +} impl<'a> ShaderModuleValidationCacheCreateInfoEXT<'a> { #[inline] pub fn validation_cache(mut self, validation_cache: ValidationCacheEXT) -> Self { @@ -18799,7 +18050,10 @@ impl ::core::default::Default for PhysicalDeviceMaintenance3Properties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance3Properties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMaintenance3Properties<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceMaintenance3Properties<'a> +{ +} impl<'a> PhysicalDeviceMaintenance3Properties<'a> { #[inline] pub fn max_per_set_descriptors(mut self, max_per_set_descriptors: u32) -> Self { @@ -18839,8 +18093,8 @@ impl ::core::default::Default for PhysicalDeviceMaintenance4Features<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance4Features<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance4Features<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance4Features<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceMaintenance4Features<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceMaintenance4Features<'a> {} impl<'a> PhysicalDeviceMaintenance4Features<'a> { #[inline] pub fn maintenance4(mut self, maintenance4: bool) -> Self { @@ -18875,7 +18129,10 @@ impl ::core::default::Default for PhysicalDeviceMaintenance4Properties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance4Properties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMaintenance4Properties<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceMaintenance4Properties<'a> +{ +} impl<'a> PhysicalDeviceMaintenance4Properties<'a> { #[inline] pub fn max_buffer_size(mut self, max_buffer_size: DeviceSize) -> Self { @@ -18910,8 +18167,8 @@ impl ::core::default::Default for PhysicalDeviceMaintenance5FeaturesKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance5FeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance5FeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance5FeaturesKHR<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceMaintenance5FeaturesKHR<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceMaintenance5FeaturesKHR<'a> {} impl<'a> PhysicalDeviceMaintenance5FeaturesKHR<'a> { #[inline] pub fn maintenance5(mut self, maintenance5: bool) -> Self { @@ -18957,7 +18214,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance5PropertiesKHR<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMaintenance5PropertiesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceMaintenance5PropertiesKHR<'a> +{ +} impl<'a> PhysicalDeviceMaintenance5PropertiesKHR<'a> { #[inline] pub fn early_fragment_multisample_coverage_after_sample_counting( @@ -19036,8 +18296,8 @@ impl ::core::default::Default for PhysicalDeviceMaintenance6FeaturesKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance6FeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance6FeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance6FeaturesKHR<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceMaintenance6FeaturesKHR<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceMaintenance6FeaturesKHR<'a> {} impl<'a> PhysicalDeviceMaintenance6FeaturesKHR<'a> { #[inline] pub fn maintenance6(mut self, maintenance6: bool) -> Self { @@ -19077,7 +18337,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance6PropertiesKHR<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMaintenance6PropertiesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceMaintenance6PropertiesKHR<'a> +{ +} impl<'a> PhysicalDeviceMaintenance6PropertiesKHR<'a> { #[inline] pub fn block_texel_view_compatible_multiple_layers( @@ -19134,8 +18397,8 @@ impl ::core::default::Default for PhysicalDeviceMaintenance7FeaturesKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance7FeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance7FeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance7FeaturesKHR<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceMaintenance7FeaturesKHR<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceMaintenance7FeaturesKHR<'a> {} impl<'a> PhysicalDeviceMaintenance7FeaturesKHR<'a> { #[inline] pub fn maintenance7(mut self, maintenance7: bool) -> Self { @@ -19185,7 +18448,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance7PropertiesKHR<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMaintenance7PropertiesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceMaintenance7PropertiesKHR<'a> +{ +} impl<'a> PhysicalDeviceMaintenance7PropertiesKHR<'a> { #[inline] pub fn robust_fragment_shading_rate_attachment_access( @@ -19289,7 +18555,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceLayeredApiPropertiesListKHR<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceLayeredApiPropertiesListKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceLayeredApiPropertiesListKHR<'a> +{ +} impl<'a> PhysicalDeviceLayeredApiPropertiesListKHR<'a> { #[inline] pub fn layered_apis( @@ -19346,7 +18615,7 @@ impl ::core::default::Default for PhysicalDeviceLayeredApiPropertiesKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceLayeredApiPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR; } -pub unsafe trait ExtendsPhysicalDeviceLayeredApiPropertiesKHR {} +unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceLayeredApiPropertiesKHR<'_> {} impl<'a> PhysicalDeviceLayeredApiPropertiesKHR<'a> { #[inline] pub fn vendor_id(mut self, vendor_id: u32) -> Self { @@ -19374,23 +18643,6 @@ impl<'a> PhysicalDeviceLayeredApiPropertiesKHR<'a> { pub fn device_name_as_c_str(&self) -> core::result::Result<&CStr, FromBytesUntilNulError> { wrap_c_str_slice_until_nul(&self.device_name) } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -19420,8 +18672,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceLayeredApiVulkanPropertiesKHR< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceLayeredApiPropertiesKHR - for PhysicalDeviceLayeredApiVulkanPropertiesKHR<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceLayeredApiVulkanPropertiesKHR<'a> { } impl<'a> PhysicalDeviceLayeredApiVulkanPropertiesKHR<'a> { @@ -19516,30 +18768,13 @@ impl ::core::default::Default for DescriptorSetLayoutSupport<'_> { unsafe impl<'a> TaggedStructure for DescriptorSetLayoutSupport<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_SUPPORT; } -pub unsafe trait ExtendsDescriptorSetLayoutSupport {} +unsafe impl<'a> BaseTaggedStructure for DescriptorSetLayoutSupport<'_> {} impl<'a> DescriptorSetLayoutSupport<'a> { #[inline] pub fn supported(mut self, supported: bool) -> Self { self.supported = supported.into(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -19569,8 +18804,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderDrawParametersFeatures<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderDrawParametersFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderDrawParametersFeatures<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderDrawParametersFeatures<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceShaderDrawParametersFeatures<'a> {} impl<'a> PhysicalDeviceShaderDrawParametersFeatures<'a> { #[inline] pub fn shader_draw_parameters(mut self, shader_draw_parameters: bool) -> Self { @@ -19608,8 +18846,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderFloat16Int8Features<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderFloat16Int8Features<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderFloat16Int8Features<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderFloat16Int8Features<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceShaderFloat16Int8Features<'a> {} impl<'a> PhysicalDeviceShaderFloat16Int8Features<'a> { #[inline] pub fn shader_float16(mut self, shader_float16: bool) -> Self { @@ -19681,7 +18922,10 @@ impl ::core::default::Default for PhysicalDeviceFloatControlsProperties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceFloatControlsProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceFloatControlsProperties<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceFloatControlsProperties<'a> +{ +} impl<'a> PhysicalDeviceFloatControlsProperties<'a> { #[inline] pub fn denorm_behavior_independence( @@ -19841,8 +19085,8 @@ impl ::core::default::Default for PhysicalDeviceHostQueryResetFeatures<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceHostQueryResetFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceHostQueryResetFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceHostQueryResetFeatures<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceHostQueryResetFeatures<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceHostQueryResetFeatures<'a> {} impl<'a> PhysicalDeviceHostQueryResetFeatures<'a> { #[inline] pub fn host_query_reset(mut self, host_query_reset: bool) -> Self { @@ -20134,7 +19378,7 @@ unsafe impl<'a> TaggedStructure for DeviceQueueGlobalPriorityCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR; } -unsafe impl ExtendsDeviceQueueCreateInfo for DeviceQueueGlobalPriorityCreateInfoKHR<'_> {} +unsafe impl<'a> Extends> for DeviceQueueGlobalPriorityCreateInfoKHR<'a> {} impl<'a> DeviceQueueGlobalPriorityCreateInfoKHR<'a> { #[inline] pub fn global_priority(mut self, global_priority: QueueGlobalPriorityKHR) -> Self { @@ -20170,8 +19414,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceGlobalPriorityQueryFeaturesKHR const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'a> {} impl<'a> PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'a> { #[inline] pub fn global_priority_query(mut self, global_priority_query: bool) -> Self { @@ -20219,7 +19466,7 @@ unsafe impl<'a> TaggedStructure for QueueFamilyGlobalPriorityPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR; } -unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyGlobalPriorityPropertiesKHR<'_> {} +unsafe impl<'a> Extends> for QueueFamilyGlobalPriorityPropertiesKHR<'a> {} impl<'a> QueueFamilyGlobalPriorityPropertiesKHR<'a> { #[inline] pub fn priorities(mut self, priorities: &'_ [QueueGlobalPriorityKHR]) -> Self { @@ -20263,7 +19510,7 @@ impl ::core::default::Default for DebugUtilsObjectNameInfoEXT<'_> { unsafe impl<'a> TaggedStructure for DebugUtilsObjectNameInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEBUG_UTILS_OBJECT_NAME_INFO_EXT; } -unsafe impl ExtendsPipelineShaderStageCreateInfo for DebugUtilsObjectNameInfoEXT<'_> {} +unsafe impl<'a> Extends> for DebugUtilsObjectNameInfoEXT<'a> {} impl<'a> DebugUtilsObjectNameInfoEXT<'a> { #[inline] pub fn object_handle(mut self, object_handle: T) -> Self { @@ -20439,7 +19686,7 @@ impl ::core::default::Default for DebugUtilsMessengerCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for DebugUtilsMessengerCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT; } -unsafe impl ExtendsInstanceCreateInfo for DebugUtilsMessengerCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> for DebugUtilsMessengerCreateInfoEXT<'a> {} impl<'a> DebugUtilsMessengerCreateInfoEXT<'a> { #[inline] pub fn flags(mut self, flags: DebugUtilsMessengerCreateFlagsEXT) -> Self { @@ -20515,7 +19762,7 @@ impl ::core::default::Default for DebugUtilsMessengerCallbackDataEXT<'_> { unsafe impl<'a> TaggedStructure for DebugUtilsMessengerCallbackDataEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT; } -pub unsafe trait ExtendsDebugUtilsMessengerCallbackDataEXT {} +unsafe impl<'a> BaseTaggedStructure for DebugUtilsMessengerCallbackDataEXT<'_> {} impl<'a> DebugUtilsMessengerCallbackDataEXT<'a> { #[inline] pub fn flags(mut self, flags: DebugUtilsMessengerCallbackDataFlagsEXT) -> Self { @@ -20571,23 +19818,6 @@ impl<'a> DebugUtilsMessengerCallbackDataEXT<'a> { self.p_objects = objects.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -20617,8 +19847,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceMemoryReportFeaturesEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDeviceMemoryReportFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDeviceMemoryReportFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceDeviceMemoryReportFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceDeviceMemoryReportFeaturesEXT<'a> {} impl<'a> PhysicalDeviceDeviceMemoryReportFeaturesEXT<'a> { #[inline] pub fn device_memory_report(mut self, device_memory_report: bool) -> Self { @@ -20672,7 +19905,7 @@ unsafe impl<'a> TaggedStructure for DeviceDeviceMemoryReportCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT; } -unsafe impl ExtendsDeviceCreateInfo for DeviceDeviceMemoryReportCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> for DeviceDeviceMemoryReportCreateInfoEXT<'a> {} impl<'a> DeviceDeviceMemoryReportCreateInfoEXT<'a> { #[inline] pub fn flags(mut self, flags: DeviceMemoryReportFlagsEXT) -> Self { @@ -20794,7 +20027,7 @@ impl ::core::default::Default for ImportMemoryHostPointerInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ImportMemoryHostPointerInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_HOST_POINTER_INFO_EXT; } -unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryHostPointerInfoEXT<'_> {} +unsafe impl<'a> Extends> for ImportMemoryHostPointerInfoEXT<'a> {} impl<'a> ImportMemoryHostPointerInfoEXT<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { @@ -20869,7 +20102,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalMemoryHostPropertiesEX const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceExternalMemoryHostPropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceExternalMemoryHostPropertiesEXT<'a> +{ +} impl<'a> PhysicalDeviceExternalMemoryHostPropertiesEXT<'a> { #[inline] pub fn min_imported_host_pointer_alignment( @@ -20924,8 +20160,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceConservativeRasterizationPrope const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceConservativeRasterizationPropertiesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceConservativeRasterizationPropertiesEXT<'a> { } impl<'a> PhysicalDeviceConservativeRasterizationPropertiesEXT<'a> { @@ -21084,7 +20320,10 @@ impl ::core::default::Default for PhysicalDeviceShaderCorePropertiesAMD<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderCorePropertiesAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderCorePropertiesAMD<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderCorePropertiesAMD<'a> +{ +} impl<'a> PhysicalDeviceShaderCorePropertiesAMD<'a> { #[inline] pub fn shader_engine_count(mut self, shader_engine_count: u32) -> Self { @@ -21187,7 +20426,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderCoreProperties2AMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderCoreProperties2AMD<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderCoreProperties2AMD<'a> +{ +} impl<'a> PhysicalDeviceShaderCoreProperties2AMD<'a> { #[inline] pub fn shader_core_features( @@ -21235,8 +20477,8 @@ unsafe impl<'a> TaggedStructure for PipelineRasterizationConservativeStateCreate const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineRasterizationStateCreateInfo - for PipelineRasterizationConservativeStateCreateInfoEXT<'_> +unsafe impl<'a> Extends> + for PipelineRasterizationConservativeStateCreateInfoEXT<'a> { } impl<'a> PipelineRasterizationConservativeStateCreateInfoEXT<'a> { @@ -21328,8 +20570,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorIndexingFeatures<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDescriptorIndexingFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorIndexingFeatures<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceDescriptorIndexingFeatures<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceDescriptorIndexingFeatures<'a> {} impl<'a> PhysicalDeviceDescriptorIndexingFeatures<'a> { #[inline] pub fn shader_input_attachment_array_dynamic_indexing( @@ -21579,7 +20824,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorIndexingProperties<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceDescriptorIndexingProperties<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceDescriptorIndexingProperties<'a> +{ +} impl<'a> PhysicalDeviceDescriptorIndexingProperties<'a> { #[inline] pub fn max_update_after_bind_descriptors_in_all_pools( @@ -21813,7 +21061,10 @@ unsafe impl<'a> TaggedStructure for DescriptorSetLayoutBindingFlagsCreateInfo<'a const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO; } -unsafe impl ExtendsDescriptorSetLayoutCreateInfo for DescriptorSetLayoutBindingFlagsCreateInfo<'_> {} +unsafe impl<'a> Extends> + for DescriptorSetLayoutBindingFlagsCreateInfo<'a> +{ +} impl<'a> DescriptorSetLayoutBindingFlagsCreateInfo<'a> { #[inline] pub fn binding_flags(mut self, binding_flags: &'a [DescriptorBindingFlags]) -> Self { @@ -21852,8 +21103,8 @@ unsafe impl<'a> TaggedStructure for DescriptorSetVariableDescriptorCountAllocate const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO; } -unsafe impl ExtendsDescriptorSetAllocateInfo - for DescriptorSetVariableDescriptorCountAllocateInfo<'_> +unsafe impl<'a> Extends> + for DescriptorSetVariableDescriptorCountAllocateInfo<'a> { } impl<'a> DescriptorSetVariableDescriptorCountAllocateInfo<'a> { @@ -21892,8 +21143,8 @@ unsafe impl<'a> TaggedStructure for DescriptorSetVariableDescriptorCountLayoutSu const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT; } -unsafe impl ExtendsDescriptorSetLayoutSupport - for DescriptorSetVariableDescriptorCountLayoutSupport<'_> +unsafe impl<'a> Extends> + for DescriptorSetVariableDescriptorCountLayoutSupport<'a> { } impl<'a> DescriptorSetVariableDescriptorCountLayoutSupport<'a> { @@ -21946,7 +21197,7 @@ impl ::core::default::Default for AttachmentDescription2<'_> { unsafe impl<'a> TaggedStructure for AttachmentDescription2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_DESCRIPTION_2; } -pub unsafe trait ExtendsAttachmentDescription2 {} +unsafe impl<'a> BaseTaggedStructure for AttachmentDescription2<'_> {} impl<'a> AttachmentDescription2<'a> { #[inline] pub fn flags(mut self, flags: AttachmentDescriptionFlags) -> Self { @@ -21993,20 +21244,6 @@ impl<'a> AttachmentDescription2<'a> { self.final_layout = final_layout; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -22039,7 +21276,7 @@ impl ::core::default::Default for AttachmentReference2<'_> { unsafe impl<'a> TaggedStructure for AttachmentReference2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_REFERENCE_2; } -pub unsafe trait ExtendsAttachmentReference2 {} +unsafe impl<'a> BaseTaggedStructure for AttachmentReference2<'_> {} impl<'a> AttachmentReference2<'a> { #[inline] pub fn attachment(mut self, attachment: u32) -> Self { @@ -22056,20 +21293,6 @@ impl<'a> AttachmentReference2<'a> { self.aspect_mask = aspect_mask; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -22118,7 +21341,7 @@ impl ::core::default::Default for SubpassDescription2<'_> { unsafe impl<'a> TaggedStructure for SubpassDescription2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_DESCRIPTION_2; } -pub unsafe trait ExtendsSubpassDescription2 {} +unsafe impl<'a> BaseTaggedStructure for SubpassDescription2<'_> {} impl<'a> SubpassDescription2<'a> { #[inline] pub fn flags(mut self, flags: SubpassDescriptionFlags) -> Self { @@ -22170,20 +21393,6 @@ impl<'a> SubpassDescription2<'a> { self.p_preserve_attachments = preserve_attachments.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -22226,7 +21435,7 @@ impl ::core::default::Default for SubpassDependency2<'_> { unsafe impl<'a> TaggedStructure for SubpassDependency2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_DEPENDENCY_2; } -pub unsafe trait ExtendsSubpassDependency2 {} +unsafe impl<'a> BaseTaggedStructure for SubpassDependency2<'_> {} impl<'a> SubpassDependency2<'a> { #[inline] pub fn src_subpass(mut self, src_subpass: u32) -> Self { @@ -22268,20 +21477,6 @@ impl<'a> SubpassDependency2<'a> { self.view_offset = view_offset; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -22326,7 +21521,7 @@ impl ::core::default::Default for RenderPassCreateInfo2<'_> { unsafe impl<'a> TaggedStructure for RenderPassCreateInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_CREATE_INFO_2; } -pub unsafe trait ExtendsRenderPassCreateInfo2 {} +unsafe impl<'a> BaseTaggedStructure for RenderPassCreateInfo2<'_> {} impl<'a> RenderPassCreateInfo2<'a> { #[inline] pub fn flags(mut self, flags: RenderPassCreateFlags) -> Self { @@ -22357,20 +21552,6 @@ impl<'a> RenderPassCreateInfo2<'a> { self.p_correlated_view_masks = correlated_view_masks.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -22431,23 +21612,8 @@ impl ::core::default::Default for SubpassEndInfo<'_> { unsafe impl<'a> TaggedStructure for SubpassEndInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_END_INFO; } -pub unsafe trait ExtendsSubpassEndInfo {} -impl<'a> SubpassEndInfo<'a> { - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } -} +unsafe impl<'a> BaseTaggedStructure for SubpassEndInfo<'_> {} +impl<'a> SubpassEndInfo<'a> {} #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] @@ -22476,8 +21642,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceTimelineSemaphoreFeatures<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTimelineSemaphoreFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTimelineSemaphoreFeatures<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceTimelineSemaphoreFeatures<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceTimelineSemaphoreFeatures<'a> {} impl<'a> PhysicalDeviceTimelineSemaphoreFeatures<'a> { #[inline] pub fn timeline_semaphore(mut self, timeline_semaphore: bool) -> Self { @@ -22513,7 +21682,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceTimelineSemaphoreProperties<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceTimelineSemaphoreProperties<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceTimelineSemaphoreProperties<'a> +{ +} impl<'a> PhysicalDeviceTimelineSemaphoreProperties<'a> { #[inline] pub fn max_timeline_semaphore_value_difference( @@ -22553,8 +21725,8 @@ impl ::core::default::Default for SemaphoreTypeCreateInfo<'_> { unsafe impl<'a> TaggedStructure for SemaphoreTypeCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SEMAPHORE_TYPE_CREATE_INFO; } -unsafe impl ExtendsSemaphoreCreateInfo for SemaphoreTypeCreateInfo<'_> {} -unsafe impl ExtendsPhysicalDeviceExternalSemaphoreInfo for SemaphoreTypeCreateInfo<'_> {} +unsafe impl<'a> Extends> for SemaphoreTypeCreateInfo<'a> {} +unsafe impl<'a> Extends> for SemaphoreTypeCreateInfo<'a> {} impl<'a> SemaphoreTypeCreateInfo<'a> { #[inline] pub fn semaphore_type(mut self, semaphore_type: SemaphoreType) -> Self { @@ -22600,8 +21772,8 @@ impl ::core::default::Default for TimelineSemaphoreSubmitInfo<'_> { unsafe impl<'a> TaggedStructure for TimelineSemaphoreSubmitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::TIMELINE_SEMAPHORE_SUBMIT_INFO; } -unsafe impl ExtendsSubmitInfo for TimelineSemaphoreSubmitInfo<'_> {} -unsafe impl ExtendsBindSparseInfo for TimelineSemaphoreSubmitInfo<'_> {} +unsafe impl<'a> Extends> for TimelineSemaphoreSubmitInfo<'a> {} +unsafe impl<'a> Extends> for TimelineSemaphoreSubmitInfo<'a> {} impl<'a> TimelineSemaphoreSubmitInfo<'a> { #[inline] pub fn wait_semaphore_values(mut self, wait_semaphore_values: &'a [u64]) -> Self { @@ -22760,8 +21932,8 @@ unsafe impl<'a> TaggedStructure for PipelineVertexInputDivisorStateCreateInfoKHR const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR; } -unsafe impl ExtendsPipelineVertexInputStateCreateInfo - for PipelineVertexInputDivisorStateCreateInfoKHR<'_> +unsafe impl<'a> Extends> + for PipelineVertexInputDivisorStateCreateInfoKHR<'a> { } impl<'a> PipelineVertexInputDivisorStateCreateInfoKHR<'a> { @@ -22803,8 +21975,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceVertexAttributeDivisorProperti const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceVertexAttributeDivisorPropertiesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceVertexAttributeDivisorPropertiesEXT<'a> { } impl<'a> PhysicalDeviceVertexAttributeDivisorPropertiesEXT<'a> { @@ -22844,8 +22016,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceVertexAttributeDivisorProperti const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceVertexAttributeDivisorPropertiesKHR<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceVertexAttributeDivisorPropertiesKHR<'a> { } impl<'a> PhysicalDeviceVertexAttributeDivisorPropertiesKHR<'a> { @@ -22897,7 +22069,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePCIBusInfoPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePCIBusInfoPropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDevicePCIBusInfoPropertiesEXT<'a> +{ +} impl<'a> PhysicalDevicePCIBusInfoPropertiesEXT<'a> { #[inline] pub fn pci_domain(mut self, pci_domain: u32) -> Self { @@ -22948,7 +22123,7 @@ unsafe impl<'a> TaggedStructure for ImportAndroidHardwareBufferInfoANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID; } -unsafe impl ExtendsMemoryAllocateInfo for ImportAndroidHardwareBufferInfoANDROID<'_> {} +unsafe impl<'a> Extends> for ImportAndroidHardwareBufferInfoANDROID<'a> {} impl<'a> ImportAndroidHardwareBufferInfoANDROID<'a> { #[inline] pub fn buffer(mut self, buffer: *mut AHardwareBuffer) -> Self { @@ -22983,7 +22158,7 @@ impl ::core::default::Default for AndroidHardwareBufferUsageANDROID<'_> { unsafe impl<'a> TaggedStructure for AndroidHardwareBufferUsageANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_USAGE_ANDROID; } -unsafe impl ExtendsImageFormatProperties2 for AndroidHardwareBufferUsageANDROID<'_> {} +unsafe impl<'a> Extends> for AndroidHardwareBufferUsageANDROID<'a> {} impl<'a> AndroidHardwareBufferUsageANDROID<'a> { #[inline] pub fn android_hardware_buffer_usage(mut self, android_hardware_buffer_usage: u64) -> Self { @@ -23020,7 +22195,7 @@ impl ::core::default::Default for AndroidHardwareBufferPropertiesANDROID<'_> { unsafe impl<'a> TaggedStructure for AndroidHardwareBufferPropertiesANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID; } -pub unsafe trait ExtendsAndroidHardwareBufferPropertiesANDROID {} +unsafe impl<'a> BaseTaggedStructure for AndroidHardwareBufferPropertiesANDROID<'_> {} impl<'a> AndroidHardwareBufferPropertiesANDROID<'a> { #[inline] pub fn allocation_size(mut self, allocation_size: DeviceSize) -> Self { @@ -23032,23 +22207,6 @@ impl<'a> AndroidHardwareBufferPropertiesANDROID<'a> { self.memory_type_bits = memory_type_bits; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -23127,8 +22285,8 @@ unsafe impl<'a> TaggedStructure for AndroidHardwareBufferFormatPropertiesANDROID const STRUCTURE_TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID; } -unsafe impl ExtendsAndroidHardwareBufferPropertiesANDROID - for AndroidHardwareBufferFormatPropertiesANDROID<'_> +unsafe impl<'a> Extends> + for AndroidHardwareBufferFormatPropertiesANDROID<'a> { } impl<'a> AndroidHardwareBufferFormatPropertiesANDROID<'a> { @@ -23207,8 +22365,8 @@ unsafe impl<'a> TaggedStructure for CommandBufferInheritanceConditionalRendering const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT; } -unsafe impl ExtendsCommandBufferInheritanceInfo - for CommandBufferInheritanceConditionalRenderingInfoEXT<'_> +unsafe impl<'a> Extends> + for CommandBufferInheritanceConditionalRenderingInfoEXT<'a> { } impl<'a> CommandBufferInheritanceConditionalRenderingInfoEXT<'a> { @@ -23245,11 +22403,11 @@ impl ::core::default::Default for ExternalFormatANDROID<'_> { unsafe impl<'a> TaggedStructure for ExternalFormatANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_FORMAT_ANDROID; } -unsafe impl ExtendsImageCreateInfo for ExternalFormatANDROID<'_> {} -unsafe impl ExtendsSamplerYcbcrConversionCreateInfo for ExternalFormatANDROID<'_> {} -unsafe impl ExtendsAttachmentDescription2 for ExternalFormatANDROID<'_> {} -unsafe impl ExtendsGraphicsPipelineCreateInfo for ExternalFormatANDROID<'_> {} -unsafe impl ExtendsCommandBufferInheritanceInfo for ExternalFormatANDROID<'_> {} +unsafe impl<'a> Extends> for ExternalFormatANDROID<'a> {} +unsafe impl<'a> Extends> for ExternalFormatANDROID<'a> {} +unsafe impl<'a> Extends> for ExternalFormatANDROID<'a> {} +unsafe impl<'a> Extends> for ExternalFormatANDROID<'a> {} +unsafe impl<'a> Extends> for ExternalFormatANDROID<'a> {} impl<'a> ExternalFormatANDROID<'a> { #[inline] pub fn external_format(mut self, external_format: u64) -> Self { @@ -23288,8 +22446,8 @@ impl ::core::default::Default for PhysicalDevice8BitStorageFeatures<'_> { unsafe impl<'a> TaggedStructure for PhysicalDevice8BitStorageFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevice8BitStorageFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevice8BitStorageFeatures<'_> {} +unsafe impl<'a> Extends> for PhysicalDevice8BitStorageFeatures<'a> {} +unsafe impl<'a> Extends> for PhysicalDevice8BitStorageFeatures<'a> {} impl<'a> PhysicalDevice8BitStorageFeatures<'a> { #[inline] pub fn storage_buffer8_bit_access(mut self, storage_buffer8_bit_access: bool) -> Self { @@ -23340,8 +22498,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceConditionalRenderingFeaturesEX const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceConditionalRenderingFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceConditionalRenderingFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceConditionalRenderingFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceConditionalRenderingFeaturesEXT<'a> +{ +} impl<'a> PhysicalDeviceConditionalRenderingFeaturesEXT<'a> { #[inline] pub fn conditional_rendering(mut self, conditional_rendering: bool) -> Self { @@ -23389,8 +22553,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkanMemoryModelFeatures<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkanMemoryModelFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkanMemoryModelFeatures<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceVulkanMemoryModelFeatures<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceVulkanMemoryModelFeatures<'a> {} impl<'a> PhysicalDeviceVulkanMemoryModelFeatures<'a> { #[inline] pub fn vulkan_memory_model(mut self, vulkan_memory_model: bool) -> Self { @@ -23445,8 +22612,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderAtomicInt64Features<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderAtomicInt64Features<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAtomicInt64Features<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderAtomicInt64Features<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceShaderAtomicInt64Features<'a> {} impl<'a> PhysicalDeviceShaderAtomicInt64Features<'a> { #[inline] pub fn shader_buffer_int64_atomics(mut self, shader_buffer_int64_atomics: bool) -> Self { @@ -23509,8 +22679,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderAtomicFloatFeaturesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderAtomicFloatFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAtomicFloatFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderAtomicFloatFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceShaderAtomicFloatFeaturesEXT<'a> {} impl<'a> PhysicalDeviceShaderAtomicFloatFeaturesEXT<'a> { #[inline] pub fn shader_buffer_float32_atomics(mut self, shader_buffer_float32_atomics: bool) -> Self { @@ -23641,8 +22814,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderAtomicFloat2FeaturesEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'a> {} impl<'a> PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'a> { #[inline] pub fn shader_buffer_float16_atomics(mut self, shader_buffer_float16_atomics: bool) -> Self { @@ -23765,8 +22941,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceVertexAttributeDivisorFeatures const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'a> +{ +} impl<'a> PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'a> { #[inline] pub fn vertex_attribute_instance_rate_divisor( @@ -23813,7 +22995,7 @@ impl ::core::default::Default for QueueFamilyCheckpointPropertiesNV<'_> { unsafe impl<'a> TaggedStructure for QueueFamilyCheckpointPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV; } -unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyCheckpointPropertiesNV<'_> {} +unsafe impl<'a> Extends> for QueueFamilyCheckpointPropertiesNV<'a> {} impl<'a> QueueFamilyCheckpointPropertiesNV<'a> { #[inline] pub fn checkpoint_execution_stage_mask( @@ -23899,7 +23081,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthStencilResolveProperties< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceDepthStencilResolveProperties<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceDepthStencilResolveProperties<'a> +{ +} impl<'a> PhysicalDeviceDepthStencilResolveProperties<'a> { #[inline] pub fn supported_depth_resolve_modes( @@ -23959,7 +23144,7 @@ impl ::core::default::Default for SubpassDescriptionDepthStencilResolve<'_> { unsafe impl<'a> TaggedStructure for SubpassDescriptionDepthStencilResolve<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE; } -unsafe impl ExtendsSubpassDescription2 for SubpassDescriptionDepthStencilResolve<'_> {} +unsafe impl<'a> Extends> for SubpassDescriptionDepthStencilResolve<'a> {} impl<'a> SubpassDescriptionDepthStencilResolve<'a> { #[inline] pub fn depth_resolve_mode(mut self, depth_resolve_mode: ResolveModeFlags) -> Self { @@ -24007,7 +23192,7 @@ impl ::core::default::Default for ImageViewASTCDecodeModeEXT<'_> { unsafe impl<'a> TaggedStructure for ImageViewASTCDecodeModeEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_ASTC_DECODE_MODE_EXT; } -unsafe impl ExtendsImageViewCreateInfo for ImageViewASTCDecodeModeEXT<'_> {} +unsafe impl<'a> Extends> for ImageViewASTCDecodeModeEXT<'a> {} impl<'a> ImageViewASTCDecodeModeEXT<'a> { #[inline] pub fn decode_mode(mut self, decode_mode: Format) -> Self { @@ -24042,8 +23227,8 @@ impl ::core::default::Default for PhysicalDeviceASTCDecodeFeaturesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceASTCDecodeFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceASTCDecodeFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceASTCDecodeFeaturesEXT<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceASTCDecodeFeaturesEXT<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceASTCDecodeFeaturesEXT<'a> {} impl<'a> PhysicalDeviceASTCDecodeFeaturesEXT<'a> { #[inline] pub fn decode_mode_shared_exponent(mut self, decode_mode_shared_exponent: bool) -> Self { @@ -24081,8 +23266,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceTransformFeedbackFeaturesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTransformFeedbackFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTransformFeedbackFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceTransformFeedbackFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceTransformFeedbackFeaturesEXT<'a> {} impl<'a> PhysicalDeviceTransformFeedbackFeaturesEXT<'a> { #[inline] pub fn transform_feedback(mut self, transform_feedback: bool) -> Self { @@ -24141,7 +23329,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceTransformFeedbackPropertiesEXT const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceTransformFeedbackPropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceTransformFeedbackPropertiesEXT<'a> +{ +} impl<'a> PhysicalDeviceTransformFeedbackPropertiesEXT<'a> { #[inline] pub fn max_transform_feedback_streams(mut self, max_transform_feedback_streams: u32) -> Self { @@ -24244,8 +23435,8 @@ unsafe impl<'a> TaggedStructure for PipelineRasterizationStateStreamCreateInfoEX const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineRasterizationStateCreateInfo - for PipelineRasterizationStateStreamCreateInfoEXT<'_> +unsafe impl<'a> Extends> + for PipelineRasterizationStateStreamCreateInfoEXT<'a> { } impl<'a> PipelineRasterizationStateStreamCreateInfoEXT<'a> { @@ -24288,11 +23479,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRepresentativeFragmentTestFeat const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceRepresentativeFragmentTestFeaturesNV<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceRepresentativeFragmentTestFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceRepresentativeFragmentTestFeaturesNV<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRepresentativeFragmentTestFeaturesNV<'_> {} impl<'a> PhysicalDeviceRepresentativeFragmentTestFeaturesNV<'a> { #[inline] pub fn representative_fragment_test(mut self, representative_fragment_test: bool) -> Self { @@ -24328,8 +23522,8 @@ unsafe impl<'a> TaggedStructure for PipelineRepresentativeFragmentTestStateCreat const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsGraphicsPipelineCreateInfo - for PipelineRepresentativeFragmentTestStateCreateInfoNV<'_> +unsafe impl<'a> Extends> + for PipelineRepresentativeFragmentTestStateCreateInfoNV<'a> { } impl<'a> PipelineRepresentativeFragmentTestStateCreateInfoNV<'a> { @@ -24370,8 +23564,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExclusiveScissorFeaturesNV<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExclusiveScissorFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExclusiveScissorFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceExclusiveScissorFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceExclusiveScissorFeaturesNV<'a> {} impl<'a> PhysicalDeviceExclusiveScissorFeaturesNV<'a> { #[inline] pub fn exclusive_scissor(mut self, exclusive_scissor: bool) -> Self { @@ -24409,8 +23606,8 @@ unsafe impl<'a> TaggedStructure for PipelineViewportExclusiveScissorStateCreateI const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsPipelineViewportStateCreateInfo - for PipelineViewportExclusiveScissorStateCreateInfoNV<'_> +unsafe impl<'a> Extends> + for PipelineViewportExclusiveScissorStateCreateInfoNV<'a> { } impl<'a> PipelineViewportExclusiveScissorStateCreateInfoNV<'a> { @@ -24449,8 +23646,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCornerSampledImageFeaturesNV<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCornerSampledImageFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCornerSampledImageFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceCornerSampledImageFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceCornerSampledImageFeaturesNV<'a> {} impl<'a> PhysicalDeviceCornerSampledImageFeaturesNV<'a> { #[inline] pub fn corner_sampled_image(mut self, corner_sampled_image: bool) -> Self { @@ -24488,11 +23688,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceComputeShaderDerivativesFeatur const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'_> {} impl<'a> PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> { #[inline] pub fn compute_derivative_group_quads(mut self, compute_derivative_group_quads: bool) -> Self { @@ -24536,8 +23739,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceComputeShaderDerivativesProper const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'a> { } impl<'a> PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'a> { @@ -24578,8 +23781,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderImageFootprintFeaturesNV const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderImageFootprintFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderImageFootprintFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderImageFootprintFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceShaderImageFootprintFeaturesNV<'a> {} impl<'a> PhysicalDeviceShaderImageFootprintFeaturesNV<'a> { #[inline] pub fn image_footprint(mut self, image_footprint: bool) -> Self { @@ -24615,12 +23821,12 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDedicatedAllocationImageAliasi const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV<'a> { } -unsafe impl ExtendsDeviceCreateInfo - for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV<'a> { } impl<'a> PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV<'a> { @@ -24661,8 +23867,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCopyMemoryIndirectFeaturesNV<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCopyMemoryIndirectFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCopyMemoryIndirectFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceCopyMemoryIndirectFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceCopyMemoryIndirectFeaturesNV<'a> {} impl<'a> PhysicalDeviceCopyMemoryIndirectFeaturesNV<'a> { #[inline] pub fn indirect_copy(mut self, indirect_copy: bool) -> Self { @@ -24698,7 +23907,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCopyMemoryIndirectPropertiesNV const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceCopyMemoryIndirectPropertiesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceCopyMemoryIndirectPropertiesNV<'a> +{ +} impl<'a> PhysicalDeviceCopyMemoryIndirectPropertiesNV<'a> { #[inline] pub fn supported_queues(mut self, supported_queues: QueueFlags) -> Self { @@ -24734,8 +23946,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMemoryDecompressionFeaturesNV< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMemoryDecompressionFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMemoryDecompressionFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceMemoryDecompressionFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceMemoryDecompressionFeaturesNV<'a> {} impl<'a> PhysicalDeviceMemoryDecompressionFeaturesNV<'a> { #[inline] pub fn memory_decompression(mut self, memory_decompression: bool) -> Self { @@ -24773,7 +23988,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMemoryDecompressionPropertiesN const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMemoryDecompressionPropertiesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceMemoryDecompressionPropertiesNV<'a> +{ +} impl<'a> PhysicalDeviceMemoryDecompressionPropertiesNV<'a> { #[inline] pub fn decompression_methods( @@ -24857,8 +24075,8 @@ unsafe impl<'a> TaggedStructure for PipelineViewportShadingRateImageStateCreateI const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsPipelineViewportStateCreateInfo - for PipelineViewportShadingRateImageStateCreateInfoNV<'_> +unsafe impl<'a> Extends> + for PipelineViewportShadingRateImageStateCreateInfoNV<'a> { } impl<'a> PipelineViewportShadingRateImageStateCreateInfoNV<'a> { @@ -24907,8 +24125,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShadingRateImageFeaturesNV<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShadingRateImageFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShadingRateImageFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShadingRateImageFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceShadingRateImageFeaturesNV<'a> {} impl<'a> PhysicalDeviceShadingRateImageFeaturesNV<'a> { #[inline] pub fn shading_rate_image(mut self, shading_rate_image: bool) -> Self { @@ -24956,7 +24177,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShadingRateImagePropertiesNV<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShadingRateImagePropertiesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShadingRateImagePropertiesNV<'a> +{ +} impl<'a> PhysicalDeviceShadingRateImagePropertiesNV<'a> { #[inline] pub fn shading_rate_texel_size(mut self, shading_rate_texel_size: Extent2D) -> Self { @@ -25002,8 +24226,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceInvocationMaskFeaturesHUAWEI<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceInvocationMaskFeaturesHUAWEI<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceInvocationMaskFeaturesHUAWEI<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceInvocationMaskFeaturesHUAWEI<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceInvocationMaskFeaturesHUAWEI<'a> {} impl<'a> PhysicalDeviceInvocationMaskFeaturesHUAWEI<'a> { #[inline] pub fn invocation_mask(mut self, invocation_mask: bool) -> Self { @@ -25114,8 +24341,8 @@ unsafe impl<'a> TaggedStructure for PipelineViewportCoarseSampleOrderStateCreate const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsPipelineViewportStateCreateInfo - for PipelineViewportCoarseSampleOrderStateCreateInfoNV<'_> +unsafe impl<'a> Extends> + for PipelineViewportCoarseSampleOrderStateCreateInfoNV<'a> { } impl<'a> PipelineViewportCoarseSampleOrderStateCreateInfoNV<'a> { @@ -25163,8 +24390,8 @@ impl ::core::default::Default for PhysicalDeviceMeshShaderFeaturesNV<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMeshShaderFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMeshShaderFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMeshShaderFeaturesNV<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceMeshShaderFeaturesNV<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceMeshShaderFeaturesNV<'a> {} impl<'a> PhysicalDeviceMeshShaderFeaturesNV<'a> { #[inline] pub fn task_shader(mut self, task_shader: bool) -> Self { @@ -25228,7 +24455,10 @@ impl ::core::default::Default for PhysicalDeviceMeshShaderPropertiesNV<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMeshShaderPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMeshShaderPropertiesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceMeshShaderPropertiesNV<'a> +{ +} impl<'a> PhysicalDeviceMeshShaderPropertiesNV<'a> { #[inline] pub fn max_draw_mesh_tasks_count(mut self, max_draw_mesh_tasks_count: u32) -> Self { @@ -25358,8 +24588,8 @@ impl ::core::default::Default for PhysicalDeviceMeshShaderFeaturesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMeshShaderFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMeshShaderFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMeshShaderFeaturesEXT<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceMeshShaderFeaturesEXT<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceMeshShaderFeaturesEXT<'a> {} impl<'a> PhysicalDeviceMeshShaderFeaturesEXT<'a> { #[inline] pub fn task_shader(mut self, task_shader: bool) -> Self { @@ -25472,7 +24702,10 @@ impl ::core::default::Default for PhysicalDeviceMeshShaderPropertiesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMeshShaderPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMeshShaderPropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceMeshShaderPropertiesEXT<'a> +{ +} impl<'a> PhysicalDeviceMeshShaderPropertiesEXT<'a> { #[inline] pub fn max_task_work_group_total_count(mut self, max_task_work_group_total_count: u32) -> Self { @@ -25850,7 +25083,7 @@ impl ::core::default::Default for RayTracingPipelineCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for RayTracingPipelineCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RAY_TRACING_PIPELINE_CREATE_INFO_NV; } -pub unsafe trait ExtendsRayTracingPipelineCreateInfoNV {} +unsafe impl<'a> BaseTaggedStructure for RayTracingPipelineCreateInfoNV<'_> {} impl<'a> RayTracingPipelineCreateInfoNV<'a> { #[inline] pub fn flags(mut self, flags: PipelineCreateFlags) -> Self { @@ -25889,23 +25122,6 @@ impl<'a> RayTracingPipelineCreateInfoNV<'a> { self.base_pipeline_index = base_pipeline_index; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -25956,7 +25172,7 @@ impl ::core::default::Default for RayTracingPipelineCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for RayTracingPipelineCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RAY_TRACING_PIPELINE_CREATE_INFO_KHR; } -pub unsafe trait ExtendsRayTracingPipelineCreateInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for RayTracingPipelineCreateInfoKHR<'_> {} impl<'a> RayTracingPipelineCreateInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: PipelineCreateFlags) -> Self { @@ -26016,23 +25232,6 @@ impl<'a> RayTracingPipelineCreateInfoKHR<'a> { self.base_pipeline_index = base_pipeline_index; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -26350,7 +25549,7 @@ impl ::core::default::Default for AccelerationStructureCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for AccelerationStructureCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_NV; } -pub unsafe trait ExtendsAccelerationStructureCreateInfoNV {} +unsafe impl<'a> BaseTaggedStructure for AccelerationStructureCreateInfoNV<'_> {} impl<'a> AccelerationStructureCreateInfoNV<'a> { #[inline] pub fn compacted_size(mut self, compacted_size: DeviceSize) -> Self { @@ -26362,23 +25561,6 @@ impl<'a> AccelerationStructureCreateInfoNV<'a> { self.info = info; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -26471,7 +25653,7 @@ unsafe impl<'a> TaggedStructure for WriteDescriptorSetAccelerationStructureKHR<' const STRUCTURE_TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR; } -unsafe impl ExtendsWriteDescriptorSet for WriteDescriptorSetAccelerationStructureKHR<'_> {} +unsafe impl<'a> Extends> for WriteDescriptorSetAccelerationStructureKHR<'a> {} impl<'a> WriteDescriptorSetAccelerationStructureKHR<'a> { #[inline] pub fn acceleration_structures( @@ -26513,7 +25695,7 @@ unsafe impl<'a> TaggedStructure for WriteDescriptorSetAccelerationStructureNV<'a const STRUCTURE_TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV; } -unsafe impl ExtendsWriteDescriptorSet for WriteDescriptorSetAccelerationStructureNV<'_> {} +unsafe impl<'a> Extends> for WriteDescriptorSetAccelerationStructureNV<'a> {} impl<'a> WriteDescriptorSetAccelerationStructureNV<'a> { #[inline] pub fn acceleration_structures( @@ -26606,8 +25788,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceAccelerationStructureFeaturesK const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceAccelerationStructureFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceAccelerationStructureFeaturesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceAccelerationStructureFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceAccelerationStructureFeaturesKHR<'a> +{ +} impl<'a> PhysicalDeviceAccelerationStructureFeaturesKHR<'a> { #[inline] pub fn acceleration_structure(mut self, acceleration_structure: bool) -> Self { @@ -26684,8 +25872,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingPipelineFeaturesKHR< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRayTracingPipelineFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingPipelineFeaturesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceRayTracingPipelineFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceRayTracingPipelineFeaturesKHR<'a> {} impl<'a> PhysicalDeviceRayTracingPipelineFeaturesKHR<'a> { #[inline] pub fn ray_tracing_pipeline(mut self, ray_tracing_pipeline: bool) -> Self { @@ -26755,8 +25946,8 @@ impl ::core::default::Default for PhysicalDeviceRayQueryFeaturesKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceRayQueryFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRayQueryFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayQueryFeaturesKHR<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceRayQueryFeaturesKHR<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceRayQueryFeaturesKHR<'a> {} impl<'a> PhysicalDeviceRayQueryFeaturesKHR<'a> { #[inline] pub fn ray_query(mut self, ray_query: bool) -> Self { @@ -26806,8 +25997,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceAccelerationStructurePropertie const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceAccelerationStructurePropertiesKHR<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceAccelerationStructurePropertiesKHR<'a> { } impl<'a> PhysicalDeviceAccelerationStructurePropertiesKHR<'a> { @@ -26914,7 +26105,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingPipelinePropertiesKH const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceRayTracingPipelinePropertiesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceRayTracingPipelinePropertiesKHR<'a> +{ +} impl<'a> PhysicalDeviceRayTracingPipelinePropertiesKHR<'a> { #[inline] pub fn shader_group_handle_size(mut self, shader_group_handle_size: u32) -> Self { @@ -27004,7 +26198,10 @@ impl ::core::default::Default for PhysicalDeviceRayTracingPropertiesNV<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceRayTracingPropertiesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceRayTracingPropertiesNV<'a> +{ +} impl<'a> PhysicalDeviceRayTracingPropertiesNV<'a> { #[inline] pub fn shader_group_handle_size(mut self, shader_group_handle_size: u32) -> Self { @@ -27258,8 +26455,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingMaintenance1Features const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRayTracingMaintenance1FeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingMaintenance1FeaturesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceRayTracingMaintenance1FeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceRayTracingMaintenance1FeaturesKHR<'a> +{ +} impl<'a> PhysicalDeviceRayTracingMaintenance1FeaturesKHR<'a> { #[inline] pub fn ray_tracing_maintenance1(mut self, ray_tracing_maintenance1: bool) -> Self { @@ -27305,7 +26508,7 @@ impl ::core::default::Default for DrmFormatModifierPropertiesListEXT<'_> { unsafe impl<'a> TaggedStructure for DrmFormatModifierPropertiesListEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT; } -unsafe impl ExtendsFormatProperties2 for DrmFormatModifierPropertiesListEXT<'_> {} +unsafe impl<'a> Extends> for DrmFormatModifierPropertiesListEXT<'a> {} impl<'a> DrmFormatModifierPropertiesListEXT<'a> { #[inline] pub fn drm_format_modifier_properties( @@ -27381,8 +26584,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageDrmFormatModifierInfoEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT; } -unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 - for PhysicalDeviceImageDrmFormatModifierInfoEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceImageDrmFormatModifierInfoEXT<'a> { } impl<'a> PhysicalDeviceImageDrmFormatModifierInfoEXT<'a> { @@ -27433,7 +26636,7 @@ unsafe impl<'a> TaggedStructure for ImageDrmFormatModifierListCreateInfoEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT; } -unsafe impl ExtendsImageCreateInfo for ImageDrmFormatModifierListCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> for ImageDrmFormatModifierListCreateInfoEXT<'a> {} impl<'a> ImageDrmFormatModifierListCreateInfoEXT<'a> { #[inline] pub fn drm_format_modifiers(mut self, drm_format_modifiers: &'a [u64]) -> Self { @@ -27474,7 +26677,7 @@ unsafe impl<'a> TaggedStructure for ImageDrmFormatModifierExplicitCreateInfoEXT< const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT; } -unsafe impl ExtendsImageCreateInfo for ImageDrmFormatModifierExplicitCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> for ImageDrmFormatModifierExplicitCreateInfoEXT<'a> {} impl<'a> ImageDrmFormatModifierExplicitCreateInfoEXT<'a> { #[inline] pub fn drm_format_modifier(mut self, drm_format_modifier: u64) -> Self { @@ -27549,8 +26752,8 @@ impl ::core::default::Default for ImageStencilUsageCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ImageStencilUsageCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_STENCIL_USAGE_CREATE_INFO; } -unsafe impl ExtendsImageCreateInfo for ImageStencilUsageCreateInfo<'_> {} -unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for ImageStencilUsageCreateInfo<'_> {} +unsafe impl<'a> Extends> for ImageStencilUsageCreateInfo<'a> {} +unsafe impl<'a> Extends> for ImageStencilUsageCreateInfo<'a> {} impl<'a> ImageStencilUsageCreateInfo<'a> { #[inline] pub fn stencil_usage(mut self, stencil_usage: ImageUsageFlags) -> Self { @@ -27586,7 +26789,7 @@ unsafe impl<'a> TaggedStructure for DeviceMemoryOverallocationCreateInfoAMD<'a> const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD; } -unsafe impl ExtendsDeviceCreateInfo for DeviceMemoryOverallocationCreateInfoAMD<'_> {} +unsafe impl<'a> Extends> for DeviceMemoryOverallocationCreateInfoAMD<'a> {} impl<'a> DeviceMemoryOverallocationCreateInfoAMD<'a> { #[inline] pub fn overallocation_behavior( @@ -27629,8 +26832,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentDensityMapFeaturesEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFragmentDensityMapFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentDensityMapFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceFragmentDensityMapFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceFragmentDensityMapFeaturesEXT<'a> {} impl<'a> PhysicalDeviceFragmentDensityMapFeaturesEXT<'a> { #[inline] pub fn fragment_density_map(mut self, fragment_density_map: bool) -> Self { @@ -27680,8 +26886,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentDensityMap2FeaturesEXT const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFragmentDensityMap2FeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentDensityMap2FeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceFragmentDensityMap2FeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceFragmentDensityMap2FeaturesEXT<'a> {} impl<'a> PhysicalDeviceFragmentDensityMap2FeaturesEXT<'a> { #[inline] pub fn fragment_density_map_deferred(mut self, fragment_density_map_deferred: bool) -> Self { @@ -27717,11 +26926,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentDensityMapOffsetFeatur const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'_> {} impl<'a> PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'a> { #[inline] pub fn fragment_density_map_offset(mut self, fragment_density_map_offset: bool) -> Self { @@ -27761,7 +26973,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentDensityMapPropertiesEX const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceFragmentDensityMapPropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceFragmentDensityMapPropertiesEXT<'a> +{ +} impl<'a> PhysicalDeviceFragmentDensityMapPropertiesEXT<'a> { #[inline] pub fn min_fragment_density_texel_size( @@ -27819,8 +27034,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentDensityMap2PropertiesE const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceFragmentDensityMap2PropertiesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceFragmentDensityMap2PropertiesEXT<'a> { } impl<'a> PhysicalDeviceFragmentDensityMap2PropertiesEXT<'a> { @@ -27880,8 +27095,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentDensityMapOffsetProper const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM<'a> { } impl<'a> PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM<'a> { @@ -27922,8 +27137,14 @@ unsafe impl<'a> TaggedStructure for RenderPassFragmentDensityMapCreateInfoEXT<'a const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT; } -unsafe impl ExtendsRenderPassCreateInfo for RenderPassFragmentDensityMapCreateInfoEXT<'_> {} -unsafe impl ExtendsRenderPassCreateInfo2 for RenderPassFragmentDensityMapCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> + for RenderPassFragmentDensityMapCreateInfoEXT<'a> +{ +} +unsafe impl<'a> Extends> + for RenderPassFragmentDensityMapCreateInfoEXT<'a> +{ +} impl<'a> RenderPassFragmentDensityMapCreateInfoEXT<'a> { #[inline] pub fn fragment_density_map_attachment( @@ -27964,7 +27185,7 @@ unsafe impl<'a> TaggedStructure for SubpassFragmentDensityMapOffsetEndInfoQCOM<' const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM; } -unsafe impl ExtendsSubpassEndInfo for SubpassFragmentDensityMapOffsetEndInfoQCOM<'_> {} +unsafe impl<'a> Extends> for SubpassFragmentDensityMapOffsetEndInfoQCOM<'a> {} impl<'a> SubpassFragmentDensityMapOffsetEndInfoQCOM<'a> { #[inline] pub fn fragment_density_offsets(mut self, fragment_density_offsets: &'a [Offset2D]) -> Self { @@ -28001,8 +27222,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceScalarBlockLayoutFeatures<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceScalarBlockLayoutFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceScalarBlockLayoutFeatures<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceScalarBlockLayoutFeatures<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceScalarBlockLayoutFeatures<'a> {} impl<'a> PhysicalDeviceScalarBlockLayoutFeatures<'a> { #[inline] pub fn scalar_block_layout(mut self, scalar_block_layout: bool) -> Self { @@ -28037,7 +27261,7 @@ impl ::core::default::Default for SurfaceProtectedCapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for SurfaceProtectedCapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_PROTECTED_CAPABILITIES_KHR; } -unsafe impl ExtendsSurfaceCapabilities2KHR for SurfaceProtectedCapabilitiesKHR<'_> {} +unsafe impl<'a> Extends> for SurfaceProtectedCapabilitiesKHR<'a> {} impl<'a> SurfaceProtectedCapabilitiesKHR<'a> { #[inline] pub fn supports_protected(mut self, supports_protected: bool) -> Self { @@ -28073,11 +27297,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceUniformBufferStandardLayoutFea const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceUniformBufferStandardLayoutFeatures<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceUniformBufferStandardLayoutFeatures<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceUniformBufferStandardLayoutFeatures<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceUniformBufferStandardLayoutFeatures<'_> {} impl<'a> PhysicalDeviceUniformBufferStandardLayoutFeatures<'a> { #[inline] pub fn uniform_buffer_standard_layout(mut self, uniform_buffer_standard_layout: bool) -> Self { @@ -28113,8 +27340,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthClipEnableFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDepthClipEnableFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthClipEnableFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceDepthClipEnableFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceDepthClipEnableFeaturesEXT<'a> {} impl<'a> PhysicalDeviceDepthClipEnableFeaturesEXT<'a> { #[inline] pub fn depth_clip_enable(mut self, depth_clip_enable: bool) -> Self { @@ -28152,8 +27382,8 @@ unsafe impl<'a> TaggedStructure for PipelineRasterizationDepthClipStateCreateInf const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineRasterizationStateCreateInfo - for PipelineRasterizationDepthClipStateCreateInfoEXT<'_> +unsafe impl<'a> Extends> + for PipelineRasterizationDepthClipStateCreateInfoEXT<'a> { } impl<'a> PipelineRasterizationDepthClipStateCreateInfoEXT<'a> { @@ -28198,7 +27428,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMemoryBudgetPropertiesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceMemoryProperties2 for PhysicalDeviceMemoryBudgetPropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceMemoryBudgetPropertiesEXT<'a> +{ +} impl<'a> PhysicalDeviceMemoryBudgetPropertiesEXT<'a> { #[inline] pub fn heap_budget(mut self, heap_budget: [DeviceSize; MAX_MEMORY_HEAPS]) -> Self { @@ -28239,8 +27472,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMemoryPriorityFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMemoryPriorityFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMemoryPriorityFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceMemoryPriorityFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceMemoryPriorityFeaturesEXT<'a> {} impl<'a> PhysicalDeviceMemoryPriorityFeaturesEXT<'a> { #[inline] pub fn memory_priority(mut self, memory_priority: bool) -> Self { @@ -28275,7 +27511,7 @@ impl ::core::default::Default for MemoryPriorityAllocateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for MemoryPriorityAllocateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_PRIORITY_ALLOCATE_INFO_EXT; } -unsafe impl ExtendsMemoryAllocateInfo for MemoryPriorityAllocateInfoEXT<'_> {} +unsafe impl<'a> Extends> for MemoryPriorityAllocateInfoEXT<'a> {} impl<'a> MemoryPriorityAllocateInfoEXT<'a> { #[inline] pub fn priority(mut self, priority: f32) -> Self { @@ -28311,11 +27547,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePageableDeviceLocalMemoryFeatu const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT<'_> {} impl<'a> PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT<'a> { #[inline] pub fn pageable_device_local_memory(mut self, pageable_device_local_memory: bool) -> Self { @@ -28355,8 +27594,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceBufferDeviceAddressFeatures<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceBufferDeviceAddressFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceBufferDeviceAddressFeatures<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceBufferDeviceAddressFeatures<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceBufferDeviceAddressFeatures<'a> {} impl<'a> PhysicalDeviceBufferDeviceAddressFeatures<'a> { #[inline] pub fn buffer_device_address(mut self, buffer_device_address: bool) -> Self { @@ -28412,8 +27654,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceBufferDeviceAddressFeaturesEXT const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceBufferDeviceAddressFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceBufferDeviceAddressFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceBufferDeviceAddressFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceBufferDeviceAddressFeaturesEXT<'a> {} impl<'a> PhysicalDeviceBufferDeviceAddressFeaturesEXT<'a> { #[inline] pub fn buffer_device_address(mut self, buffer_device_address: bool) -> Self { @@ -28498,7 +27743,7 @@ impl ::core::default::Default for BufferOpaqueCaptureAddressCreateInfo<'_> { unsafe impl<'a> TaggedStructure for BufferOpaqueCaptureAddressCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO; } -unsafe impl ExtendsBufferCreateInfo for BufferOpaqueCaptureAddressCreateInfo<'_> {} +unsafe impl<'a> Extends> for BufferOpaqueCaptureAddressCreateInfo<'a> {} impl<'a> BufferOpaqueCaptureAddressCreateInfo<'a> { #[inline] pub fn opaque_capture_address(mut self, opaque_capture_address: u64) -> Self { @@ -28533,7 +27778,7 @@ impl ::core::default::Default for BufferDeviceAddressCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for BufferDeviceAddressCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT; } -unsafe impl ExtendsBufferCreateInfo for BufferDeviceAddressCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> for BufferDeviceAddressCreateInfoEXT<'a> {} impl<'a> BufferDeviceAddressCreateInfoEXT<'a> { #[inline] pub fn device_address(mut self, device_address: DeviceAddress) -> Self { @@ -28569,8 +27814,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageViewImageFormatInfoEXT<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT; } -unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 - for PhysicalDeviceImageViewImageFormatInfoEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceImageViewImageFormatInfoEXT<'a> { } impl<'a> PhysicalDeviceImageViewImageFormatInfoEXT<'a> { @@ -28610,7 +27855,10 @@ unsafe impl<'a> TaggedStructure for FilterCubicImageViewImageFormatPropertiesEXT const STRUCTURE_TYPE: StructureType = StructureType::FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT; } -unsafe impl ExtendsImageFormatProperties2 for FilterCubicImageViewImageFormatPropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for FilterCubicImageViewImageFormatPropertiesEXT<'a> +{ +} impl<'a> FilterCubicImageViewImageFormatPropertiesEXT<'a> { #[inline] pub fn filter_cubic(mut self, filter_cubic: bool) -> Self { @@ -28651,8 +27899,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImagelessFramebufferFeatures<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImagelessFramebufferFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImagelessFramebufferFeatures<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceImagelessFramebufferFeatures<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceImagelessFramebufferFeatures<'a> {} impl<'a> PhysicalDeviceImagelessFramebufferFeatures<'a> { #[inline] pub fn imageless_framebuffer(mut self, imageless_framebuffer: bool) -> Self { @@ -28689,7 +27940,7 @@ impl ::core::default::Default for FramebufferAttachmentsCreateInfo<'_> { unsafe impl<'a> TaggedStructure for FramebufferAttachmentsCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FRAMEBUFFER_ATTACHMENTS_CREATE_INFO; } -unsafe impl ExtendsFramebufferCreateInfo for FramebufferAttachmentsCreateInfo<'_> {} +unsafe impl<'a> Extends> for FramebufferAttachmentsCreateInfo<'a> {} impl<'a> FramebufferAttachmentsCreateInfo<'a> { #[inline] pub fn attachment_image_infos( @@ -28802,7 +28053,7 @@ impl ::core::default::Default for RenderPassAttachmentBeginInfo<'_> { unsafe impl<'a> TaggedStructure for RenderPassAttachmentBeginInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_ATTACHMENT_BEGIN_INFO; } -unsafe impl ExtendsRenderPassBeginInfo for RenderPassAttachmentBeginInfo<'_> {} +unsafe impl<'a> Extends> for RenderPassAttachmentBeginInfo<'a> {} impl<'a> RenderPassAttachmentBeginInfo<'a> { #[inline] pub fn attachments(mut self, attachments: &'a [ImageView]) -> Self { @@ -28839,8 +28090,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceTextureCompressionASTCHDRFeatu const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTextureCompressionASTCHDRFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTextureCompressionASTCHDRFeatures<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceTextureCompressionASTCHDRFeatures<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceTextureCompressionASTCHDRFeatures<'a> +{ +} impl<'a> PhysicalDeviceTextureCompressionASTCHDRFeatures<'a> { #[inline] pub fn texture_compression_astc_hdr(mut self, texture_compression_astc_hdr: bool) -> Self { @@ -28878,8 +28135,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCooperativeMatrixFeaturesNV<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCooperativeMatrixFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCooperativeMatrixFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceCooperativeMatrixFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceCooperativeMatrixFeaturesNV<'a> {} impl<'a> PhysicalDeviceCooperativeMatrixFeaturesNV<'a> { #[inline] pub fn cooperative_matrix(mut self, cooperative_matrix: bool) -> Self { @@ -28924,7 +28184,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCooperativeMatrixPropertiesNV< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceCooperativeMatrixPropertiesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceCooperativeMatrixPropertiesNV<'a> +{ +} impl<'a> PhysicalDeviceCooperativeMatrixPropertiesNV<'a> { #[inline] pub fn cooperative_matrix_supported_stages( @@ -29046,8 +28309,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceYcbcrImageArraysFeaturesEXT<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceYcbcrImageArraysFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceYcbcrImageArraysFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceYcbcrImageArraysFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceYcbcrImageArraysFeaturesEXT<'a> {} impl<'a> PhysicalDeviceYcbcrImageArraysFeaturesEXT<'a> { #[inline] pub fn ycbcr_image_arrays(mut self, ycbcr_image_arrays: bool) -> Self { @@ -29171,7 +28437,7 @@ impl ::core::default::Default for PresentFrameTokenGGP<'_> { unsafe impl<'a> TaggedStructure for PresentFrameTokenGGP<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PRESENT_FRAME_TOKEN_GGP; } -unsafe impl ExtendsPresentInfoKHR for PresentFrameTokenGGP<'_> {} +unsafe impl<'a> Extends> for PresentFrameTokenGGP<'a> {} impl<'a> PresentFrameTokenGGP<'a> { #[inline] pub fn frame_token(mut self, frame_token: GgpFrameToken) -> Self { @@ -29231,11 +28497,20 @@ impl ::core::default::Default for PipelineCreationFeedbackCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineCreationFeedbackCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_CREATION_FEEDBACK_CREATE_INFO; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineCreationFeedbackCreateInfo<'_> {} -unsafe impl ExtendsComputePipelineCreateInfo for PipelineCreationFeedbackCreateInfo<'_> {} -unsafe impl ExtendsRayTracingPipelineCreateInfoNV for PipelineCreationFeedbackCreateInfo<'_> {} -unsafe impl ExtendsRayTracingPipelineCreateInfoKHR for PipelineCreationFeedbackCreateInfo<'_> {} -unsafe impl ExtendsExecutionGraphPipelineCreateInfoAMDX for PipelineCreationFeedbackCreateInfo<'_> {} +unsafe impl<'a> Extends> for PipelineCreationFeedbackCreateInfo<'a> {} +unsafe impl<'a> Extends> for PipelineCreationFeedbackCreateInfo<'a> {} +unsafe impl<'a> Extends> + for PipelineCreationFeedbackCreateInfo<'a> +{ +} +unsafe impl<'a> Extends> + for PipelineCreationFeedbackCreateInfo<'a> +{ +} +unsafe impl<'a> Extends> + for PipelineCreationFeedbackCreateInfo<'a> +{ +} impl<'a> PipelineCreationFeedbackCreateInfo<'a> { #[inline] pub fn pipeline_creation_feedback( @@ -29282,8 +28557,11 @@ impl ::core::default::Default for SurfaceFullScreenExclusiveInfoEXT<'_> { unsafe impl<'a> TaggedStructure for SurfaceFullScreenExclusiveInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT; } -unsafe impl ExtendsPhysicalDeviceSurfaceInfo2KHR for SurfaceFullScreenExclusiveInfoEXT<'_> {} -unsafe impl ExtendsSwapchainCreateInfoKHR for SurfaceFullScreenExclusiveInfoEXT<'_> {} +unsafe impl<'a> Extends> + for SurfaceFullScreenExclusiveInfoEXT<'a> +{ +} +unsafe impl<'a> Extends> for SurfaceFullScreenExclusiveInfoEXT<'a> {} impl<'a> SurfaceFullScreenExclusiveInfoEXT<'a> { #[inline] pub fn full_screen_exclusive(mut self, full_screen_exclusive: FullScreenExclusiveEXT) -> Self { @@ -29319,8 +28597,11 @@ unsafe impl<'a> TaggedStructure for SurfaceFullScreenExclusiveWin32InfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT; } -unsafe impl ExtendsPhysicalDeviceSurfaceInfo2KHR for SurfaceFullScreenExclusiveWin32InfoEXT<'_> {} -unsafe impl ExtendsSwapchainCreateInfoKHR for SurfaceFullScreenExclusiveWin32InfoEXT<'_> {} +unsafe impl<'a> Extends> + for SurfaceFullScreenExclusiveWin32InfoEXT<'a> +{ +} +unsafe impl<'a> Extends> for SurfaceFullScreenExclusiveWin32InfoEXT<'a> {} impl<'a> SurfaceFullScreenExclusiveWin32InfoEXT<'a> { #[inline] pub fn hmonitor(mut self, hmonitor: HMONITOR) -> Self { @@ -29356,7 +28637,10 @@ unsafe impl<'a> TaggedStructure for SurfaceCapabilitiesFullScreenExclusiveEXT<'a const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT; } -unsafe impl ExtendsSurfaceCapabilities2KHR for SurfaceCapabilitiesFullScreenExclusiveEXT<'_> {} +unsafe impl<'a> Extends> + for SurfaceCapabilitiesFullScreenExclusiveEXT<'a> +{ +} impl<'a> SurfaceCapabilitiesFullScreenExclusiveEXT<'a> { #[inline] pub fn full_screen_exclusive_supported( @@ -29395,8 +28679,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePresentBarrierFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentBarrierFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentBarrierFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDevicePresentBarrierFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDevicePresentBarrierFeaturesNV<'a> {} impl<'a> PhysicalDevicePresentBarrierFeaturesNV<'a> { #[inline] pub fn present_barrier(mut self, present_barrier: bool) -> Self { @@ -29431,7 +28718,7 @@ impl ::core::default::Default for SurfaceCapabilitiesPresentBarrierNV<'_> { unsafe impl<'a> TaggedStructure for SurfaceCapabilitiesPresentBarrierNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_PRESENT_BARRIER_NV; } -unsafe impl ExtendsSurfaceCapabilities2KHR for SurfaceCapabilitiesPresentBarrierNV<'_> {} +unsafe impl<'a> Extends> for SurfaceCapabilitiesPresentBarrierNV<'a> {} impl<'a> SurfaceCapabilitiesPresentBarrierNV<'a> { #[inline] pub fn present_barrier_supported(mut self, present_barrier_supported: bool) -> Self { @@ -29466,7 +28753,7 @@ impl ::core::default::Default for SwapchainPresentBarrierCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for SwapchainPresentBarrierCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV; } -unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainPresentBarrierCreateInfoNV<'_> {} +unsafe impl<'a> Extends> for SwapchainPresentBarrierCreateInfoNV<'a> {} impl<'a> SwapchainPresentBarrierCreateInfoNV<'a> { #[inline] pub fn present_barrier_enable(mut self, present_barrier_enable: bool) -> Self { @@ -29504,8 +28791,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePerformanceQueryFeaturesKHR<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePerformanceQueryFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePerformanceQueryFeaturesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDevicePerformanceQueryFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDevicePerformanceQueryFeaturesKHR<'a> {} impl<'a> PhysicalDevicePerformanceQueryFeaturesKHR<'a> { #[inline] pub fn performance_counter_query_pools( @@ -29553,7 +28843,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePerformanceQueryPropertiesKHR< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePerformanceQueryPropertiesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDevicePerformanceQueryPropertiesKHR<'a> +{ +} impl<'a> PhysicalDevicePerformanceQueryPropertiesKHR<'a> { #[inline] pub fn allow_command_buffer_query_copies( @@ -29732,7 +29025,7 @@ impl ::core::default::Default for QueryPoolPerformanceCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for QueryPoolPerformanceCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR; } -unsafe impl ExtendsQueryPoolCreateInfo for QueryPoolPerformanceCreateInfoKHR<'_> {} +unsafe impl<'a> Extends> for QueryPoolPerformanceCreateInfoKHR<'a> {} impl<'a> QueryPoolPerformanceCreateInfoKHR<'a> { #[inline] pub fn queue_family_index(mut self, queue_family_index: u32) -> Self { @@ -29831,8 +29124,8 @@ impl ::core::default::Default for PerformanceQuerySubmitInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PerformanceQuerySubmitInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PERFORMANCE_QUERY_SUBMIT_INFO_KHR; } -unsafe impl ExtendsSubmitInfo for PerformanceQuerySubmitInfoKHR<'_> {} -unsafe impl ExtendsSubmitInfo2 for PerformanceQuerySubmitInfoKHR<'_> {} +unsafe impl<'a> Extends> for PerformanceQuerySubmitInfoKHR<'a> {} +unsafe impl<'a> Extends> for PerformanceQuerySubmitInfoKHR<'a> {} impl<'a> PerformanceQuerySubmitInfoKHR<'a> { #[inline] pub fn counter_pass_index(mut self, counter_pass_index: u32) -> Self { @@ -29902,8 +29195,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCoverageReductionModeFeaturesN const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCoverageReductionModeFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCoverageReductionModeFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceCoverageReductionModeFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceCoverageReductionModeFeaturesNV<'a> +{ +} impl<'a> PhysicalDeviceCoverageReductionModeFeaturesNV<'a> { #[inline] pub fn coverage_reduction_mode(mut self, coverage_reduction_mode: bool) -> Self { @@ -29941,8 +29240,8 @@ unsafe impl<'a> TaggedStructure for PipelineCoverageReductionStateCreateInfoNV<' const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsPipelineMultisampleStateCreateInfo - for PipelineCoverageReductionStateCreateInfoNV<'_> +unsafe impl<'a> Extends> + for PipelineCoverageReductionStateCreateInfoNV<'a> { } impl<'a> PipelineCoverageReductionStateCreateInfoNV<'a> { @@ -30046,11 +29345,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderIntegerFunctions2Feature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL<'_> {} impl<'a> PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL<'a> { #[inline] pub fn shader_integer_functions2(mut self, shader_integer_functions2: bool) -> Self { @@ -30165,7 +29467,7 @@ unsafe impl<'a> TaggedStructure for QueryPoolPerformanceQueryCreateInfoINTEL<'a> const STRUCTURE_TYPE: StructureType = StructureType::QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL; } -unsafe impl ExtendsQueryPoolCreateInfo for QueryPoolPerformanceQueryCreateInfoINTEL<'_> {} +unsafe impl<'a> Extends> for QueryPoolPerformanceQueryCreateInfoINTEL<'a> {} impl<'a> QueryPoolPerformanceQueryCreateInfoINTEL<'a> { #[inline] pub fn performance_counters_sampling( @@ -30356,8 +29658,8 @@ impl ::core::default::Default for PhysicalDeviceShaderClockFeaturesKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderClockFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderClockFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderClockFeaturesKHR<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceShaderClockFeaturesKHR<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceShaderClockFeaturesKHR<'a> {} impl<'a> PhysicalDeviceShaderClockFeaturesKHR<'a> { #[inline] pub fn shader_subgroup_clock(mut self, shader_subgroup_clock: bool) -> Self { @@ -30398,8 +29700,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceIndexTypeUint8FeaturesKHR<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceIndexTypeUint8FeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceIndexTypeUint8FeaturesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceIndexTypeUint8FeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceIndexTypeUint8FeaturesKHR<'a> {} impl<'a> PhysicalDeviceIndexTypeUint8FeaturesKHR<'a> { #[inline] pub fn index_type_uint8(mut self, index_type_uint8: bool) -> Self { @@ -30437,7 +29742,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderSMBuiltinsPropertiesNV<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderSMBuiltinsPropertiesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderSMBuiltinsPropertiesNV<'a> +{ +} impl<'a> PhysicalDeviceShaderSMBuiltinsPropertiesNV<'a> { #[inline] pub fn shader_sm_count(mut self, shader_sm_count: u32) -> Self { @@ -30478,8 +29786,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderSMBuiltinsFeaturesNV<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderSMBuiltinsFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderSMBuiltinsFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderSMBuiltinsFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceShaderSMBuiltinsFeaturesNV<'a> {} impl<'a> PhysicalDeviceShaderSMBuiltinsFeaturesNV<'a> { #[inline] pub fn shader_sm_builtins(mut self, shader_sm_builtins: bool) -> Self { @@ -30519,11 +29830,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShaderInterlockFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceFragmentShaderInterlockFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceFragmentShaderInterlockFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceFragmentShaderInterlockFeaturesEXT<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentShaderInterlockFeaturesEXT<'_> {} impl<'a> PhysicalDeviceFragmentShaderInterlockFeaturesEXT<'a> { #[inline] pub fn fragment_shader_sample_interlock( @@ -30578,11 +29892,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSeparateDepthStencilLayoutsFea const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceSeparateDepthStencilLayoutsFeatures<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceSeparateDepthStencilLayoutsFeatures<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceSeparateDepthStencilLayoutsFeatures<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSeparateDepthStencilLayoutsFeatures<'_> {} impl<'a> PhysicalDeviceSeparateDepthStencilLayoutsFeatures<'a> { #[inline] pub fn separate_depth_stencil_layouts(mut self, separate_depth_stencil_layouts: bool) -> Self { @@ -30617,7 +29934,7 @@ impl ::core::default::Default for AttachmentReferenceStencilLayout<'_> { unsafe impl<'a> TaggedStructure for AttachmentReferenceStencilLayout<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_REFERENCE_STENCIL_LAYOUT; } -unsafe impl ExtendsAttachmentReference2 for AttachmentReferenceStencilLayout<'_> {} +unsafe impl<'a> Extends> for AttachmentReferenceStencilLayout<'a> {} impl<'a> AttachmentReferenceStencilLayout<'a> { #[inline] pub fn stencil_layout(mut self, stencil_layout: ImageLayout) -> Self { @@ -30655,11 +29972,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePrimitiveTopologyListRestartFe const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT<'_> {} impl<'a> PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT<'a> { #[inline] pub fn primitive_topology_list_restart( @@ -30707,7 +30027,7 @@ impl ::core::default::Default for AttachmentDescriptionStencilLayout<'_> { unsafe impl<'a> TaggedStructure for AttachmentDescriptionStencilLayout<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT; } -unsafe impl ExtendsAttachmentDescription2 for AttachmentDescriptionStencilLayout<'_> {} +unsafe impl<'a> Extends> for AttachmentDescriptionStencilLayout<'a> {} impl<'a> AttachmentDescriptionStencilLayout<'a> { #[inline] pub fn stencil_initial_layout(mut self, stencil_initial_layout: ImageLayout) -> Self { @@ -30748,11 +30068,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineExecutablePropertiesFe const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR<'_> +unsafe impl<'a> Extends> + for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR<'_> {} impl<'a> PhysicalDevicePipelineExecutablePropertiesFeaturesKHR<'a> { #[inline] pub fn pipeline_executable_info(mut self, pipeline_executable_info: bool) -> Self { @@ -31111,11 +30434,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderDemoteToHelperInvocation const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceShaderDemoteToHelperInvocationFeatures<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceShaderDemoteToHelperInvocationFeatures<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderDemoteToHelperInvocationFeatures<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderDemoteToHelperInvocationFeatures<'_> {} impl<'a> PhysicalDeviceShaderDemoteToHelperInvocationFeatures<'a> { #[inline] pub fn shader_demote_to_helper_invocation( @@ -31154,8 +30480,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceTexelBufferAlignmentFeaturesEX const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTexelBufferAlignmentFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTexelBufferAlignmentFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceTexelBufferAlignmentFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceTexelBufferAlignmentFeaturesEXT<'a> +{ +} impl<'a> PhysicalDeviceTexelBufferAlignmentFeaturesEXT<'a> { #[inline] pub fn texel_buffer_alignment(mut self, texel_buffer_alignment: bool) -> Self { @@ -31197,7 +30529,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceTexelBufferAlignmentProperties const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceTexelBufferAlignmentProperties<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceTexelBufferAlignmentProperties<'a> +{ +} impl<'a> PhysicalDeviceTexelBufferAlignmentProperties<'a> { #[inline] pub fn storage_texel_buffer_offset_alignment_bytes( @@ -31266,8 +30601,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSubgroupSizeControlFeatures<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceSubgroupSizeControlFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSubgroupSizeControlFeatures<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceSubgroupSizeControlFeatures<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceSubgroupSizeControlFeatures<'a> {} impl<'a> PhysicalDeviceSubgroupSizeControlFeatures<'a> { #[inline] pub fn subgroup_size_control(mut self, subgroup_size_control: bool) -> Self { @@ -31314,7 +30652,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSubgroupSizeControlProperties< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceSubgroupSizeControlProperties<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceSubgroupSizeControlProperties<'a> +{ +} impl<'a> PhysicalDeviceSubgroupSizeControlProperties<'a> { #[inline] pub fn min_subgroup_size(mut self, min_subgroup_size: u32) -> Self { @@ -31368,11 +30709,14 @@ unsafe impl<'a> TaggedStructure for PipelineShaderStageRequiredSubgroupSizeCreat const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO; } -unsafe impl ExtendsPipelineShaderStageCreateInfo - for PipelineShaderStageRequiredSubgroupSizeCreateInfo<'_> +unsafe impl<'a> Extends> + for PipelineShaderStageRequiredSubgroupSizeCreateInfo<'a> +{ +} +unsafe impl<'a> Extends> + for PipelineShaderStageRequiredSubgroupSizeCreateInfo<'a> { } -unsafe impl ExtendsShaderCreateInfoEXT for PipelineShaderStageRequiredSubgroupSizeCreateInfo<'_> {} impl<'a> PipelineShaderStageRequiredSubgroupSizeCreateInfo<'a> { #[inline] pub fn required_subgroup_size(mut self, required_subgroup_size: u32) -> Self { @@ -31410,7 +30754,10 @@ unsafe impl<'a> TaggedStructure for SubpassShadingPipelineCreateInfoHUAWEI<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI; } -unsafe impl ExtendsComputePipelineCreateInfo for SubpassShadingPipelineCreateInfoHUAWEI<'_> {} +unsafe impl<'a> Extends> + for SubpassShadingPipelineCreateInfoHUAWEI<'a> +{ +} impl<'a> SubpassShadingPipelineCreateInfoHUAWEI<'a> { #[inline] pub fn render_pass(mut self, render_pass: RenderPass) -> Self { @@ -31451,7 +30798,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSubpassShadingPropertiesHUAWEI const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceSubpassShadingPropertiesHUAWEI<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceSubpassShadingPropertiesHUAWEI<'a> +{ +} impl<'a> PhysicalDeviceSubpassShadingPropertiesHUAWEI<'a> { #[inline] pub fn max_subpass_shading_workgroup_size_aspect_ratio( @@ -31497,8 +30847,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceClusterCullingShaderProperties const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceClusterCullingShaderPropertiesHUAWEI<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceClusterCullingShaderPropertiesHUAWEI<'a> { } impl<'a> PhysicalDeviceClusterCullingShaderPropertiesHUAWEI<'a> { @@ -31554,7 +30904,7 @@ unsafe impl<'a> TaggedStructure for MemoryOpaqueCaptureAddressAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO; } -unsafe impl ExtendsMemoryAllocateInfo for MemoryOpaqueCaptureAddressAllocateInfo<'_> {} +unsafe impl<'a> Extends> for MemoryOpaqueCaptureAddressAllocateInfo<'a> {} impl<'a> MemoryOpaqueCaptureAddressAllocateInfo<'a> { #[inline] pub fn opaque_capture_address(mut self, opaque_capture_address: u64) -> Self { @@ -31634,8 +30984,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceLineRasterizationFeaturesKHR<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceLineRasterizationFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceLineRasterizationFeaturesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceLineRasterizationFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceLineRasterizationFeaturesKHR<'a> {} impl<'a> PhysicalDeviceLineRasterizationFeaturesKHR<'a> { #[inline] pub fn rectangular_lines(mut self, rectangular_lines: bool) -> Self { @@ -31696,7 +31049,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceLineRasterizationPropertiesKHR const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceLineRasterizationPropertiesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceLineRasterizationPropertiesKHR<'a> +{ +} impl<'a> PhysicalDeviceLineRasterizationPropertiesKHR<'a> { #[inline] pub fn line_sub_pixel_precision_bits(mut self, line_sub_pixel_precision_bits: u32) -> Self { @@ -31738,8 +31094,8 @@ unsafe impl<'a> TaggedStructure for PipelineRasterizationLineStateCreateInfoKHR< const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR; } -unsafe impl ExtendsPipelineRasterizationStateCreateInfo - for PipelineRasterizationLineStateCreateInfoKHR<'_> +unsafe impl<'a> Extends> + for PipelineRasterizationLineStateCreateInfoKHR<'a> { } impl<'a> PipelineRasterizationLineStateCreateInfoKHR<'a> { @@ -31795,11 +31151,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineCreationCacheControlFe const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDevicePipelineCreationCacheControlFeatures<'_> +unsafe impl<'a> Extends> + for PhysicalDevicePipelineCreationCacheControlFeatures<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDevicePipelineCreationCacheControlFeatures<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelineCreationCacheControlFeatures<'_> {} impl<'a> PhysicalDevicePipelineCreationCacheControlFeatures<'a> { #[inline] pub fn pipeline_creation_cache_control( @@ -31859,8 +31218,8 @@ impl ::core::default::Default for PhysicalDeviceVulkan11Features<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkan11Features<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_1_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkan11Features<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkan11Features<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceVulkan11Features<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceVulkan11Features<'a> {} impl<'a> PhysicalDeviceVulkan11Features<'a> { #[inline] pub fn storage_buffer16_bit_access(mut self, storage_buffer16_bit_access: bool) -> Self { @@ -31985,7 +31344,7 @@ impl ::core::default::Default for PhysicalDeviceVulkan11Properties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkan11Properties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceVulkan11Properties<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceVulkan11Properties<'a> {} impl<'a> PhysicalDeviceVulkan11Properties<'a> { #[inline] pub fn device_uuid(mut self, device_uuid: [u8; UUID_SIZE]) -> Self { @@ -32194,8 +31553,8 @@ impl ::core::default::Default for PhysicalDeviceVulkan12Features<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkan12Features<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_2_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkan12Features<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkan12Features<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceVulkan12Features<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceVulkan12Features<'a> {} impl<'a> PhysicalDeviceVulkan12Features<'a> { #[inline] pub fn sampler_mirror_clamp_to_edge(mut self, sampler_mirror_clamp_to_edge: bool) -> Self { @@ -32851,7 +32210,7 @@ impl ::core::default::Default for PhysicalDeviceVulkan12Properties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkan12Properties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceVulkan12Properties<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceVulkan12Properties<'a> {} impl<'a> PhysicalDeviceVulkan12Properties<'a> { #[inline] pub fn driver_id(mut self, driver_id: DriverId) -> Self { @@ -33330,8 +32689,8 @@ impl ::core::default::Default for PhysicalDeviceVulkan13Features<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkan13Features<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_3_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkan13Features<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkan13Features<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceVulkan13Features<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceVulkan13Features<'a> {} impl<'a> PhysicalDeviceVulkan13Features<'a> { #[inline] pub fn robust_image_access(mut self, robust_image_access: bool) -> Self { @@ -33490,7 +32849,7 @@ impl ::core::default::Default for PhysicalDeviceVulkan13Properties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkan13Properties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceVulkan13Properties<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceVulkan13Properties<'a> {} impl<'a> PhysicalDeviceVulkan13Properties<'a> { #[inline] pub fn min_subgroup_size(mut self, min_subgroup_size: u32) -> Self { @@ -33898,10 +33257,16 @@ impl ::core::default::Default for PipelineCompilerControlCreateInfoAMD<'_> { unsafe impl<'a> TaggedStructure for PipelineCompilerControlCreateInfoAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineCompilerControlCreateInfoAMD<'_> {} -unsafe impl ExtendsComputePipelineCreateInfo for PipelineCompilerControlCreateInfoAMD<'_> {} -unsafe impl ExtendsExecutionGraphPipelineCreateInfoAMDX - for PipelineCompilerControlCreateInfoAMD<'_> +unsafe impl<'a> Extends> + for PipelineCompilerControlCreateInfoAMD<'a> +{ +} +unsafe impl<'a> Extends> + for PipelineCompilerControlCreateInfoAMD<'a> +{ +} +unsafe impl<'a> Extends> + for PipelineCompilerControlCreateInfoAMD<'a> { } impl<'a> PipelineCompilerControlCreateInfoAMD<'a> { @@ -33942,8 +33307,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCoherentMemoryFeaturesAMD<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCoherentMemoryFeaturesAMD<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCoherentMemoryFeaturesAMD<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceCoherentMemoryFeaturesAMD<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceCoherentMemoryFeaturesAMD<'a> {} impl<'a> PhysicalDeviceCoherentMemoryFeaturesAMD<'a> { #[inline] pub fn device_coherent_memory(mut self, device_coherent_memory: bool) -> Self { @@ -34084,7 +33452,7 @@ unsafe impl<'a> TaggedStructure for SamplerCustomBorderColorCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT; } -unsafe impl ExtendsSamplerCreateInfo for SamplerCustomBorderColorCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> for SamplerCustomBorderColorCreateInfoEXT<'a> {} impl<'a> SamplerCustomBorderColorCreateInfoEXT<'a> { #[inline] pub fn custom_border_color(mut self, custom_border_color: ClearColorValue) -> Self { @@ -34125,7 +33493,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCustomBorderColorPropertiesEXT const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceCustomBorderColorPropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceCustomBorderColorPropertiesEXT<'a> +{ +} impl<'a> PhysicalDeviceCustomBorderColorPropertiesEXT<'a> { #[inline] pub fn max_custom_border_color_samplers( @@ -34166,8 +33537,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCustomBorderColorFeaturesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCustomBorderColorFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCustomBorderColorFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceCustomBorderColorFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceCustomBorderColorFeaturesEXT<'a> {} impl<'a> PhysicalDeviceCustomBorderColorFeaturesEXT<'a> { #[inline] pub fn custom_border_colors(mut self, custom_border_colors: bool) -> Self { @@ -34213,7 +33587,10 @@ unsafe impl<'a> TaggedStructure for SamplerBorderColorComponentMappingCreateInfo const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT; } -unsafe impl ExtendsSamplerCreateInfo for SamplerBorderColorComponentMappingCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> + for SamplerBorderColorComponentMappingCreateInfoEXT<'a> +{ +} impl<'a> SamplerBorderColorComponentMappingCreateInfoEXT<'a> { #[inline] pub fn components(mut self, components: ComponentMapping) -> Self { @@ -34256,8 +33633,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceBorderColorSwizzleFeaturesEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceBorderColorSwizzleFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceBorderColorSwizzleFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceBorderColorSwizzleFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceBorderColorSwizzleFeaturesEXT<'a> {} impl<'a> PhysicalDeviceBorderColorSwizzleFeaturesEXT<'a> { #[inline] pub fn border_color_swizzle(mut self, border_color_swizzle: bool) -> Self { @@ -34367,7 +33747,7 @@ unsafe impl<'a> TaggedStructure for AccelerationStructureGeometryTrianglesDataKH const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR; } -pub unsafe trait ExtendsAccelerationStructureGeometryTrianglesDataKHR {} +unsafe impl<'a> BaseTaggedStructure for AccelerationStructureGeometryTrianglesDataKHR<'_> {} impl<'a> AccelerationStructureGeometryTrianglesDataKHR<'a> { #[inline] pub fn vertex_format(mut self, vertex_format: Format) -> Self { @@ -34404,23 +33784,6 @@ impl<'a> AccelerationStructureGeometryTrianglesDataKHR<'a> { self.transform_data = transform_data; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[derive(Copy, Clone)] @@ -34789,7 +34152,7 @@ impl ::core::default::Default for AccelerationStructureCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for AccelerationStructureCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_KHR; } -pub unsafe trait ExtendsAccelerationStructureCreateInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for AccelerationStructureCreateInfoKHR<'_> {} impl<'a> AccelerationStructureCreateInfoKHR<'a> { #[inline] pub fn create_flags(mut self, create_flags: AccelerationStructureCreateFlagsKHR) -> Self { @@ -34821,23 +34184,6 @@ impl<'a> AccelerationStructureCreateInfoKHR<'a> { self.device_address = device_address; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -35220,7 +34566,7 @@ impl ::core::default::Default for PipelineLibraryCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PipelineLibraryCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_LIBRARY_CREATE_INFO_KHR; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineLibraryCreateInfoKHR<'_> {} +unsafe impl<'a> Extends> for PipelineLibraryCreateInfoKHR<'a> {} impl<'a> PipelineLibraryCreateInfoKHR<'a> { #[inline] pub fn libraries(mut self, libraries: &'a [Pipeline]) -> Self { @@ -35257,8 +34603,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExtendedDynamicStateFeaturesEX const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExtendedDynamicStateFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExtendedDynamicStateFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceExtendedDynamicStateFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceExtendedDynamicStateFeaturesEXT<'a> +{ +} impl<'a> PhysicalDeviceExtendedDynamicStateFeaturesEXT<'a> { #[inline] pub fn extended_dynamic_state(mut self, extended_dynamic_state: bool) -> Self { @@ -35298,8 +34650,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExtendedDynamicState2FeaturesE const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExtendedDynamicState2FeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExtendedDynamicState2FeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceExtendedDynamicState2FeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceExtendedDynamicState2FeaturesEXT<'a> +{ +} impl<'a> PhysicalDeviceExtendedDynamicState2FeaturesEXT<'a> { #[inline] pub fn extended_dynamic_state2(mut self, extended_dynamic_state2: bool) -> Self { @@ -35412,8 +34770,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExtendedDynamicState3FeaturesE const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExtendedDynamicState3FeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExtendedDynamicState3FeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceExtendedDynamicState3FeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceExtendedDynamicState3FeaturesEXT<'a> +{ +} impl<'a> PhysicalDeviceExtendedDynamicState3FeaturesEXT<'a> { #[inline] pub fn extended_dynamic_state3_tessellation_domain_origin( @@ -35721,8 +35085,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExtendedDynamicState3Propertie const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceExtendedDynamicState3PropertiesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceExtendedDynamicState3PropertiesEXT<'a> { } impl<'a> PhysicalDeviceExtendedDynamicState3PropertiesEXT<'a> { @@ -35847,7 +35211,7 @@ impl ::core::default::Default for RenderPassTransformBeginInfoQCOM<'_> { unsafe impl<'a> TaggedStructure for RenderPassTransformBeginInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM; } -unsafe impl ExtendsRenderPassBeginInfo for RenderPassTransformBeginInfoQCOM<'_> {} +unsafe impl<'a> Extends> for RenderPassTransformBeginInfoQCOM<'a> {} impl<'a> RenderPassTransformBeginInfoQCOM<'a> { #[inline] pub fn transform(mut self, transform: SurfaceTransformFlagsKHR) -> Self { @@ -35882,8 +35246,8 @@ impl ::core::default::Default for CopyCommandTransformInfoQCOM<'_> { unsafe impl<'a> TaggedStructure for CopyCommandTransformInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COPY_COMMAND_TRANSFORM_INFO_QCOM; } -unsafe impl ExtendsBufferImageCopy2 for CopyCommandTransformInfoQCOM<'_> {} -unsafe impl ExtendsImageBlit2 for CopyCommandTransformInfoQCOM<'_> {} +unsafe impl<'a> Extends> for CopyCommandTransformInfoQCOM<'a> {} +unsafe impl<'a> Extends> for CopyCommandTransformInfoQCOM<'a> {} impl<'a> CopyCommandTransformInfoQCOM<'a> { #[inline] pub fn transform(mut self, transform: SurfaceTransformFlagsKHR) -> Self { @@ -35921,8 +35285,8 @@ unsafe impl<'a> TaggedStructure for CommandBufferInheritanceRenderPassTransformI const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM; } -unsafe impl ExtendsCommandBufferInheritanceInfo - for CommandBufferInheritanceRenderPassTransformInfoQCOM<'_> +unsafe impl<'a> Extends> + for CommandBufferInheritanceRenderPassTransformInfoQCOM<'a> { } impl<'a> CommandBufferInheritanceRenderPassTransformInfoQCOM<'a> { @@ -35965,8 +35329,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDiagnosticsConfigFeaturesNV<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDiagnosticsConfigFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDiagnosticsConfigFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceDiagnosticsConfigFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceDiagnosticsConfigFeaturesNV<'a> {} impl<'a> PhysicalDeviceDiagnosticsConfigFeaturesNV<'a> { #[inline] pub fn diagnostics_config(mut self, diagnostics_config: bool) -> Self { @@ -36001,7 +35368,7 @@ impl ::core::default::Default for DeviceDiagnosticsConfigCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for DeviceDiagnosticsConfigCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV; } -unsafe impl ExtendsDeviceCreateInfo for DeviceDiagnosticsConfigCreateInfoNV<'_> {} +unsafe impl<'a> Extends> for DeviceDiagnosticsConfigCreateInfoNV<'a> {} impl<'a> DeviceDiagnosticsConfigCreateInfoNV<'a> { #[inline] pub fn flags(mut self, flags: DeviceDiagnosticsConfigFlagsNV) -> Self { @@ -36037,11 +35404,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceZeroInitializeWorkgroupMemoryF const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures<'_> {} impl<'a> PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures<'a> { #[inline] pub fn shader_zero_initialize_workgroup_memory( @@ -36081,12 +35451,12 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderSubgroupUniformControlFl const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR<'a> { } -unsafe impl ExtendsDeviceCreateInfo - for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR<'a> { } impl<'a> PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR<'a> { @@ -36130,8 +35500,8 @@ impl ::core::default::Default for PhysicalDeviceRobustness2FeaturesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceRobustness2FeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRobustness2FeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRobustness2FeaturesEXT<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceRobustness2FeaturesEXT<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceRobustness2FeaturesEXT<'a> {} impl<'a> PhysicalDeviceRobustness2FeaturesEXT<'a> { #[inline] pub fn robust_buffer_access2(mut self, robust_buffer_access2: bool) -> Self { @@ -36179,7 +35549,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRobustness2PropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceRobustness2PropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceRobustness2PropertiesEXT<'a> +{ +} impl<'a> PhysicalDeviceRobustness2PropertiesEXT<'a> { #[inline] pub fn robust_storage_buffer_access_size_alignment( @@ -36227,8 +35600,8 @@ impl ::core::default::Default for PhysicalDeviceImageRobustnessFeatures<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceImageRobustnessFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImageRobustnessFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageRobustnessFeatures<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceImageRobustnessFeatures<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceImageRobustnessFeatures<'a> {} impl<'a> PhysicalDeviceImageRobustnessFeatures<'a> { #[inline] pub fn robust_image_access(mut self, robust_image_access: bool) -> Self { @@ -36270,11 +35643,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceWorkgroupMemoryExplicitLayoutF const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR<'_> {} impl<'a> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR<'a> { #[inline] pub fn workgroup_memory_explicit_layout( @@ -36368,8 +35744,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePortabilitySubsetFeaturesKHR<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePortabilitySubsetFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePortabilitySubsetFeaturesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDevicePortabilitySubsetFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDevicePortabilitySubsetFeaturesKHR<'a> {} impl<'a> PhysicalDevicePortabilitySubsetFeaturesKHR<'a> { #[inline] pub fn constant_alpha_color_blend_factors( @@ -36488,7 +35867,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePortabilitySubsetPropertiesKHR const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePortabilitySubsetPropertiesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDevicePortabilitySubsetPropertiesKHR<'a> +{ +} impl<'a> PhysicalDevicePortabilitySubsetPropertiesKHR<'a> { #[inline] pub fn min_vertex_input_binding_stride_alignment( @@ -36528,8 +35910,8 @@ impl ::core::default::Default for PhysicalDevice4444FormatsFeaturesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDevice4444FormatsFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevice4444FormatsFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevice4444FormatsFeaturesEXT<'_> {} +unsafe impl<'a> Extends> for PhysicalDevice4444FormatsFeaturesEXT<'a> {} +unsafe impl<'a> Extends> for PhysicalDevice4444FormatsFeaturesEXT<'a> {} impl<'a> PhysicalDevice4444FormatsFeaturesEXT<'a> { #[inline] pub fn format_a4r4g4b4(mut self, format_a4r4g4b4: bool) -> Self { @@ -36570,8 +35952,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSubpassShadingFeaturesHUAWEI<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceSubpassShadingFeaturesHUAWEI<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSubpassShadingFeaturesHUAWEI<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceSubpassShadingFeaturesHUAWEI<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceSubpassShadingFeaturesHUAWEI<'a> {} impl<'a> PhysicalDeviceSubpassShadingFeaturesHUAWEI<'a> { #[inline] pub fn subpass_shading(mut self, subpass_shading: bool) -> Self { @@ -36609,12 +35994,15 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceClusterCullingShaderFeaturesHU const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'_> {} -pub unsafe trait ExtendsPhysicalDeviceClusterCullingShaderFeaturesHUAWEI {} +unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'_> {} impl<'a> PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a> { #[inline] pub fn clusterculling_shader(mut self, clusterculling_shader: bool) -> Self { @@ -36629,23 +36017,6 @@ impl<'a> PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a> { self.multiview_cluster_culling_shader = multiview_cluster_culling_shader.into(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -36675,8 +36046,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceClusterCullingShaderVrsFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI; } -unsafe impl ExtendsPhysicalDeviceClusterCullingShaderFeaturesHUAWEI - for PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI<'a> { } impl<'a> PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI<'a> { @@ -36829,7 +36200,7 @@ impl ::core::default::Default for ImageBlit2<'_> { unsafe impl<'a> TaggedStructure for ImageBlit2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_BLIT_2; } -pub unsafe trait ExtendsImageBlit2 {} +unsafe impl<'a> BaseTaggedStructure for ImageBlit2<'_> {} impl<'a> ImageBlit2<'a> { #[inline] pub fn src_subresource(mut self, src_subresource: ImageSubresourceLayers) -> Self { @@ -36851,20 +36222,6 @@ impl<'a> ImageBlit2<'a> { self.dst_offsets = dst_offsets; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -36903,7 +36260,7 @@ impl ::core::default::Default for BufferImageCopy2<'_> { unsafe impl<'a> TaggedStructure for BufferImageCopy2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_IMAGE_COPY_2; } -pub unsafe trait ExtendsBufferImageCopy2 {} +unsafe impl<'a> BaseTaggedStructure for BufferImageCopy2<'_> {} impl<'a> BufferImageCopy2<'a> { #[inline] pub fn buffer_offset(mut self, buffer_offset: DeviceSize) -> Self { @@ -36935,20 +36292,6 @@ impl<'a> BufferImageCopy2<'a> { self.image_extent = image_extent; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -37167,7 +36510,7 @@ impl ::core::default::Default for BlitImageInfo2<'_> { unsafe impl<'a> TaggedStructure for BlitImageInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BLIT_IMAGE_INFO_2; } -pub unsafe trait ExtendsBlitImageInfo2 {} +unsafe impl<'a> BaseTaggedStructure for BlitImageInfo2<'_> {} impl<'a> BlitImageInfo2<'a> { #[inline] pub fn src_image(mut self, src_image: Image) -> Self { @@ -37200,20 +36543,6 @@ impl<'a> BlitImageInfo2<'a> { self.filter = filter; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -37426,8 +36755,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderImageAtomicInt64Features const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT<'a> +{ +} impl<'a> PhysicalDeviceShaderImageAtomicInt64FeaturesEXT<'a> { #[inline] pub fn shader_image_int64_atomics(mut self, shader_image_int64_atomics: bool) -> Self { @@ -37469,7 +36804,7 @@ impl ::core::default::Default for FragmentShadingRateAttachmentInfoKHR<'_> { unsafe impl<'a> TaggedStructure for FragmentShadingRateAttachmentInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR; } -unsafe impl ExtendsSubpassDescription2 for FragmentShadingRateAttachmentInfoKHR<'_> {} +unsafe impl<'a> Extends> for FragmentShadingRateAttachmentInfoKHR<'a> {} impl<'a> FragmentShadingRateAttachmentInfoKHR<'a> { #[inline] pub fn fragment_shading_rate_attachment( @@ -37518,8 +36853,8 @@ unsafe impl<'a> TaggedStructure for PipelineFragmentShadingRateStateCreateInfoKH const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR; } -unsafe impl ExtendsGraphicsPipelineCreateInfo - for PipelineFragmentShadingRateStateCreateInfoKHR<'_> +unsafe impl<'a> Extends> + for PipelineFragmentShadingRateStateCreateInfoKHR<'a> { } impl<'a> PipelineFragmentShadingRateStateCreateInfoKHR<'a> { @@ -37566,8 +36901,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShadingRateFeaturesKHR const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFragmentShadingRateFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentShadingRateFeaturesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceFragmentShadingRateFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceFragmentShadingRateFeaturesKHR<'a> {} impl<'a> PhysicalDeviceFragmentShadingRateFeaturesKHR<'a> { #[inline] pub fn pipeline_fragment_shading_rate(mut self, pipeline_fragment_shading_rate: bool) -> Self { @@ -37651,8 +36989,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShadingRatePropertiesK const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceFragmentShadingRatePropertiesKHR<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceFragmentShadingRatePropertiesKHR<'a> { } impl<'a> PhysicalDeviceFragmentShadingRatePropertiesKHR<'a> { @@ -37869,8 +37207,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderTerminateInvocationFeatu const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderTerminateInvocationFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderTerminateInvocationFeatures<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderTerminateInvocationFeatures<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderTerminateInvocationFeatures<'a> +{ +} impl<'a> PhysicalDeviceShaderTerminateInvocationFeatures<'a> { #[inline] pub fn shader_terminate_invocation(mut self, shader_terminate_invocation: bool) -> Self { @@ -37910,11 +37254,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShadingRateEnumsFeatur const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV<'_> {} impl<'a> PhysicalDeviceFragmentShadingRateEnumsFeaturesNV<'a> { #[inline] pub fn fragment_shading_rate_enums(mut self, fragment_shading_rate_enums: bool) -> Self { @@ -37966,8 +37313,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShadingRateEnumsProper const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceFragmentShadingRateEnumsPropertiesNV<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceFragmentShadingRateEnumsPropertiesNV<'a> { } impl<'a> PhysicalDeviceFragmentShadingRateEnumsPropertiesNV<'a> { @@ -38013,8 +37360,8 @@ unsafe impl<'a> TaggedStructure for PipelineFragmentShadingRateEnumStateCreateIn const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsGraphicsPipelineCreateInfo - for PipelineFragmentShadingRateEnumStateCreateInfoNV<'_> +unsafe impl<'a> Extends> + for PipelineFragmentShadingRateEnumStateCreateInfoNV<'a> { } impl<'a> PipelineFragmentShadingRateEnumStateCreateInfoNV<'a> { @@ -38113,8 +37460,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImage2DViewOf3DFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImage2DViewOf3DFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImage2DViewOf3DFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceImage2DViewOf3DFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceImage2DViewOf3DFeaturesEXT<'a> {} impl<'a> PhysicalDeviceImage2DViewOf3DFeaturesEXT<'a> { #[inline] pub fn image2_d_view_of3_d(mut self, image2_d_view_of3_d: bool) -> Self { @@ -38155,8 +37505,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'a> {} impl<'a> PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'a> { #[inline] pub fn image_sliced_view_of3_d(mut self, image_sliced_view_of3_d: bool) -> Self { @@ -38194,12 +37547,12 @@ unsafe impl<'a> TaggedStructure const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT<'a> { } -unsafe impl ExtendsDeviceCreateInfo - for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT<'a> { } impl<'a> PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT<'a> { @@ -38240,8 +37593,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceLegacyVertexAttributesFeatures const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a> +{ +} impl<'a> PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a> { #[inline] pub fn legacy_vertex_attributes(mut self, legacy_vertex_attributes: bool) -> Self { @@ -38277,8 +37636,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceLegacyVertexAttributesProperti const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'a> { } impl<'a> PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'a> { @@ -38316,8 +37675,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMutableDescriptorTypeFeaturesE const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'a> +{ +} impl<'a> PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'a> { #[inline] pub fn mutable_descriptor_type(mut self, mutable_descriptor_type: bool) -> Self { @@ -38384,8 +37749,11 @@ impl ::core::default::Default for MutableDescriptorTypeCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for MutableDescriptorTypeCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT; } -unsafe impl ExtendsDescriptorSetLayoutCreateInfo for MutableDescriptorTypeCreateInfoEXT<'_> {} -unsafe impl ExtendsDescriptorPoolCreateInfo for MutableDescriptorTypeCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> + for MutableDescriptorTypeCreateInfoEXT<'a> +{ +} +unsafe impl<'a> Extends> for MutableDescriptorTypeCreateInfoEXT<'a> {} impl<'a> MutableDescriptorTypeCreateInfoEXT<'a> { #[inline] pub fn mutable_descriptor_type_lists( @@ -38425,8 +37793,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthClipControlFeaturesEXT<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDepthClipControlFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthClipControlFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceDepthClipControlFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceDepthClipControlFeaturesEXT<'a> {} impl<'a> PhysicalDeviceDepthClipControlFeaturesEXT<'a> { #[inline] pub fn depth_clip_control(mut self, depth_clip_control: bool) -> Self { @@ -38464,11 +37835,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'_> {} impl<'a> PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> { #[inline] pub fn device_generated_commands(mut self, device_generated_commands: bool) -> Self { @@ -38534,8 +37908,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsPropert const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'a> { } impl<'a> PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'a> { @@ -38661,9 +38035,9 @@ impl ::core::default::Default for GeneratedCommandsPipelineInfoEXT<'_> { unsafe impl<'a> TaggedStructure for GeneratedCommandsPipelineInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_PIPELINE_INFO_EXT; } -unsafe impl ExtendsGeneratedCommandsInfoEXT for GeneratedCommandsPipelineInfoEXT<'_> {} -unsafe impl ExtendsGeneratedCommandsMemoryRequirementsInfoEXT - for GeneratedCommandsPipelineInfoEXT<'_> +unsafe impl<'a> Extends> for GeneratedCommandsPipelineInfoEXT<'a> {} +unsafe impl<'a> Extends> + for GeneratedCommandsPipelineInfoEXT<'a> { } impl<'a> GeneratedCommandsPipelineInfoEXT<'a> { @@ -38702,9 +38076,9 @@ impl ::core::default::Default for GeneratedCommandsShaderInfoEXT<'_> { unsafe impl<'a> TaggedStructure for GeneratedCommandsShaderInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_SHADER_INFO_EXT; } -unsafe impl ExtendsGeneratedCommandsInfoEXT for GeneratedCommandsShaderInfoEXT<'_> {} -unsafe impl ExtendsGeneratedCommandsMemoryRequirementsInfoEXT - for GeneratedCommandsShaderInfoEXT<'_> +unsafe impl<'a> Extends> for GeneratedCommandsShaderInfoEXT<'a> {} +unsafe impl<'a> Extends> + for GeneratedCommandsShaderInfoEXT<'a> { } impl<'a> GeneratedCommandsShaderInfoEXT<'a> { @@ -38749,7 +38123,7 @@ unsafe impl<'a> TaggedStructure for GeneratedCommandsMemoryRequirementsInfoEXT<' const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT; } -pub unsafe trait ExtendsGeneratedCommandsMemoryRequirementsInfoEXT {} +unsafe impl<'a> BaseTaggedStructure for GeneratedCommandsMemoryRequirementsInfoEXT<'_> {} impl<'a> GeneratedCommandsMemoryRequirementsInfoEXT<'a> { #[inline] pub fn indirect_execution_set( @@ -38777,23 +38151,6 @@ impl<'a> GeneratedCommandsMemoryRequirementsInfoEXT<'a> { self.max_draw_count = max_draw_count; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -39048,7 +38405,7 @@ impl ::core::default::Default for GeneratedCommandsInfoEXT<'_> { unsafe impl<'a> TaggedStructure for GeneratedCommandsInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_INFO_EXT; } -pub unsafe trait ExtendsGeneratedCommandsInfoEXT {} +unsafe impl<'a> BaseTaggedStructure for GeneratedCommandsInfoEXT<'_> {} impl<'a> GeneratedCommandsInfoEXT<'a> { #[inline] pub fn shader_stages(mut self, shader_stages: ShaderStageFlags) -> Self { @@ -39106,23 +38463,6 @@ impl<'a> GeneratedCommandsInfoEXT<'a> { self.max_draw_count = max_draw_count; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -39243,7 +38583,7 @@ impl ::core::default::Default for IndirectCommandsLayoutCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for IndirectCommandsLayoutCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT; } -pub unsafe trait ExtendsIndirectCommandsLayoutCreateInfoEXT {} +unsafe impl<'a> BaseTaggedStructure for IndirectCommandsLayoutCreateInfoEXT<'_> {} impl<'a> IndirectCommandsLayoutCreateInfoEXT<'a> { #[inline] pub fn flags(mut self, flags: IndirectCommandsLayoutUsageFlagsEXT) -> Self { @@ -39271,23 +38611,6 @@ impl<'a> IndirectCommandsLayoutCreateInfoEXT<'a> { self.p_tokens = tokens.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[derive(Copy, Clone)] @@ -39538,8 +38861,8 @@ unsafe impl<'a> TaggedStructure for PipelineViewportDepthClipControlCreateInfoEX const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineViewportStateCreateInfo - for PipelineViewportDepthClipControlCreateInfoEXT<'_> +unsafe impl<'a> Extends> + for PipelineViewportDepthClipControlCreateInfoEXT<'a> { } impl<'a> PipelineViewportDepthClipControlCreateInfoEXT<'a> { @@ -39577,8 +38900,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthClampControlFeaturesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDepthClampControlFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthClampControlFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceDepthClampControlFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceDepthClampControlFeaturesEXT<'a> {} impl<'a> PhysicalDeviceDepthClampControlFeaturesEXT<'a> { #[inline] pub fn depth_clamp_control(mut self, depth_clamp_control: bool) -> Self { @@ -39616,8 +38942,8 @@ unsafe impl<'a> TaggedStructure for PipelineViewportDepthClampControlCreateInfoE const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineViewportStateCreateInfo - for PipelineViewportDepthClampControlCreateInfoEXT<'_> +unsafe impl<'a> Extends> + for PipelineViewportDepthClampControlCreateInfoEXT<'a> { } impl<'a> PipelineViewportDepthClampControlCreateInfoEXT<'a> { @@ -39660,11 +38986,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceVertexInputDynamicStateFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceVertexInputDynamicStateFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceVertexInputDynamicStateFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceVertexInputDynamicStateFeaturesEXT<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVertexInputDynamicStateFeaturesEXT<'_> {} impl<'a> PhysicalDeviceVertexInputDynamicStateFeaturesEXT<'a> { #[inline] pub fn vertex_input_dynamic_state(mut self, vertex_input_dynamic_state: bool) -> Self { @@ -39700,8 +39029,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalMemoryRDMAFeaturesNV<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExternalMemoryRDMAFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExternalMemoryRDMAFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceExternalMemoryRDMAFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceExternalMemoryRDMAFeaturesNV<'a> {} impl<'a> PhysicalDeviceExternalMemoryRDMAFeaturesNV<'a> { #[inline] pub fn external_memory_rdma(mut self, external_memory_rdma: bool) -> Self { @@ -39737,12 +39069,12 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderRelaxedExtendedInstructi const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a> { } -unsafe impl ExtendsDeviceCreateInfo - for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a> { } impl<'a> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a> { @@ -39893,8 +39225,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceColorWriteEnableFeaturesEXT<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceColorWriteEnableFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceColorWriteEnableFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceColorWriteEnableFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceColorWriteEnableFeaturesEXT<'a> {} impl<'a> PhysicalDeviceColorWriteEnableFeaturesEXT<'a> { #[inline] pub fn color_write_enable(mut self, color_write_enable: bool) -> Self { @@ -39931,7 +39266,10 @@ impl ::core::default::Default for PipelineColorWriteCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for PipelineColorWriteCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COLOR_WRITE_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineColorBlendStateCreateInfo for PipelineColorWriteCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> + for PipelineColorWriteCreateInfoEXT<'a> +{ +} impl<'a> PipelineColorWriteCreateInfoEXT<'a> { #[inline] pub fn color_write_enables(mut self, color_write_enables: &'a [Bool32]) -> Self { @@ -39973,7 +39311,7 @@ impl ::core::default::Default for MemoryBarrier2<'_> { unsafe impl<'a> TaggedStructure for MemoryBarrier2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_BARRIER_2; } -unsafe impl ExtendsSubpassDependency2 for MemoryBarrier2<'_> {} +unsafe impl<'a> Extends> for MemoryBarrier2<'a> {} impl<'a> MemoryBarrier2<'a> { #[inline] pub fn src_stage_mask(mut self, src_stage_mask: PipelineStageFlags2) -> Self { @@ -40041,7 +39379,7 @@ impl ::core::default::Default for ImageMemoryBarrier2<'_> { unsafe impl<'a> TaggedStructure for ImageMemoryBarrier2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_MEMORY_BARRIER_2; } -pub unsafe trait ExtendsImageMemoryBarrier2 {} +unsafe impl<'a> BaseTaggedStructure for ImageMemoryBarrier2<'_> {} impl<'a> ImageMemoryBarrier2<'a> { #[inline] pub fn src_stage_mask(mut self, src_stage_mask: PipelineStageFlags2) -> Self { @@ -40093,20 +39431,6 @@ impl<'a> ImageMemoryBarrier2<'a> { self.subresource_range = subresource_range; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -40151,7 +39475,7 @@ impl ::core::default::Default for BufferMemoryBarrier2<'_> { unsafe impl<'a> TaggedStructure for BufferMemoryBarrier2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_MEMORY_BARRIER_2; } -pub unsafe trait ExtendsBufferMemoryBarrier2 {} +unsafe impl<'a> BaseTaggedStructure for BufferMemoryBarrier2<'_> {} impl<'a> BufferMemoryBarrier2<'a> { #[inline] pub fn src_stage_mask(mut self, src_stage_mask: PipelineStageFlags2) -> Self { @@ -40198,20 +39522,6 @@ impl<'a> BufferMemoryBarrier2<'a> { self.size = size; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -40367,7 +39677,7 @@ impl ::core::default::Default for CommandBufferSubmitInfo<'_> { unsafe impl<'a> TaggedStructure for CommandBufferSubmitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_SUBMIT_INFO; } -pub unsafe trait ExtendsCommandBufferSubmitInfo {} +unsafe impl<'a> BaseTaggedStructure for CommandBufferSubmitInfo<'_> {} impl<'a> CommandBufferSubmitInfo<'a> { #[inline] pub fn command_buffer(mut self, command_buffer: CommandBuffer) -> Self { @@ -40379,23 +39689,6 @@ impl<'a> CommandBufferSubmitInfo<'a> { self.device_mask = device_mask; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -40436,7 +39729,7 @@ impl ::core::default::Default for SubmitInfo2<'_> { unsafe impl<'a> TaggedStructure for SubmitInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBMIT_INFO_2; } -pub unsafe trait ExtendsSubmitInfo2 {} +unsafe impl<'a> BaseTaggedStructure for SubmitInfo2<'_> {} impl<'a> SubmitInfo2<'a> { #[inline] pub fn flags(mut self, flags: SubmitFlags) -> Self { @@ -40470,20 +39763,6 @@ impl<'a> SubmitInfo2<'a> { self.p_signal_semaphore_infos = signal_semaphore_infos.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -40512,7 +39791,7 @@ impl ::core::default::Default for QueueFamilyCheckpointProperties2NV<'_> { unsafe impl<'a> TaggedStructure for QueueFamilyCheckpointProperties2NV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV; } -unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyCheckpointProperties2NV<'_> {} +unsafe impl<'a> Extends> for QueueFamilyCheckpointProperties2NV<'a> {} impl<'a> QueueFamilyCheckpointProperties2NV<'a> { #[inline] pub fn checkpoint_execution_stage_mask( @@ -40591,8 +39870,11 @@ impl ::core::default::Default for PhysicalDeviceSynchronization2Features<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceSynchronization2Features<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceSynchronization2Features<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSynchronization2Features<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceSynchronization2Features<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceSynchronization2Features<'a> {} impl<'a> PhysicalDeviceSynchronization2Features<'a> { #[inline] pub fn synchronization2(mut self, synchronization2: bool) -> Self { @@ -40628,8 +39910,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceHostImageCopyFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceHostImageCopyFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceHostImageCopyFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceHostImageCopyFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceHostImageCopyFeaturesEXT<'a> {} impl<'a> PhysicalDeviceHostImageCopyFeaturesEXT<'a> { #[inline] pub fn host_image_copy(mut self, host_image_copy: bool) -> Self { @@ -40675,7 +39960,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceHostImageCopyPropertiesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceHostImageCopyPropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceHostImageCopyPropertiesEXT<'a> +{ +} impl<'a> PhysicalDeviceHostImageCopyPropertiesEXT<'a> { #[inline] pub fn copy_src_layouts(mut self, copy_src_layouts: &'a mut [ImageLayout]) -> Self { @@ -41114,7 +40402,7 @@ impl ::core::default::Default for SubresourceHostMemcpySizeEXT<'_> { unsafe impl<'a> TaggedStructure for SubresourceHostMemcpySizeEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBRESOURCE_HOST_MEMCPY_SIZE_EXT; } -unsafe impl ExtendsSubresourceLayout2KHR for SubresourceHostMemcpySizeEXT<'_> {} +unsafe impl<'a> Extends> for SubresourceHostMemcpySizeEXT<'a> {} impl<'a> SubresourceHostMemcpySizeEXT<'a> { #[inline] pub fn size(mut self, size: DeviceSize) -> Self { @@ -41152,7 +40440,7 @@ unsafe impl<'a> TaggedStructure for HostImageCopyDevicePerformanceQueryEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT; } -unsafe impl ExtendsImageFormatProperties2 for HostImageCopyDevicePerformanceQueryEXT<'_> {} +unsafe impl<'a> Extends> for HostImageCopyDevicePerformanceQueryEXT<'a> {} impl<'a> HostImageCopyDevicePerformanceQueryEXT<'a> { #[inline] pub fn optimal_device_access(mut self, optimal_device_access: bool) -> Self { @@ -41197,11 +40485,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePrimitivesGeneratedQueryFeatur const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT<'_> {} impl<'a> PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT<'a> { #[inline] pub fn primitives_generated_query(mut self, primitives_generated_query: bool) -> Self { @@ -41255,8 +40546,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceLegacyDitheringFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceLegacyDitheringFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceLegacyDitheringFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceLegacyDitheringFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceLegacyDitheringFeaturesEXT<'a> {} impl<'a> PhysicalDeviceLegacyDitheringFeaturesEXT<'a> { #[inline] pub fn legacy_dithering(mut self, legacy_dithering: bool) -> Self { @@ -41292,12 +40586,12 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMultisampledRenderToSingleSamp const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT<'a> { } -unsafe impl ExtendsDeviceCreateInfo - for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT<'a> { } impl<'a> PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT<'a> { @@ -41337,7 +40631,7 @@ impl ::core::default::Default for SubpassResolvePerformanceQueryEXT<'_> { unsafe impl<'a> TaggedStructure for SubpassResolvePerformanceQueryEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT; } -unsafe impl ExtendsFormatProperties2 for SubpassResolvePerformanceQueryEXT<'_> {} +unsafe impl<'a> Extends> for SubpassResolvePerformanceQueryEXT<'a> {} impl<'a> SubpassResolvePerformanceQueryEXT<'a> { #[inline] pub fn optimal(mut self, optimal: bool) -> Self { @@ -41375,8 +40669,8 @@ unsafe impl<'a> TaggedStructure for MultisampledRenderToSingleSampledInfoEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT; } -unsafe impl ExtendsSubpassDescription2 for MultisampledRenderToSingleSampledInfoEXT<'_> {} -unsafe impl ExtendsRenderingInfo for MultisampledRenderToSingleSampledInfoEXT<'_> {} +unsafe impl<'a> Extends> for MultisampledRenderToSingleSampledInfoEXT<'a> {} +unsafe impl<'a> Extends> for MultisampledRenderToSingleSampledInfoEXT<'a> {} impl<'a> MultisampledRenderToSingleSampledInfoEXT<'a> { #[inline] pub fn multisampled_render_to_single_sampled_enable( @@ -41421,11 +40715,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineProtectedAccessFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDevicePipelineProtectedAccessFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDevicePipelineProtectedAccessFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDevicePipelineProtectedAccessFeaturesEXT<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelineProtectedAccessFeaturesEXT<'_> {} impl<'a> PhysicalDevicePipelineProtectedAccessFeaturesEXT<'a> { #[inline] pub fn pipeline_protected_access(mut self, pipeline_protected_access: bool) -> Self { @@ -41460,7 +40757,7 @@ impl ::core::default::Default for QueueFamilyVideoPropertiesKHR<'_> { unsafe impl<'a> TaggedStructure for QueueFamilyVideoPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_VIDEO_PROPERTIES_KHR; } -unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyVideoPropertiesKHR<'_> {} +unsafe impl<'a> Extends> for QueueFamilyVideoPropertiesKHR<'a> {} impl<'a> QueueFamilyVideoPropertiesKHR<'a> { #[inline] pub fn video_codec_operations( @@ -41499,7 +40796,10 @@ unsafe impl<'a> TaggedStructure for QueueFamilyQueryResultStatusPropertiesKHR<'a const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR; } -unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyQueryResultStatusPropertiesKHR<'_> {} +unsafe impl<'a> Extends> + for QueueFamilyQueryResultStatusPropertiesKHR<'a> +{ +} impl<'a> QueueFamilyQueryResultStatusPropertiesKHR<'a> { #[inline] pub fn query_result_status_support(mut self, query_result_status_support: bool) -> Self { @@ -41536,10 +40836,10 @@ impl ::core::default::Default for VideoProfileListInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoProfileListInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_PROFILE_LIST_INFO_KHR; } -unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for VideoProfileListInfoKHR<'_> {} -unsafe impl ExtendsPhysicalDeviceVideoFormatInfoKHR for VideoProfileListInfoKHR<'_> {} -unsafe impl ExtendsImageCreateInfo for VideoProfileListInfoKHR<'_> {} -unsafe impl ExtendsBufferCreateInfo for VideoProfileListInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoProfileListInfoKHR<'a> {} +unsafe impl<'a> Extends> for VideoProfileListInfoKHR<'a> {} +unsafe impl<'a> Extends> for VideoProfileListInfoKHR<'a> {} +unsafe impl<'a> Extends> for VideoProfileListInfoKHR<'a> {} impl<'a> VideoProfileListInfoKHR<'a> { #[inline] pub fn profiles(mut self, profiles: &'a [VideoProfileInfoKHR<'a>]) -> Self { @@ -41575,30 +40875,13 @@ impl ::core::default::Default for PhysicalDeviceVideoFormatInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceVideoFormatInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR; } -pub unsafe trait ExtendsPhysicalDeviceVideoFormatInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceVideoFormatInfoKHR<'_> {} impl<'a> PhysicalDeviceVideoFormatInfoKHR<'a> { #[inline] pub fn image_usage(mut self, image_usage: ImageUsageFlags) -> Self { self.image_usage = image_usage; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -41702,8 +40985,8 @@ impl ::core::default::Default for VideoProfileInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_PROFILE_INFO_KHR; } -unsafe impl ExtendsQueryPoolCreateInfo for VideoProfileInfoKHR<'_> {} -pub unsafe trait ExtendsVideoProfileInfoKHR {} +unsafe impl<'a> Extends> for VideoProfileInfoKHR<'a> {} +unsafe impl<'a> BaseTaggedStructure for VideoProfileInfoKHR<'_> {} impl<'a> VideoProfileInfoKHR<'a> { #[inline] pub fn video_codec_operation( @@ -41731,20 +41014,6 @@ impl<'a> VideoProfileInfoKHR<'a> { self.chroma_bit_depth = chroma_bit_depth; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -41789,7 +41058,7 @@ impl ::core::default::Default for VideoCapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoCapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_CAPABILITIES_KHR; } -pub unsafe trait ExtendsVideoCapabilitiesKHR {} +unsafe impl<'a> BaseTaggedStructure for VideoCapabilitiesKHR<'_> {} impl<'a> VideoCapabilitiesKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoCapabilityFlagsKHR) -> Self { @@ -41842,20 +41111,6 @@ impl<'a> VideoCapabilitiesKHR<'a> { self.std_header_version = std_header_version; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -42037,7 +41292,7 @@ impl ::core::default::Default for VideoReferenceSlotInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoReferenceSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_REFERENCE_SLOT_INFO_KHR; } -pub unsafe trait ExtendsVideoReferenceSlotInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for VideoReferenceSlotInfoKHR<'_> {} impl<'a> VideoReferenceSlotInfoKHR<'a> { #[inline] pub fn slot_index(mut self, slot_index: i32) -> Self { @@ -42052,23 +41307,6 @@ impl<'a> VideoReferenceSlotInfoKHR<'a> { self.p_picture_resource = picture_resource; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -42097,7 +41335,7 @@ impl ::core::default::Default for VideoDecodeCapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeCapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_CAPABILITIES_KHR; } -unsafe impl ExtendsVideoCapabilitiesKHR for VideoDecodeCapabilitiesKHR<'_> {} +unsafe impl<'a> Extends> for VideoDecodeCapabilitiesKHR<'a> {} impl<'a> VideoDecodeCapabilitiesKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoDecodeCapabilityFlagsKHR) -> Self { @@ -42132,8 +41370,8 @@ impl ::core::default::Default for VideoDecodeUsageInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeUsageInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_USAGE_INFO_KHR; } -unsafe impl ExtendsVideoProfileInfoKHR for VideoDecodeUsageInfoKHR<'_> {} -unsafe impl ExtendsQueryPoolCreateInfo for VideoDecodeUsageInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoDecodeUsageInfoKHR<'a> {} +unsafe impl<'a> Extends> for VideoDecodeUsageInfoKHR<'a> {} impl<'a> VideoDecodeUsageInfoKHR<'a> { #[inline] pub fn video_usage_hints(mut self, video_usage_hints: VideoDecodeUsageFlagsKHR) -> Self { @@ -42182,7 +41420,7 @@ impl ::core::default::Default for VideoDecodeInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_INFO_KHR; } -pub unsafe trait ExtendsVideoDecodeInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for VideoDecodeInfoKHR<'_> {} impl<'a> VideoDecodeInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoDecodeFlagsKHR) -> Self { @@ -42226,20 +41464,6 @@ impl<'a> VideoDecodeInfoKHR<'a> { self.p_reference_slots = reference_slots.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -42269,8 +41493,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceVideoMaintenance1FeaturesKHR<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVideoMaintenance1FeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVideoMaintenance1FeaturesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceVideoMaintenance1FeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceVideoMaintenance1FeaturesKHR<'a> {} impl<'a> PhysicalDeviceVideoMaintenance1FeaturesKHR<'a> { #[inline] pub fn video_maintenance1(mut self, video_maintenance1: bool) -> Self { @@ -42309,8 +41536,8 @@ impl ::core::default::Default for VideoInlineQueryInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoInlineQueryInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_INLINE_QUERY_INFO_KHR; } -unsafe impl ExtendsVideoDecodeInfoKHR for VideoInlineQueryInfoKHR<'_> {} -unsafe impl ExtendsVideoEncodeInfoKHR for VideoInlineQueryInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoInlineQueryInfoKHR<'a> {} +unsafe impl<'a> Extends> for VideoInlineQueryInfoKHR<'a> {} impl<'a> VideoInlineQueryInfoKHR<'a> { #[inline] pub fn query_pool(mut self, query_pool: QueryPool) -> Self { @@ -42357,8 +41584,8 @@ impl ::core::default::Default for VideoDecodeH264ProfileInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeH264ProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H264_PROFILE_INFO_KHR; } -unsafe impl ExtendsVideoProfileInfoKHR for VideoDecodeH264ProfileInfoKHR<'_> {} -unsafe impl ExtendsQueryPoolCreateInfo for VideoDecodeH264ProfileInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoDecodeH264ProfileInfoKHR<'a> {} +unsafe impl<'a> Extends> for VideoDecodeH264ProfileInfoKHR<'a> {} impl<'a> VideoDecodeH264ProfileInfoKHR<'a> { #[inline] pub fn std_profile_idc(mut self, std_profile_idc: StdVideoH264ProfileIdc) -> Self { @@ -42400,7 +41627,7 @@ impl ::core::default::Default for VideoDecodeH264CapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeH264CapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H264_CAPABILITIES_KHR; } -unsafe impl ExtendsVideoCapabilitiesKHR for VideoDecodeH264CapabilitiesKHR<'_> {} +unsafe impl<'a> Extends> for VideoDecodeH264CapabilitiesKHR<'a> {} impl<'a> VideoDecodeH264CapabilitiesKHR<'a> { #[inline] pub fn max_level_idc(mut self, max_level_idc: StdVideoH264LevelIdc) -> Self { @@ -42447,8 +41674,8 @@ unsafe impl<'a> TaggedStructure for VideoDecodeH264SessionParametersAddInfoKHR<' const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR; } -unsafe impl ExtendsVideoSessionParametersUpdateInfoKHR - for VideoDecodeH264SessionParametersAddInfoKHR<'_> +unsafe impl<'a> Extends> + for VideoDecodeH264SessionParametersAddInfoKHR<'a> { } impl<'a> VideoDecodeH264SessionParametersAddInfoKHR<'a> { @@ -42497,8 +41724,8 @@ unsafe impl<'a> TaggedStructure for VideoDecodeH264SessionParametersCreateInfoKH const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR; } -unsafe impl ExtendsVideoSessionParametersCreateInfoKHR - for VideoDecodeH264SessionParametersCreateInfoKHR<'_> +unsafe impl<'a> Extends> + for VideoDecodeH264SessionParametersCreateInfoKHR<'a> { } impl<'a> VideoDecodeH264SessionParametersCreateInfoKHR<'a> { @@ -42552,7 +41779,7 @@ impl ::core::default::Default for VideoDecodeH264PictureInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeH264PictureInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H264_PICTURE_INFO_KHR; } -unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeH264PictureInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoDecodeH264PictureInfoKHR<'a> {} impl<'a> VideoDecodeH264PictureInfoKHR<'a> { #[inline] pub fn std_picture_info(mut self, std_picture_info: &'a StdVideoDecodeH264PictureInfo) -> Self { @@ -42593,7 +41820,7 @@ impl ::core::default::Default for VideoDecodeH264DpbSlotInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeH264DpbSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR; } -unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoDecodeH264DpbSlotInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoDecodeH264DpbSlotInfoKHR<'a> {} impl<'a> VideoDecodeH264DpbSlotInfoKHR<'a> { #[inline] pub fn std_reference_info( @@ -42631,8 +41858,8 @@ impl ::core::default::Default for VideoDecodeH265ProfileInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeH265ProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H265_PROFILE_INFO_KHR; } -unsafe impl ExtendsVideoProfileInfoKHR for VideoDecodeH265ProfileInfoKHR<'_> {} -unsafe impl ExtendsQueryPoolCreateInfo for VideoDecodeH265ProfileInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoDecodeH265ProfileInfoKHR<'a> {} +unsafe impl<'a> Extends> for VideoDecodeH265ProfileInfoKHR<'a> {} impl<'a> VideoDecodeH265ProfileInfoKHR<'a> { #[inline] pub fn std_profile_idc(mut self, std_profile_idc: StdVideoH265ProfileIdc) -> Self { @@ -42667,7 +41894,7 @@ impl ::core::default::Default for VideoDecodeH265CapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeH265CapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H265_CAPABILITIES_KHR; } -unsafe impl ExtendsVideoCapabilitiesKHR for VideoDecodeH265CapabilitiesKHR<'_> {} +unsafe impl<'a> Extends> for VideoDecodeH265CapabilitiesKHR<'a> {} impl<'a> VideoDecodeH265CapabilitiesKHR<'a> { #[inline] pub fn max_level_idc(mut self, max_level_idc: StdVideoH265LevelIdc) -> Self { @@ -42713,8 +41940,8 @@ unsafe impl<'a> TaggedStructure for VideoDecodeH265SessionParametersAddInfoKHR<' const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR; } -unsafe impl ExtendsVideoSessionParametersUpdateInfoKHR - for VideoDecodeH265SessionParametersAddInfoKHR<'_> +unsafe impl<'a> Extends> + for VideoDecodeH265SessionParametersAddInfoKHR<'a> { } impl<'a> VideoDecodeH265SessionParametersAddInfoKHR<'a> { @@ -42771,8 +41998,8 @@ unsafe impl<'a> TaggedStructure for VideoDecodeH265SessionParametersCreateInfoKH const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR; } -unsafe impl ExtendsVideoSessionParametersCreateInfoKHR - for VideoDecodeH265SessionParametersCreateInfoKHR<'_> +unsafe impl<'a> Extends> + for VideoDecodeH265SessionParametersCreateInfoKHR<'a> { } impl<'a> VideoDecodeH265SessionParametersCreateInfoKHR<'a> { @@ -42831,7 +42058,7 @@ impl ::core::default::Default for VideoDecodeH265PictureInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeH265PictureInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H265_PICTURE_INFO_KHR; } -unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeH265PictureInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoDecodeH265PictureInfoKHR<'a> {} impl<'a> VideoDecodeH265PictureInfoKHR<'a> { #[inline] pub fn std_picture_info(mut self, std_picture_info: &'a StdVideoDecodeH265PictureInfo) -> Self { @@ -42872,7 +42099,7 @@ impl ::core::default::Default for VideoDecodeH265DpbSlotInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeH265DpbSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR; } -unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoDecodeH265DpbSlotInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoDecodeH265DpbSlotInfoKHR<'a> {} impl<'a> VideoDecodeH265DpbSlotInfoKHR<'a> { #[inline] pub fn std_reference_info( @@ -42912,8 +42139,8 @@ impl ::core::default::Default for VideoDecodeAV1ProfileInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeAV1ProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_PROFILE_INFO_KHR; } -unsafe impl ExtendsVideoProfileInfoKHR for VideoDecodeAV1ProfileInfoKHR<'_> {} -unsafe impl ExtendsQueryPoolCreateInfo for VideoDecodeAV1ProfileInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoDecodeAV1ProfileInfoKHR<'a> {} +unsafe impl<'a> Extends> for VideoDecodeAV1ProfileInfoKHR<'a> {} impl<'a> VideoDecodeAV1ProfileInfoKHR<'a> { #[inline] pub fn std_profile(mut self, std_profile: StdVideoAV1Profile) -> Self { @@ -42953,7 +42180,7 @@ impl ::core::default::Default for VideoDecodeAV1CapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeAV1CapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_CAPABILITIES_KHR; } -unsafe impl ExtendsVideoCapabilitiesKHR for VideoDecodeAV1CapabilitiesKHR<'_> {} +unsafe impl<'a> Extends> for VideoDecodeAV1CapabilitiesKHR<'a> {} impl<'a> VideoDecodeAV1CapabilitiesKHR<'a> { #[inline] pub fn max_level(mut self, max_level: StdVideoAV1Level) -> Self { @@ -42989,8 +42216,8 @@ unsafe impl<'a> TaggedStructure for VideoDecodeAV1SessionParametersCreateInfoKHR const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR; } -unsafe impl ExtendsVideoSessionParametersCreateInfoKHR - for VideoDecodeAV1SessionParametersCreateInfoKHR<'_> +unsafe impl<'a> Extends> + for VideoDecodeAV1SessionParametersCreateInfoKHR<'a> { } impl<'a> VideoDecodeAV1SessionParametersCreateInfoKHR<'a> { @@ -43040,7 +42267,7 @@ impl ::core::default::Default for VideoDecodeAV1PictureInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeAV1PictureInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_PICTURE_INFO_KHR; } -unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeAV1PictureInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoDecodeAV1PictureInfoKHR<'a> {} impl<'a> VideoDecodeAV1PictureInfoKHR<'a> { #[inline] pub fn std_picture_info(mut self, std_picture_info: &'a StdVideoDecodeAV1PictureInfo) -> Self { @@ -43100,7 +42327,7 @@ impl ::core::default::Default for VideoDecodeAV1DpbSlotInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeAV1DpbSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR; } -unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoDecodeAV1DpbSlotInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoDecodeAV1DpbSlotInfoKHR<'a> {} impl<'a> VideoDecodeAV1DpbSlotInfoKHR<'a> { #[inline] pub fn std_reference_info( @@ -43154,7 +42381,7 @@ impl ::core::default::Default for VideoSessionCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoSessionCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_SESSION_CREATE_INFO_KHR; } -pub unsafe trait ExtendsVideoSessionCreateInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for VideoSessionCreateInfoKHR<'_> {} impl<'a> VideoSessionCreateInfoKHR<'a> { #[inline] pub fn queue_family_index(mut self, queue_family_index: u32) -> Self { @@ -43201,23 +42428,6 @@ impl<'a> VideoSessionCreateInfoKHR<'a> { self.p_std_header_version = std_header_version; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -43250,7 +42460,7 @@ impl ::core::default::Default for VideoSessionParametersCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoSessionParametersCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR; } -pub unsafe trait ExtendsVideoSessionParametersCreateInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for VideoSessionParametersCreateInfoKHR<'_> {} impl<'a> VideoSessionParametersCreateInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoSessionParametersCreateFlagsKHR) -> Self { @@ -43270,23 +42480,6 @@ impl<'a> VideoSessionParametersCreateInfoKHR<'a> { self.video_session = video_session; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -43315,30 +42508,13 @@ impl ::core::default::Default for VideoSessionParametersUpdateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoSessionParametersUpdateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR; } -pub unsafe trait ExtendsVideoSessionParametersUpdateInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for VideoSessionParametersUpdateInfoKHR<'_> {} impl<'a> VideoSessionParametersUpdateInfoKHR<'a> { #[inline] pub fn update_sequence_count(mut self, update_sequence_count: u32) -> Self { self.update_sequence_count = update_sequence_count; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -43368,7 +42544,7 @@ unsafe impl<'a> TaggedStructure for VideoEncodeSessionParametersGetInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR; } -pub unsafe trait ExtendsVideoEncodeSessionParametersGetInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for VideoEncodeSessionParametersGetInfoKHR<'_> {} impl<'a> VideoEncodeSessionParametersGetInfoKHR<'a> { #[inline] pub fn video_session_parameters( @@ -43378,23 +42554,6 @@ impl<'a> VideoEncodeSessionParametersGetInfoKHR<'a> { self.video_session_parameters = video_session_parameters; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -43424,30 +42583,13 @@ unsafe impl<'a> TaggedStructure for VideoEncodeSessionParametersFeedbackInfoKHR< const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR; } -pub unsafe trait ExtendsVideoEncodeSessionParametersFeedbackInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for VideoEncodeSessionParametersFeedbackInfoKHR<'_> {} impl<'a> VideoEncodeSessionParametersFeedbackInfoKHR<'a> { #[inline] pub fn has_overrides(mut self, has_overrides: bool) -> Self { self.has_overrides = has_overrides.into(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -43484,7 +42626,7 @@ impl ::core::default::Default for VideoBeginCodingInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoBeginCodingInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_BEGIN_CODING_INFO_KHR; } -pub unsafe trait ExtendsVideoBeginCodingInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for VideoBeginCodingInfoKHR<'_> {} impl<'a> VideoBeginCodingInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoBeginCodingFlagsKHR) -> Self { @@ -43510,23 +42652,6 @@ impl<'a> VideoBeginCodingInfoKHR<'a> { self.p_reference_slots = reference_slots.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -43589,30 +42714,13 @@ impl ::core::default::Default for VideoCodingControlInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoCodingControlInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_CODING_CONTROL_INFO_KHR; } -pub unsafe trait ExtendsVideoCodingControlInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for VideoCodingControlInfoKHR<'_> {} impl<'a> VideoCodingControlInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoCodingControlFlagsKHR) -> Self { self.flags = flags; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -43645,8 +42753,8 @@ impl ::core::default::Default for VideoEncodeUsageInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeUsageInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_USAGE_INFO_KHR; } -unsafe impl ExtendsVideoProfileInfoKHR for VideoEncodeUsageInfoKHR<'_> {} -unsafe impl ExtendsQueryPoolCreateInfo for VideoEncodeUsageInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoEncodeUsageInfoKHR<'a> {} +unsafe impl<'a> Extends> for VideoEncodeUsageInfoKHR<'a> {} impl<'a> VideoEncodeUsageInfoKHR<'a> { #[inline] pub fn video_usage_hints(mut self, video_usage_hints: VideoEncodeUsageFlagsKHR) -> Self { @@ -43707,7 +42815,7 @@ impl ::core::default::Default for VideoEncodeInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_INFO_KHR; } -pub unsafe trait ExtendsVideoEncodeInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for VideoEncodeInfoKHR<'_> {} impl<'a> VideoEncodeInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeFlagsKHR) -> Self { @@ -43759,20 +42867,6 @@ impl<'a> VideoEncodeInfoKHR<'a> { self.preceding_externally_encoded_bytes = preceding_externally_encoded_bytes; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -43802,7 +42896,7 @@ unsafe impl<'a> TaggedStructure for QueryPoolVideoEncodeFeedbackCreateInfoKHR<'a const STRUCTURE_TYPE: StructureType = StructureType::QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR; } -unsafe impl ExtendsQueryPoolCreateInfo for QueryPoolVideoEncodeFeedbackCreateInfoKHR<'_> {} +unsafe impl<'a> Extends> for QueryPoolVideoEncodeFeedbackCreateInfoKHR<'a> {} impl<'a> QueryPoolVideoEncodeFeedbackCreateInfoKHR<'a> { #[inline] pub fn encode_feedback_flags( @@ -43840,8 +42934,11 @@ impl ::core::default::Default for VideoEncodeQualityLevelInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeQualityLevelInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR; } -unsafe impl ExtendsVideoCodingControlInfoKHR for VideoEncodeQualityLevelInfoKHR<'_> {} -unsafe impl ExtendsVideoSessionParametersCreateInfoKHR for VideoEncodeQualityLevelInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoEncodeQualityLevelInfoKHR<'a> {} +unsafe impl<'a> Extends> + for VideoEncodeQualityLevelInfoKHR<'a> +{ +} impl<'a> VideoEncodeQualityLevelInfoKHR<'a> { #[inline] pub fn quality_level(mut self, quality_level: u32) -> Self { @@ -43920,7 +43017,7 @@ impl ::core::default::Default for VideoEncodeQualityLevelPropertiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeQualityLevelPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR; } -pub unsafe trait ExtendsVideoEncodeQualityLevelPropertiesKHR {} +unsafe impl<'a> BaseTaggedStructure for VideoEncodeQualityLevelPropertiesKHR<'_> {} impl<'a> VideoEncodeQualityLevelPropertiesKHR<'a> { #[inline] pub fn preferred_rate_control_mode( @@ -43938,23 +43035,6 @@ impl<'a> VideoEncodeQualityLevelPropertiesKHR<'a> { self.preferred_rate_control_layer_count = preferred_rate_control_layer_count; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -43993,8 +43073,8 @@ impl ::core::default::Default for VideoEncodeRateControlInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeRateControlInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_RATE_CONTROL_INFO_KHR; } -unsafe impl ExtendsVideoCodingControlInfoKHR for VideoEncodeRateControlInfoKHR<'_> {} -unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeRateControlInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoEncodeRateControlInfoKHR<'a> {} +unsafe impl<'a> Extends> for VideoEncodeRateControlInfoKHR<'a> {} impl<'a> VideoEncodeRateControlInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeRateControlFlagsKHR) -> Self { @@ -44062,7 +43142,7 @@ impl ::core::default::Default for VideoEncodeRateControlLayerInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeRateControlLayerInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR; } -pub unsafe trait ExtendsVideoEncodeRateControlLayerInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for VideoEncodeRateControlLayerInfoKHR<'_> {} impl<'a> VideoEncodeRateControlLayerInfoKHR<'a> { #[inline] pub fn average_bitrate(mut self, average_bitrate: u64) -> Self { @@ -44084,23 +43164,6 @@ impl<'a> VideoEncodeRateControlLayerInfoKHR<'a> { self.frame_rate_denominator = frame_rate_denominator; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -44141,7 +43204,7 @@ impl ::core::default::Default for VideoEncodeCapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeCapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_CAPABILITIES_KHR; } -unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeCapabilitiesKHR<'_> {} +unsafe impl<'a> Extends> for VideoEncodeCapabilitiesKHR<'a> {} impl<'a> VideoEncodeCapabilitiesKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeCapabilityFlagsKHR) -> Self { @@ -44239,7 +43302,7 @@ impl ::core::default::Default for VideoEncodeH264CapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH264CapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_CAPABILITIES_KHR; } -unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeH264CapabilitiesKHR<'_> {} +unsafe impl<'a> Extends> for VideoEncodeH264CapabilitiesKHR<'a> {} impl<'a> VideoEncodeH264CapabilitiesKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeH264CapabilityFlagsKHR) -> Self { @@ -44360,8 +43423,8 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH264QualityLevelPropertiesKHR<'a> const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR; } -unsafe impl ExtendsVideoEncodeQualityLevelPropertiesKHR - for VideoEncodeH264QualityLevelPropertiesKHR<'_> +unsafe impl<'a> Extends> + for VideoEncodeH264QualityLevelPropertiesKHR<'a> { } impl<'a> VideoEncodeH264QualityLevelPropertiesKHR<'a> { @@ -44455,7 +43518,7 @@ impl ::core::default::Default for VideoEncodeH264SessionCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH264SessionCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR; } -unsafe impl ExtendsVideoSessionCreateInfoKHR for VideoEncodeH264SessionCreateInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoEncodeH264SessionCreateInfoKHR<'a> {} impl<'a> VideoEncodeH264SessionCreateInfoKHR<'a> { #[inline] pub fn use_max_level_idc(mut self, use_max_level_idc: bool) -> Self { @@ -44502,8 +43565,8 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH264SessionParametersAddInfoKHR<' const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR; } -unsafe impl ExtendsVideoSessionParametersUpdateInfoKHR - for VideoEncodeH264SessionParametersAddInfoKHR<'_> +unsafe impl<'a> Extends> + for VideoEncodeH264SessionParametersAddInfoKHR<'a> { } impl<'a> VideoEncodeH264SessionParametersAddInfoKHR<'a> { @@ -44552,8 +43615,8 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH264SessionParametersCreateInfoKH const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR; } -unsafe impl ExtendsVideoSessionParametersCreateInfoKHR - for VideoEncodeH264SessionParametersCreateInfoKHR<'_> +unsafe impl<'a> Extends> + for VideoEncodeH264SessionParametersCreateInfoKHR<'a> { } impl<'a> VideoEncodeH264SessionParametersCreateInfoKHR<'a> { @@ -44610,8 +43673,8 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH264SessionParametersGetInfoKHR<' const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR; } -unsafe impl ExtendsVideoEncodeSessionParametersGetInfoKHR - for VideoEncodeH264SessionParametersGetInfoKHR<'_> +unsafe impl<'a> Extends> + for VideoEncodeH264SessionParametersGetInfoKHR<'a> { } impl<'a> VideoEncodeH264SessionParametersGetInfoKHR<'a> { @@ -44666,8 +43729,8 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH264SessionParametersFeedbackInfo const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR; } -unsafe impl ExtendsVideoEncodeSessionParametersFeedbackInfoKHR - for VideoEncodeH264SessionParametersFeedbackInfoKHR<'_> +unsafe impl<'a> Extends> + for VideoEncodeH264SessionParametersFeedbackInfoKHR<'a> { } impl<'a> VideoEncodeH264SessionParametersFeedbackInfoKHR<'a> { @@ -44709,7 +43772,7 @@ impl ::core::default::Default for VideoEncodeH264DpbSlotInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH264DpbSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR; } -unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoEncodeH264DpbSlotInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoEncodeH264DpbSlotInfoKHR<'a> {} impl<'a> VideoEncodeH264DpbSlotInfoKHR<'a> { #[inline] pub fn std_reference_info( @@ -44753,7 +43816,7 @@ impl ::core::default::Default for VideoEncodeH264PictureInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH264PictureInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_PICTURE_INFO_KHR; } -unsafe impl ExtendsVideoEncodeInfoKHR for VideoEncodeH264PictureInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoEncodeH264PictureInfoKHR<'a> {} impl<'a> VideoEncodeH264PictureInfoKHR<'a> { #[inline] pub fn nalu_slice_entries( @@ -44802,8 +43865,8 @@ impl ::core::default::Default for VideoEncodeH264ProfileInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH264ProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_PROFILE_INFO_KHR; } -unsafe impl ExtendsVideoProfileInfoKHR for VideoEncodeH264ProfileInfoKHR<'_> {} -unsafe impl ExtendsQueryPoolCreateInfo for VideoEncodeH264ProfileInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoEncodeH264ProfileInfoKHR<'a> {} +unsafe impl<'a> Extends> for VideoEncodeH264ProfileInfoKHR<'a> {} impl<'a> VideoEncodeH264ProfileInfoKHR<'a> { #[inline] pub fn std_profile_idc(mut self, std_profile_idc: StdVideoH264ProfileIdc) -> Self { @@ -44887,8 +43950,8 @@ impl ::core::default::Default for VideoEncodeH264RateControlInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH264RateControlInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR; } -unsafe impl ExtendsVideoCodingControlInfoKHR for VideoEncodeH264RateControlInfoKHR<'_> {} -unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeH264RateControlInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoEncodeH264RateControlInfoKHR<'a> {} +unsafe impl<'a> Extends> for VideoEncodeH264RateControlInfoKHR<'a> {} impl<'a> VideoEncodeH264RateControlInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeH264RateControlFlagsKHR) -> Self { @@ -45004,7 +44067,10 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH264GopRemainingFrameInfoKHR<'a> const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR; } -unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeH264GopRemainingFrameInfoKHR<'_> {} +unsafe impl<'a> Extends> + for VideoEncodeH264GopRemainingFrameInfoKHR<'a> +{ +} impl<'a> VideoEncodeH264GopRemainingFrameInfoKHR<'a> { #[inline] pub fn use_gop_remaining_frames(mut self, use_gop_remaining_frames: bool) -> Self { @@ -45065,8 +44131,8 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH264RateControlLayerInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR; } -unsafe impl ExtendsVideoEncodeRateControlLayerInfoKHR - for VideoEncodeH264RateControlLayerInfoKHR<'_> +unsafe impl<'a> Extends> + for VideoEncodeH264RateControlLayerInfoKHR<'a> { } impl<'a> VideoEncodeH264RateControlLayerInfoKHR<'a> { @@ -45158,7 +44224,7 @@ impl ::core::default::Default for VideoEncodeH265CapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH265CapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_CAPABILITIES_KHR; } -unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeH265CapabilitiesKHR<'_> {} +unsafe impl<'a> Extends> for VideoEncodeH265CapabilitiesKHR<'a> {} impl<'a> VideoEncodeH265CapabilitiesKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeH265CapabilityFlagsKHR) -> Self { @@ -45296,8 +44362,8 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH265QualityLevelPropertiesKHR<'a> const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR; } -unsafe impl ExtendsVideoEncodeQualityLevelPropertiesKHR - for VideoEncodeH265QualityLevelPropertiesKHR<'_> +unsafe impl<'a> Extends> + for VideoEncodeH265QualityLevelPropertiesKHR<'a> { } impl<'a> VideoEncodeH265QualityLevelPropertiesKHR<'a> { @@ -45383,7 +44449,7 @@ impl ::core::default::Default for VideoEncodeH265SessionCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH265SessionCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR; } -unsafe impl ExtendsVideoSessionCreateInfoKHR for VideoEncodeH265SessionCreateInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoEncodeH265SessionCreateInfoKHR<'a> {} impl<'a> VideoEncodeH265SessionCreateInfoKHR<'a> { #[inline] pub fn use_max_level_idc(mut self, use_max_level_idc: bool) -> Self { @@ -45434,8 +44500,8 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH265SessionParametersAddInfoKHR<' const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR; } -unsafe impl ExtendsVideoSessionParametersUpdateInfoKHR - for VideoEncodeH265SessionParametersAddInfoKHR<'_> +unsafe impl<'a> Extends> + for VideoEncodeH265SessionParametersAddInfoKHR<'a> { } impl<'a> VideoEncodeH265SessionParametersAddInfoKHR<'a> { @@ -45492,8 +44558,8 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH265SessionParametersCreateInfoKH const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR; } -unsafe impl ExtendsVideoSessionParametersCreateInfoKHR - for VideoEncodeH265SessionParametersCreateInfoKHR<'_> +unsafe impl<'a> Extends> + for VideoEncodeH265SessionParametersCreateInfoKHR<'a> { } impl<'a> VideoEncodeH265SessionParametersCreateInfoKHR<'a> { @@ -45559,8 +44625,8 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH265SessionParametersGetInfoKHR<' const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR; } -unsafe impl ExtendsVideoEncodeSessionParametersGetInfoKHR - for VideoEncodeH265SessionParametersGetInfoKHR<'_> +unsafe impl<'a> Extends> + for VideoEncodeH265SessionParametersGetInfoKHR<'a> { } impl<'a> VideoEncodeH265SessionParametersGetInfoKHR<'a> { @@ -45627,8 +44693,8 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH265SessionParametersFeedbackInfo const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR; } -unsafe impl ExtendsVideoEncodeSessionParametersFeedbackInfoKHR - for VideoEncodeH265SessionParametersFeedbackInfoKHR<'_> +unsafe impl<'a> Extends> + for VideoEncodeH265SessionParametersFeedbackInfoKHR<'a> { } impl<'a> VideoEncodeH265SessionParametersFeedbackInfoKHR<'a> { @@ -45679,7 +44745,7 @@ impl ::core::default::Default for VideoEncodeH265PictureInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH265PictureInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_PICTURE_INFO_KHR; } -unsafe impl ExtendsVideoEncodeInfoKHR for VideoEncodeH265PictureInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoEncodeH265PictureInfoKHR<'a> {} impl<'a> VideoEncodeH265PictureInfoKHR<'a> { #[inline] pub fn nalu_slice_segment_entries( @@ -45776,8 +44842,8 @@ impl ::core::default::Default for VideoEncodeH265RateControlInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH265RateControlInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR; } -unsafe impl ExtendsVideoCodingControlInfoKHR for VideoEncodeH265RateControlInfoKHR<'_> {} -unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeH265RateControlInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoEncodeH265RateControlInfoKHR<'a> {} +unsafe impl<'a> Extends> for VideoEncodeH265RateControlInfoKHR<'a> {} impl<'a> VideoEncodeH265RateControlInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeH265RateControlFlagsKHR) -> Self { @@ -45893,7 +44959,10 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH265GopRemainingFrameInfoKHR<'a> const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR; } -unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeH265GopRemainingFrameInfoKHR<'_> {} +unsafe impl<'a> Extends> + for VideoEncodeH265GopRemainingFrameInfoKHR<'a> +{ +} impl<'a> VideoEncodeH265GopRemainingFrameInfoKHR<'a> { #[inline] pub fn use_gop_remaining_frames(mut self, use_gop_remaining_frames: bool) -> Self { @@ -45954,8 +45023,8 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH265RateControlLayerInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR; } -unsafe impl ExtendsVideoEncodeRateControlLayerInfoKHR - for VideoEncodeH265RateControlLayerInfoKHR<'_> +unsafe impl<'a> Extends> + for VideoEncodeH265RateControlLayerInfoKHR<'a> { } impl<'a> VideoEncodeH265RateControlLayerInfoKHR<'a> { @@ -46017,8 +45086,8 @@ impl ::core::default::Default for VideoEncodeH265ProfileInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH265ProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_PROFILE_INFO_KHR; } -unsafe impl ExtendsVideoProfileInfoKHR for VideoEncodeH265ProfileInfoKHR<'_> {} -unsafe impl ExtendsQueryPoolCreateInfo for VideoEncodeH265ProfileInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoEncodeH265ProfileInfoKHR<'a> {} +unsafe impl<'a> Extends> for VideoEncodeH265ProfileInfoKHR<'a> {} impl<'a> VideoEncodeH265ProfileInfoKHR<'a> { #[inline] pub fn std_profile_idc(mut self, std_profile_idc: StdVideoH265ProfileIdc) -> Self { @@ -46053,7 +45122,7 @@ impl ::core::default::Default for VideoEncodeH265DpbSlotInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH265DpbSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR; } -unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoEncodeH265DpbSlotInfoKHR<'_> {} +unsafe impl<'a> Extends> for VideoEncodeH265DpbSlotInfoKHR<'a> {} impl<'a> VideoEncodeH265DpbSlotInfoKHR<'a> { #[inline] pub fn std_reference_info( @@ -46092,11 +45161,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceInheritedViewportScissorFeatur const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceInheritedViewportScissorFeaturesNV<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceInheritedViewportScissorFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceInheritedViewportScissorFeaturesNV<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceInheritedViewportScissorFeaturesNV<'_> {} impl<'a> PhysicalDeviceInheritedViewportScissorFeaturesNV<'a> { #[inline] pub fn inherited_viewport_scissor2_d(mut self, inherited_viewport_scissor2_d: bool) -> Self { @@ -46136,8 +45208,8 @@ unsafe impl<'a> TaggedStructure for CommandBufferInheritanceViewportScissorInfoN const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV; } -unsafe impl ExtendsCommandBufferInheritanceInfo - for CommandBufferInheritanceViewportScissorInfoNV<'_> +unsafe impl<'a> Extends> + for CommandBufferInheritanceViewportScissorInfoNV<'a> { } impl<'a> CommandBufferInheritanceViewportScissorInfoNV<'a> { @@ -46185,8 +45257,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceYcbcr2Plane444FormatsFeaturesE const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'a> +{ +} impl<'a> PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'a> { #[inline] pub fn ycbcr2plane444_formats(mut self, ycbcr2plane444_formats: bool) -> Self { @@ -46224,8 +45302,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceProvokingVertexFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceProvokingVertexFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceProvokingVertexFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceProvokingVertexFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceProvokingVertexFeaturesEXT<'a> {} impl<'a> PhysicalDeviceProvokingVertexFeaturesEXT<'a> { #[inline] pub fn provoking_vertex_last(mut self, provoking_vertex_last: bool) -> Self { @@ -46272,7 +45353,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceProvokingVertexPropertiesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceProvokingVertexPropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceProvokingVertexPropertiesEXT<'a> +{ +} impl<'a> PhysicalDeviceProvokingVertexPropertiesEXT<'a> { #[inline] pub fn provoking_vertex_mode_per_pipeline( @@ -46320,8 +45404,8 @@ unsafe impl<'a> TaggedStructure for PipelineRasterizationProvokingVertexStateCre const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineRasterizationStateCreateInfo - for PipelineRasterizationProvokingVertexStateCreateInfoEXT<'_> +unsafe impl<'a> Extends> + for PipelineRasterizationProvokingVertexStateCreateInfoEXT<'a> { } impl<'a> PipelineRasterizationProvokingVertexStateCreateInfoEXT<'a> { @@ -46554,8 +45638,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorBufferFeaturesEXT<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDescriptorBufferFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorBufferFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceDescriptorBufferFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceDescriptorBufferFeaturesEXT<'a> {} impl<'a> PhysicalDeviceDescriptorBufferFeaturesEXT<'a> { #[inline] pub fn descriptor_buffer(mut self, descriptor_buffer: bool) -> Self { @@ -46679,7 +45766,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorBufferPropertiesEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceDescriptorBufferPropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceDescriptorBufferPropertiesEXT<'a> +{ +} impl<'a> PhysicalDeviceDescriptorBufferPropertiesEXT<'a> { #[inline] pub fn combined_image_sampler_descriptor_single_array( @@ -46960,8 +46050,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorBufferDensityMapProp const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'a> { } impl<'a> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'a> { @@ -47052,7 +46142,7 @@ impl ::core::default::Default for DescriptorBufferBindingInfoEXT<'_> { unsafe impl<'a> TaggedStructure for DescriptorBufferBindingInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_BUFFER_BINDING_INFO_EXT; } -pub unsafe trait ExtendsDescriptorBufferBindingInfoEXT {} +unsafe impl<'a> BaseTaggedStructure for DescriptorBufferBindingInfoEXT<'_> {} impl<'a> DescriptorBufferBindingInfoEXT<'a> { #[inline] pub fn address(mut self, address: DeviceAddress) -> Self { @@ -47064,23 +46154,6 @@ impl<'a> DescriptorBufferBindingInfoEXT<'a> { self.usage = usage; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -47110,8 +46183,8 @@ unsafe impl<'a> TaggedStructure for DescriptorBufferBindingPushDescriptorBufferH const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT; } -unsafe impl ExtendsDescriptorBufferBindingInfoEXT - for DescriptorBufferBindingPushDescriptorBufferHandleEXT<'_> +unsafe impl<'a> Extends> + for DescriptorBufferBindingPushDescriptorBufferHandleEXT<'a> { } impl<'a> DescriptorBufferBindingPushDescriptorBufferHandleEXT<'a> { @@ -47406,16 +46479,16 @@ unsafe impl<'a> TaggedStructure for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT; } -unsafe impl ExtendsBufferCreateInfo for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} -unsafe impl ExtendsImageCreateInfo for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} -unsafe impl ExtendsImageViewCreateInfo for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} -unsafe impl ExtendsSamplerCreateInfo for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} -unsafe impl ExtendsAccelerationStructureCreateInfoKHR - for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> +unsafe impl<'a> Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> {} +unsafe impl<'a> Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> {} +unsafe impl<'a> Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> {} +unsafe impl<'a> Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> {} +unsafe impl<'a> Extends> + for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> { } -unsafe impl ExtendsAccelerationStructureCreateInfoNV - for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> +unsafe impl<'a> Extends> + for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> { } impl<'a> OpaqueCaptureDescriptorDataCreateInfoEXT<'a> { @@ -47456,8 +46529,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderIntegerDotProductFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderIntegerDotProductFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderIntegerDotProductFeatures<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderIntegerDotProductFeatures<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderIntegerDotProductFeatures<'a> +{ +} impl<'a> PhysicalDeviceShaderIntegerDotProductFeatures<'a> { #[inline] pub fn shader_integer_dot_product(mut self, shader_integer_dot_product: bool) -> Self { @@ -47518,8 +46597,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderIntegerDotProductPropert const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceShaderIntegerDotProductProperties<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceShaderIntegerDotProductProperties<'a> { } impl<'a> PhysicalDeviceShaderIntegerDotProductProperties<'a> { @@ -47830,7 +46909,7 @@ impl ::core::default::Default for PhysicalDeviceDrmPropertiesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceDrmPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DRM_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceDrmPropertiesEXT<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceDrmPropertiesEXT<'a> {} impl<'a> PhysicalDeviceDrmPropertiesEXT<'a> { #[inline] pub fn has_primary(mut self, has_primary: bool) -> Self { @@ -47891,11 +46970,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShaderBarycentricFeatu const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'_> {} impl<'a> PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a> { #[inline] pub fn fragment_shader_barycentric(mut self, fragment_shader_barycentric: bool) -> Self { @@ -47931,8 +47013,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShaderBarycentricPrope const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'a> { } impl<'a> PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'a> { @@ -47976,8 +47058,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingMotionBlurFeaturesNV const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a> {} impl<'a> PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a> { #[inline] pub fn ray_tracing_motion_blur(mut self, ray_tracing_motion_blur: bool) -> Self { @@ -48022,8 +47107,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingValidationFeaturesNV const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRayTracingValidationFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingValidationFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceRayTracingValidationFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceRayTracingValidationFeaturesNV<'a> {} impl<'a> PhysicalDeviceRayTracingValidationFeaturesNV<'a> { #[inline] pub fn ray_tracing_validation(mut self, ray_tracing_validation: bool) -> Self { @@ -48068,8 +47156,8 @@ unsafe impl<'a> TaggedStructure for AccelerationStructureGeometryMotionTriangles const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV; } -unsafe impl ExtendsAccelerationStructureGeometryTrianglesDataKHR - for AccelerationStructureGeometryMotionTrianglesDataNV<'_> +unsafe impl<'a> Extends> + for AccelerationStructureGeometryMotionTrianglesDataNV<'a> { } impl<'a> AccelerationStructureGeometryMotionTrianglesDataNV<'a> { @@ -48108,7 +47196,10 @@ impl ::core::default::Default for AccelerationStructureMotionInfoNV<'_> { unsafe impl<'a> TaggedStructure for AccelerationStructureMotionInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_MOTION_INFO_NV; } -unsafe impl ExtendsAccelerationStructureCreateInfoKHR for AccelerationStructureMotionInfoNV<'_> {} +unsafe impl<'a> Extends> + for AccelerationStructureMotionInfoNV<'a> +{ +} impl<'a> AccelerationStructureMotionInfoNV<'a> { #[inline] pub fn max_instances(mut self, max_instances: u32) -> Self { @@ -48372,7 +47463,7 @@ impl ::core::default::Default for ImportMemoryBufferCollectionFUCHSIA<'_> { unsafe impl<'a> TaggedStructure for ImportMemoryBufferCollectionFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA; } -unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryBufferCollectionFUCHSIA<'_> {} +unsafe impl<'a> Extends> for ImportMemoryBufferCollectionFUCHSIA<'a> {} impl<'a> ImportMemoryBufferCollectionFUCHSIA<'a> { #[inline] pub fn collection(mut self, collection: BufferCollectionFUCHSIA) -> Self { @@ -48415,7 +47506,7 @@ unsafe impl<'a> TaggedStructure for BufferCollectionImageCreateInfoFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA; } -unsafe impl ExtendsImageCreateInfo for BufferCollectionImageCreateInfoFUCHSIA<'_> {} +unsafe impl<'a> Extends> for BufferCollectionImageCreateInfoFUCHSIA<'a> {} impl<'a> BufferCollectionImageCreateInfoFUCHSIA<'a> { #[inline] pub fn collection(mut self, collection: BufferCollectionFUCHSIA) -> Self { @@ -48458,7 +47549,7 @@ unsafe impl<'a> TaggedStructure for BufferCollectionBufferCreateInfoFUCHSIA<'a> const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA; } -unsafe impl ExtendsBufferCreateInfo for BufferCollectionBufferCreateInfoFUCHSIA<'_> {} +unsafe impl<'a> Extends> for BufferCollectionBufferCreateInfoFUCHSIA<'a> {} impl<'a> BufferCollectionBufferCreateInfoFUCHSIA<'a> { #[inline] pub fn collection(mut self, collection: BufferCollectionFUCHSIA) -> Self { @@ -49127,8 +48218,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a> {} impl<'a> PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a> { #[inline] pub fn format_rgba10x6_without_y_cb_cr_sampler( @@ -49171,7 +48265,7 @@ impl ::core::default::Default for FormatProperties3<'_> { unsafe impl<'a> TaggedStructure for FormatProperties3<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FORMAT_PROPERTIES_3; } -unsafe impl ExtendsFormatProperties2 for FormatProperties3<'_> {} +unsafe impl<'a> Extends> for FormatProperties3<'a> {} impl<'a> FormatProperties3<'a> { #[inline] pub fn linear_tiling_features(mut self, linear_tiling_features: FormatFeatureFlags2) -> Self { @@ -49218,7 +48312,7 @@ impl ::core::default::Default for DrmFormatModifierPropertiesList2EXT<'_> { unsafe impl<'a> TaggedStructure for DrmFormatModifierPropertiesList2EXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT; } -unsafe impl ExtendsFormatProperties2 for DrmFormatModifierPropertiesList2EXT<'_> {} +unsafe impl<'a> Extends> for DrmFormatModifierPropertiesList2EXT<'a> {} impl<'a> DrmFormatModifierPropertiesList2EXT<'a> { #[inline] pub fn drm_format_modifier_properties( @@ -49302,8 +48396,8 @@ unsafe impl<'a> TaggedStructure for AndroidHardwareBufferFormatProperties2ANDROI const STRUCTURE_TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID; } -unsafe impl ExtendsAndroidHardwareBufferPropertiesANDROID - for AndroidHardwareBufferFormatProperties2ANDROID<'_> +unsafe impl<'a> Extends> + for AndroidHardwareBufferFormatProperties2ANDROID<'a> { } impl<'a> AndroidHardwareBufferFormatProperties2ANDROID<'a> { @@ -49389,7 +48483,7 @@ impl ::core::default::Default for PipelineRenderingCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineRenderingCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RENDERING_CREATE_INFO; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineRenderingCreateInfo<'_> {} +unsafe impl<'a> Extends> for PipelineRenderingCreateInfo<'a> {} impl<'a> PipelineRenderingCreateInfo<'a> { #[inline] pub fn view_mask(mut self, view_mask: u32) -> Self { @@ -49454,7 +48548,7 @@ impl ::core::default::Default for RenderingInfo<'_> { unsafe impl<'a> TaggedStructure for RenderingInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_INFO; } -pub unsafe trait ExtendsRenderingInfo {} +unsafe impl<'a> BaseTaggedStructure for RenderingInfo<'_> {} impl<'a> RenderingInfo<'a> { #[inline] pub fn flags(mut self, flags: RenderingFlags) -> Self { @@ -49498,20 +48592,6 @@ impl<'a> RenderingInfo<'a> { self.p_stencil_attachment = stencil_attachment; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[derive(Copy, Clone)] @@ -49644,7 +48724,7 @@ unsafe impl<'a> TaggedStructure for RenderingFragmentShadingRateAttachmentInfoKH const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR; } -unsafe impl ExtendsRenderingInfo for RenderingFragmentShadingRateAttachmentInfoKHR<'_> {} +unsafe impl<'a> Extends> for RenderingFragmentShadingRateAttachmentInfoKHR<'a> {} impl<'a> RenderingFragmentShadingRateAttachmentInfoKHR<'a> { #[inline] pub fn image_view(mut self, image_view: ImageView) -> Self { @@ -49695,7 +48775,7 @@ unsafe impl<'a> TaggedStructure for RenderingFragmentDensityMapAttachmentInfoEXT const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT; } -unsafe impl ExtendsRenderingInfo for RenderingFragmentDensityMapAttachmentInfoEXT<'_> {} +unsafe impl<'a> Extends> for RenderingFragmentDensityMapAttachmentInfoEXT<'a> {} impl<'a> RenderingFragmentDensityMapAttachmentInfoEXT<'a> { #[inline] pub fn image_view(mut self, image_view: ImageView) -> Self { @@ -49735,8 +48815,11 @@ impl ::core::default::Default for PhysicalDeviceDynamicRenderingFeatures<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceDynamicRenderingFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDynamicRenderingFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDynamicRenderingFeatures<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceDynamicRenderingFeatures<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceDynamicRenderingFeatures<'a> {} impl<'a> PhysicalDeviceDynamicRenderingFeatures<'a> { #[inline] pub fn dynamic_rendering(mut self, dynamic_rendering: bool) -> Self { @@ -49783,7 +48866,10 @@ impl ::core::default::Default for CommandBufferInheritanceRenderingInfo<'_> { unsafe impl<'a> TaggedStructure for CommandBufferInheritanceRenderingInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_RENDERING_INFO; } -unsafe impl ExtendsCommandBufferInheritanceInfo for CommandBufferInheritanceRenderingInfo<'_> {} +unsafe impl<'a> Extends> + for CommandBufferInheritanceRenderingInfo<'a> +{ +} impl<'a> CommandBufferInheritanceRenderingInfo<'a> { #[inline] pub fn flags(mut self, flags: RenderingFlags) -> Self { @@ -49848,8 +48934,8 @@ impl ::core::default::Default for AttachmentSampleCountInfoAMD<'_> { unsafe impl<'a> TaggedStructure for AttachmentSampleCountInfoAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_SAMPLE_COUNT_INFO_AMD; } -unsafe impl ExtendsCommandBufferInheritanceInfo for AttachmentSampleCountInfoAMD<'_> {} -unsafe impl ExtendsGraphicsPipelineCreateInfo for AttachmentSampleCountInfoAMD<'_> {} +unsafe impl<'a> Extends> for AttachmentSampleCountInfoAMD<'a> {} +unsafe impl<'a> Extends> for AttachmentSampleCountInfoAMD<'a> {} impl<'a> AttachmentSampleCountInfoAMD<'a> { #[inline] pub fn color_attachment_samples( @@ -49898,9 +48984,12 @@ impl ::core::default::Default for MultiviewPerViewAttributesInfoNVX<'_> { unsafe impl<'a> TaggedStructure for MultiviewPerViewAttributesInfoNVX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX; } -unsafe impl ExtendsCommandBufferInheritanceInfo for MultiviewPerViewAttributesInfoNVX<'_> {} -unsafe impl ExtendsGraphicsPipelineCreateInfo for MultiviewPerViewAttributesInfoNVX<'_> {} -unsafe impl ExtendsRenderingInfo for MultiviewPerViewAttributesInfoNVX<'_> {} +unsafe impl<'a> Extends> + for MultiviewPerViewAttributesInfoNVX<'a> +{ +} +unsafe impl<'a> Extends> for MultiviewPerViewAttributesInfoNVX<'a> {} +unsafe impl<'a> Extends> for MultiviewPerViewAttributesInfoNVX<'a> {} impl<'a> MultiviewPerViewAttributesInfoNVX<'a> { #[inline] pub fn per_view_attributes(mut self, per_view_attributes: bool) -> Self { @@ -49944,8 +49033,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageViewMinLodFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImageViewMinLodFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageViewMinLodFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceImageViewMinLodFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceImageViewMinLodFeaturesEXT<'a> {} impl<'a> PhysicalDeviceImageViewMinLodFeaturesEXT<'a> { #[inline] pub fn min_lod(mut self, min_lod: bool) -> Self { @@ -49980,7 +49072,7 @@ impl ::core::default::Default for ImageViewMinLodCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ImageViewMinLodCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT; } -unsafe impl ExtendsImageViewCreateInfo for ImageViewMinLodCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> for ImageViewMinLodCreateInfoEXT<'a> {} impl<'a> ImageViewMinLodCreateInfoEXT<'a> { #[inline] pub fn min_lod(mut self, min_lod: f32) -> Self { @@ -50022,12 +49114,12 @@ unsafe impl<'a> TaggedStructure const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'a> { } -unsafe impl ExtendsDeviceCreateInfo - for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'a> { } impl<'a> PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'a> { @@ -50087,8 +49179,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceLinearColorAttachmentFeaturesN const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceLinearColorAttachmentFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceLinearColorAttachmentFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceLinearColorAttachmentFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceLinearColorAttachmentFeaturesNV<'a> +{ +} impl<'a> PhysicalDeviceLinearColorAttachmentFeaturesNV<'a> { #[inline] pub fn linear_color_attachment(mut self, linear_color_attachment: bool) -> Self { @@ -50124,11 +49222,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceGraphicsPipelineLibraryFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'_> {} impl<'a> PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a> { #[inline] pub fn graphics_pipeline_library(mut self, graphics_pipeline_library: bool) -> Self { @@ -50164,8 +49265,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineBinaryFeaturesKHR<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePipelineBinaryFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelineBinaryFeaturesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDevicePipelineBinaryFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDevicePipelineBinaryFeaturesKHR<'a> {} impl<'a> PhysicalDevicePipelineBinaryFeaturesKHR<'a> { #[inline] pub fn pipeline_binaries(mut self, pipeline_binaries: bool) -> Self { @@ -50201,7 +49305,7 @@ unsafe impl<'a> TaggedStructure for DevicePipelineBinaryInternalCacheControlKHR< const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR; } -unsafe impl ExtendsDeviceCreateInfo for DevicePipelineBinaryInternalCacheControlKHR<'_> {} +unsafe impl<'a> Extends> for DevicePipelineBinaryInternalCacheControlKHR<'a> {} impl<'a> DevicePipelineBinaryInternalCacheControlKHR<'a> { #[inline] pub fn disable_internal_cache(mut self, disable_internal_cache: bool) -> Self { @@ -50245,7 +49349,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineBinaryPropertiesKHR<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePipelineBinaryPropertiesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDevicePipelineBinaryPropertiesKHR<'a> +{ +} impl<'a> PhysicalDevicePipelineBinaryPropertiesKHR<'a> { #[inline] pub fn pipeline_binary_internal_cache(mut self, pipeline_binary_internal_cache: bool) -> Self { @@ -50316,8 +49423,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceGraphicsPipelineLibraryPropert const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'a> { } impl<'a> PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'a> { @@ -50366,7 +49473,10 @@ impl ::core::default::Default for GraphicsPipelineLibraryCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for GraphicsPipelineLibraryCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for GraphicsPipelineLibraryCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> + for GraphicsPipelineLibraryCreateInfoEXT<'a> +{ +} impl<'a> GraphicsPipelineLibraryCreateInfoEXT<'a> { #[inline] pub fn flags(mut self, flags: GraphicsPipelineLibraryFlagsEXT) -> Self { @@ -50402,11 +49512,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorSetHostMappingFeatur const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'_> {} impl<'a> PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'a> { #[inline] pub fn descriptor_set_host_mapping(mut self, descriptor_set_host_mapping: bool) -> Self { @@ -50529,8 +49642,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceNestedCommandBufferFeaturesEXT const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceNestedCommandBufferFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceNestedCommandBufferFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceNestedCommandBufferFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceNestedCommandBufferFeaturesEXT<'a> {} impl<'a> PhysicalDeviceNestedCommandBufferFeaturesEXT<'a> { #[inline] pub fn nested_command_buffer(mut self, nested_command_buffer: bool) -> Self { @@ -50582,8 +49698,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceNestedCommandBufferPropertiesE const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceNestedCommandBufferPropertiesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceNestedCommandBufferPropertiesEXT<'a> { } impl<'a> PhysicalDeviceNestedCommandBufferPropertiesEXT<'a> { @@ -50624,8 +49740,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderModuleIdentifierFeatures const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'a> +{ +} impl<'a> PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'a> { #[inline] pub fn shader_module_identifier(mut self, shader_module_identifier: bool) -> Self { @@ -50661,8 +49783,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderModuleIdentifierProperti const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'a> { } impl<'a> PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'a> { @@ -50705,8 +49827,8 @@ unsafe impl<'a> TaggedStructure for PipelineShaderStageModuleIdentifierCreateInf const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineShaderStageCreateInfo - for PipelineShaderStageModuleIdentifierCreateInfoEXT<'_> +unsafe impl<'a> Extends> + for PipelineShaderStageModuleIdentifierCreateInfoEXT<'a> { } impl<'a> PipelineShaderStageModuleIdentifierCreateInfoEXT<'a> { @@ -50799,9 +49921,9 @@ impl ::core::default::Default for ImageCompressionControlEXT<'_> { unsafe impl<'a> TaggedStructure for ImageCompressionControlEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_COMPRESSION_CONTROL_EXT; } -unsafe impl ExtendsImageCreateInfo for ImageCompressionControlEXT<'_> {} -unsafe impl ExtendsSwapchainCreateInfoKHR for ImageCompressionControlEXT<'_> {} -unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for ImageCompressionControlEXT<'_> {} +unsafe impl<'a> Extends> for ImageCompressionControlEXT<'a> {} +unsafe impl<'a> Extends> for ImageCompressionControlEXT<'a> {} +unsafe impl<'a> Extends> for ImageCompressionControlEXT<'a> {} impl<'a> ImageCompressionControlEXT<'a> { #[inline] pub fn flags(mut self, flags: ImageCompressionFlagsEXT) -> Self { @@ -50846,11 +49968,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageCompressionControlFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceImageCompressionControlFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceImageCompressionControlFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceImageCompressionControlFeaturesEXT<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageCompressionControlFeaturesEXT<'_> {} impl<'a> PhysicalDeviceImageCompressionControlFeaturesEXT<'a> { #[inline] pub fn image_compression_control(mut self, image_compression_control: bool) -> Self { @@ -50887,9 +50012,9 @@ impl ::core::default::Default for ImageCompressionPropertiesEXT<'_> { unsafe impl<'a> TaggedStructure for ImageCompressionPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_COMPRESSION_PROPERTIES_EXT; } -unsafe impl ExtendsImageFormatProperties2 for ImageCompressionPropertiesEXT<'_> {} -unsafe impl ExtendsSurfaceFormat2KHR for ImageCompressionPropertiesEXT<'_> {} -unsafe impl ExtendsSubresourceLayout2KHR for ImageCompressionPropertiesEXT<'_> {} +unsafe impl<'a> Extends> for ImageCompressionPropertiesEXT<'a> {} +unsafe impl<'a> Extends> for ImageCompressionPropertiesEXT<'a> {} +unsafe impl<'a> Extends> for ImageCompressionPropertiesEXT<'a> {} impl<'a> ImageCompressionPropertiesEXT<'a> { #[inline] pub fn image_compression_flags( @@ -50936,12 +50061,12 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageCompressionControlSwapcha const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'a> { } -unsafe impl ExtendsDeviceCreateInfo - for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'a> { } impl<'a> PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'a> { @@ -51015,27 +50140,13 @@ impl ::core::default::Default for SubresourceLayout2KHR<'_> { unsafe impl<'a> TaggedStructure for SubresourceLayout2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBRESOURCE_LAYOUT_2_KHR; } -pub unsafe trait ExtendsSubresourceLayout2KHR {} +unsafe impl<'a> BaseTaggedStructure for SubresourceLayout2KHR<'_> {} impl<'a> SubresourceLayout2KHR<'a> { #[inline] pub fn subresource_layout(mut self, subresource_layout: SubresourceLayout) -> Self { self.subresource_layout = subresource_layout; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -51064,8 +50175,8 @@ impl ::core::default::Default for RenderPassCreationControlEXT<'_> { unsafe impl<'a> TaggedStructure for RenderPassCreationControlEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_CREATION_CONTROL_EXT; } -unsafe impl ExtendsRenderPassCreateInfo2 for RenderPassCreationControlEXT<'_> {} -unsafe impl ExtendsSubpassDescription2 for RenderPassCreationControlEXT<'_> {} +unsafe impl<'a> Extends> for RenderPassCreationControlEXT<'a> {} +unsafe impl<'a> Extends> for RenderPassCreationControlEXT<'a> {} impl<'a> RenderPassCreationControlEXT<'a> { #[inline] pub fn disallow_merging(mut self, disallow_merging: bool) -> Self { @@ -51116,7 +50227,7 @@ unsafe impl<'a> TaggedStructure for RenderPassCreationFeedbackCreateInfoEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT; } -unsafe impl ExtendsRenderPassCreateInfo2 for RenderPassCreationFeedbackCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> for RenderPassCreationFeedbackCreateInfoEXT<'a> {} impl<'a> RenderPassCreationFeedbackCreateInfoEXT<'a> { #[inline] pub fn render_pass_feedback( @@ -51207,7 +50318,7 @@ unsafe impl<'a> TaggedStructure for RenderPassSubpassFeedbackCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT; } -unsafe impl ExtendsSubpassDescription2 for RenderPassSubpassFeedbackCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> for RenderPassSubpassFeedbackCreateInfoEXT<'a> {} impl<'a> RenderPassSubpassFeedbackCreateInfoEXT<'a> { #[inline] pub fn subpass_feedback( @@ -51246,8 +50357,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSubpassMergeFeedbackFeaturesEX const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'a> +{ +} impl<'a> PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'a> { #[inline] pub fn subpass_merge_feedback(mut self, subpass_merge_feedback: bool) -> Self { @@ -51778,8 +50895,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceOpacityMicromapFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceOpacityMicromapFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceOpacityMicromapFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceOpacityMicromapFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceOpacityMicromapFeaturesEXT<'a> {} impl<'a> PhysicalDeviceOpacityMicromapFeaturesEXT<'a> { #[inline] pub fn micromap(mut self, micromap: bool) -> Self { @@ -51827,7 +50947,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceOpacityMicromapPropertiesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceOpacityMicromapPropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceOpacityMicromapPropertiesEXT<'a> +{ +} impl<'a> PhysicalDeviceOpacityMicromapPropertiesEXT<'a> { #[inline] pub fn max_opacity2_state_subdivision_level( @@ -51904,8 +51027,8 @@ unsafe impl<'a> TaggedStructure for AccelerationStructureTrianglesOpacityMicroma const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT; } -unsafe impl ExtendsAccelerationStructureGeometryTrianglesDataKHR - for AccelerationStructureTrianglesOpacityMicromapEXT<'_> +unsafe impl<'a> Extends> + for AccelerationStructureTrianglesOpacityMicromapEXT<'a> { } impl<'a> AccelerationStructureTrianglesOpacityMicromapEXT<'a> { @@ -51975,8 +51098,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDisplacementMicromapFeaturesNV const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDisplacementMicromapFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDisplacementMicromapFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceDisplacementMicromapFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceDisplacementMicromapFeaturesNV<'a> {} impl<'a> PhysicalDeviceDisplacementMicromapFeaturesNV<'a> { #[inline] pub fn displacement_micromap(mut self, displacement_micromap: bool) -> Self { @@ -52012,8 +51138,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDisplacementMicromapProperties const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceDisplacementMicromapPropertiesNV<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceDisplacementMicromapPropertiesNV<'a> { } impl<'a> PhysicalDeviceDisplacementMicromapPropertiesNV<'a> { @@ -52124,8 +51250,8 @@ unsafe impl<'a> TaggedStructure for AccelerationStructureTrianglesDisplacementMi const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV; } -unsafe impl ExtendsAccelerationStructureGeometryTrianglesDataKHR - for AccelerationStructureTrianglesDisplacementMicromapNV<'_> +unsafe impl<'a> Extends> + for AccelerationStructureTrianglesDisplacementMicromapNV<'a> { } impl<'a> AccelerationStructureTrianglesDisplacementMicromapNV<'a> { @@ -52287,8 +51413,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePipelinePropertiesFeaturesEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePipelinePropertiesFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelinePropertiesFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDevicePipelinePropertiesFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDevicePipelinePropertiesFeaturesEXT<'a> {} impl<'a> PhysicalDevicePipelinePropertiesFeaturesEXT<'a> { #[inline] pub fn pipeline_properties_identifier(mut self, pipeline_properties_identifier: bool) -> Self { @@ -52324,12 +51453,12 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderEarlyAndLateFragmentTest const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'a> { } -unsafe impl ExtendsDeviceCreateInfo - for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'a> { } impl<'a> PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'a> { @@ -52369,10 +51498,10 @@ impl ::core::default::Default for ExternalMemoryAcquireUnmodifiedEXT<'_> { unsafe impl<'a> TaggedStructure for ExternalMemoryAcquireUnmodifiedEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT; } -unsafe impl ExtendsBufferMemoryBarrier for ExternalMemoryAcquireUnmodifiedEXT<'_> {} -unsafe impl ExtendsBufferMemoryBarrier2 for ExternalMemoryAcquireUnmodifiedEXT<'_> {} -unsafe impl ExtendsImageMemoryBarrier for ExternalMemoryAcquireUnmodifiedEXT<'_> {} -unsafe impl ExtendsImageMemoryBarrier2 for ExternalMemoryAcquireUnmodifiedEXT<'_> {} +unsafe impl<'a> Extends> for ExternalMemoryAcquireUnmodifiedEXT<'a> {} +unsafe impl<'a> Extends> for ExternalMemoryAcquireUnmodifiedEXT<'a> {} +unsafe impl<'a> Extends> for ExternalMemoryAcquireUnmodifiedEXT<'a> {} +unsafe impl<'a> Extends> for ExternalMemoryAcquireUnmodifiedEXT<'a> {} impl<'a> ExternalMemoryAcquireUnmodifiedEXT<'a> { #[inline] pub fn acquire_unmodified_memory(mut self, acquire_unmodified_memory: bool) -> Self { @@ -52407,13 +51536,13 @@ impl ::core::default::Default for ExportMetalObjectCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ExportMetalObjectCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_OBJECT_CREATE_INFO_EXT; } -unsafe impl ExtendsInstanceCreateInfo for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl ExtendsMemoryAllocateInfo for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl ExtendsImageCreateInfo for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl ExtendsImageViewCreateInfo for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl ExtendsBufferViewCreateInfo for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl ExtendsSemaphoreCreateInfo for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl ExtendsEventCreateInfo for ExportMetalObjectCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> for ExportMetalObjectCreateInfoEXT<'a> {} +unsafe impl<'a> Extends> for ExportMetalObjectCreateInfoEXT<'a> {} +unsafe impl<'a> Extends> for ExportMetalObjectCreateInfoEXT<'a> {} +unsafe impl<'a> Extends> for ExportMetalObjectCreateInfoEXT<'a> {} +unsafe impl<'a> Extends> for ExportMetalObjectCreateInfoEXT<'a> {} +unsafe impl<'a> Extends> for ExportMetalObjectCreateInfoEXT<'a> {} +unsafe impl<'a> Extends> for ExportMetalObjectCreateInfoEXT<'a> {} impl<'a> ExportMetalObjectCreateInfoEXT<'a> { #[inline] pub fn export_object_type(mut self, export_object_type: ExportMetalObjectTypeFlagsEXT) -> Self { @@ -52446,26 +51575,8 @@ impl ::core::default::Default for ExportMetalObjectsInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ExportMetalObjectsInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_OBJECTS_INFO_EXT; } -pub unsafe trait ExtendsExportMetalObjectsInfoEXT {} -impl<'a> ExportMetalObjectsInfoEXT<'a> { - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } -} +unsafe impl<'a> BaseTaggedStructure for ExportMetalObjectsInfoEXT<'_> {} +impl<'a> ExportMetalObjectsInfoEXT<'a> {} #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] @@ -52493,7 +51604,7 @@ impl ::core::default::Default for ExportMetalDeviceInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ExportMetalDeviceInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_DEVICE_INFO_EXT; } -unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalDeviceInfoEXT<'_> {} +unsafe impl<'a> Extends> for ExportMetalDeviceInfoEXT<'a> {} impl<'a> ExportMetalDeviceInfoEXT<'a> { #[inline] pub fn mtl_device(mut self, mtl_device: MTLDevice_id) -> Self { @@ -52530,7 +51641,7 @@ impl ::core::default::Default for ExportMetalCommandQueueInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ExportMetalCommandQueueInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_COMMAND_QUEUE_INFO_EXT; } -unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalCommandQueueInfoEXT<'_> {} +unsafe impl<'a> Extends> for ExportMetalCommandQueueInfoEXT<'a> {} impl<'a> ExportMetalCommandQueueInfoEXT<'a> { #[inline] pub fn queue(mut self, queue: Queue) -> Self { @@ -52572,7 +51683,7 @@ impl ::core::default::Default for ExportMetalBufferInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ExportMetalBufferInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_BUFFER_INFO_EXT; } -unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalBufferInfoEXT<'_> {} +unsafe impl<'a> Extends> for ExportMetalBufferInfoEXT<'a> {} impl<'a> ExportMetalBufferInfoEXT<'a> { #[inline] pub fn memory(mut self, memory: DeviceMemory) -> Self { @@ -52612,7 +51723,7 @@ impl ::core::default::Default for ImportMetalBufferInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ImportMetalBufferInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_BUFFER_INFO_EXT; } -unsafe impl ExtendsMemoryAllocateInfo for ImportMetalBufferInfoEXT<'_> {} +unsafe impl<'a> Extends> for ImportMetalBufferInfoEXT<'a> {} impl<'a> ImportMetalBufferInfoEXT<'a> { #[inline] pub fn mtl_buffer(mut self, mtl_buffer: MTLBuffer_id) -> Self { @@ -52655,7 +51766,7 @@ impl ::core::default::Default for ExportMetalTextureInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ExportMetalTextureInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_TEXTURE_INFO_EXT; } -unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalTextureInfoEXT<'_> {} +unsafe impl<'a> Extends> for ExportMetalTextureInfoEXT<'a> {} impl<'a> ExportMetalTextureInfoEXT<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { @@ -52712,7 +51823,7 @@ impl ::core::default::Default for ImportMetalTextureInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ImportMetalTextureInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_TEXTURE_INFO_EXT; } -unsafe impl ExtendsImageCreateInfo for ImportMetalTextureInfoEXT<'_> {} +unsafe impl<'a> Extends> for ImportMetalTextureInfoEXT<'a> {} impl<'a> ImportMetalTextureInfoEXT<'a> { #[inline] pub fn plane(mut self, plane: ImageAspectFlags) -> Self { @@ -52754,7 +51865,7 @@ impl ::core::default::Default for ExportMetalIOSurfaceInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ExportMetalIOSurfaceInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_IO_SURFACE_INFO_EXT; } -unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalIOSurfaceInfoEXT<'_> {} +unsafe impl<'a> Extends> for ExportMetalIOSurfaceInfoEXT<'a> {} impl<'a> ExportMetalIOSurfaceInfoEXT<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { @@ -52794,7 +51905,7 @@ impl ::core::default::Default for ImportMetalIOSurfaceInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ImportMetalIOSurfaceInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_IO_SURFACE_INFO_EXT; } -unsafe impl ExtendsImageCreateInfo for ImportMetalIOSurfaceInfoEXT<'_> {} +unsafe impl<'a> Extends> for ImportMetalIOSurfaceInfoEXT<'a> {} impl<'a> ImportMetalIOSurfaceInfoEXT<'a> { #[inline] pub fn io_surface(mut self, io_surface: IOSurfaceRef) -> Self { @@ -52833,7 +51944,7 @@ impl ::core::default::Default for ExportMetalSharedEventInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ExportMetalSharedEventInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_SHARED_EVENT_INFO_EXT; } -unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalSharedEventInfoEXT<'_> {} +unsafe impl<'a> Extends> for ExportMetalSharedEventInfoEXT<'a> {} impl<'a> ExportMetalSharedEventInfoEXT<'a> { #[inline] pub fn semaphore(mut self, semaphore: Semaphore) -> Self { @@ -52878,8 +51989,8 @@ impl ::core::default::Default for ImportMetalSharedEventInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ImportMetalSharedEventInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_SHARED_EVENT_INFO_EXT; } -unsafe impl ExtendsSemaphoreCreateInfo for ImportMetalSharedEventInfoEXT<'_> {} -unsafe impl ExtendsEventCreateInfo for ImportMetalSharedEventInfoEXT<'_> {} +unsafe impl<'a> Extends> for ImportMetalSharedEventInfoEXT<'a> {} +unsafe impl<'a> Extends> for ImportMetalSharedEventInfoEXT<'a> {} impl<'a> ImportMetalSharedEventInfoEXT<'a> { #[inline] pub fn mtl_shared_event(mut self, mtl_shared_event: MTLSharedEvent_id) -> Self { @@ -52915,8 +52026,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a> {} impl<'a> PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a> { #[inline] pub fn non_seamless_cube_map(mut self, non_seamless_cube_map: bool) -> Self { @@ -52952,8 +52066,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineRobustnessFeaturesEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePipelineRobustnessFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelineRobustnessFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDevicePipelineRobustnessFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDevicePipelineRobustnessFeaturesEXT<'a> {} impl<'a> PhysicalDevicePipelineRobustnessFeaturesEXT<'a> { #[inline] pub fn pipeline_robustness(mut self, pipeline_robustness: bool) -> Self { @@ -52994,10 +52111,13 @@ impl ::core::default::Default for PipelineRobustnessCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for PipelineRobustnessCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_ROBUSTNESS_CREATE_INFO_EXT; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineRobustnessCreateInfoEXT<'_> {} -unsafe impl ExtendsComputePipelineCreateInfo for PipelineRobustnessCreateInfoEXT<'_> {} -unsafe impl ExtendsPipelineShaderStageCreateInfo for PipelineRobustnessCreateInfoEXT<'_> {} -unsafe impl ExtendsRayTracingPipelineCreateInfoKHR for PipelineRobustnessCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> for PipelineRobustnessCreateInfoEXT<'a> {} +unsafe impl<'a> Extends> for PipelineRobustnessCreateInfoEXT<'a> {} +unsafe impl<'a> Extends> for PipelineRobustnessCreateInfoEXT<'a> {} +unsafe impl<'a> Extends> + for PipelineRobustnessCreateInfoEXT<'a> +{ +} impl<'a> PipelineRobustnessCreateInfoEXT<'a> { #[inline] pub fn storage_buffers(mut self, storage_buffers: PipelineRobustnessBufferBehaviorEXT) -> Self { @@ -53054,7 +52174,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineRobustnessPropertiesEX const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePipelineRobustnessPropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDevicePipelineRobustnessPropertiesEXT<'a> +{ +} impl<'a> PhysicalDevicePipelineRobustnessPropertiesEXT<'a> { #[inline] pub fn default_robustness_storage_buffers( @@ -53120,7 +52243,7 @@ impl ::core::default::Default for ImageViewSampleWeightCreateInfoQCOM<'_> { unsafe impl<'a> TaggedStructure for ImageViewSampleWeightCreateInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM; } -unsafe impl ExtendsImageViewCreateInfo for ImageViewSampleWeightCreateInfoQCOM<'_> {} +unsafe impl<'a> Extends> for ImageViewSampleWeightCreateInfoQCOM<'a> {} impl<'a> ImageViewSampleWeightCreateInfoQCOM<'a> { #[inline] pub fn filter_center(mut self, filter_center: Offset2D) -> Self { @@ -53170,8 +52293,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageProcessingFeaturesQCOM<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImageProcessingFeaturesQCOM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageProcessingFeaturesQCOM<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceImageProcessingFeaturesQCOM<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceImageProcessingFeaturesQCOM<'a> {} impl<'a> PhysicalDeviceImageProcessingFeaturesQCOM<'a> { #[inline] pub fn texture_sample_weighted(mut self, texture_sample_weighted: bool) -> Self { @@ -53223,7 +52349,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageProcessingPropertiesQCOM< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceImageProcessingPropertiesQCOM<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceImageProcessingPropertiesQCOM<'a> +{ +} impl<'a> PhysicalDeviceImageProcessingPropertiesQCOM<'a> { #[inline] pub fn max_weight_filter_phases(mut self, max_weight_filter_phases: u32) -> Self { @@ -53274,8 +52403,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceTilePropertiesFeaturesQCOM<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTilePropertiesFeaturesQCOM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTilePropertiesFeaturesQCOM<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceTilePropertiesFeaturesQCOM<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceTilePropertiesFeaturesQCOM<'a> {} impl<'a> PhysicalDeviceTilePropertiesFeaturesQCOM<'a> { #[inline] pub fn tile_properties(mut self, tile_properties: bool) -> Self { @@ -53359,8 +52491,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceAmigoProfilingFeaturesSEC<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceAmigoProfilingFeaturesSEC<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceAmigoProfilingFeaturesSEC<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceAmigoProfilingFeaturesSEC<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceAmigoProfilingFeaturesSEC<'a> {} impl<'a> PhysicalDeviceAmigoProfilingFeaturesSEC<'a> { #[inline] pub fn amigo_profiling(mut self, amigo_profiling: bool) -> Self { @@ -53397,7 +52532,7 @@ impl ::core::default::Default for AmigoProfilingSubmitInfoSEC<'_> { unsafe impl<'a> TaggedStructure for AmigoProfilingSubmitInfoSEC<'a> { const STRUCTURE_TYPE: StructureType = StructureType::AMIGO_PROFILING_SUBMIT_INFO_SEC; } -unsafe impl ExtendsSubmitInfo for AmigoProfilingSubmitInfoSEC<'_> {} +unsafe impl<'a> Extends> for AmigoProfilingSubmitInfoSEC<'a> {} impl<'a> AmigoProfilingSubmitInfoSEC<'a> { #[inline] pub fn first_draw_timestamp(mut self, first_draw_timestamp: u64) -> Self { @@ -53438,11 +52573,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceAttachmentFeedbackLoopLayoutFe const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'_> {} impl<'a> PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'a> { #[inline] pub fn attachment_feedback_loop_layout( @@ -53481,8 +52619,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthClampZeroOneFeaturesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'a> {} impl<'a> PhysicalDeviceDepthClampZeroOneFeaturesEXT<'a> { #[inline] pub fn depth_clamp_zero_one(mut self, depth_clamp_zero_one: bool) -> Self { @@ -53518,8 +52659,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceAddressBindingReportFeaturesEX const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceAddressBindingReportFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceAddressBindingReportFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceAddressBindingReportFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceAddressBindingReportFeaturesEXT<'a> +{ +} impl<'a> PhysicalDeviceAddressBindingReportFeaturesEXT<'a> { #[inline] pub fn report_address_binding(mut self, report_address_binding: bool) -> Self { @@ -53560,7 +52707,10 @@ impl ::core::default::Default for DeviceAddressBindingCallbackDataEXT<'_> { unsafe impl<'a> TaggedStructure for DeviceAddressBindingCallbackDataEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT; } -unsafe impl ExtendsDebugUtilsMessengerCallbackDataEXT for DeviceAddressBindingCallbackDataEXT<'_> {} +unsafe impl<'a> Extends> + for DeviceAddressBindingCallbackDataEXT<'a> +{ +} impl<'a> DeviceAddressBindingCallbackDataEXT<'a> { #[inline] pub fn flags(mut self, flags: DeviceAddressBindingFlagsEXT) -> Self { @@ -53610,8 +52760,8 @@ impl ::core::default::Default for PhysicalDeviceOpticalFlowFeaturesNV<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceOpticalFlowFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceOpticalFlowFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceOpticalFlowFeaturesNV<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceOpticalFlowFeaturesNV<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceOpticalFlowFeaturesNV<'a> {} impl<'a> PhysicalDeviceOpticalFlowFeaturesNV<'a> { #[inline] pub fn optical_flow(mut self, optical_flow: bool) -> Self { @@ -53666,7 +52816,10 @@ impl ::core::default::Default for PhysicalDeviceOpticalFlowPropertiesNV<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceOpticalFlowPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceOpticalFlowPropertiesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceOpticalFlowPropertiesNV<'a> +{ +} impl<'a> PhysicalDeviceOpticalFlowPropertiesNV<'a> { #[inline] pub fn supported_output_grid_sizes( @@ -53757,8 +52910,8 @@ impl ::core::default::Default for OpticalFlowImageFormatInfoNV<'_> { unsafe impl<'a> TaggedStructure for OpticalFlowImageFormatInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV; } -unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for OpticalFlowImageFormatInfoNV<'_> {} -unsafe impl ExtendsImageCreateInfo for OpticalFlowImageFormatInfoNV<'_> {} +unsafe impl<'a> Extends> for OpticalFlowImageFormatInfoNV<'a> {} +unsafe impl<'a> Extends> for OpticalFlowImageFormatInfoNV<'a> {} impl<'a> OpticalFlowImageFormatInfoNV<'a> { #[inline] pub fn usage(mut self, usage: OpticalFlowUsageFlagsNV) -> Self { @@ -53843,7 +52996,7 @@ impl ::core::default::Default for OpticalFlowSessionCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for OpticalFlowSessionCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_SESSION_CREATE_INFO_NV; } -pub unsafe trait ExtendsOpticalFlowSessionCreateInfoNV {} +unsafe impl<'a> BaseTaggedStructure for OpticalFlowSessionCreateInfoNV<'_> {} impl<'a> OpticalFlowSessionCreateInfoNV<'a> { #[inline] pub fn width(mut self, width: u32) -> Self { @@ -53890,23 +53043,6 @@ impl<'a> OpticalFlowSessionCreateInfoNV<'a> { self.flags = flags; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -53940,8 +53076,8 @@ unsafe impl<'a> TaggedStructure for OpticalFlowSessionCreatePrivateDataInfoNV<'a const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV; } -unsafe impl ExtendsOpticalFlowSessionCreateInfoNV - for OpticalFlowSessionCreatePrivateDataInfoNV<'_> +unsafe impl<'a> Extends> + for OpticalFlowSessionCreatePrivateDataInfoNV<'a> { } impl<'a> OpticalFlowSessionCreatePrivateDataInfoNV<'a> { @@ -54034,8 +53170,8 @@ impl ::core::default::Default for PhysicalDeviceFaultFeaturesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceFaultFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FAULT_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFaultFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFaultFeaturesEXT<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceFaultFeaturesEXT<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceFaultFeaturesEXT<'a> {} impl<'a> PhysicalDeviceFaultFeaturesEXT<'a> { #[inline] pub fn device_fault(mut self, device_fault: bool) -> Self { @@ -54372,11 +53508,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineLibraryGroupHandlesFea const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'_> {} impl<'a> PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'a> { #[inline] pub fn pipeline_library_group_handles(mut self, pipeline_library_group_handles: bool) -> Self { @@ -54415,7 +53554,7 @@ impl ::core::default::Default for DepthBiasInfoEXT<'_> { unsafe impl<'a> TaggedStructure for DepthBiasInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEPTH_BIAS_INFO_EXT; } -pub unsafe trait ExtendsDepthBiasInfoEXT {} +unsafe impl<'a> BaseTaggedStructure for DepthBiasInfoEXT<'_> {} impl<'a> DepthBiasInfoEXT<'a> { #[inline] pub fn depth_bias_constant_factor(mut self, depth_bias_constant_factor: f32) -> Self { @@ -54432,20 +53571,6 @@ impl<'a> DepthBiasInfoEXT<'a> { self.depth_bias_slope_factor = depth_bias_slope_factor; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -54476,8 +53601,11 @@ impl ::core::default::Default for DepthBiasRepresentationInfoEXT<'_> { unsafe impl<'a> TaggedStructure for DepthBiasRepresentationInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEPTH_BIAS_REPRESENTATION_INFO_EXT; } -unsafe impl ExtendsDepthBiasInfoEXT for DepthBiasRepresentationInfoEXT<'_> {} -unsafe impl ExtendsPipelineRasterizationStateCreateInfo for DepthBiasRepresentationInfoEXT<'_> {} +unsafe impl<'a> Extends> for DepthBiasRepresentationInfoEXT<'a> {} +unsafe impl<'a> Extends> + for DepthBiasRepresentationInfoEXT<'a> +{ +} impl<'a> DepthBiasRepresentationInfoEXT<'a> { #[inline] pub fn depth_bias_representation( @@ -54567,7 +53695,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderCoreBuiltinsPropertiesAR const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'a> +{ +} impl<'a> PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'a> { #[inline] pub fn shader_core_mask(mut self, shader_core_mask: u64) -> Self { @@ -54613,8 +53744,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderCoreBuiltinsFeaturesARM< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a> {} impl<'a> PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a> { #[inline] pub fn shader_core_builtins(mut self, shader_core_builtins: bool) -> Self { @@ -54665,10 +53799,10 @@ impl ::core::default::Default for FrameBoundaryEXT<'_> { unsafe impl<'a> TaggedStructure for FrameBoundaryEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FRAME_BOUNDARY_EXT; } -unsafe impl ExtendsSubmitInfo for FrameBoundaryEXT<'_> {} -unsafe impl ExtendsSubmitInfo2 for FrameBoundaryEXT<'_> {} -unsafe impl ExtendsPresentInfoKHR for FrameBoundaryEXT<'_> {} -unsafe impl ExtendsBindSparseInfo for FrameBoundaryEXT<'_> {} +unsafe impl<'a> Extends> for FrameBoundaryEXT<'a> {} +unsafe impl<'a> Extends> for FrameBoundaryEXT<'a> {} +unsafe impl<'a> Extends> for FrameBoundaryEXT<'a> {} +unsafe impl<'a> Extends> for FrameBoundaryEXT<'a> {} impl<'a> FrameBoundaryEXT<'a> { #[inline] pub fn flags(mut self, flags: FrameBoundaryFlagsEXT) -> Self { @@ -54732,8 +53866,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFrameBoundaryFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFrameBoundaryFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFrameBoundaryFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceFrameBoundaryFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceFrameBoundaryFeaturesEXT<'a> {} impl<'a> PhysicalDeviceFrameBoundaryFeaturesEXT<'a> { #[inline] pub fn frame_boundary(mut self, frame_boundary: bool) -> Self { @@ -54769,12 +53906,12 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDynamicRenderingUnusedAttachme const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'a> { } -unsafe impl ExtendsDeviceCreateInfo - for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'a> { } impl<'a> PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'a> { @@ -54814,7 +53951,7 @@ impl ::core::default::Default for SurfacePresentModeEXT<'_> { unsafe impl<'a> TaggedStructure for SurfacePresentModeEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_PRESENT_MODE_EXT; } -unsafe impl ExtendsPhysicalDeviceSurfaceInfo2KHR for SurfacePresentModeEXT<'_> {} +unsafe impl<'a> Extends> for SurfacePresentModeEXT<'a> {} impl<'a> SurfacePresentModeEXT<'a> { #[inline] pub fn present_mode(mut self, present_mode: PresentModeKHR) -> Self { @@ -54857,7 +53994,7 @@ impl ::core::default::Default for SurfacePresentScalingCapabilitiesEXT<'_> { unsafe impl<'a> TaggedStructure for SurfacePresentScalingCapabilitiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_PRESENT_SCALING_CAPABILITIES_EXT; } -unsafe impl ExtendsSurfaceCapabilities2KHR for SurfacePresentScalingCapabilitiesEXT<'_> {} +unsafe impl<'a> Extends> for SurfacePresentScalingCapabilitiesEXT<'a> {} impl<'a> SurfacePresentScalingCapabilitiesEXT<'a> { #[inline] pub fn supported_present_scaling( @@ -54923,7 +54060,7 @@ impl ::core::default::Default for SurfacePresentModeCompatibilityEXT<'_> { unsafe impl<'a> TaggedStructure for SurfacePresentModeCompatibilityEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_PRESENT_MODE_COMPATIBILITY_EXT; } -unsafe impl ExtendsSurfaceCapabilities2KHR for SurfacePresentModeCompatibilityEXT<'_> {} +unsafe impl<'a> Extends> for SurfacePresentModeCompatibilityEXT<'a> {} impl<'a> SurfacePresentModeCompatibilityEXT<'a> { #[inline] pub fn present_modes(mut self, present_modes: &'a mut [PresentModeKHR]) -> Self { @@ -54960,8 +54097,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSwapchainMaintenance1FeaturesE const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'a> +{ +} impl<'a> PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'a> { #[inline] pub fn swapchain_maintenance1(mut self, swapchain_maintenance1: bool) -> Self { @@ -54998,7 +54141,7 @@ impl ::core::default::Default for SwapchainPresentFenceInfoEXT<'_> { unsafe impl<'a> TaggedStructure for SwapchainPresentFenceInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_FENCE_INFO_EXT; } -unsafe impl ExtendsPresentInfoKHR for SwapchainPresentFenceInfoEXT<'_> {} +unsafe impl<'a> Extends> for SwapchainPresentFenceInfoEXT<'a> {} impl<'a> SwapchainPresentFenceInfoEXT<'a> { #[inline] pub fn fences(mut self, fences: &'a [Fence]) -> Self { @@ -55036,7 +54179,7 @@ impl ::core::default::Default for SwapchainPresentModesCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for SwapchainPresentModesCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT; } -unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainPresentModesCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> for SwapchainPresentModesCreateInfoEXT<'a> {} impl<'a> SwapchainPresentModesCreateInfoEXT<'a> { #[inline] pub fn present_modes(mut self, present_modes: &'a [PresentModeKHR]) -> Self { @@ -55074,7 +54217,7 @@ impl ::core::default::Default for SwapchainPresentModeInfoEXT<'_> { unsafe impl<'a> TaggedStructure for SwapchainPresentModeInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_MODE_INFO_EXT; } -unsafe impl ExtendsPresentInfoKHR for SwapchainPresentModeInfoEXT<'_> {} +unsafe impl<'a> Extends> for SwapchainPresentModeInfoEXT<'a> {} impl<'a> SwapchainPresentModeInfoEXT<'a> { #[inline] pub fn present_modes(mut self, present_modes: &'a [PresentModeKHR]) -> Self { @@ -55114,7 +54257,7 @@ impl ::core::default::Default for SwapchainPresentScalingCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for SwapchainPresentScalingCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT; } -unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainPresentScalingCreateInfoEXT<'_> {} +unsafe impl<'a> Extends> for SwapchainPresentScalingCreateInfoEXT<'a> {} impl<'a> SwapchainPresentScalingCreateInfoEXT<'a> { #[inline] pub fn scaling_behavior(mut self, scaling_behavior: PresentScalingFlagsEXT) -> Self { @@ -55210,8 +54353,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthBiasControlFeaturesEXT<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDepthBiasControlFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthBiasControlFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceDepthBiasControlFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceDepthBiasControlFeaturesEXT<'a> {} impl<'a> PhysicalDeviceDepthBiasControlFeaturesEXT<'a> { #[inline] pub fn depth_bias_control(mut self, depth_bias_control: bool) -> Self { @@ -55266,11 +54412,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingInvocationReorderFea const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'_> {} impl<'a> PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'a> { #[inline] pub fn ray_tracing_invocation_reorder(mut self, ray_tracing_invocation_reorder: bool) -> Self { @@ -55307,8 +54456,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingInvocationReorderPro const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'a> { } impl<'a> PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'a> { @@ -55350,11 +54499,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExtendedSparseAddressSpaceFeat const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'_> {} impl<'a> PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'a> { #[inline] pub fn extended_sparse_address_space(mut self, extended_sparse_address_space: bool) -> Self { @@ -55394,8 +54546,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExtendedSparseAddressSpaceProp const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'a> { } impl<'a> PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'a> { @@ -55512,7 +54664,7 @@ impl ::core::default::Default for DirectDriverLoadingListLUNARG<'_> { unsafe impl<'a> TaggedStructure for DirectDriverLoadingListLUNARG<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DIRECT_DRIVER_LOADING_LIST_LUNARG; } -unsafe impl ExtendsInstanceCreateInfo for DirectDriverLoadingListLUNARG<'_> {} +unsafe impl<'a> Extends> for DirectDriverLoadingListLUNARG<'a> {} impl<'a> DirectDriverLoadingListLUNARG<'a> { #[inline] pub fn mode(mut self, mode: DirectDriverLoadingModeLUNARG) -> Self { @@ -55554,11 +54706,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiviewPerViewViewportsFeatu const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'_> {} impl<'a> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'a> { #[inline] pub fn multiview_per_view_viewports(mut self, multiview_per_view_viewports: bool) -> Self { @@ -55594,11 +54749,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingPositionFetchFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'_> {} impl<'a> PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'a> { #[inline] pub fn ray_tracing_position_fetch(mut self, ray_tracing_position_fetch: bool) -> Self { @@ -55678,7 +54836,10 @@ impl ::core::default::Default for PhysicalDeviceShaderCorePropertiesARM<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderCorePropertiesARM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderCorePropertiesARM<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderCorePropertiesARM<'a> +{ +} impl<'a> PhysicalDeviceShaderCorePropertiesARM<'a> { #[inline] pub fn pixel_rate(mut self, pixel_rate: u32) -> Self { @@ -55724,11 +54885,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiviewPerViewRenderAreasFea const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'_> {} impl<'a> PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'a> { #[inline] pub fn multiview_per_view_render_areas( @@ -55769,8 +54933,14 @@ unsafe impl<'a> TaggedStructure for MultiviewPerViewRenderAreasRenderPassBeginIn const STRUCTURE_TYPE: StructureType = StructureType::MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM; } -unsafe impl ExtendsRenderPassBeginInfo for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'_> {} -unsafe impl ExtendsRenderingInfo for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'_> {} +unsafe impl<'a> Extends> + for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'a> +{ +} +unsafe impl<'a> Extends> + for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'a> +{ +} impl<'a> MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'a> { #[inline] pub fn per_view_render_areas(mut self, per_view_render_areas: &'a [Rect2D]) -> Self { @@ -55806,7 +54976,7 @@ impl ::core::default::Default for QueryLowLatencySupportNV<'_> { unsafe impl<'a> TaggedStructure for QueryLowLatencySupportNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUERY_LOW_LATENCY_SUPPORT_NV; } -unsafe impl ExtendsSemaphoreCreateInfo for QueryLowLatencySupportNV<'_> {} +unsafe impl<'a> Extends> for QueryLowLatencySupportNV<'a> {} impl<'a> QueryLowLatencySupportNV<'a> { #[inline] pub fn queried_low_latency_data(mut self, queried_low_latency_data: *mut c_void) -> Self { @@ -55847,7 +55017,7 @@ impl ::core::default::Default for MemoryMapInfoKHR<'_> { unsafe impl<'a> TaggedStructure for MemoryMapInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_MAP_INFO_KHR; } -pub unsafe trait ExtendsMemoryMapInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for MemoryMapInfoKHR<'_> {} impl<'a> MemoryMapInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: MemoryMapFlags) -> Self { @@ -55869,20 +55039,6 @@ impl<'a> MemoryMapInfoKHR<'a> { self.size = size; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -55952,8 +55108,8 @@ impl ::core::default::Default for PhysicalDeviceShaderObjectFeaturesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderObjectFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderObjectFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderObjectFeaturesEXT<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceShaderObjectFeaturesEXT<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceShaderObjectFeaturesEXT<'a> {} impl<'a> PhysicalDeviceShaderObjectFeaturesEXT<'a> { #[inline] pub fn shader_object(mut self, shader_object: bool) -> Self { @@ -55991,7 +55147,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderObjectPropertiesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderObjectPropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderObjectPropertiesEXT<'a> +{ +} impl<'a> PhysicalDeviceShaderObjectPropertiesEXT<'a> { #[inline] pub fn shader_binary_uuid(mut self, shader_binary_uuid: [u8; UUID_SIZE]) -> Self { @@ -56053,7 +55212,7 @@ impl ::core::default::Default for ShaderCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ShaderCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SHADER_CREATE_INFO_EXT; } -pub unsafe trait ExtendsShaderCreateInfoEXT {} +unsafe impl<'a> BaseTaggedStructure for ShaderCreateInfoEXT<'_> {} impl<'a> ShaderCreateInfoEXT<'a> { #[inline] pub fn flags(mut self, flags: ShaderCreateFlagsEXT) -> Self { @@ -56111,20 +55270,6 @@ impl<'a> ShaderCreateInfoEXT<'a> { self.p_specialization_info = specialization_info; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -56158,8 +55303,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderTileImageFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderTileImageFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderTileImageFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderTileImageFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceShaderTileImageFeaturesEXT<'a> {} impl<'a> PhysicalDeviceShaderTileImageFeaturesEXT<'a> { #[inline] pub fn shader_tile_image_color_read_access( @@ -56218,7 +55366,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderTileImagePropertiesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderTileImagePropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderTileImagePropertiesEXT<'a> +{ +} impl<'a> PhysicalDeviceShaderTileImagePropertiesEXT<'a> { #[inline] pub fn shader_tile_image_coherent_read_accelerated( @@ -56275,7 +55426,7 @@ impl ::core::default::Default for ImportScreenBufferInfoQNX<'_> { unsafe impl<'a> TaggedStructure for ImportScreenBufferInfoQNX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_SCREEN_BUFFER_INFO_QNX; } -unsafe impl ExtendsMemoryAllocateInfo for ImportScreenBufferInfoQNX<'_> {} +unsafe impl<'a> Extends> for ImportScreenBufferInfoQNX<'a> {} impl<'a> ImportScreenBufferInfoQNX<'a> { #[inline] pub fn buffer(mut self, buffer: &'a mut _screen_buffer) -> Self { @@ -56312,7 +55463,7 @@ impl ::core::default::Default for ScreenBufferPropertiesQNX<'_> { unsafe impl<'a> TaggedStructure for ScreenBufferPropertiesQNX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SCREEN_BUFFER_PROPERTIES_QNX; } -pub unsafe trait ExtendsScreenBufferPropertiesQNX {} +unsafe impl<'a> BaseTaggedStructure for ScreenBufferPropertiesQNX<'_> {} impl<'a> ScreenBufferPropertiesQNX<'a> { #[inline] pub fn allocation_size(mut self, allocation_size: DeviceSize) -> Self { @@ -56324,23 +55475,6 @@ impl<'a> ScreenBufferPropertiesQNX<'a> { self.memory_type_bits = memory_type_bits; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -56385,7 +55519,7 @@ impl ::core::default::Default for ScreenBufferFormatPropertiesQNX<'_> { unsafe impl<'a> TaggedStructure for ScreenBufferFormatPropertiesQNX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SCREEN_BUFFER_FORMAT_PROPERTIES_QNX; } -unsafe impl ExtendsScreenBufferPropertiesQNX for ScreenBufferFormatPropertiesQNX<'_> {} +unsafe impl<'a> Extends> for ScreenBufferFormatPropertiesQNX<'a> {} impl<'a> ScreenBufferFormatPropertiesQNX<'a> { #[inline] pub fn format(mut self, format: Format) -> Self { @@ -56466,8 +55600,8 @@ impl ::core::default::Default for ExternalFormatQNX<'_> { unsafe impl<'a> TaggedStructure for ExternalFormatQNX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_FORMAT_QNX; } -unsafe impl ExtendsImageCreateInfo for ExternalFormatQNX<'_> {} -unsafe impl ExtendsSamplerYcbcrConversionCreateInfo for ExternalFormatQNX<'_> {} +unsafe impl<'a> Extends> for ExternalFormatQNX<'a> {} +unsafe impl<'a> Extends> for ExternalFormatQNX<'a> {} impl<'a> ExternalFormatQNX<'a> { #[inline] pub fn external_format(mut self, external_format: u64) -> Self { @@ -56503,11 +55637,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalMemoryScreenBufferFeat const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'_> {} impl<'a> PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'a> { #[inline] pub fn screen_buffer_import(mut self, screen_buffer_import: bool) -> Self { @@ -56545,8 +55682,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCooperativeMatrixFeaturesKHR<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCooperativeMatrixFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCooperativeMatrixFeaturesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceCooperativeMatrixFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceCooperativeMatrixFeaturesKHR<'a> {} impl<'a> PhysicalDeviceCooperativeMatrixFeaturesKHR<'a> { #[inline] pub fn cooperative_matrix(mut self, cooperative_matrix: bool) -> Self { @@ -56681,7 +55821,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCooperativeMatrixPropertiesKHR const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceCooperativeMatrixPropertiesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceCooperativeMatrixPropertiesKHR<'a> +{ +} impl<'a> PhysicalDeviceCooperativeMatrixPropertiesKHR<'a> { #[inline] pub fn cooperative_matrix_supported_stages( @@ -56728,7 +55871,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderEnqueuePropertiesAMDX<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderEnqueuePropertiesAMDX<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderEnqueuePropertiesAMDX<'a> +{ +} impl<'a> PhysicalDeviceShaderEnqueuePropertiesAMDX<'a> { #[inline] pub fn max_execution_graph_depth(mut self, max_execution_graph_depth: u32) -> Self { @@ -56797,8 +55943,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> {} impl<'a> PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> { #[inline] pub fn shader_enqueue(mut self, shader_enqueue: bool) -> Self { @@ -56845,7 +55994,7 @@ impl ::core::default::Default for ExecutionGraphPipelineCreateInfoAMDX<'_> { unsafe impl<'a> TaggedStructure for ExecutionGraphPipelineCreateInfoAMDX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX; } -pub unsafe trait ExtendsExecutionGraphPipelineCreateInfoAMDX {} +unsafe impl<'a> BaseTaggedStructure for ExecutionGraphPipelineCreateInfoAMDX<'_> {} impl<'a> ExecutionGraphPipelineCreateInfoAMDX<'a> { #[inline] pub fn flags(mut self, flags: PipelineCreateFlags) -> Self { @@ -56878,23 +56027,6 @@ impl<'a> ExecutionGraphPipelineCreateInfoAMDX<'a> { self.base_pipeline_index = base_pipeline_index; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -56926,7 +56058,10 @@ unsafe impl<'a> TaggedStructure for PipelineShaderStageNodeCreateInfoAMDX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX; } -unsafe impl ExtendsPipelineShaderStageCreateInfo for PipelineShaderStageNodeCreateInfoAMDX<'_> {} +unsafe impl<'a> Extends> + for PipelineShaderStageNodeCreateInfoAMDX<'a> +{ +} impl<'a> PipelineShaderStageNodeCreateInfoAMDX<'a> { #[inline] pub fn name(mut self, name: &'a CStr) -> Self { @@ -57087,8 +56222,8 @@ impl ::core::default::Default for PhysicalDeviceAntiLagFeaturesAMD<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceAntiLagFeaturesAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceAntiLagFeaturesAMD<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceAntiLagFeaturesAMD<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceAntiLagFeaturesAMD<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceAntiLagFeaturesAMD<'a> {} impl<'a> PhysicalDeviceAntiLagFeaturesAMD<'a> { #[inline] pub fn anti_lag(mut self, anti_lag: bool) -> Self { @@ -57215,8 +56350,8 @@ impl ::core::default::Default for BindMemoryStatusKHR<'_> { unsafe impl<'a> TaggedStructure for BindMemoryStatusKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_MEMORY_STATUS_KHR; } -unsafe impl ExtendsBindBufferMemoryInfo for BindMemoryStatusKHR<'_> {} -unsafe impl ExtendsBindImageMemoryInfo for BindMemoryStatusKHR<'_> {} +unsafe impl<'a> Extends> for BindMemoryStatusKHR<'a> {} +unsafe impl<'a> Extends> for BindMemoryStatusKHR<'a> {} impl<'a> BindMemoryStatusKHR<'a> { #[inline] pub fn result(mut self, result: &'a mut Result) -> Self { @@ -57263,7 +56398,7 @@ impl ::core::default::Default for BindDescriptorSetsInfoKHR<'_> { unsafe impl<'a> TaggedStructure for BindDescriptorSetsInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_DESCRIPTOR_SETS_INFO_KHR; } -pub unsafe trait ExtendsBindDescriptorSetsInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for BindDescriptorSetsInfoKHR<'_> {} impl<'a> BindDescriptorSetsInfoKHR<'a> { #[inline] pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { @@ -57292,23 +56427,6 @@ impl<'a> BindDescriptorSetsInfoKHR<'a> { self.p_dynamic_offsets = dynamic_offsets.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -57345,7 +56463,7 @@ impl ::core::default::Default for PushConstantsInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PushConstantsInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PUSH_CONSTANTS_INFO_KHR; } -pub unsafe trait ExtendsPushConstantsInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for PushConstantsInfoKHR<'_> {} impl<'a> PushConstantsInfoKHR<'a> { #[inline] pub fn layout(mut self, layout: PipelineLayout) -> Self { @@ -57368,20 +56486,6 @@ impl<'a> PushConstantsInfoKHR<'a> { self.p_values = values.as_ptr().cast(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -57418,7 +56522,7 @@ impl ::core::default::Default for PushDescriptorSetInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PushDescriptorSetInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PUSH_DESCRIPTOR_SET_INFO_KHR; } -pub unsafe trait ExtendsPushDescriptorSetInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for PushDescriptorSetInfoKHR<'_> {} impl<'a> PushDescriptorSetInfoKHR<'a> { #[inline] pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { @@ -57441,23 +56545,6 @@ impl<'a> PushDescriptorSetInfoKHR<'a> { self.p_descriptor_writes = descriptor_writes.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -57492,7 +56579,7 @@ impl ::core::default::Default for PushDescriptorSetWithTemplateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PushDescriptorSetWithTemplateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR; } -pub unsafe trait ExtendsPushDescriptorSetWithTemplateInfoKHR {} +unsafe impl<'a> BaseTaggedStructure for PushDescriptorSetWithTemplateInfoKHR<'_> {} impl<'a> PushDescriptorSetWithTemplateInfoKHR<'a> { #[inline] pub fn descriptor_update_template( @@ -57517,23 +56604,6 @@ impl<'a> PushDescriptorSetWithTemplateInfoKHR<'a> { self.p_data = data; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -57572,7 +56642,7 @@ impl ::core::default::Default for SetDescriptorBufferOffsetsInfoEXT<'_> { unsafe impl<'a> TaggedStructure for SetDescriptorBufferOffsetsInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT; } -pub unsafe trait ExtendsSetDescriptorBufferOffsetsInfoEXT {} +unsafe impl<'a> BaseTaggedStructure for SetDescriptorBufferOffsetsInfoEXT<'_> {} impl<'a> SetDescriptorBufferOffsetsInfoEXT<'a> { #[inline] pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { @@ -57601,23 +56671,6 @@ impl<'a> SetDescriptorBufferOffsetsInfoEXT<'a> { self.p_offsets = offsets.as_ptr(); self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -57651,7 +56704,7 @@ unsafe impl<'a> TaggedStructure for BindDescriptorBufferEmbeddedSamplersInfoEXT< const STRUCTURE_TYPE: StructureType = StructureType::BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT; } -pub unsafe trait ExtendsBindDescriptorBufferEmbeddedSamplersInfoEXT {} +unsafe impl<'a> BaseTaggedStructure for BindDescriptorBufferEmbeddedSamplersInfoEXT<'_> {} impl<'a> BindDescriptorBufferEmbeddedSamplersInfoEXT<'a> { #[inline] pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { @@ -57668,23 +56721,6 @@ impl<'a> BindDescriptorBufferEmbeddedSamplersInfoEXT<'a> { self.set = set; self } - #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] - #[doc = r" method only exists on structs that can be passed to a function directly. Only"] - #[doc = r" valid extension structs can be pushed into the chain."] - #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"] - #[doc = r" chain will look like `A -> D -> B -> C`."] - pub fn push_next( - mut self, - next: &'a mut T, - ) -> Self { - unsafe { - let next_ptr = <*const T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -57713,8 +56749,8 @@ impl ::core::default::Default for PhysicalDeviceCubicClampFeaturesQCOM<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceCubicClampFeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCubicClampFeaturesQCOM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCubicClampFeaturesQCOM<'_> {} +unsafe impl<'a> Extends> for PhysicalDeviceCubicClampFeaturesQCOM<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceCubicClampFeaturesQCOM<'a> {} impl<'a> PhysicalDeviceCubicClampFeaturesQCOM<'a> { #[inline] pub fn cubic_range_clamp(mut self, cubic_range_clamp: bool) -> Self { @@ -57750,8 +56786,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> {} impl<'a> PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> { #[inline] pub fn ycbcr_degamma(mut self, ycbcr_degamma: bool) -> Self { @@ -57789,8 +56828,8 @@ unsafe impl<'a> TaggedStructure for SamplerYcbcrConversionYcbcrDegammaCreateInfo const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM; } -unsafe impl ExtendsSamplerYcbcrConversionCreateInfo - for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'_> +unsafe impl<'a> Extends> + for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'a> { } impl<'a> SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'a> { @@ -57833,8 +56872,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCubicWeightsFeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCubicWeightsFeaturesQCOM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCubicWeightsFeaturesQCOM<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceCubicWeightsFeaturesQCOM<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceCubicWeightsFeaturesQCOM<'a> {} impl<'a> PhysicalDeviceCubicWeightsFeaturesQCOM<'a> { #[inline] pub fn selectable_cubic_weights(mut self, selectable_cubic_weights: bool) -> Self { @@ -57869,7 +56911,7 @@ impl ::core::default::Default for SamplerCubicWeightsCreateInfoQCOM<'_> { unsafe impl<'a> TaggedStructure for SamplerCubicWeightsCreateInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM; } -unsafe impl ExtendsSamplerCreateInfo for SamplerCubicWeightsCreateInfoQCOM<'_> {} +unsafe impl<'a> Extends> for SamplerCubicWeightsCreateInfoQCOM<'a> {} impl<'a> SamplerCubicWeightsCreateInfoQCOM<'a> { #[inline] pub fn cubic_weights(mut self, cubic_weights: CubicFilterWeightsQCOM) -> Self { @@ -57904,7 +56946,7 @@ impl ::core::default::Default for BlitImageCubicWeightsInfoQCOM<'_> { unsafe impl<'a> TaggedStructure for BlitImageCubicWeightsInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM; } -unsafe impl ExtendsBlitImageInfo2 for BlitImageCubicWeightsInfoQCOM<'_> {} +unsafe impl<'a> Extends> for BlitImageCubicWeightsInfoQCOM<'a> {} impl<'a> BlitImageCubicWeightsInfoQCOM<'a> { #[inline] pub fn cubic_weights(mut self, cubic_weights: CubicFilterWeightsQCOM) -> Self { @@ -57940,8 +56982,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageProcessing2FeaturesQCOM<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImageProcessing2FeaturesQCOM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageProcessing2FeaturesQCOM<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceImageProcessing2FeaturesQCOM<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceImageProcessing2FeaturesQCOM<'a> {} impl<'a> PhysicalDeviceImageProcessing2FeaturesQCOM<'a> { #[inline] pub fn texture_block_match2(mut self, texture_block_match2: bool) -> Self { @@ -57977,7 +57022,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageProcessing2PropertiesQCOM const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceImageProcessing2PropertiesQCOM<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceImageProcessing2PropertiesQCOM<'a> +{ +} impl<'a> PhysicalDeviceImageProcessing2PropertiesQCOM<'a> { #[inline] pub fn max_block_match_window(mut self, max_block_match_window: Extent2D) -> Self { @@ -58015,7 +57063,7 @@ unsafe impl<'a> TaggedStructure for SamplerBlockMatchWindowCreateInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM; } -unsafe impl ExtendsSamplerCreateInfo for SamplerBlockMatchWindowCreateInfoQCOM<'_> {} +unsafe impl<'a> Extends> for SamplerBlockMatchWindowCreateInfoQCOM<'a> {} impl<'a> SamplerBlockMatchWindowCreateInfoQCOM<'a> { #[inline] pub fn window_extent(mut self, window_extent: Extent2D) -> Self { @@ -58059,11 +57107,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorPoolOverallocationFe const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'_> {} impl<'a> PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'a> { #[inline] pub fn descriptor_pool_overallocation(mut self, descriptor_pool_overallocation: bool) -> Self { @@ -58099,7 +57150,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceLayeredDriverPropertiesMSFT<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceLayeredDriverPropertiesMSFT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceLayeredDriverPropertiesMSFT<'a> +{ +} impl<'a> PhysicalDeviceLayeredDriverPropertiesMSFT<'a> { #[inline] pub fn underlying_api(mut self, underlying_api: LayeredDriverUnderlyingApiMSFT) -> Self { @@ -58137,8 +57191,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePerStageDescriptorSetFeaturesN const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePerStageDescriptorSetFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePerStageDescriptorSetFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDevicePerStageDescriptorSetFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDevicePerStageDescriptorSetFeaturesNV<'a> +{ +} impl<'a> PhysicalDevicePerStageDescriptorSetFeaturesNV<'a> { #[inline] pub fn per_stage_descriptor_set(mut self, per_stage_descriptor_set: bool) -> Self { @@ -58179,11 +57239,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalFormatResolveFeaturesA const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'_> {} impl<'a> PhysicalDeviceExternalFormatResolveFeaturesANDROID<'a> { #[inline] pub fn external_format_resolve(mut self, external_format_resolve: bool) -> Self { @@ -58223,8 +57286,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalFormatResolvePropertie const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceExternalFormatResolvePropertiesANDROID<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceExternalFormatResolvePropertiesANDROID<'a> { } impl<'a> PhysicalDeviceExternalFormatResolvePropertiesANDROID<'a> { @@ -58282,8 +57345,8 @@ unsafe impl<'a> TaggedStructure for AndroidHardwareBufferFormatResolveProperties const STRUCTURE_TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID; } -unsafe impl ExtendsAndroidHardwareBufferPropertiesANDROID - for AndroidHardwareBufferFormatResolvePropertiesANDROID<'_> +unsafe impl<'a> Extends> + for AndroidHardwareBufferFormatResolvePropertiesANDROID<'a> { } impl<'a> AndroidHardwareBufferFormatResolvePropertiesANDROID<'a> { @@ -58646,8 +57709,8 @@ impl ::core::default::Default for LatencySubmissionPresentIdNV<'_> { unsafe impl<'a> TaggedStructure for LatencySubmissionPresentIdNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_SUBMISSION_PRESENT_ID_NV; } -unsafe impl ExtendsSubmitInfo for LatencySubmissionPresentIdNV<'_> {} -unsafe impl ExtendsSubmitInfo2 for LatencySubmissionPresentIdNV<'_> {} +unsafe impl<'a> Extends> for LatencySubmissionPresentIdNV<'a> {} +unsafe impl<'a> Extends> for LatencySubmissionPresentIdNV<'a> {} impl<'a> LatencySubmissionPresentIdNV<'a> { #[inline] pub fn present_id(mut self, present_id: u64) -> Self { @@ -58682,7 +57745,7 @@ impl ::core::default::Default for SwapchainLatencyCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for SwapchainLatencyCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_LATENCY_CREATE_INFO_NV; } -unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainLatencyCreateInfoNV<'_> {} +unsafe impl<'a> Extends> for SwapchainLatencyCreateInfoNV<'a> {} impl<'a> SwapchainLatencyCreateInfoNV<'a> { #[inline] pub fn latency_mode_enable(mut self, latency_mode_enable: bool) -> Self { @@ -58719,7 +57782,7 @@ impl ::core::default::Default for LatencySurfaceCapabilitiesNV<'_> { unsafe impl<'a> TaggedStructure for LatencySurfaceCapabilitiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_SURFACE_CAPABILITIES_NV; } -unsafe impl ExtendsSurfaceCapabilities2KHR for LatencySurfaceCapabilitiesNV<'_> {} +unsafe impl<'a> Extends> for LatencySurfaceCapabilitiesNV<'a> {} impl<'a> LatencySurfaceCapabilitiesNV<'a> { #[inline] pub fn present_modes(mut self, present_modes: &'a mut [PresentModeKHR]) -> Self { @@ -58756,8 +57819,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCudaKernelLaunchFeaturesNV<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCudaKernelLaunchFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCudaKernelLaunchFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceCudaKernelLaunchFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceCudaKernelLaunchFeaturesNV<'a> {} impl<'a> PhysicalDeviceCudaKernelLaunchFeaturesNV<'a> { #[inline] pub fn cuda_kernel_launch_features(mut self, cuda_kernel_launch_features: bool) -> Self { @@ -58795,7 +57861,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCudaKernelLaunchPropertiesNV<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceCudaKernelLaunchPropertiesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceCudaKernelLaunchPropertiesNV<'a> +{ +} impl<'a> PhysicalDeviceCudaKernelLaunchPropertiesNV<'a> { #[inline] pub fn compute_capability_minor(mut self, compute_capability_minor: u32) -> Self { @@ -58836,8 +57905,11 @@ unsafe impl<'a> TaggedStructure for DeviceQueueShaderCoreControlCreateInfoARM<'a const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM; } -unsafe impl ExtendsDeviceQueueCreateInfo for DeviceQueueShaderCoreControlCreateInfoARM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for DeviceQueueShaderCoreControlCreateInfoARM<'_> {} +unsafe impl<'a> Extends> + for DeviceQueueShaderCoreControlCreateInfoARM<'a> +{ +} +unsafe impl<'a> Extends> for DeviceQueueShaderCoreControlCreateInfoARM<'a> {} impl<'a> DeviceQueueShaderCoreControlCreateInfoARM<'a> { #[inline] pub fn shader_core_count(mut self, shader_core_count: u32) -> Self { @@ -58873,8 +57945,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSchedulingControlsFeaturesARM< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceSchedulingControlsFeaturesARM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSchedulingControlsFeaturesARM<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceSchedulingControlsFeaturesARM<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceSchedulingControlsFeaturesARM<'a> {} impl<'a> PhysicalDeviceSchedulingControlsFeaturesARM<'a> { #[inline] pub fn scheduling_controls(mut self, scheduling_controls: bool) -> Self { @@ -58910,7 +57985,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSchedulingControlsPropertiesAR const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceSchedulingControlsPropertiesARM<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceSchedulingControlsPropertiesARM<'a> +{ +} impl<'a> PhysicalDeviceSchedulingControlsPropertiesARM<'a> { #[inline] pub fn scheduling_controls_flags( @@ -58949,11 +58027,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRelaxedLineRasterizationFeatur const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'_> {} impl<'a> PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'a> { #[inline] pub fn relaxed_line_rasterization(mut self, relaxed_line_rasterization: bool) -> Self { @@ -58989,8 +58070,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRenderPassStripedFeaturesARM<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRenderPassStripedFeaturesARM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRenderPassStripedFeaturesARM<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceRenderPassStripedFeaturesARM<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceRenderPassStripedFeaturesARM<'a> {} impl<'a> PhysicalDeviceRenderPassStripedFeaturesARM<'a> { #[inline] pub fn render_pass_striped(mut self, render_pass_striped: bool) -> Self { @@ -59028,7 +58112,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRenderPassStripedPropertiesARM const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceRenderPassStripedPropertiesARM<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceRenderPassStripedPropertiesARM<'a> +{ +} impl<'a> PhysicalDeviceRenderPassStripedPropertiesARM<'a> { #[inline] pub fn render_pass_stripe_granularity( @@ -59107,8 +58194,8 @@ impl ::core::default::Default for RenderPassStripeBeginInfoARM<'_> { unsafe impl<'a> TaggedStructure for RenderPassStripeBeginInfoARM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_BEGIN_INFO_ARM; } -unsafe impl ExtendsRenderingInfo for RenderPassStripeBeginInfoARM<'_> {} -unsafe impl ExtendsRenderPassBeginInfo for RenderPassStripeBeginInfoARM<'_> {} +unsafe impl<'a> Extends> for RenderPassStripeBeginInfoARM<'a> {} +unsafe impl<'a> Extends> for RenderPassStripeBeginInfoARM<'a> {} impl<'a> RenderPassStripeBeginInfoARM<'a> { #[inline] pub fn stripe_infos(mut self, stripe_infos: &'a [RenderPassStripeInfoARM<'a>]) -> Self { @@ -59146,7 +58233,7 @@ impl ::core::default::Default for RenderPassStripeSubmitInfoARM<'_> { unsafe impl<'a> TaggedStructure for RenderPassStripeSubmitInfoARM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_SUBMIT_INFO_ARM; } -unsafe impl ExtendsCommandBufferSubmitInfo for RenderPassStripeSubmitInfoARM<'_> {} +unsafe impl<'a> Extends> for RenderPassStripeSubmitInfoARM<'a> {} impl<'a> RenderPassStripeSubmitInfoARM<'a> { #[inline] pub fn stripe_semaphore_infos( @@ -59186,11 +58273,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderMaximalReconvergenceFeat const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'_> {} impl<'a> PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'a> { #[inline] pub fn shader_maximal_reconvergence(mut self, shader_maximal_reconvergence: bool) -> Self { @@ -59228,8 +58318,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderSubgroupRotateFeaturesKH const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'a> +{ +} impl<'a> PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'a> { #[inline] pub fn shader_subgroup_rotate(mut self, shader_subgroup_rotate: bool) -> Self { @@ -59273,8 +58369,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderExpectAssumeFeaturesKHR< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'a> {} impl<'a> PhysicalDeviceShaderExpectAssumeFeaturesKHR<'a> { #[inline] pub fn shader_expect_assume(mut self, shader_expect_assume: bool) -> Self { @@ -59310,8 +58409,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderFloatControls2FeaturesKH const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderFloatControls2FeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderFloatControls2FeaturesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderFloatControls2FeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderFloatControls2FeaturesKHR<'a> +{ +} impl<'a> PhysicalDeviceShaderFloatControls2FeaturesKHR<'a> { #[inline] pub fn shader_float_controls2(mut self, shader_float_controls2: bool) -> Self { @@ -59347,11 +58452,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDynamicRenderingLocalReadFeatu const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'_> {} impl<'a> PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'a> { #[inline] pub fn dynamic_rendering_local_read(mut self, dynamic_rendering_local_read: bool) -> Self { @@ -59388,8 +58496,11 @@ impl ::core::default::Default for RenderingAttachmentLocationInfoKHR<'_> { unsafe impl<'a> TaggedStructure for RenderingAttachmentLocationInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_ATTACHMENT_LOCATION_INFO_KHR; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for RenderingAttachmentLocationInfoKHR<'_> {} -unsafe impl ExtendsCommandBufferInheritanceInfo for RenderingAttachmentLocationInfoKHR<'_> {} +unsafe impl<'a> Extends> for RenderingAttachmentLocationInfoKHR<'a> {} +unsafe impl<'a> Extends> + for RenderingAttachmentLocationInfoKHR<'a> +{ +} impl<'a> RenderingAttachmentLocationInfoKHR<'a> { #[inline] pub fn color_attachment_locations(mut self, color_attachment_locations: &'a [u32]) -> Self { @@ -59431,8 +58542,14 @@ impl ::core::default::Default for RenderingInputAttachmentIndexInfoKHR<'_> { unsafe impl<'a> TaggedStructure for RenderingInputAttachmentIndexInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for RenderingInputAttachmentIndexInfoKHR<'_> {} -unsafe impl ExtendsCommandBufferInheritanceInfo for RenderingInputAttachmentIndexInfoKHR<'_> {} +unsafe impl<'a> Extends> + for RenderingInputAttachmentIndexInfoKHR<'a> +{ +} +unsafe impl<'a> Extends> + for RenderingInputAttachmentIndexInfoKHR<'a> +{ +} impl<'a> RenderingInputAttachmentIndexInfoKHR<'a> { #[inline] pub fn color_attachment_input_indices( @@ -59485,8 +58602,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderQuadControlFeaturesKHR<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderQuadControlFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderQuadControlFeaturesKHR<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderQuadControlFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceShaderQuadControlFeaturesKHR<'a> {} impl<'a> PhysicalDeviceShaderQuadControlFeaturesKHR<'a> { #[inline] pub fn shader_quad_control(mut self, shader_quad_control: bool) -> Self { @@ -59522,11 +58642,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderAtomicFloat16VectorFeatu const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'_> {} impl<'a> PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'a> { #[inline] pub fn shader_float16_vector_atomics(mut self, shader_float16_vector_atomics: bool) -> Self { @@ -59566,8 +58689,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a> {} impl<'a> PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a> { #[inline] pub fn memory_map_placed(mut self, memory_map_placed: bool) -> Self { @@ -59613,7 +58739,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMapMemoryPlacedPropertiesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMapMemoryPlacedPropertiesEXT<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceMapMemoryPlacedPropertiesEXT<'a> +{ +} impl<'a> PhysicalDeviceMapMemoryPlacedPropertiesEXT<'a> { #[inline] pub fn min_placed_memory_map_alignment( @@ -59651,7 +58780,7 @@ impl ::core::default::Default for MemoryMapPlacedInfoEXT<'_> { unsafe impl<'a> TaggedStructure for MemoryMapPlacedInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_MAP_PLACED_INFO_EXT; } -unsafe impl ExtendsMemoryMapInfoKHR for MemoryMapPlacedInfoEXT<'_> {} +unsafe impl<'a> Extends> for MemoryMapPlacedInfoEXT<'a> {} impl<'a> MemoryMapPlacedInfoEXT<'a> { #[inline] pub fn placed_address(mut self, placed_address: *mut c_void) -> Self { @@ -59687,8 +58816,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRawAccessChainsFeaturesNV<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRawAccessChainsFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRawAccessChainsFeaturesNV<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceRawAccessChainsFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceRawAccessChainsFeaturesNV<'a> {} impl<'a> PhysicalDeviceRawAccessChainsFeaturesNV<'a> { #[inline] pub fn shader_raw_access_chains(mut self, shader_raw_access_chains: bool) -> Self { @@ -59724,11 +58856,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCommandBufferInheritanceFeatur const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'_> {} impl<'a> PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { #[inline] pub fn command_buffer_inheritance(mut self, command_buffer_inheritance: bool) -> Self { @@ -59764,8 +58899,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageAlignmentControlFeaturesM const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> {} +unsafe impl<'a> Extends> + for PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> +{ +} impl<'a> PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> { #[inline] pub fn image_alignment_control(mut self, image_alignment_control: bool) -> Self { @@ -59801,8 +58942,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageAlignmentControlPropertie const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA; } -unsafe impl ExtendsPhysicalDeviceProperties2 - for PhysicalDeviceImageAlignmentControlPropertiesMESA<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> { } impl<'a> PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> { @@ -59839,7 +58980,7 @@ impl ::core::default::Default for ImageAlignmentControlCreateInfoMESA<'_> { unsafe impl<'a> TaggedStructure for ImageAlignmentControlCreateInfoMESA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA; } -unsafe impl ExtendsImageCreateInfo for ImageAlignmentControlCreateInfoMESA<'_> {} +unsafe impl<'a> Extends> for ImageAlignmentControlCreateInfoMESA<'a> {} impl<'a> ImageAlignmentControlCreateInfoMESA<'a> { #[inline] pub fn maximum_requested_alignment(mut self, maximum_requested_alignment: u32) -> Self { @@ -59875,11 +59016,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderReplicatedCompositesFeat const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 - for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'_> +unsafe impl<'a> Extends> + for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'_> {} impl<'a> PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> { #[inline] pub fn shader_replicated_composites(mut self, shader_replicated_composites: bool) -> Self { diff --git a/ash/src/vk/prelude.rs b/ash/src/vk/prelude.rs index 5f77f1472..bed1405c7 100644 --- a/ash/src/vk/prelude.rs +++ b/ash/src/vk/prelude.rs @@ -2,6 +2,7 @@ use core::ffi::c_char; use core::fmt; use crate::vk; +pub use vk::{BaseTaggedStructure, Extends}; /// Holds 24 bits in the least significant bits of memory, /// and 8 bytes in the most significant bits of that memory, @@ -61,6 +62,12 @@ impl From for vk::Rect2D { /// must always match the value of [`TaggedStructure::STRUCTURE_TYPE`]. pub unsafe trait TaggedStructure { const STRUCTURE_TYPE: vk::StructureType; + fn as_base_out_structure(&mut self) -> &mut vk::BaseOutStructure<'_> { + unsafe { &mut *(<*mut Self>::cast(self) as *mut vk::BaseOutStructure<'_>) } + } + fn as_base_in_structure(&self) -> &vk::BaseInStructure<'_> { + unsafe { &*(<*const Self>::cast(self) as *const vk::BaseInStructure<'_>) } + } } #[inline] diff --git a/generator/src/lib.rs b/generator/src/lib.rs index ed85b3be8..bfa538834 100644 --- a/generator/src/lib.rs +++ b/generator/src/lib.rs @@ -2311,8 +2311,6 @@ fn derive_getters_and_setters( }) }); - let extends_name = format_ident!("Extends{}", name); - // The `p_next` field should only be considered if this struct is also a root struct let root_struct_next_field = next_field.filter(|_| root_structs.contains(&name)); @@ -2320,48 +2318,13 @@ fn derive_getters_and_setters( let next_function = if let Some(next_member) = root_struct_next_field { let next_field = &next_member.vkxml_field; assert_eq!(next_field.basetype, "void"); - let mutability = if next_field.is_const { - quote!(const) - } else { - quote!(mut) - }; quote! { - /// Prepends the given extension struct between the root and the first pointer. This - /// method only exists on structs that can be passed to a function directly. Only - /// valid extension structs can be pushed into the chain. - /// If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the - /// chain will look like `A -> D -> B -> C`. - pub fn push_next(mut self, next: &'a mut T) -> Self { - unsafe { - let next_ptr = <*#mutability T>::cast(next); - // `next` here can contain a pointer chain. This means that we must correctly - // attach he head to the root and the tail to the rest of the chain - // For example: - // - // next = A -> B - // Before: `Root -> C -> D -> E` - // After: `Root -> A -> B -> C -> D -> E` - // ^^^^^^ - // next chain - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.p_next as _; - self.p_next = next_ptr; - } - self - } + unsafe impl<'a> BaseTaggedStructure for #name<'_>{} } } else { quote!() }; - // Root structs come with their own trait that structs that extend - // this struct will implement - let next_trait = if root_struct_next_field.is_some() { - quote!(pub unsafe trait #extends_name {}) - } else { - quote!() - }; - let lifetime = has_lifetimes.contains(&name).then(|| quote!(<'a>)); // If the struct extends something we need to implement the traits. @@ -2369,10 +2332,10 @@ fn derive_getters_and_setters( .extends .iter() .flat_map(|extends| extends.split(',')) - .map(|extends| format_ident!("Extends{}", name_to_tokens(extends))) .map(|extends| { + let extends = name_to_tokens(extends); // Extension structs always have a pNext, and therefore always have a lifetime. - quote!(unsafe impl #extends for #name<'_> {}) + quote!(unsafe impl<'a> Extends<#extends<'a>> for #name<'a> {}) }); let impl_structure_type_trait = structure_type_field.map(|member| { @@ -2395,12 +2358,10 @@ fn derive_getters_and_setters( let q = quote! { #impl_structure_type_trait #(#impl_extend_trait)* - #next_trait + #next_function impl #lifetime #name #lifetime { #(#setters)* - - #next_function } }; @@ -3390,7 +3351,7 @@ pub fn write_source_code>(vk_headers_dir: &Path, src_dir: P) { use core::marker::PhantomData; use core::fmt; use core::ffi::*; - use crate::vk::{Handle, ptr_chain_iter}; + use crate::vk::Handle; use crate::vk::aliases::*; use crate::vk::bitflags::*; use crate::vk::constants::*; From 69a7ed3dc4e092229ad7c053e01db8b200502b12 Mon Sep 17 00:00:00 2001 From: Zhixing Zhang Date: Mon, 14 Oct 2024 02:01:00 -0700 Subject: [PATCH 2/7] Changes --- ash/src/extensions_generated.rs | 614 +------ ash/src/util.rs | 203 ++- ash/src/vk.rs | 4 +- ash/src/vk/aliases.rs | 2 - ash/src/vk/bitflags.rs | 24 - ash/src/vk/const_debugs.rs | 275 +--- ash/src/vk/constants.rs | 1 - ash/src/vk/definitions.rs | 2702 ++----------------------------- ash/src/vk/enums.rs | 131 +- ash/src/vk/extensions.rs | 309 +--- ash/src/vk/prelude.rs | 6 - generator/src/lib.rs | 2 +- 12 files changed, 302 insertions(+), 3971 deletions(-) diff --git a/ash/src/extensions_generated.rs b/ash/src/extensions_generated.rs index 7e2a4affc..e831437d5 100644 --- a/ash/src/extensions_generated.rs +++ b/ash/src/extensions_generated.rs @@ -445,68 +445,6 @@ pub mod amd { crate::vk::AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_AMD_anti_lag"] - pub mod anti_lag { - use super::super::*; - pub use { - crate::vk::AMD_ANTI_LAG_NAME as NAME, - crate::vk::AMD_ANTI_LAG_SPEC_VERSION as SPEC_VERSION, - }; - #[doc = "VK_AMD_anti_lag device-level functions"] - #[derive(Clone)] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - #[derive(Clone)] - #[doc = "Raw VK_AMD_anti_lag device-level function pointers"] - pub struct DeviceFn { - pub anti_lag_update_amd: PFN_vkAntiLagUpdateAMD, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load *const c_void>(mut f: F) -> Self { - Self::load_erased(&mut f) - } - fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { - Self { - anti_lag_update_amd: unsafe { - unsafe extern "system" fn anti_lag_update_amd( - _device: crate::vk::Device, - _p_data: *const AntiLagDataAMD<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(anti_lag_update_amd))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkAntiLagUpdateAMD\0"); - let val = _f(cname); - if val.is_null() { - anti_lag_update_amd - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - } } #[doc = "Extensions tagged AMDX"] pub mod amdx { @@ -7312,7 +7250,6 @@ pub mod ext { pub cmd_set_representative_fragment_test_enable_nv: PFN_vkCmdSetRepresentativeFragmentTestEnableNV, pub cmd_set_coverage_reduction_mode_nv: PFN_vkCmdSetCoverageReductionModeNV, - pub cmd_set_depth_clamp_range_ext: PFN_vkCmdSetDepthClampRangeEXT, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -8365,26 +8302,6 @@ pub mod ext { ::core::mem::transmute(val) } }, - cmd_set_depth_clamp_range_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_clamp_range_ext( - _command_buffer: CommandBuffer, - _depth_clamp_mode: DepthClampModeEXT, - _p_depth_clamp_range: *const DepthClampRangeEXT, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_clamp_range_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthClampRangeEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_clamp_range_ext - } else { - ::core::mem::transmute(val) - } - }, } } } @@ -8397,14 +8314,6 @@ pub mod ext { crate::vk::EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_EXT_legacy_vertex_attributes"] - pub mod legacy_vertex_attributes { - use super::super::*; - pub use { - crate::vk::EXT_LEGACY_VERTEX_ATTRIBUTES_NAME as NAME, - crate::vk::EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION as SPEC_VERSION, - }; - } #[doc = "VK_EXT_layer_settings"] pub mod layer_settings { use super::super::*; @@ -8497,333 +8406,6 @@ pub mod ext { } } } - #[doc = "VK_EXT_shader_replicated_composites"] - pub mod shader_replicated_composites { - use super::super::*; - pub use { - crate::vk::EXT_SHADER_REPLICATED_COMPOSITES_NAME as NAME, - crate::vk::EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_device_generated_commands"] - pub mod device_generated_commands { - use super::super::*; - pub use { - crate::vk::EXT_DEVICE_GENERATED_COMMANDS_NAME as NAME, - crate::vk::EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION as SPEC_VERSION, - }; - #[doc = "VK_EXT_device_generated_commands device-level functions"] - #[derive(Clone)] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - #[derive(Clone)] - #[doc = "Raw VK_EXT_device_generated_commands device-level function pointers"] - pub struct DeviceFn { - pub get_generated_commands_memory_requirements_ext: - PFN_vkGetGeneratedCommandsMemoryRequirementsEXT, - pub cmd_preprocess_generated_commands_ext: PFN_vkCmdPreprocessGeneratedCommandsEXT, - pub cmd_execute_generated_commands_ext: PFN_vkCmdExecuteGeneratedCommandsEXT, - pub create_indirect_commands_layout_ext: PFN_vkCreateIndirectCommandsLayoutEXT, - pub destroy_indirect_commands_layout_ext: PFN_vkDestroyIndirectCommandsLayoutEXT, - pub create_indirect_execution_set_ext: PFN_vkCreateIndirectExecutionSetEXT, - pub destroy_indirect_execution_set_ext: PFN_vkDestroyIndirectExecutionSetEXT, - pub update_indirect_execution_set_pipeline_ext: - PFN_vkUpdateIndirectExecutionSetPipelineEXT, - pub update_indirect_execution_set_shader_ext: PFN_vkUpdateIndirectExecutionSetShaderEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load *const c_void>(mut f: F) -> Self { - Self::load_erased(&mut f) - } - fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { - Self { - get_generated_commands_memory_requirements_ext: unsafe { - unsafe extern "system" fn get_generated_commands_memory_requirements_ext( - _device: crate::vk::Device, - _p_info: *const GeneratedCommandsMemoryRequirementsInfoEXT<'_>, - _p_memory_requirements: *mut MemoryRequirements2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_generated_commands_memory_requirements_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetGeneratedCommandsMemoryRequirementsEXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_generated_commands_memory_requirements_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_preprocess_generated_commands_ext: unsafe { - unsafe extern "system" fn cmd_preprocess_generated_commands_ext( - _command_buffer: CommandBuffer, - _p_generated_commands_info: *const GeneratedCommandsInfoEXT<'_>, - _state_command_buffer: CommandBuffer, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_preprocess_generated_commands_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdPreprocessGeneratedCommandsEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_preprocess_generated_commands_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_execute_generated_commands_ext: unsafe { - unsafe extern "system" fn cmd_execute_generated_commands_ext( - _command_buffer: CommandBuffer, - _is_preprocessed: Bool32, - _p_generated_commands_info: *const GeneratedCommandsInfoEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_execute_generated_commands_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdExecuteGeneratedCommandsEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_execute_generated_commands_ext - } else { - ::core::mem::transmute(val) - } - }, - create_indirect_commands_layout_ext: unsafe { - unsafe extern "system" fn create_indirect_commands_layout_ext( - _device: crate::vk::Device, - _p_create_info: *const IndirectCommandsLayoutCreateInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_indirect_commands_layout: *mut IndirectCommandsLayoutEXT, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_indirect_commands_layout_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateIndirectCommandsLayoutEXT\0", - ); - let val = _f(cname); - if val.is_null() { - create_indirect_commands_layout_ext - } else { - ::core::mem::transmute(val) - } - }, - destroy_indirect_commands_layout_ext: unsafe { - unsafe extern "system" fn destroy_indirect_commands_layout_ext( - _device: crate::vk::Device, - _indirect_commands_layout: IndirectCommandsLayoutEXT, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_indirect_commands_layout_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkDestroyIndirectCommandsLayoutEXT\0", - ); - let val = _f(cname); - if val.is_null() { - destroy_indirect_commands_layout_ext - } else { - ::core::mem::transmute(val) - } - }, - create_indirect_execution_set_ext: unsafe { - unsafe extern "system" fn create_indirect_execution_set_ext( - _device: crate::vk::Device, - _p_create_info: *const IndirectExecutionSetCreateInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_indirect_execution_set: *mut IndirectExecutionSetEXT, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_indirect_execution_set_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateIndirectExecutionSetEXT\0", - ); - let val = _f(cname); - if val.is_null() { - create_indirect_execution_set_ext - } else { - ::core::mem::transmute(val) - } - }, - destroy_indirect_execution_set_ext: unsafe { - unsafe extern "system" fn destroy_indirect_execution_set_ext( - _device: crate::vk::Device, - _indirect_execution_set: IndirectExecutionSetEXT, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_indirect_execution_set_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkDestroyIndirectExecutionSetEXT\0", - ); - let val = _f(cname); - if val.is_null() { - destroy_indirect_execution_set_ext - } else { - ::core::mem::transmute(val) - } - }, - update_indirect_execution_set_pipeline_ext: unsafe { - unsafe extern "system" fn update_indirect_execution_set_pipeline_ext( - _device: crate::vk::Device, - _indirect_execution_set: IndirectExecutionSetEXT, - _execution_set_write_count: u32, - _p_execution_set_writes: *const WriteIndirectExecutionSetPipelineEXT< - '_, - >, - ) { - panic!(concat!( - "Unable to load ", - stringify!(update_indirect_execution_set_pipeline_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkUpdateIndirectExecutionSetPipelineEXT\0", - ); - let val = _f(cname); - if val.is_null() { - update_indirect_execution_set_pipeline_ext - } else { - ::core::mem::transmute(val) - } - }, - update_indirect_execution_set_shader_ext: unsafe { - unsafe extern "system" fn update_indirect_execution_set_shader_ext( - _device: crate::vk::Device, - _indirect_execution_set: IndirectExecutionSetEXT, - _execution_set_write_count: u32, - _p_execution_set_writes: *const WriteIndirectExecutionSetShaderEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(update_indirect_execution_set_shader_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkUpdateIndirectExecutionSetShaderEXT\0", - ); - let val = _f(cname); - if val.is_null() { - update_indirect_execution_set_shader_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - } - #[doc = "VK_EXT_depth_clamp_control"] - pub mod depth_clamp_control { - use super::super::*; - pub use { - crate::vk::EXT_DEPTH_CLAMP_CONTROL_NAME as NAME, - crate::vk::EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION as SPEC_VERSION, - }; - #[doc = "VK_EXT_depth_clamp_control device-level functions"] - #[derive(Clone)] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - #[derive(Clone)] - #[doc = "Raw VK_EXT_depth_clamp_control device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_depth_clamp_range_ext: PFN_vkCmdSetDepthClampRangeEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load *const c_void>(mut f: F) -> Self { - Self::load_erased(&mut f) - } - fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { - Self { - cmd_set_depth_clamp_range_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_clamp_range_ext( - _command_buffer: CommandBuffer, - _depth_clamp_mode: DepthClampModeEXT, - _p_depth_clamp_range: *const DepthClampRangeEXT, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_clamp_range_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthClampRangeEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_clamp_range_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - } } #[doc = "Extensions tagged FUCHSIA"] pub mod fuchsia { @@ -15396,7 +14978,7 @@ pub mod khr { cmd_set_rendering_input_attachment_indices_khr: unsafe { unsafe extern "system" fn cmd_set_rendering_input_attachment_indices_khr( _command_buffer: CommandBuffer, - _p_input_attachment_index_info : * const RenderingInputAttachmentIndexInfoKHR < '_ >, + _p_location_info: *const RenderingInputAttachmentIndexInfoKHR<'_>, ) { panic!(concat!( "Unable to load ", @@ -16902,157 +16484,6 @@ pub mod khr { crate::vk::KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_KHR_pipeline_binary"] - pub mod pipeline_binary { - use super::super::*; - pub use { - crate::vk::KHR_PIPELINE_BINARY_NAME as NAME, - crate::vk::KHR_PIPELINE_BINARY_SPEC_VERSION as SPEC_VERSION, - }; - #[doc = "VK_KHR_pipeline_binary device-level functions"] - #[derive(Clone)] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - #[derive(Clone)] - #[doc = "Raw VK_KHR_pipeline_binary device-level function pointers"] - pub struct DeviceFn { - pub create_pipeline_binaries_khr: PFN_vkCreatePipelineBinariesKHR, - pub destroy_pipeline_binary_khr: PFN_vkDestroyPipelineBinaryKHR, - pub get_pipeline_key_khr: PFN_vkGetPipelineKeyKHR, - pub get_pipeline_binary_data_khr: PFN_vkGetPipelineBinaryDataKHR, - pub release_captured_pipeline_data_khr: PFN_vkReleaseCapturedPipelineDataKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load *const c_void>(mut f: F) -> Self { - Self::load_erased(&mut f) - } - fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { - Self { - create_pipeline_binaries_khr: unsafe { - unsafe extern "system" fn create_pipeline_binaries_khr( - _device: crate::vk::Device, - _p_create_info: *const PipelineBinaryCreateInfoKHR<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_binaries: *mut PipelineBinaryHandlesInfoKHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_pipeline_binaries_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreatePipelineBinariesKHR\0"); - let val = _f(cname); - if val.is_null() { - create_pipeline_binaries_khr - } else { - ::core::mem::transmute(val) - } - }, - destroy_pipeline_binary_khr: unsafe { - unsafe extern "system" fn destroy_pipeline_binary_khr( - _device: crate::vk::Device, - _pipeline_binary: PipelineBinaryKHR, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_pipeline_binary_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDestroyPipelineBinaryKHR\0"); - let val = _f(cname); - if val.is_null() { - destroy_pipeline_binary_khr - } else { - ::core::mem::transmute(val) - } - }, - get_pipeline_key_khr: unsafe { - unsafe extern "system" fn get_pipeline_key_khr( - _device: crate::vk::Device, - _p_pipeline_create_info: *const PipelineCreateInfoKHR<'_>, - _p_pipeline_key: *mut PipelineBinaryKeyKHR<'_>, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(get_pipeline_key_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetPipelineKeyKHR\0"); - let val = _f(cname); - if val.is_null() { - get_pipeline_key_khr - } else { - ::core::mem::transmute(val) - } - }, - get_pipeline_binary_data_khr: unsafe { - unsafe extern "system" fn get_pipeline_binary_data_khr( - _device: crate::vk::Device, - _p_info: *const PipelineBinaryDataInfoKHR<'_>, - _p_pipeline_binary_key: *mut PipelineBinaryKeyKHR<'_>, - _p_pipeline_binary_data_size: *mut usize, - _p_pipeline_binary_data: *mut c_void, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_pipeline_binary_data_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetPipelineBinaryDataKHR\0"); - let val = _f(cname); - if val.is_null() { - get_pipeline_binary_data_khr - } else { - ::core::mem::transmute(val) - } - }, - release_captured_pipeline_data_khr: unsafe { - unsafe extern "system" fn release_captured_pipeline_data_khr( - _device: crate::vk::Device, - _p_info: *const ReleaseCapturedPipelineDataInfoKHR<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(release_captured_pipeline_data_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkReleaseCapturedPipelineDataKHR\0", - ); - let val = _f(cname); - if val.is_null() { - release_captured_pipeline_data_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - } #[doc = "VK_KHR_cooperative_matrix"] pub mod cooperative_matrix { use super::super::*; @@ -17122,14 +16553,6 @@ pub mod khr { } } } - #[doc = "VK_KHR_compute_shader_derivatives"] - pub mod compute_shader_derivatives { - use super::super::*; - pub use { - crate::vk::KHR_COMPUTE_SHADER_DERIVATIVES_NAME as NAME, - crate::vk::KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION as SPEC_VERSION, - }; - } #[doc = "VK_KHR_video_decode_av1"] pub mod video_decode_av1 { use super::super::*; @@ -17554,22 +16977,6 @@ pub mod khr { } } } - #[doc = "VK_KHR_shader_relaxed_extended_instruction"] - pub mod shader_relaxed_extended_instruction { - use super::super::*; - pub use { - crate::vk::KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_NAME as NAME, - crate::vk::KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_KHR_maintenance7"] - pub mod maintenance7 { - use super::super::*; - pub use { - crate::vk::KHR_MAINTENANCE7_NAME as NAME, - crate::vk::KHR_MAINTENANCE7_SPEC_VERSION as SPEC_VERSION, - }; - } } #[doc = "Extensions tagged LUNARG"] pub mod lunarg { @@ -17582,17 +16989,6 @@ pub mod lunarg { }; } } -#[doc = "Extensions tagged MESA"] -pub mod mesa { - #[doc = "VK_MESA_image_alignment_control"] - pub mod image_alignment_control { - use super::super::*; - pub use { - crate::vk::MESA_IMAGE_ALIGNMENT_CONTROL_NAME as NAME, - crate::vk::MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION as SPEC_VERSION, - }; - } -} #[doc = "Extensions tagged MSFT"] pub mod msft { #[doc = "VK_MSFT_layered_driver"] @@ -20349,14 +19745,6 @@ pub mod nv { crate::vk::NV_RAW_ACCESS_CHAINS_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_NV_command_buffer_inheritance"] - pub mod command_buffer_inheritance { - use super::super::*; - pub use { - crate::vk::NV_COMMAND_BUFFER_INHERITANCE_NAME as NAME, - crate::vk::NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION as SPEC_VERSION, - }; - } #[doc = "VK_NV_shader_atomic_float16_vector"] pub mod shader_atomic_float16_vector { use super::super::*; diff --git a/ash/src/util.rs b/ash/src/util.rs index 0d1a618e7..63b0ad0fc 100644 --- a/ash/src/util.rs +++ b/ash/src/util.rs @@ -141,68 +141,167 @@ pub fn read_spv(x: &mut R) -> io::Result> { Ok(result) } -/// Iterates through the pointer chain. Includes the item that is passed into the function. -/// Stops at the last [`BaseOutStructure`] that has a null [`BaseOutStructure::p_next`] field. -unsafe fn ptr_chain_iter( - ptr: &mut T, -) -> impl Iterator> { - let ptr = <*mut T>::cast::>(ptr); - (0..).scan(ptr, |p_ptr, _| { - if p_ptr.is_null() { - return None; - } - let n_ptr = (**p_ptr).p_next; - let old = *p_ptr; - *p_ptr = n_ptr; - Some(old) - }) -} - -pub trait NextChainExt { - fn base_structure(&mut self) -> &mut vk::BaseOutStructure<'_>; - fn add_next>(&mut self, next: &mut T) -> &mut Self { - unsafe { - let next_ptr = <*mut T>::cast(next); - let last_next = ptr_chain_iter(next).last().unwrap(); - (*last_next).p_next = self.base_structure().p_next as _; - self.base_structure().p_next = next_ptr; - } - self +pub trait NextChainExt<'a>: vk::TaggedStructure { + /// Prepends the given extension struct between the root and the first pointer. This + /// method only exists on structs that can be passed to a function directly. Only + /// valid extension structs can be pushed into the chain. + /// If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the + /// chain will look like `A -> D -> B -> C`. + /// + /// For inline construction of extension structs using the builder pattern, use `with_next` instead. + fn push_next + 'a>(&mut self, next: &'a mut T) { + let next: &mut vk::BaseOutStructure<'a> = unsafe { + // Safety: next implements vk::Extends and TaggedStructure + &mut *<*mut T>::cast(next) + }; + assert!(next.p_next.is_null()); + let base: &mut vk::BaseOutStructure<'a> = unsafe { + // Safety: next implements vk::Extends and TaggedStructure + &mut *<*mut Self>::cast(self) + }; + next.p_next = base.p_next; + base.p_next = next; } - fn push_next>(mut self, next: &mut T) -> Self + + /// Builder method to prepends the given extension struct between the root and the first pointer. + /// This method only exists on structs that can be passed to a function directly. Only + /// valid extension structs can be pushed into the chain. + /// + /// ```rs + /// let mut a = vk::PhysicalDeviceRayTracingPipelineFeaturesKHR::default(); + /// let mut b = vk::PhysicalDeviceAccelerationStructureFeaturesKHR::default(); + /// let mut c = vk::PhysicalDeviceMultiDrawFeaturesEXT::default(); + /// let base = vk::PhysicalDeviceFeatures2::default() + /// .with_next(&mut a) + /// .with_next(&mut b) + /// .with_next(&mut c); + /// let mut iter = base.iter_next_chain(); + /// assert_eq!(iter.next().unwrap().tag(), vk::StructureType::PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT); // c.s_type + /// assert_eq!(iter.next().unwrap().tag(), vk::StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR); // b.s_type + /// assert_eq!(iter.next().unwrap().tag(), vk::StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR); // a.s_type + /// ``` + /// For inline construction of extension structs, use `with_next` instead. + fn with_next + 'a>(mut self, next: &'a mut T) -> Self where Self: Sized, { - self.add_next(next); + self.push_next(next); self } + /// Returns a mutable iterator over the entire extension chain attached to `Self` + fn iter_next_chain_mut(&'a mut self) -> impl Iterator> + 'a { + unsafe { + let this = TaggedObject::from_mut(self); + (0..).scan(this.output.p_next, |p_ptr, _| { + if p_ptr.is_null() { + return None; + } + let n_ptr = (**p_ptr).p_next; + let old = *p_ptr; + *p_ptr = n_ptr; + Some(TaggedObject::from_raw_mut(old)) + }) + } + } + /// Returns an iterator over the entire extension chain attached to `Self` + fn iter_next_chain(&'a self) -> impl Iterator> + 'a { + unsafe { + let ptr = <*const Self>::cast::>(self); + (0..).scan((&*ptr).p_next, |p_ptr, _| { + if p_ptr.is_null() { + return None; + } + let n_ptr = (**p_ptr).p_next; + let old = *p_ptr; + *p_ptr = n_ptr; + Some(TaggedObject::from_raw(old)) + }) + } + } + /// Extend the next chain of the current object with multiple tagged objects + fn extend( + &mut self, + nexts: impl IntoIterator>, + ) { + for next in nexts.into_iter() { + self.push_next(next); + } + } } -impl NextChainExt for T + +/// Blanket implementation of next chain utility methods on all base types +impl<'a, T> NextChainExt<'a> for T where - T: vk::BaseTaggedStructure, + T: vk::BaseTaggedStructure<'a>, { - fn base_structure(&mut self) -> &mut vk::BaseOutStructure<'_> { - self.as_base_out_structure() - } } -#[cfg(test)] -mod tests { - use super::*; - use alloc::vec::Vec; - #[test] - fn test_ptr_chains() { - let mut variable_pointers = vk::PhysicalDeviceVariablePointerFeatures::default(); - let mut corner = vk::PhysicalDeviceCornerSampledImageFeaturesNV::default(); - let chain = alloc::vec![ - <*mut _>::cast(&mut variable_pointers), - <*mut _>::cast(&mut corner), - ]; - let mut device_create_info = vk::DeviceCreateInfo::default() - .push_next(&mut corner) - .push_next(&mut variable_pointers); - let chain2: Vec<*mut vk::BaseOutStructure<'_>> = - unsafe { ptr_chain_iter(&mut device_create_info).skip(1).collect() }; - assert_eq!(chain, chain2); + + +/// Type-erased object representing a tagged Vulkan structure. +/// It is basically a [`Box`], but for types implementing [`ash::vk::TaggedStructure`]. +#[repr(C)] +pub union TaggedObject<'a> { + output: vk::BaseOutStructure<'a>, + input: vk::BaseInStructure<'a>, +} +impl vk::StructureType { + const ASH_DYNAMIC: Self = Self(-1); +} +/// TaggedObject may extend anything +unsafe impl<'a> vk::TaggedStructure for TaggedObject<'a>{ + const STRUCTURE_TYPE: vk::StructureType = vk::StructureType::ASH_DYNAMIC; +} +unsafe impl<'a, T: ?Sized> vk::Extends for TaggedObject<'a>{} + +impl<'a> TaggedObject<'a> { + pub unsafe fn from_raw(obj: *const vk::BaseInStructure<'_>) -> &Self { + unsafe { &*(obj as *const Self) } + } + + pub unsafe fn from_raw_mut(obj: *mut vk::BaseOutStructure<'_>) -> &mut Self { + unsafe { &mut *(obj as *mut Self) } + } + pub fn base_structure(&self) -> &vk::BaseInStructure<'a> { + unsafe { + &self.input + } + } + pub fn base_structure_mut(&mut self) -> &mut vk::BaseOutStructure<'a> { + unsafe { + &mut self.output + } + } + + pub fn from_ref(obj: &T) -> &Self { + unsafe { &*(<*const T>::cast(obj)) } + } + + pub fn from_mut(obj: &mut T) -> &mut Self { + unsafe { &mut *(<*mut T>::cast(obj) ) } + } + pub fn tag(&self) -> vk::StructureType { + self.base_structure().s_type + } + pub fn downcast_ref(&self) -> Option<&T> { + unsafe { + if self.tag() == T::STRUCTURE_TYPE { + Some(&*<*const vk::BaseInStructure<'_>>::cast(&self.input)) + } else { + None + } + } + } + pub fn downcast_mut(&mut self) -> Option<&mut T> { + unsafe { + if self.tag() == T::STRUCTURE_TYPE { + Some(&mut *<*mut vk::BaseOutStructure<'_>>::cast(&mut self.output)) + } else { + None + } + } + } + pub fn is(&self) -> bool { + self.tag() == T::STRUCTURE_TYPE } } diff --git a/ash/src/vk.rs b/ash/src/vk.rs index e9435f56d..9c4bad53b 100644 --- a/ash/src/vk.rs +++ b/ash/src/vk.rs @@ -50,5 +50,5 @@ pub trait Handle: Sized { } } -pub unsafe trait BaseTaggedStructure: TaggedStructure {} -pub unsafe trait Extends {} +pub unsafe trait BaseTaggedStructure<'a>: TaggedStructure {} +pub unsafe trait Extends: TaggedStructure {} diff --git a/ash/src/vk/aliases.rs b/ash/src/vk/aliases.rs index f049d0087..3a62e1ff6 100644 --- a/ash/src/vk/aliases.rs +++ b/ash/src/vk/aliases.rs @@ -189,8 +189,6 @@ pub type PhysicalDeviceVertexAttributeDivisorFeaturesEXT<'a> = pub type PhysicalDeviceDepthStencilResolvePropertiesKHR<'a> = PhysicalDeviceDepthStencilResolveProperties<'a>; pub type SubpassDescriptionDepthStencilResolveKHR<'a> = SubpassDescriptionDepthStencilResolve<'a>; -pub type PhysicalDeviceComputeShaderDerivativesFeaturesNV<'a> = - PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a>; pub type PhysicalDeviceFragmentShaderBarycentricFeaturesNV<'a> = PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a>; pub type ImageStencilUsageCreateInfoEXT<'a> = ImageStencilUsageCreateInfo<'a>; diff --git a/ash/src/vk/bitflags.rs b/ash/src/vk/bitflags.rs index c2f24094a..bceb0d5ba 100644 --- a/ash/src/vk/bitflags.rs +++ b/ash/src/vk/bitflags.rs @@ -1724,24 +1724,6 @@ impl MicromapCreateFlagsEXT { } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] -#[doc = ""] -pub struct IndirectCommandsLayoutUsageFlagsEXT(pub(crate) Flags); -vk_bitflags_wrapped!(IndirectCommandsLayoutUsageFlagsEXT, Flags); -impl IndirectCommandsLayoutUsageFlagsEXT { - pub const EXPLICIT_PREPROCESS: Self = Self(0b1); - pub const UNORDERED_SEQUENCES: Self = Self(0b10); -} -#[repr(transparent)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] -#[doc = ""] -pub struct IndirectCommandsInputModeFlagsEXT(pub(crate) Flags); -vk_bitflags_wrapped!(IndirectCommandsInputModeFlagsEXT, Flags); -impl IndirectCommandsInputModeFlagsEXT { - pub const VULKAN_INDEX_BUFFER: Self = Self(0b1); - pub const DXGI_INDEX_BUFFER: Self = Self(0b10); -} -#[repr(transparent)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] #[doc = ""] pub struct ShaderCreateFlagsEXT(pub(crate) Flags); vk_bitflags_wrapped!(ShaderCreateFlagsEXT, Flags); @@ -1754,9 +1736,3 @@ impl ShaderCreateFlagsEXT { pub struct MemoryUnmapFlagsKHR(pub(crate) Flags); vk_bitflags_wrapped!(MemoryUnmapFlagsKHR, Flags); impl MemoryUnmapFlagsKHR {} -#[repr(transparent)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] -#[doc = ""] -pub struct WaylandSurfaceCreateFlagsKHR(pub(crate) Flags); -vk_bitflags_wrapped!(WaylandSurfaceCreateFlagsKHR, Flags); -impl WaylandSurfaceCreateFlagsKHR {} diff --git a/ash/src/vk/const_debugs.rs b/ash/src/vk/const_debugs.rs index b0d032397..bb9481e70 100644 --- a/ash/src/vk/const_debugs.rs +++ b/ash/src/vk/const_debugs.rs @@ -338,35 +338,6 @@ impl fmt::Debug for AndroidSurfaceCreateFlagsKHR { debug_flags(f, KNOWN, self.0) } } -impl fmt::Debug for AntiLagModeAMD { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let name = match *self { - Self::DRIVER_CONTROL => Some("DRIVER_CONTROL"), - Self::ON => Some("ON"), - Self::OFF => Some("OFF"), - _ => None, - }; - if let Some(x) = name { - f.write_str(x) - } else { - self.0.fmt(f) - } - } -} -impl fmt::Debug for AntiLagStageAMD { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let name = match *self { - Self::INPUT => Some("INPUT"), - Self::PRESENT => Some("PRESENT"), - _ => None, - }; - if let Some(x) = name { - f.write_str(x) - } else { - self.0.fmt(f) - } - } -} impl fmt::Debug for AttachmentDescriptionFlags { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[(AttachmentDescriptionFlags::MAY_ALIAS.0, "MAY_ALIAS")]; @@ -734,10 +705,6 @@ impl fmt::Debug for BufferUsageFlags2KHR { BufferUsageFlags2KHR::MICROMAP_STORAGE_EXT.0, "MICROMAP_STORAGE_EXT", ), - ( - BufferUsageFlags2KHR::PREPROCESS_BUFFER_EXT.0, - "PREPROCESS_BUFFER_EXT", - ), ]; debug_flags(f, KNOWN, self.0) } @@ -895,7 +862,6 @@ impl fmt::Debug for ColorSpaceKHR { Self::BT709_NONLINEAR_EXT => Some("BT709_NONLINEAR_EXT"), Self::BT2020_LINEAR_EXT => Some("BT2020_LINEAR_EXT"), Self::HDR10_ST2084_EXT => Some("HDR10_ST2084_EXT"), - #[allow(deprecated)] Self::DOLBYVISION_EXT => Some("DOLBYVISION_EXT"), Self::HDR10_HLG_EXT => Some("HDR10_HLG_EXT"), Self::ADOBERGB_LINEAR_EXT => Some("ADOBERGB_LINEAR_EXT"), @@ -1298,20 +1264,6 @@ impl fmt::Debug for DepthBiasRepresentationEXT { } } } -impl fmt::Debug for DepthClampModeEXT { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let name = match *self { - Self::VIEWPORT_RANGE => Some("VIEWPORT_RANGE"), - Self::USER_DEFINED_RANGE => Some("USER_DEFINED_RANGE"), - _ => None, - }; - if let Some(x) = name { - f.write_str(x) - } else { - self.0.fmt(f) - } - } -} impl fmt::Debug for DescriptorBindingFlags { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[ @@ -1723,8 +1675,7 @@ impl fmt::Debug for DriverId { Self::MESA_DOZEN => Some("MESA_DOZEN"), Self::MESA_NVK => Some("MESA_NVK"), Self::IMAGINATION_OPEN_SOURCE_MESA => Some("IMAGINATION_OPEN_SOURCE_MESA"), - Self::MESA_HONEYKRISP => Some("MESA_HONEYKRISP"), - Self::RESERVED_27 => Some("RESERVED_27"), + Self::MESA_AGXV => Some("MESA_AGXV"), _ => None, }; if let Some(x) = name { @@ -1806,7 +1757,6 @@ impl fmt::Debug for DynamicState { Some("ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT") } Self::LINE_STIPPLE_KHR => Some("LINE_STIPPLE_KHR"), - Self::DEPTH_CLAMP_RANGE_EXT => Some("DEPTH_CLAMP_RANGE_EXT"), Self::CULL_MODE => Some("CULL_MODE"), Self::FRONT_FACE => Some("FRONT_FACE"), Self::PRIMITIVE_TOPOLOGY => Some("PRIMITIVE_TOPOLOGY"), @@ -2251,7 +2201,7 @@ impl fmt::Debug for Format { Self::PVRTC1_4BPP_SRGB_BLOCK_IMG => Some("PVRTC1_4BPP_SRGB_BLOCK_IMG"), Self::PVRTC2_2BPP_SRGB_BLOCK_IMG => Some("PVRTC2_2BPP_SRGB_BLOCK_IMG"), Self::PVRTC2_4BPP_SRGB_BLOCK_IMG => Some("PVRTC2_4BPP_SRGB_BLOCK_IMG"), - Self::R16G16_SFIXED5_NV => Some("R16G16_SFIXED5_NV"), + Self::R16G16_S10_5_NV => Some("R16G16_S10_5_NV"), Self::A1B5G5R5_UNORM_PACK16_KHR => Some("A1B5G5R5_UNORM_PACK16_KHR"), Self::A8_UNORM_KHR => Some("A8_UNORM_KHR"), Self::G8B8G8R8_422_UNORM => Some("G8B8G8R8_422_UNORM"), @@ -2960,36 +2910,6 @@ impl fmt::Debug for IndexType { } } } -impl fmt::Debug for IndirectCommandsInputModeFlagsEXT { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - const KNOWN: &[(Flags, &str)] = &[ - ( - IndirectCommandsInputModeFlagsEXT::VULKAN_INDEX_BUFFER.0, - "VULKAN_INDEX_BUFFER", - ), - ( - IndirectCommandsInputModeFlagsEXT::DXGI_INDEX_BUFFER.0, - "DXGI_INDEX_BUFFER", - ), - ]; - debug_flags(f, KNOWN, self.0) - } -} -impl fmt::Debug for IndirectCommandsLayoutUsageFlagsEXT { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - const KNOWN: &[(Flags, &str)] = &[ - ( - IndirectCommandsLayoutUsageFlagsEXT::EXPLICIT_PREPROCESS.0, - "EXPLICIT_PREPROCESS", - ), - ( - IndirectCommandsLayoutUsageFlagsEXT::UNORDERED_SEQUENCES.0, - "UNORDERED_SEQUENCES", - ), - ]; - debug_flags(f, KNOWN, self.0) - } -} impl fmt::Debug for IndirectCommandsLayoutUsageFlagsNV { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[ @@ -3009,33 +2929,6 @@ impl fmt::Debug for IndirectCommandsLayoutUsageFlagsNV { debug_flags(f, KNOWN, self.0) } } -impl fmt::Debug for IndirectCommandsTokenTypeEXT { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let name = match *self { - Self::EXECUTION_SET => Some("EXECUTION_SET"), - Self::PUSH_CONSTANT => Some("PUSH_CONSTANT"), - Self::SEQUENCE_INDEX => Some("SEQUENCE_INDEX"), - Self::INDEX_BUFFER => Some("INDEX_BUFFER"), - Self::VERTEX_BUFFER => Some("VERTEX_BUFFER"), - Self::DRAW_INDEXED => Some("DRAW_INDEXED"), - Self::DRAW => Some("DRAW"), - Self::DRAW_INDEXED_COUNT => Some("DRAW_INDEXED_COUNT"), - Self::DRAW_COUNT => Some("DRAW_COUNT"), - Self::DISPATCH => Some("DISPATCH"), - Self::DRAW_MESH_TASKS_NV => Some("DRAW_MESH_TASKS_NV"), - Self::DRAW_MESH_TASKS_COUNT_NV => Some("DRAW_MESH_TASKS_COUNT_NV"), - Self::DRAW_MESH_TASKS => Some("DRAW_MESH_TASKS"), - Self::DRAW_MESH_TASKS_COUNT => Some("DRAW_MESH_TASKS_COUNT"), - Self::TRACE_RAYS2 => Some("TRACE_RAYS2"), - _ => None, - }; - if let Some(x) = name { - f.write_str(x) - } else { - self.0.fmt(f) - } - } -} impl fmt::Debug for IndirectCommandsTokenTypeNV { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { @@ -3059,20 +2952,6 @@ impl fmt::Debug for IndirectCommandsTokenTypeNV { } } } -impl fmt::Debug for IndirectExecutionSetInfoTypeEXT { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let name = match *self { - Self::PIPELINES => Some("PIPELINES"), - Self::SHADER_OBJECTS => Some("SHADER_OBJECTS"), - _ => None, - }; - if let Some(x) = name { - f.write_str(x) - } else { - self.0.fmt(f) - } - } -} impl fmt::Debug for IndirectStateFlagsNV { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = @@ -3603,23 +3482,6 @@ impl fmt::Debug for PerformanceValueTypeINTEL { } } } -impl fmt::Debug for PhysicalDeviceLayeredApiKHR { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let name = match *self { - Self::VULKAN => Some("VULKAN"), - Self::D3D12 => Some("D3D12"), - Self::METAL => Some("METAL"), - Self::OPENGL => Some("OPENGL"), - Self::OPENGLES => Some("OPENGLES"), - _ => None, - }; - if let Some(x) = name { - f.write_str(x) - } else { - self.0.fmt(f) - } - } -} impl fmt::Debug for PhysicalDeviceSchedulingControlsFlagsARM { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags64, &str)] = &[( @@ -3849,10 +3711,6 @@ impl fmt::Debug for PipelineCreateFlags2KHR { "ALLOW_DERIVATIVES", ), (PipelineCreateFlags2KHR::DERIVATIVE.0, "DERIVATIVE"), - ( - PipelineCreateFlags2KHR::ENABLE_LEGACY_DITHERING_EXT.0, - "ENABLE_LEGACY_DITHERING_EXT", - ), ( PipelineCreateFlags2KHR::VIEW_INDEX_FROM_DEVICE_INDEX.0, "VIEW_INDEX_FROM_DEVICE_INDEX", @@ -3959,11 +3817,6 @@ impl fmt::Debug for PipelineCreateFlags2KHR { PipelineCreateFlags2KHR::DESCRIPTOR_BUFFER_EXT.0, "DESCRIPTOR_BUFFER_EXT", ), - (PipelineCreateFlags2KHR::CAPTURE_DATA.0, "CAPTURE_DATA"), - ( - PipelineCreateFlags2KHR::INDIRECT_BINDABLE_EXT.0, - "INDIRECT_BINDABLE_EXT", - ), ]; debug_flags(f, KNOWN, self.0) } @@ -4667,11 +4520,11 @@ impl fmt::Debug for RenderingFlags { ), (RenderingFlags::SUSPENDING.0, "SUSPENDING"), (RenderingFlags::RESUMING.0, "RESUMING"), + (RenderingFlags::CONTENTS_INLINE_EXT.0, "CONTENTS_INLINE_EXT"), ( RenderingFlags::ENABLE_LEGACY_DITHERING_EXT.0, "ENABLE_LEGACY_DITHERING_EXT", ), - (RenderingFlags::CONTENTS_INLINE_KHR.0, "CONTENTS_INLINE_KHR"), ]; debug_flags(f, KNOWN, self.0) } @@ -4904,10 +4757,6 @@ impl fmt::Debug for ShaderCreateFlagsEXT { ShaderCreateFlagsEXT::FRAGMENT_DENSITY_MAP_ATTACHMENT.0, "FRAGMENT_DENSITY_MAP_ATTACHMENT", ), - ( - ShaderCreateFlagsEXT::INDIRECT_BINDABLE.0, - "INDIRECT_BINDABLE", - ), ]; debug_flags(f, KNOWN, self.0) } @@ -5751,6 +5600,9 @@ impl fmt::Debug for StructureType { Some("PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT") } Self::PRESENT_FRAME_TOKEN_GGP => Some("PRESENT_FRAME_TOKEN_GGP"), + Self::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV => { + Some("PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV") + } Self::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV => { Some("PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV") } @@ -6574,11 +6426,6 @@ impl fmt::Debug for StructureType { Self::BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR => { Some("BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR") } - Self::PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD => { - Some("PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD") - } - Self::ANTI_LAG_DATA_AMD => Some("ANTI_LAG_DATA_AMD"), - Self::ANTI_LAG_PRESENTATION_INFO_AMD => Some("ANTI_LAG_PRESENTATION_INFO_AMD"), Self::PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR => { Some("PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR") } @@ -6589,24 +6436,6 @@ impl fmt::Debug for StructureType { Some("PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT") } Self::SHADER_CREATE_INFO_EXT => Some("SHADER_CREATE_INFO_EXT"), - Self::PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR => { - Some("PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR") - } - Self::PIPELINE_BINARY_CREATE_INFO_KHR => Some("PIPELINE_BINARY_CREATE_INFO_KHR"), - Self::PIPELINE_BINARY_INFO_KHR => Some("PIPELINE_BINARY_INFO_KHR"), - Self::PIPELINE_BINARY_KEY_KHR => Some("PIPELINE_BINARY_KEY_KHR"), - Self::PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR => { - Some("PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR") - } - Self::RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR => { - Some("RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR") - } - Self::PIPELINE_BINARY_DATA_INFO_KHR => Some("PIPELINE_BINARY_DATA_INFO_KHR"), - Self::PIPELINE_CREATE_INFO_KHR => Some("PIPELINE_CREATE_INFO_KHR"), - Self::DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR => { - Some("DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR") - } - Self::PIPELINE_BINARY_HANDLES_INFO_KHR => Some("PIPELINE_BINARY_HANDLES_INFO_KHR"), Self::PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM => { Some("PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM") } @@ -6636,12 +6465,6 @@ impl fmt::Debug for StructureType { Self::MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT => { Some("MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT") } - Self::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT => { - Some("PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT") - } - Self::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT => { - Some("PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT") - } Self::LAYER_SETTINGS_CREATE_INFO_EXT => Some("LAYER_SETTINGS_CREATE_INFO_EXT"), Self::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM => { Some("PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM") @@ -6677,12 +6500,6 @@ impl fmt::Debug for StructureType { Self::MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM => { Some("MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM") } - Self::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR => { - Some("PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR") - } - Self::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR => { - Some("PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR") - } Self::VIDEO_DECODE_AV1_CAPABILITIES_KHR => Some("VIDEO_DECODE_AV1_CAPABILITIES_KHR"), Self::VIDEO_DECODE_AV1_PICTURE_INFO_KHR => Some("VIDEO_DECODE_AV1_PICTURE_INFO_KHR"), Self::VIDEO_DECODE_AV1_PROFILE_INFO_KHR => Some("VIDEO_DECODE_AV1_PROFILE_INFO_KHR"), @@ -6790,87 +6607,12 @@ impl fmt::Debug for StructureType { Self::PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV => { Some("PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV") } - Self::PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR => { - Some("PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR") - } - Self::PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV => { - Some("PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV") - } - Self::PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR => { - Some("PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR") - } - Self::PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR => { - Some("PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR") - } - Self::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR => { - Some("PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR") - } - Self::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR => { - Some("PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR") - } - Self::PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR => { - Some("PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR") - } Self::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV => { Some("PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV") } - Self::PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT => { - Some("PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT") - } Self::PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV => { Some("PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV") } - Self::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT => { - Some("PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT") - } - Self::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT => { - Some("PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT") - } - Self::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT => { - Some("GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT") - } - Self::INDIRECT_EXECUTION_SET_CREATE_INFO_EXT => { - Some("INDIRECT_EXECUTION_SET_CREATE_INFO_EXT") - } - Self::GENERATED_COMMANDS_INFO_EXT => Some("GENERATED_COMMANDS_INFO_EXT"), - Self::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT => { - Some("INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT") - } - Self::INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT => Some("INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT"), - Self::WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT => { - Some("WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT") - } - Self::WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT => { - Some("WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT") - } - Self::INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT => { - Some("INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT") - } - Self::INDIRECT_EXECUTION_SET_SHADER_INFO_EXT => { - Some("INDIRECT_EXECUTION_SET_SHADER_INFO_EXT") - } - Self::INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT => { - Some("INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT") - } - Self::GENERATED_COMMANDS_PIPELINE_INFO_EXT => { - Some("GENERATED_COMMANDS_PIPELINE_INFO_EXT") - } - Self::GENERATED_COMMANDS_SHADER_INFO_EXT => Some("GENERATED_COMMANDS_SHADER_INFO_EXT"), - Self::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA => { - Some("PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA") - } - Self::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA => { - Some("PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA") - } - Self::IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA => { - Some("IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA") - } - Self::PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT => { - Some("PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT") - } - Self::PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT => { - Some("PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT") - } Self::PHYSICAL_DEVICE_SUBGROUP_PROPERTIES => { Some("PHYSICAL_DEVICE_SUBGROUP_PROPERTIES") } @@ -7249,8 +6991,8 @@ impl fmt::Debug for SubpassContents { let name = match *self { Self::INLINE => Some("INLINE"), Self::SECONDARY_COMMAND_BUFFERS => Some("SECONDARY_COMMAND_BUFFERS"), - Self::INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR => { - Some("INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR") + Self::INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT => { + Some("INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT") } _ => None, }; @@ -7527,7 +7269,6 @@ impl fmt::Debug for ValidationFeatureEnableEXT { impl fmt::Debug for VendorId { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { - Self::KHRONOS => Some("KHRONOS"), Self::VIV => Some("VIV"), Self::VSI => Some("VSI"), Self::KAZAN => Some("KAZAN"), diff --git a/ash/src/vk/constants.rs b/ash/src/vk/constants.rs index 7abea7fa6..7b4701560 100644 --- a/ash/src/vk/constants.rs +++ b/ash/src/vk/constants.rs @@ -25,7 +25,6 @@ pub const MAX_DRIVER_INFO_SIZE: usize = 256; pub const SHADER_UNUSED_KHR: u32 = !0; pub const MAX_GLOBAL_PRIORITY_SIZE_KHR: usize = 16; pub const MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT: usize = 32; -pub const MAX_PIPELINE_BINARY_KEY_SIZE_KHR: usize = 32; pub const MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR: usize = 7; pub const SHADER_INDEX_UNUSED_AMDX: u32 = !0; pub const SHADER_UNUSED_NV: u32 = SHADER_UNUSED_KHR; diff --git a/ash/src/vk/definitions.rs b/ash/src/vk/definitions.rs index 952702c71..469d0dfdc 100644 --- a/ash/src/vk/definitions.rs +++ b/ash/src/vk/definitions.rs @@ -58,7 +58,7 @@ pub const API_VERSION_1_2: u32 = make_api_version(0, 1, 2, 0); #[doc = ""] pub const API_VERSION_1_3: u32 = make_api_version(0, 1, 3, 0); #[doc = ""] -pub const HEADER_VERSION: u32 = 296; +pub const HEADER_VERSION: u32 = 281; #[doc = ""] pub const HEADER_VERSION_COMPLETE: u32 = make_api_version(0, 1, 3, HEADER_VERSION); #[doc = ""] @@ -170,6 +170,11 @@ pub struct ViSurfaceCreateFlagsNN(pub(crate) Flags); vk_bitflags_wrapped!(ViSurfaceCreateFlagsNN, Flags); #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct WaylandSurfaceCreateFlagsKHR(pub(crate) Flags); +vk_bitflags_wrapped!(WaylandSurfaceCreateFlagsKHR, Flags); +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] #[doc = ""] pub struct Win32SurfaceCreateFlagsKHR(pub(crate) Flags); vk_bitflags_wrapped!(Win32SurfaceCreateFlagsKHR, Flags); @@ -440,10 +445,7 @@ handle_nondispatchable!( doc = "" ); -handle_nondispatchable ! (PipelineBinaryKHR , PIPELINE_BINARY_KHR , doc = "") ; handle_nondispatchable ! (IndirectCommandsLayoutNV , INDIRECT_COMMANDS_LAYOUT_NV , doc = "") ; -handle_nondispatchable ! (IndirectCommandsLayoutEXT , INDIRECT_COMMANDS_LAYOUT_EXT , doc = "") ; -handle_nondispatchable ! (IndirectExecutionSetEXT , INDIRECT_EXECUTION_SET_EXT , doc = "") ; handle_nondispatchable ! (DescriptorUpdateTemplate , DESCRIPTOR_UPDATE_TEMPLATE , doc = "") ; handle_nondispatchable ! (SamplerYcbcrConversion , SAMPLER_YCBCR_CONVERSION , doc = "") ; handle_nondispatchable ! (ValidationCacheEXT , VALIDATION_CACHE_EXT , doc = "") ; @@ -1261,7 +1263,7 @@ impl ::core::default::Default for DeviceQueueCreateInfo<'_> { unsafe impl<'a> TaggedStructure for DeviceQueueCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_QUEUE_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for DeviceQueueCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for DeviceQueueCreateInfo<'a> {} impl<'a> DeviceQueueCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: DeviceQueueCreateFlags) -> Self { @@ -1324,7 +1326,7 @@ impl ::core::default::Default for DeviceCreateInfo<'_> { unsafe impl<'a> TaggedStructure for DeviceCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for DeviceCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for DeviceCreateInfo<'a> {} impl<'a> DeviceCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: DeviceCreateFlags) -> Self { @@ -1397,7 +1399,7 @@ impl ::core::default::Default for InstanceCreateInfo<'_> { unsafe impl<'a> TaggedStructure for InstanceCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::INSTANCE_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for InstanceCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for InstanceCreateInfo<'a> {} impl<'a> InstanceCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: InstanceCreateFlags) -> Self { @@ -1541,7 +1543,7 @@ impl ::core::default::Default for MemoryAllocateInfo<'_> { unsafe impl<'a> TaggedStructure for MemoryAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_ALLOCATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for MemoryAllocateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for MemoryAllocateInfo<'a> {} impl<'a> MemoryAllocateInfo<'a> { #[inline] pub fn allocation_size(mut self, allocation_size: DeviceSize) -> Self { @@ -1898,7 +1900,7 @@ impl ::core::default::Default for WriteDescriptorSet<'_> { unsafe impl<'a> TaggedStructure for WriteDescriptorSet<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET; } -unsafe impl<'a> BaseTaggedStructure for WriteDescriptorSet<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for WriteDescriptorSet<'a> {} impl<'a> WriteDescriptorSet<'a> { #[inline] pub fn dst_set(mut self, dst_set: DescriptorSet) -> Self { @@ -2098,7 +2100,7 @@ impl ::core::default::Default for BufferCreateInfo<'_> { unsafe impl<'a> TaggedStructure for BufferCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for BufferCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for BufferCreateInfo<'a> {} impl<'a> BufferCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: BufferCreateFlags) -> Self { @@ -2162,7 +2164,7 @@ impl ::core::default::Default for BufferViewCreateInfo<'_> { unsafe impl<'a> TaggedStructure for BufferViewCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_VIEW_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for BufferViewCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for BufferViewCreateInfo<'a> {} impl<'a> BufferViewCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: BufferViewCreateFlags) -> Self { @@ -2369,7 +2371,7 @@ impl ::core::default::Default for BufferMemoryBarrier<'_> { unsafe impl<'a> TaggedStructure for BufferMemoryBarrier<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_MEMORY_BARRIER; } -unsafe impl<'a> BaseTaggedStructure for BufferMemoryBarrier<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for BufferMemoryBarrier<'a> {} impl<'a> BufferMemoryBarrier<'a> { #[inline] pub fn src_access_mask(mut self, src_access_mask: AccessFlags) -> Self { @@ -2448,7 +2450,7 @@ impl ::core::default::Default for ImageMemoryBarrier<'_> { unsafe impl<'a> TaggedStructure for ImageMemoryBarrier<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_MEMORY_BARRIER; } -unsafe impl<'a> BaseTaggedStructure for ImageMemoryBarrier<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for ImageMemoryBarrier<'a> {} impl<'a> ImageMemoryBarrier<'a> { #[inline] pub fn src_access_mask(mut self, src_access_mask: AccessFlags) -> Self { @@ -2542,7 +2544,7 @@ impl ::core::default::Default for ImageCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ImageCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for ImageCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for ImageCreateInfo<'a> {} impl<'a> ImageCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: ImageCreateFlags) -> Self { @@ -2682,7 +2684,7 @@ impl ::core::default::Default for ImageViewCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ImageViewCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for ImageViewCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for ImageViewCreateInfo<'a> {} impl<'a> ImageViewCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: ImageViewCreateFlags) -> Self { @@ -2982,7 +2984,7 @@ impl ::core::default::Default for BindSparseInfo<'_> { unsafe impl<'a> TaggedStructure for BindSparseInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_SPARSE_INFO; } -unsafe impl<'a> BaseTaggedStructure for BindSparseInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for BindSparseInfo<'a> {} impl<'a> BindSparseInfo<'a> { #[inline] pub fn wait_semaphores(mut self, wait_semaphores: &'a [Semaphore]) -> Self { @@ -3289,7 +3291,7 @@ unsafe impl<'a> TaggedStructure for ShaderModuleCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SHADER_MODULE_CREATE_INFO; } unsafe impl<'a> Extends> for ShaderModuleCreateInfo<'a> {} -unsafe impl<'a> BaseTaggedStructure for ShaderModuleCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for ShaderModuleCreateInfo<'a> {} impl<'a> ShaderModuleCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: ShaderModuleCreateFlags) -> Self { @@ -3390,7 +3392,7 @@ impl ::core::default::Default for DescriptorSetLayoutCreateInfo<'_> { unsafe impl<'a> TaggedStructure for DescriptorSetLayoutCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for DescriptorSetLayoutCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for DescriptorSetLayoutCreateInfo<'a> {} impl<'a> DescriptorSetLayoutCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: DescriptorSetLayoutCreateFlags) -> Self { @@ -3458,7 +3460,7 @@ impl ::core::default::Default for DescriptorPoolCreateInfo<'_> { unsafe impl<'a> TaggedStructure for DescriptorPoolCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_POOL_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for DescriptorPoolCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for DescriptorPoolCreateInfo<'a> {} impl<'a> DescriptorPoolCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: DescriptorPoolCreateFlags) -> Self { @@ -3508,7 +3510,7 @@ impl ::core::default::Default for DescriptorSetAllocateInfo<'_> { unsafe impl<'a> TaggedStructure for DescriptorSetAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_ALLOCATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for DescriptorSetAllocateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for DescriptorSetAllocateInfo<'a> {} impl<'a> DescriptorSetAllocateInfo<'a> { #[inline] pub fn descriptor_pool(mut self, descriptor_pool: DescriptorPool) -> Self { @@ -3624,7 +3626,7 @@ impl ::core::default::Default for PipelineShaderStageCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineShaderStageCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_SHADER_STAGE_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for PipelineShaderStageCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PipelineShaderStageCreateInfo<'a> {} impl<'a> PipelineShaderStageCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineShaderStageCreateFlags) -> Self { @@ -3695,7 +3697,7 @@ impl ::core::default::Default for ComputePipelineCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ComputePipelineCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMPUTE_PIPELINE_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for ComputePipelineCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for ComputePipelineCreateInfo<'a> {} impl<'a> ComputePipelineCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineCreateFlags) -> Self { @@ -3914,7 +3916,7 @@ impl ::core::default::Default for PipelineVertexInputStateCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineVertexInputStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for PipelineVertexInputStateCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PipelineVertexInputStateCreateInfo<'a> {} impl<'a> PipelineVertexInputStateCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineVertexInputStateCreateFlags) -> Self { @@ -4017,7 +4019,7 @@ impl ::core::default::Default for PipelineTessellationStateCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineTessellationStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_TESSELLATION_STATE_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for PipelineTessellationStateCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PipelineTessellationStateCreateInfo<'a> {} impl<'a> PipelineTessellationStateCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineTessellationStateCreateFlags) -> Self { @@ -4065,7 +4067,7 @@ impl ::core::default::Default for PipelineViewportStateCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineViewportStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_STATE_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for PipelineViewportStateCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PipelineViewportStateCreateInfo<'a> {} impl<'a> PipelineViewportStateCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineViewportStateCreateFlags) -> Self { @@ -4142,7 +4144,7 @@ impl ::core::default::Default for PipelineRasterizationStateCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineRasterizationStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_STATE_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for PipelineRasterizationStateCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PipelineRasterizationStateCreateInfo<'a> {} impl<'a> PipelineRasterizationStateCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineRasterizationStateCreateFlags) -> Self { @@ -4239,7 +4241,7 @@ impl ::core::default::Default for PipelineMultisampleStateCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineMultisampleStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_MULTISAMPLE_STATE_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for PipelineMultisampleStateCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PipelineMultisampleStateCreateInfo<'a> {} impl<'a> PipelineMultisampleStateCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineMultisampleStateCreateFlags) -> Self { @@ -4380,7 +4382,7 @@ impl ::core::default::Default for PipelineColorBlendStateCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineColorBlendStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COLOR_BLEND_STATE_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for PipelineColorBlendStateCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PipelineColorBlendStateCreateInfo<'a> {} impl<'a> PipelineColorBlendStateCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineColorBlendStateCreateFlags) -> Self { @@ -4660,7 +4662,7 @@ impl ::core::default::Default for GraphicsPipelineCreateInfo<'_> { unsafe impl<'a> TaggedStructure for GraphicsPipelineCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GRAPHICS_PIPELINE_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for GraphicsPipelineCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for GraphicsPipelineCreateInfo<'a> {} impl<'a> GraphicsPipelineCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineCreateFlags) -> Self { @@ -4893,346 +4895,6 @@ impl PushConstantRange { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PipelineBinaryCreateInfoKHR<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub p_keys_and_data_info: *const PipelineBinaryKeysAndDataKHR<'a>, - pub pipeline: Pipeline, - pub p_pipeline_create_info: *const PipelineCreateInfoKHR<'a>, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PipelineBinaryCreateInfoKHR<'_> {} -unsafe impl Sync for PipelineBinaryCreateInfoKHR<'_> {} -impl ::core::default::Default for PipelineBinaryCreateInfoKHR<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - p_keys_and_data_info: ::core::ptr::null(), - pipeline: Pipeline::default(), - p_pipeline_create_info: ::core::ptr::null(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PipelineBinaryCreateInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_BINARY_CREATE_INFO_KHR; -} -impl<'a> PipelineBinaryCreateInfoKHR<'a> { - #[inline] - pub fn keys_and_data_info( - mut self, - keys_and_data_info: &'a PipelineBinaryKeysAndDataKHR<'a>, - ) -> Self { - self.p_keys_and_data_info = keys_and_data_info; - self - } - #[inline] - pub fn pipeline(mut self, pipeline: Pipeline) -> Self { - self.pipeline = pipeline; - self - } - #[inline] - pub fn pipeline_create_info( - mut self, - pipeline_create_info: &'a PipelineCreateInfoKHR<'a>, - ) -> Self { - self.p_pipeline_create_info = pipeline_create_info; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PipelineBinaryHandlesInfoKHR<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub pipeline_binary_count: u32, - pub p_pipeline_binaries: *mut PipelineBinaryKHR, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PipelineBinaryHandlesInfoKHR<'_> {} -unsafe impl Sync for PipelineBinaryHandlesInfoKHR<'_> {} -impl ::core::default::Default for PipelineBinaryHandlesInfoKHR<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - pipeline_binary_count: u32::default(), - p_pipeline_binaries: ::core::ptr::null_mut(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PipelineBinaryHandlesInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_BINARY_HANDLES_INFO_KHR; -} -impl<'a> PipelineBinaryHandlesInfoKHR<'a> { - #[inline] - pub fn pipeline_binaries(mut self, pipeline_binaries: &'a mut [PipelineBinaryKHR]) -> Self { - self.pipeline_binary_count = pipeline_binaries.len() as _; - self.p_pipeline_binaries = pipeline_binaries.as_mut_ptr(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PipelineBinaryDataKHR<'a> { - pub data_size: usize, - pub p_data: *mut c_void, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PipelineBinaryDataKHR<'_> {} -unsafe impl Sync for PipelineBinaryDataKHR<'_> {} -impl ::core::default::Default for PipelineBinaryDataKHR<'_> { - #[inline] - fn default() -> Self { - Self { - data_size: usize::default(), - p_data: ::core::ptr::null_mut(), - _marker: PhantomData, - } - } -} -impl<'a> PipelineBinaryDataKHR<'a> { - #[inline] - pub fn data(mut self, data: &'a mut [u8]) -> Self { - self.data_size = data.len(); - self.p_data = data.as_mut_ptr().cast(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PipelineBinaryKeysAndDataKHR<'a> { - pub binary_count: u32, - pub p_pipeline_binary_keys: *const PipelineBinaryKeyKHR<'a>, - pub p_pipeline_binary_data: *const PipelineBinaryDataKHR<'a>, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PipelineBinaryKeysAndDataKHR<'_> {} -unsafe impl Sync for PipelineBinaryKeysAndDataKHR<'_> {} -impl ::core::default::Default for PipelineBinaryKeysAndDataKHR<'_> { - #[inline] - fn default() -> Self { - Self { - binary_count: u32::default(), - p_pipeline_binary_keys: ::core::ptr::null(), - p_pipeline_binary_data: ::core::ptr::null(), - _marker: PhantomData, - } - } -} -impl<'a> PipelineBinaryKeysAndDataKHR<'a> { - #[inline] - pub fn pipeline_binary_keys( - mut self, - pipeline_binary_keys: &'a [PipelineBinaryKeyKHR<'a>], - ) -> Self { - self.binary_count = pipeline_binary_keys.len() as _; - self.p_pipeline_binary_keys = pipeline_binary_keys.as_ptr(); - self - } - #[inline] - pub fn pipeline_binary_data( - mut self, - pipeline_binary_data: &'a [PipelineBinaryDataKHR<'a>], - ) -> Self { - self.binary_count = pipeline_binary_data.len() as _; - self.p_pipeline_binary_data = pipeline_binary_data.as_ptr(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PipelineBinaryKeyKHR<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub key_size: u32, - pub key: [u8; MAX_PIPELINE_BINARY_KEY_SIZE_KHR], - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PipelineBinaryKeyKHR<'_> {} -unsafe impl Sync for PipelineBinaryKeyKHR<'_> {} -impl ::core::default::Default for PipelineBinaryKeyKHR<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - key_size: u32::default(), - key: unsafe { ::core::mem::zeroed() }, - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PipelineBinaryKeyKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_BINARY_KEY_KHR; -} -impl<'a> PipelineBinaryKeyKHR<'a> { - #[inline] - pub fn key_size(mut self, key_size: u32) -> Self { - self.key_size = key_size; - self - } - #[inline] - pub fn key(mut self, key: [u8; MAX_PIPELINE_BINARY_KEY_SIZE_KHR]) -> Self { - self.key = key; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PipelineBinaryInfoKHR<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub binary_count: u32, - pub p_pipeline_binaries: *const PipelineBinaryKHR, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PipelineBinaryInfoKHR<'_> {} -unsafe impl Sync for PipelineBinaryInfoKHR<'_> {} -impl ::core::default::Default for PipelineBinaryInfoKHR<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - binary_count: u32::default(), - p_pipeline_binaries: ::core::ptr::null(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PipelineBinaryInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_BINARY_INFO_KHR; -} -unsafe impl<'a> Extends> for PipelineBinaryInfoKHR<'a> {} -unsafe impl<'a> Extends> for PipelineBinaryInfoKHR<'a> {} -unsafe impl<'a> Extends> for PipelineBinaryInfoKHR<'a> {} -impl<'a> PipelineBinaryInfoKHR<'a> { - #[inline] - pub fn pipeline_binaries(mut self, pipeline_binaries: &'a [PipelineBinaryKHR]) -> Self { - self.binary_count = pipeline_binaries.len() as _; - self.p_pipeline_binaries = pipeline_binaries.as_ptr(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct ReleaseCapturedPipelineDataInfoKHR<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub pipeline: Pipeline, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for ReleaseCapturedPipelineDataInfoKHR<'_> {} -unsafe impl Sync for ReleaseCapturedPipelineDataInfoKHR<'_> {} -impl ::core::default::Default for ReleaseCapturedPipelineDataInfoKHR<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - pipeline: Pipeline::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for ReleaseCapturedPipelineDataInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR; -} -impl<'a> ReleaseCapturedPipelineDataInfoKHR<'a> { - #[inline] - pub fn pipeline(mut self, pipeline: Pipeline) -> Self { - self.pipeline = pipeline; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PipelineBinaryDataInfoKHR<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub pipeline_binary: PipelineBinaryKHR, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PipelineBinaryDataInfoKHR<'_> {} -unsafe impl Sync for PipelineBinaryDataInfoKHR<'_> {} -impl ::core::default::Default for PipelineBinaryDataInfoKHR<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - pipeline_binary: PipelineBinaryKHR::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PipelineBinaryDataInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_BINARY_DATA_INFO_KHR; -} -impl<'a> PipelineBinaryDataInfoKHR<'a> { - #[inline] - pub fn pipeline_binary(mut self, pipeline_binary: PipelineBinaryKHR) -> Self { - self.pipeline_binary = pipeline_binary; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PipelineCreateInfoKHR<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PipelineCreateInfoKHR<'_> {} -unsafe impl Sync for PipelineCreateInfoKHR<'_> {} -impl ::core::default::Default for PipelineCreateInfoKHR<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PipelineCreateInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_CREATE_INFO_KHR; -} -impl<'a> PipelineCreateInfoKHR<'a> {} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct PipelineLayoutCreateInfo<'a> { @@ -5274,7 +4936,6 @@ unsafe impl<'a> Extends> for PipelineLayoutCreateInfo<'a> { } -unsafe impl<'a> Extends> for PipelineLayoutCreateInfo<'a> {} impl<'a> PipelineLayoutCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineLayoutCreateFlags) -> Self { @@ -5351,7 +5012,7 @@ impl ::core::default::Default for SamplerCreateInfo<'_> { unsafe impl<'a> TaggedStructure for SamplerCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for SamplerCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for SamplerCreateInfo<'a> {} impl<'a> SamplerCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: SamplerCreateFlags) -> Self { @@ -5560,7 +5221,7 @@ impl ::core::default::Default for CommandBufferInheritanceInfo<'_> { unsafe impl<'a> TaggedStructure for CommandBufferInheritanceInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_INFO; } -unsafe impl<'a> BaseTaggedStructure for CommandBufferInheritanceInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for CommandBufferInheritanceInfo<'a> {} impl<'a> CommandBufferInheritanceInfo<'a> { #[inline] pub fn render_pass(mut self, render_pass: RenderPass) -> Self { @@ -5622,7 +5283,7 @@ impl ::core::default::Default for CommandBufferBeginInfo<'_> { unsafe impl<'a> TaggedStructure for CommandBufferBeginInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_BEGIN_INFO; } -unsafe impl<'a> BaseTaggedStructure for CommandBufferBeginInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for CommandBufferBeginInfo<'a> {} impl<'a> CommandBufferBeginInfo<'a> { #[inline] pub fn flags(mut self, flags: CommandBufferUsageFlags) -> Self { @@ -5686,7 +5347,7 @@ impl ::core::default::Default for RenderPassBeginInfo<'_> { unsafe impl<'a> TaggedStructure for RenderPassBeginInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_BEGIN_INFO; } -unsafe impl<'a> BaseTaggedStructure for RenderPassBeginInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for RenderPassBeginInfo<'a> {} impl<'a> RenderPassBeginInfo<'a> { #[inline] pub fn render_pass(mut self, render_pass: RenderPass) -> Self { @@ -6050,7 +5711,7 @@ impl ::core::default::Default for RenderPassCreateInfo<'_> { unsafe impl<'a> TaggedStructure for RenderPassCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for RenderPassCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for RenderPassCreateInfo<'a> {} impl<'a> RenderPassCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: RenderPassCreateFlags) -> Self { @@ -6103,7 +5764,7 @@ impl ::core::default::Default for EventCreateInfo<'_> { unsafe impl<'a> TaggedStructure for EventCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EVENT_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for EventCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for EventCreateInfo<'a> {} impl<'a> EventCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: EventCreateFlags) -> Self { @@ -6138,7 +5799,7 @@ impl ::core::default::Default for FenceCreateInfo<'_> { unsafe impl<'a> TaggedStructure for FenceCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FENCE_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for FenceCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for FenceCreateInfo<'a> {} impl<'a> FenceCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: FenceCreateFlags) -> Self { @@ -7488,7 +7149,7 @@ impl ::core::default::Default for SemaphoreCreateInfo<'_> { unsafe impl<'a> TaggedStructure for SemaphoreCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SEMAPHORE_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for SemaphoreCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for SemaphoreCreateInfo<'a> {} impl<'a> SemaphoreCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: SemaphoreCreateFlags) -> Self { @@ -7529,7 +7190,7 @@ impl ::core::default::Default for QueryPoolCreateInfo<'_> { unsafe impl<'a> TaggedStructure for QueryPoolCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUERY_POOL_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for QueryPoolCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for QueryPoolCreateInfo<'a> {} impl<'a> QueryPoolCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: QueryPoolCreateFlags) -> Self { @@ -7591,7 +7252,7 @@ impl ::core::default::Default for FramebufferCreateInfo<'_> { unsafe impl<'a> TaggedStructure for FramebufferCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FRAMEBUFFER_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for FramebufferCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for FramebufferCreateInfo<'a> {} impl<'a> FramebufferCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: FramebufferCreateFlags) -> Self { @@ -7816,7 +7477,7 @@ impl ::core::default::Default for SubmitInfo<'_> { unsafe impl<'a> TaggedStructure for SubmitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBMIT_INFO; } -unsafe impl<'a> BaseTaggedStructure for SubmitInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for SubmitInfo<'a> {} impl<'a> SubmitInfo<'a> { #[inline] pub fn wait_semaphores(mut self, wait_semaphores: &'a [Semaphore]) -> Self { @@ -8821,7 +8482,7 @@ impl ::core::default::Default for SwapchainCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for SwapchainCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_CREATE_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for SwapchainCreateInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for SwapchainCreateInfoKHR<'a> {} impl<'a> SwapchainCreateInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: SwapchainCreateFlagsKHR) -> Self { @@ -8937,7 +8598,7 @@ impl ::core::default::Default for PresentInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PresentInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PRESENT_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for PresentInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PresentInfoKHR<'a> {} impl<'a> PresentInfoKHR<'a> { #[inline] pub fn wait_semaphores(mut self, wait_semaphores: &'a [Semaphore]) -> Self { @@ -9099,8 +8760,6 @@ unsafe impl<'a> TaggedStructure for ValidationFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VALIDATION_FEATURES_EXT; } unsafe impl<'a> Extends> for ValidationFeaturesEXT<'a> {} -unsafe impl<'a> Extends> for ValidationFeaturesEXT<'a> {} -unsafe impl<'a> Extends> for ValidationFeaturesEXT<'a> {} impl<'a> ValidationFeaturesEXT<'a> { #[inline] pub fn enabled_validation_features( @@ -10838,7 +10497,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFeatures2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FEATURES_2; } unsafe impl<'a> Extends> for PhysicalDeviceFeatures2<'a> {} -unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceFeatures2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceFeatures2<'a> {} impl<'a> PhysicalDeviceFeatures2<'a> { #[inline] pub fn features(mut self, features: PhysicalDeviceFeatures) -> Self { @@ -10873,7 +10532,7 @@ impl ::core::default::Default for PhysicalDeviceProperties2<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROPERTIES_2; } -unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceProperties2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceProperties2<'a> {} impl<'a> PhysicalDeviceProperties2<'a> { #[inline] pub fn properties(mut self, properties: PhysicalDeviceProperties) -> Self { @@ -10908,7 +10567,7 @@ impl ::core::default::Default for FormatProperties2<'_> { unsafe impl<'a> TaggedStructure for FormatProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FORMAT_PROPERTIES_2; } -unsafe impl<'a> BaseTaggedStructure for FormatProperties2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for FormatProperties2<'a> {} impl<'a> FormatProperties2<'a> { #[inline] pub fn format_properties(mut self, format_properties: FormatProperties) -> Self { @@ -10943,7 +10602,7 @@ impl ::core::default::Default for ImageFormatProperties2<'_> { unsafe impl<'a> TaggedStructure for ImageFormatProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_FORMAT_PROPERTIES_2; } -unsafe impl<'a> BaseTaggedStructure for ImageFormatProperties2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for ImageFormatProperties2<'a> {} impl<'a> ImageFormatProperties2<'a> { #[inline] pub fn image_format_properties( @@ -10989,7 +10648,7 @@ impl ::core::default::Default for PhysicalDeviceImageFormatInfo2<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceImageFormatInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2; } -unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceImageFormatInfo2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceImageFormatInfo2<'a> {} impl<'a> PhysicalDeviceImageFormatInfo2<'a> { #[inline] pub fn format(mut self, format: Format) -> Self { @@ -11044,7 +10703,7 @@ impl ::core::default::Default for QueueFamilyProperties2<'_> { unsafe impl<'a> TaggedStructure for QueueFamilyProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_PROPERTIES_2; } -unsafe impl<'a> BaseTaggedStructure for QueueFamilyProperties2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for QueueFamilyProperties2<'a> {} impl<'a> QueueFamilyProperties2<'a> { #[inline] pub fn queue_family_properties( @@ -11082,7 +10741,7 @@ impl ::core::default::Default for PhysicalDeviceMemoryProperties2<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMemoryProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_PROPERTIES_2; } -unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceMemoryProperties2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceMemoryProperties2<'a> {} impl<'a> PhysicalDeviceMemoryProperties2<'a> { #[inline] pub fn memory_properties(mut self, memory_properties: PhysicalDeviceMemoryProperties) -> Self { @@ -11625,7 +11284,7 @@ impl ::core::default::Default for PhysicalDeviceExternalBufferInfo<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalBufferInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO; } -unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceExternalBufferInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceExternalBufferInfo<'a> {} impl<'a> PhysicalDeviceExternalBufferInfo<'a> { #[inline] pub fn flags(mut self, flags: BufferCreateFlags) -> Self { @@ -12355,7 +12014,7 @@ impl ::core::default::Default for PhysicalDeviceExternalSemaphoreInfo<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalSemaphoreInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO; } -unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceExternalSemaphoreInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceExternalSemaphoreInfo<'a> {} impl<'a> PhysicalDeviceExternalSemaphoreInfo<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalSemaphoreHandleTypeFlags) -> Self { @@ -13751,7 +13410,7 @@ impl ::core::default::Default for BindBufferMemoryInfo<'_> { unsafe impl<'a> TaggedStructure for BindBufferMemoryInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_BUFFER_MEMORY_INFO; } -unsafe impl<'a> BaseTaggedStructure for BindBufferMemoryInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for BindBufferMemoryInfo<'a> {} impl<'a> BindBufferMemoryInfo<'a> { #[inline] pub fn buffer(mut self, buffer: Buffer) -> Self { @@ -13838,7 +13497,7 @@ impl ::core::default::Default for BindImageMemoryInfo<'_> { unsafe impl<'a> TaggedStructure for BindImageMemoryInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_IMAGE_MEMORY_INFO; } -unsafe impl<'a> BaseTaggedStructure for BindImageMemoryInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for BindImageMemoryInfo<'a> {} impl<'a> BindImageMemoryInfo<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { @@ -15435,7 +15094,7 @@ impl ::core::default::Default for PhysicalDeviceSurfaceInfo2KHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceSurfaceInfo2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SURFACE_INFO_2_KHR; } -unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceSurfaceInfo2KHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceSurfaceInfo2KHR<'a> {} impl<'a> PhysicalDeviceSurfaceInfo2KHR<'a> { #[inline] pub fn surface(mut self, surface: SurfaceKHR) -> Self { @@ -15470,7 +15129,7 @@ impl ::core::default::Default for SurfaceCapabilities2KHR<'_> { unsafe impl<'a> TaggedStructure for SurfaceCapabilities2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_2_KHR; } -unsafe impl<'a> BaseTaggedStructure for SurfaceCapabilities2KHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for SurfaceCapabilities2KHR<'a> {} impl<'a> SurfaceCapabilities2KHR<'a> { #[inline] pub fn surface_capabilities(mut self, surface_capabilities: SurfaceCapabilitiesKHR) -> Self { @@ -15505,7 +15164,7 @@ impl ::core::default::Default for SurfaceFormat2KHR<'_> { unsafe impl<'a> TaggedStructure for SurfaceFormat2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_FORMAT_2_KHR; } -unsafe impl<'a> BaseTaggedStructure for SurfaceFormat2KHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for SurfaceFormat2KHR<'a> {} impl<'a> SurfaceFormat2KHR<'a> { #[inline] pub fn surface_format(mut self, surface_format: SurfaceFormatKHR) -> Self { @@ -15989,7 +15648,7 @@ impl ::core::default::Default for ImageMemoryRequirementsInfo2<'_> { unsafe impl<'a> TaggedStructure for ImageMemoryRequirementsInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_MEMORY_REQUIREMENTS_INFO_2; } -unsafe impl<'a> BaseTaggedStructure for ImageMemoryRequirementsInfo2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for ImageMemoryRequirementsInfo2<'a> {} impl<'a> ImageMemoryRequirementsInfo2<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { @@ -16099,7 +15758,7 @@ impl ::core::default::Default for MemoryRequirements2<'_> { unsafe impl<'a> TaggedStructure for MemoryRequirements2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_REQUIREMENTS_2; } -unsafe impl<'a> BaseTaggedStructure for MemoryRequirements2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for MemoryRequirements2<'a> {} impl<'a> MemoryRequirements2<'a> { #[inline] pub fn memory_requirements(mut self, memory_requirements: MemoryRequirements) -> Self { @@ -16462,7 +16121,7 @@ impl ::core::default::Default for SamplerYcbcrConversionCreateInfo<'_> { unsafe impl<'a> TaggedStructure for SamplerYcbcrConversionCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_CREATE_INFO; } -unsafe impl<'a> BaseTaggedStructure for SamplerYcbcrConversionCreateInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for SamplerYcbcrConversionCreateInfo<'a> {} impl<'a> SamplerYcbcrConversionCreateInfo<'a> { #[inline] pub fn format(mut self, format: Format) -> Self { @@ -18373,319 +18032,6 @@ impl<'a> PhysicalDeviceMaintenance6PropertiesKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceMaintenance7FeaturesKHR<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub maintenance7: Bool32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceMaintenance7FeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceMaintenance7FeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceMaintenance7FeaturesKHR<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - maintenance7: Bool32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance7FeaturesKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR; -} -unsafe impl<'a> Extends> for PhysicalDeviceMaintenance7FeaturesKHR<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceMaintenance7FeaturesKHR<'a> {} -impl<'a> PhysicalDeviceMaintenance7FeaturesKHR<'a> { - #[inline] - pub fn maintenance7(mut self, maintenance7: bool) -> Self { - self.maintenance7 = maintenance7.into(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceMaintenance7PropertiesKHR<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub robust_fragment_shading_rate_attachment_access: Bool32, - pub separate_depth_stencil_attachment_access: Bool32, - pub max_descriptor_set_total_uniform_buffers_dynamic: u32, - pub max_descriptor_set_total_storage_buffers_dynamic: u32, - pub max_descriptor_set_total_buffers_dynamic: u32, - pub max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic: u32, - pub max_descriptor_set_update_after_bind_total_storage_buffers_dynamic: u32, - pub max_descriptor_set_update_after_bind_total_buffers_dynamic: u32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceMaintenance7PropertiesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceMaintenance7PropertiesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceMaintenance7PropertiesKHR<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - robust_fragment_shading_rate_attachment_access: Bool32::default(), - separate_depth_stencil_attachment_access: Bool32::default(), - max_descriptor_set_total_uniform_buffers_dynamic: u32::default(), - max_descriptor_set_total_storage_buffers_dynamic: u32::default(), - max_descriptor_set_total_buffers_dynamic: u32::default(), - max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic: u32::default(), - max_descriptor_set_update_after_bind_total_storage_buffers_dynamic: u32::default(), - max_descriptor_set_update_after_bind_total_buffers_dynamic: u32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance7PropertiesKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR; -} -unsafe impl<'a> Extends> - for PhysicalDeviceMaintenance7PropertiesKHR<'a> -{ -} -impl<'a> PhysicalDeviceMaintenance7PropertiesKHR<'a> { - #[inline] - pub fn robust_fragment_shading_rate_attachment_access( - mut self, - robust_fragment_shading_rate_attachment_access: bool, - ) -> Self { - self.robust_fragment_shading_rate_attachment_access = - robust_fragment_shading_rate_attachment_access.into(); - self - } - #[inline] - pub fn separate_depth_stencil_attachment_access( - mut self, - separate_depth_stencil_attachment_access: bool, - ) -> Self { - self.separate_depth_stencil_attachment_access = - separate_depth_stencil_attachment_access.into(); - self - } - #[inline] - pub fn max_descriptor_set_total_uniform_buffers_dynamic( - mut self, - max_descriptor_set_total_uniform_buffers_dynamic: u32, - ) -> Self { - self.max_descriptor_set_total_uniform_buffers_dynamic = - max_descriptor_set_total_uniform_buffers_dynamic; - self - } - #[inline] - pub fn max_descriptor_set_total_storage_buffers_dynamic( - mut self, - max_descriptor_set_total_storage_buffers_dynamic: u32, - ) -> Self { - self.max_descriptor_set_total_storage_buffers_dynamic = - max_descriptor_set_total_storage_buffers_dynamic; - self - } - #[inline] - pub fn max_descriptor_set_total_buffers_dynamic( - mut self, - max_descriptor_set_total_buffers_dynamic: u32, - ) -> Self { - self.max_descriptor_set_total_buffers_dynamic = max_descriptor_set_total_buffers_dynamic; - self - } - #[inline] - pub fn max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic( - mut self, - max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic: u32, - ) -> Self { - self.max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic = - max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic; - self - } - #[inline] - pub fn max_descriptor_set_update_after_bind_total_storage_buffers_dynamic( - mut self, - max_descriptor_set_update_after_bind_total_storage_buffers_dynamic: u32, - ) -> Self { - self.max_descriptor_set_update_after_bind_total_storage_buffers_dynamic = - max_descriptor_set_update_after_bind_total_storage_buffers_dynamic; - self - } - #[inline] - pub fn max_descriptor_set_update_after_bind_total_buffers_dynamic( - mut self, - max_descriptor_set_update_after_bind_total_buffers_dynamic: u32, - ) -> Self { - self.max_descriptor_set_update_after_bind_total_buffers_dynamic = - max_descriptor_set_update_after_bind_total_buffers_dynamic; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceLayeredApiPropertiesListKHR<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub layered_api_count: u32, - pub p_layered_apis: *mut PhysicalDeviceLayeredApiPropertiesKHR<'a>, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceLayeredApiPropertiesListKHR<'_> {} -unsafe impl Sync for PhysicalDeviceLayeredApiPropertiesListKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceLayeredApiPropertiesListKHR<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - layered_api_count: u32::default(), - p_layered_apis: ::core::ptr::null_mut(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDeviceLayeredApiPropertiesListKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR; -} -unsafe impl<'a> Extends> - for PhysicalDeviceLayeredApiPropertiesListKHR<'a> -{ -} -impl<'a> PhysicalDeviceLayeredApiPropertiesListKHR<'a> { - #[inline] - pub fn layered_apis( - mut self, - layered_apis: &'a mut [PhysicalDeviceLayeredApiPropertiesKHR<'_>], - ) -> Self { - self.layered_api_count = layered_apis.len() as _; - self.p_layered_apis = layered_apis.as_mut_ptr().cast(); - self - } -} -#[repr(C)] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceLayeredApiPropertiesKHR<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub vendor_id: u32, - pub device_id: u32, - pub layered_api: PhysicalDeviceLayeredApiKHR, - pub device_name: [c_char; MAX_PHYSICAL_DEVICE_NAME_SIZE], - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceLayeredApiPropertiesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceLayeredApiPropertiesKHR<'_> {} -#[cfg(feature = "debug")] -impl fmt::Debug for PhysicalDeviceLayeredApiPropertiesKHR<'_> { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("PhysicalDeviceLayeredApiPropertiesKHR") - .field("s_type", &self.s_type) - .field("p_next", &self.p_next) - .field("vendor_id", &self.vendor_id) - .field("device_id", &self.device_id) - .field("layered_api", &self.layered_api) - .field("device_name", &self.device_name_as_c_str()) - .finish() - } -} -impl ::core::default::Default for PhysicalDeviceLayeredApiPropertiesKHR<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - vendor_id: u32::default(), - device_id: u32::default(), - layered_api: PhysicalDeviceLayeredApiKHR::default(), - device_name: unsafe { ::core::mem::zeroed() }, - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDeviceLayeredApiPropertiesKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR; -} -unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceLayeredApiPropertiesKHR<'_> {} -impl<'a> PhysicalDeviceLayeredApiPropertiesKHR<'a> { - #[inline] - pub fn vendor_id(mut self, vendor_id: u32) -> Self { - self.vendor_id = vendor_id; - self - } - #[inline] - pub fn device_id(mut self, device_id: u32) -> Self { - self.device_id = device_id; - self - } - #[inline] - pub fn layered_api(mut self, layered_api: PhysicalDeviceLayeredApiKHR) -> Self { - self.layered_api = layered_api; - self - } - #[inline] - pub fn device_name( - mut self, - device_name: &CStr, - ) -> core::result::Result { - write_c_str_slice_with_nul(&mut self.device_name, device_name).map(|()| self) - } - #[inline] - pub fn device_name_as_c_str(&self) -> core::result::Result<&CStr, FromBytesUntilNulError> { - wrap_c_str_slice_until_nul(&self.device_name) - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceLayeredApiVulkanPropertiesKHR<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub properties: PhysicalDeviceProperties2<'a>, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceLayeredApiVulkanPropertiesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceLayeredApiVulkanPropertiesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceLayeredApiVulkanPropertiesKHR<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - properties: PhysicalDeviceProperties2::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDeviceLayeredApiVulkanPropertiesKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR; -} -unsafe impl<'a> Extends> - for PhysicalDeviceLayeredApiVulkanPropertiesKHR<'a> -{ -} -impl<'a> PhysicalDeviceLayeredApiVulkanPropertiesKHR<'a> { - #[inline] - pub fn properties(mut self, properties: PhysicalDeviceProperties2<'a>) -> Self { - self.properties = properties; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct RenderingAreaInfoKHR<'a> { @@ -18768,7 +18114,7 @@ impl ::core::default::Default for DescriptorSetLayoutSupport<'_> { unsafe impl<'a> TaggedStructure for DescriptorSetLayoutSupport<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_SUPPORT; } -unsafe impl<'a> BaseTaggedStructure for DescriptorSetLayoutSupport<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for DescriptorSetLayoutSupport<'a> {} impl<'a> DescriptorSetLayoutSupport<'a> { #[inline] pub fn supported(mut self, supported: bool) -> Self { @@ -19762,7 +19108,7 @@ impl ::core::default::Default for DebugUtilsMessengerCallbackDataEXT<'_> { unsafe impl<'a> TaggedStructure for DebugUtilsMessengerCallbackDataEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT; } -unsafe impl<'a> BaseTaggedStructure for DebugUtilsMessengerCallbackDataEXT<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for DebugUtilsMessengerCallbackDataEXT<'a> {} impl<'a> DebugUtilsMessengerCallbackDataEXT<'a> { #[inline] pub fn flags(mut self, flags: DebugUtilsMessengerCallbackDataFlagsEXT) -> Self { @@ -21197,7 +20543,7 @@ impl ::core::default::Default for AttachmentDescription2<'_> { unsafe impl<'a> TaggedStructure for AttachmentDescription2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_DESCRIPTION_2; } -unsafe impl<'a> BaseTaggedStructure for AttachmentDescription2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for AttachmentDescription2<'a> {} impl<'a> AttachmentDescription2<'a> { #[inline] pub fn flags(mut self, flags: AttachmentDescriptionFlags) -> Self { @@ -21276,7 +20622,7 @@ impl ::core::default::Default for AttachmentReference2<'_> { unsafe impl<'a> TaggedStructure for AttachmentReference2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_REFERENCE_2; } -unsafe impl<'a> BaseTaggedStructure for AttachmentReference2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for AttachmentReference2<'a> {} impl<'a> AttachmentReference2<'a> { #[inline] pub fn attachment(mut self, attachment: u32) -> Self { @@ -21341,7 +20687,7 @@ impl ::core::default::Default for SubpassDescription2<'_> { unsafe impl<'a> TaggedStructure for SubpassDescription2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_DESCRIPTION_2; } -unsafe impl<'a> BaseTaggedStructure for SubpassDescription2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for SubpassDescription2<'a> {} impl<'a> SubpassDescription2<'a> { #[inline] pub fn flags(mut self, flags: SubpassDescriptionFlags) -> Self { @@ -21435,7 +20781,7 @@ impl ::core::default::Default for SubpassDependency2<'_> { unsafe impl<'a> TaggedStructure for SubpassDependency2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_DEPENDENCY_2; } -unsafe impl<'a> BaseTaggedStructure for SubpassDependency2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for SubpassDependency2<'a> {} impl<'a> SubpassDependency2<'a> { #[inline] pub fn src_subpass(mut self, src_subpass: u32) -> Self { @@ -21521,7 +20867,7 @@ impl ::core::default::Default for RenderPassCreateInfo2<'_> { unsafe impl<'a> TaggedStructure for RenderPassCreateInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_CREATE_INFO_2; } -unsafe impl<'a> BaseTaggedStructure for RenderPassCreateInfo2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for RenderPassCreateInfo2<'a> {} impl<'a> RenderPassCreateInfo2<'a> { #[inline] pub fn flags(mut self, flags: RenderPassCreateFlags) -> Self { @@ -21612,7 +20958,7 @@ impl ::core::default::Default for SubpassEndInfo<'_> { unsafe impl<'a> TaggedStructure for SubpassEndInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_END_INFO; } -unsafe impl<'a> BaseTaggedStructure for SubpassEndInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for SubpassEndInfo<'a> {} impl<'a> SubpassEndInfo<'a> {} #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -22195,7 +21541,7 @@ impl ::core::default::Default for AndroidHardwareBufferPropertiesANDROID<'_> { unsafe impl<'a> TaggedStructure for AndroidHardwareBufferPropertiesANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID; } -unsafe impl<'a> BaseTaggedStructure for AndroidHardwareBufferPropertiesANDROID<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for AndroidHardwareBufferPropertiesANDROID<'a> {} impl<'a> AndroidHardwareBufferPropertiesANDROID<'a> { #[inline] pub fn allocation_size(mut self, allocation_size: DeviceSize) -> Self { @@ -23661,18 +23007,18 @@ impl<'a> PhysicalDeviceCornerSampledImageFeaturesNV<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> { +pub struct PhysicalDeviceComputeShaderDerivativesFeaturesNV<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub compute_derivative_group_quads: Bool32, pub compute_derivative_group_linear: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'_> { +unsafe impl Send for PhysicalDeviceComputeShaderDerivativesFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDeviceComputeShaderDerivativesFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceComputeShaderDerivativesFeaturesNV<'_> { #[inline] fn default() -> Self { Self { @@ -23684,19 +23030,19 @@ impl ::core::default::Default for PhysicalDeviceComputeShaderDerivativesFeatures } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure for PhysicalDeviceComputeShaderDerivativesFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR; + StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV; } unsafe impl<'a> Extends> - for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> + for PhysicalDeviceComputeShaderDerivativesFeaturesNV<'a> { } unsafe impl<'a> Extends> - for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> + for PhysicalDeviceComputeShaderDerivativesFeaturesNV<'a> { } -impl<'a> PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> { +impl<'a> PhysicalDeviceComputeShaderDerivativesFeaturesNV<'a> { #[inline] pub fn compute_derivative_group_quads(mut self, compute_derivative_group_quads: bool) -> Self { self.compute_derivative_group_quads = compute_derivative_group_quads.into(); @@ -23714,48 +23060,6 @@ impl<'a> PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub mesh_and_task_shader_derivatives: Bool32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - mesh_and_task_shader_derivatives: Bool32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR; -} -unsafe impl<'a> Extends> - for PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'a> -{ -} -impl<'a> PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'a> { - #[inline] - pub fn mesh_and_task_shader_derivatives( - mut self, - mesh_and_task_shader_derivatives: bool, - ) -> Self { - self.mesh_and_task_shader_derivatives = mesh_and_task_shader_derivatives.into(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct PhysicalDeviceShaderImageFootprintFeaturesNV<'a> { @@ -25083,7 +24387,7 @@ impl ::core::default::Default for RayTracingPipelineCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for RayTracingPipelineCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RAY_TRACING_PIPELINE_CREATE_INFO_NV; } -unsafe impl<'a> BaseTaggedStructure for RayTracingPipelineCreateInfoNV<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for RayTracingPipelineCreateInfoNV<'a> {} impl<'a> RayTracingPipelineCreateInfoNV<'a> { #[inline] pub fn flags(mut self, flags: PipelineCreateFlags) -> Self { @@ -25172,7 +24476,7 @@ impl ::core::default::Default for RayTracingPipelineCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for RayTracingPipelineCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RAY_TRACING_PIPELINE_CREATE_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for RayTracingPipelineCreateInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for RayTracingPipelineCreateInfoKHR<'a> {} impl<'a> RayTracingPipelineCreateInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: PipelineCreateFlags) -> Self { @@ -25549,7 +24853,7 @@ impl ::core::default::Default for AccelerationStructureCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for AccelerationStructureCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_NV; } -unsafe impl<'a> BaseTaggedStructure for AccelerationStructureCreateInfoNV<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for AccelerationStructureCreateInfoNV<'a> {} impl<'a> AccelerationStructureCreateInfoNV<'a> { #[inline] pub fn compacted_size(mut self, compacted_size: DeviceSize) -> Self { @@ -33747,7 +33051,7 @@ unsafe impl<'a> TaggedStructure for AccelerationStructureGeometryTrianglesDataKH const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR; } -unsafe impl<'a> BaseTaggedStructure for AccelerationStructureGeometryTrianglesDataKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for AccelerationStructureGeometryTrianglesDataKHR<'a> {} impl<'a> AccelerationStructureGeometryTrianglesDataKHR<'a> { #[inline] pub fn vertex_format(mut self, vertex_format: Format) -> Self { @@ -34152,7 +33456,7 @@ impl ::core::default::Default for AccelerationStructureCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for AccelerationStructureCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for AccelerationStructureCreateInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for AccelerationStructureCreateInfoKHR<'a> {} impl<'a> AccelerationStructureCreateInfoKHR<'a> { #[inline] pub fn create_flags(mut self, create_flags: AccelerationStructureCreateFlagsKHR) -> Self { @@ -36002,7 +35306,7 @@ unsafe impl<'a> Extends> for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a> { } -unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a> {} impl<'a> PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a> { #[inline] pub fn clusterculling_shader(mut self, clusterculling_shader: bool) -> Self { @@ -36200,7 +35504,7 @@ impl ::core::default::Default for ImageBlit2<'_> { unsafe impl<'a> TaggedStructure for ImageBlit2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_BLIT_2; } -unsafe impl<'a> BaseTaggedStructure for ImageBlit2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for ImageBlit2<'a> {} impl<'a> ImageBlit2<'a> { #[inline] pub fn src_subresource(mut self, src_subresource: ImageSubresourceLayers) -> Self { @@ -36260,7 +35564,7 @@ impl ::core::default::Default for BufferImageCopy2<'_> { unsafe impl<'a> TaggedStructure for BufferImageCopy2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_IMAGE_COPY_2; } -unsafe impl<'a> BaseTaggedStructure for BufferImageCopy2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for BufferImageCopy2<'a> {} impl<'a> BufferImageCopy2<'a> { #[inline] pub fn buffer_offset(mut self, buffer_offset: DeviceSize) -> Self { @@ -36510,7 +35814,7 @@ impl ::core::default::Default for BlitImageInfo2<'_> { unsafe impl<'a> TaggedStructure for BlitImageInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BLIT_IMAGE_INFO_2; } -unsafe impl<'a> BaseTaggedStructure for BlitImageInfo2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for BlitImageInfo2<'a> {} impl<'a> BlitImageInfo2<'a> { #[inline] pub fn src_image(mut self, src_image: Image) -> Self { @@ -37568,88 +36872,6 @@ impl<'a> PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub legacy_vertex_attributes: Bool32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - legacy_vertex_attributes: Bool32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT; -} -unsafe impl<'a> Extends> - for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a> -{ -} -unsafe impl<'a> Extends> - for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a> -{ -} -impl<'a> PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a> { - #[inline] - pub fn legacy_vertex_attributes(mut self, legacy_vertex_attributes: bool) -> Self { - self.legacy_vertex_attributes = legacy_vertex_attributes.into(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub native_unaligned_performance: Bool32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - native_unaligned_performance: Bool32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT; -} -unsafe impl<'a> Extends> - for PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'a> -{ -} -impl<'a> PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'a> { - #[inline] - pub fn native_unaligned_performance(mut self, native_unaligned_performance: bool) -> Self { - self.native_unaligned_performance = native_unaligned_performance.into(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'a> { @@ -37808,1034 +37030,6 @@ impl<'a> PhysicalDeviceDepthClipControlFeaturesEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub device_generated_commands: Bool32, - pub dynamic_generated_pipeline_layout: Bool32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - device_generated_commands: Bool32::default(), - dynamic_generated_pipeline_layout: Bool32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT; -} -unsafe impl<'a> Extends> - for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> -{ -} -unsafe impl<'a> Extends> - for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> -{ -} -impl<'a> PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> { - #[inline] - pub fn device_generated_commands(mut self, device_generated_commands: bool) -> Self { - self.device_generated_commands = device_generated_commands.into(); - self - } - #[inline] - pub fn dynamic_generated_pipeline_layout( - mut self, - dynamic_generated_pipeline_layout: bool, - ) -> Self { - self.dynamic_generated_pipeline_layout = dynamic_generated_pipeline_layout.into(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub max_indirect_pipeline_count: u32, - pub max_indirect_shader_object_count: u32, - pub max_indirect_sequence_count: u32, - pub max_indirect_commands_token_count: u32, - pub max_indirect_commands_token_offset: u32, - pub max_indirect_commands_indirect_stride: u32, - pub supported_indirect_commands_input_modes: IndirectCommandsInputModeFlagsEXT, - pub supported_indirect_commands_shader_stages: ShaderStageFlags, - pub supported_indirect_commands_shader_stages_pipeline_binding: ShaderStageFlags, - pub supported_indirect_commands_shader_stages_shader_binding: ShaderStageFlags, - pub device_generated_commands_transform_feedback: Bool32, - pub device_generated_commands_multi_draw_indirect_count: Bool32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - max_indirect_pipeline_count: u32::default(), - max_indirect_shader_object_count: u32::default(), - max_indirect_sequence_count: u32::default(), - max_indirect_commands_token_count: u32::default(), - max_indirect_commands_token_offset: u32::default(), - max_indirect_commands_indirect_stride: u32::default(), - supported_indirect_commands_input_modes: IndirectCommandsInputModeFlagsEXT::default(), - supported_indirect_commands_shader_stages: ShaderStageFlags::default(), - supported_indirect_commands_shader_stages_pipeline_binding: ShaderStageFlags::default(), - supported_indirect_commands_shader_stages_shader_binding: ShaderStageFlags::default(), - device_generated_commands_transform_feedback: Bool32::default(), - device_generated_commands_multi_draw_indirect_count: Bool32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT; -} -unsafe impl<'a> Extends> - for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'a> -{ -} -impl<'a> PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'a> { - #[inline] - pub fn max_indirect_pipeline_count(mut self, max_indirect_pipeline_count: u32) -> Self { - self.max_indirect_pipeline_count = max_indirect_pipeline_count; - self - } - #[inline] - pub fn max_indirect_shader_object_count( - mut self, - max_indirect_shader_object_count: u32, - ) -> Self { - self.max_indirect_shader_object_count = max_indirect_shader_object_count; - self - } - #[inline] - pub fn max_indirect_sequence_count(mut self, max_indirect_sequence_count: u32) -> Self { - self.max_indirect_sequence_count = max_indirect_sequence_count; - self - } - #[inline] - pub fn max_indirect_commands_token_count( - mut self, - max_indirect_commands_token_count: u32, - ) -> Self { - self.max_indirect_commands_token_count = max_indirect_commands_token_count; - self - } - #[inline] - pub fn max_indirect_commands_token_offset( - mut self, - max_indirect_commands_token_offset: u32, - ) -> Self { - self.max_indirect_commands_token_offset = max_indirect_commands_token_offset; - self - } - #[inline] - pub fn max_indirect_commands_indirect_stride( - mut self, - max_indirect_commands_indirect_stride: u32, - ) -> Self { - self.max_indirect_commands_indirect_stride = max_indirect_commands_indirect_stride; - self - } - #[inline] - pub fn supported_indirect_commands_input_modes( - mut self, - supported_indirect_commands_input_modes: IndirectCommandsInputModeFlagsEXT, - ) -> Self { - self.supported_indirect_commands_input_modes = supported_indirect_commands_input_modes; - self - } - #[inline] - pub fn supported_indirect_commands_shader_stages( - mut self, - supported_indirect_commands_shader_stages: ShaderStageFlags, - ) -> Self { - self.supported_indirect_commands_shader_stages = supported_indirect_commands_shader_stages; - self - } - #[inline] - pub fn supported_indirect_commands_shader_stages_pipeline_binding( - mut self, - supported_indirect_commands_shader_stages_pipeline_binding: ShaderStageFlags, - ) -> Self { - self.supported_indirect_commands_shader_stages_pipeline_binding = - supported_indirect_commands_shader_stages_pipeline_binding; - self - } - #[inline] - pub fn supported_indirect_commands_shader_stages_shader_binding( - mut self, - supported_indirect_commands_shader_stages_shader_binding: ShaderStageFlags, - ) -> Self { - self.supported_indirect_commands_shader_stages_shader_binding = - supported_indirect_commands_shader_stages_shader_binding; - self - } - #[inline] - pub fn device_generated_commands_transform_feedback( - mut self, - device_generated_commands_transform_feedback: bool, - ) -> Self { - self.device_generated_commands_transform_feedback = - device_generated_commands_transform_feedback.into(); - self - } - #[inline] - pub fn device_generated_commands_multi_draw_indirect_count( - mut self, - device_generated_commands_multi_draw_indirect_count: bool, - ) -> Self { - self.device_generated_commands_multi_draw_indirect_count = - device_generated_commands_multi_draw_indirect_count.into(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct GeneratedCommandsPipelineInfoEXT<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub pipeline: Pipeline, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for GeneratedCommandsPipelineInfoEXT<'_> {} -unsafe impl Sync for GeneratedCommandsPipelineInfoEXT<'_> {} -impl ::core::default::Default for GeneratedCommandsPipelineInfoEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - pipeline: Pipeline::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for GeneratedCommandsPipelineInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_PIPELINE_INFO_EXT; -} -unsafe impl<'a> Extends> for GeneratedCommandsPipelineInfoEXT<'a> {} -unsafe impl<'a> Extends> - for GeneratedCommandsPipelineInfoEXT<'a> -{ -} -impl<'a> GeneratedCommandsPipelineInfoEXT<'a> { - #[inline] - pub fn pipeline(mut self, pipeline: Pipeline) -> Self { - self.pipeline = pipeline; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct GeneratedCommandsShaderInfoEXT<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub shader_count: u32, - pub p_shaders: *const ShaderEXT, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for GeneratedCommandsShaderInfoEXT<'_> {} -unsafe impl Sync for GeneratedCommandsShaderInfoEXT<'_> {} -impl ::core::default::Default for GeneratedCommandsShaderInfoEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - shader_count: u32::default(), - p_shaders: ::core::ptr::null(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for GeneratedCommandsShaderInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_SHADER_INFO_EXT; -} -unsafe impl<'a> Extends> for GeneratedCommandsShaderInfoEXT<'a> {} -unsafe impl<'a> Extends> - for GeneratedCommandsShaderInfoEXT<'a> -{ -} -impl<'a> GeneratedCommandsShaderInfoEXT<'a> { - #[inline] - pub fn shaders(mut self, shaders: &'a [ShaderEXT]) -> Self { - self.shader_count = shaders.len() as _; - self.p_shaders = shaders.as_ptr(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct GeneratedCommandsMemoryRequirementsInfoEXT<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub indirect_execution_set: IndirectExecutionSetEXT, - pub indirect_commands_layout: IndirectCommandsLayoutEXT, - pub max_sequence_count: u32, - pub max_draw_count: u32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for GeneratedCommandsMemoryRequirementsInfoEXT<'_> {} -unsafe impl Sync for GeneratedCommandsMemoryRequirementsInfoEXT<'_> {} -impl ::core::default::Default for GeneratedCommandsMemoryRequirementsInfoEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - indirect_execution_set: IndirectExecutionSetEXT::default(), - indirect_commands_layout: IndirectCommandsLayoutEXT::default(), - max_sequence_count: u32::default(), - max_draw_count: u32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for GeneratedCommandsMemoryRequirementsInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT; -} -unsafe impl<'a> BaseTaggedStructure for GeneratedCommandsMemoryRequirementsInfoEXT<'_> {} -impl<'a> GeneratedCommandsMemoryRequirementsInfoEXT<'a> { - #[inline] - pub fn indirect_execution_set( - mut self, - indirect_execution_set: IndirectExecutionSetEXT, - ) -> Self { - self.indirect_execution_set = indirect_execution_set; - self - } - #[inline] - pub fn indirect_commands_layout( - mut self, - indirect_commands_layout: IndirectCommandsLayoutEXT, - ) -> Self { - self.indirect_commands_layout = indirect_commands_layout; - self - } - #[inline] - pub fn max_sequence_count(mut self, max_sequence_count: u32) -> Self { - self.max_sequence_count = max_sequence_count; - self - } - #[inline] - pub fn max_draw_count(mut self, max_draw_count: u32) -> Self { - self.max_draw_count = max_draw_count; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct IndirectExecutionSetPipelineInfoEXT<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub initial_pipeline: Pipeline, - pub max_pipeline_count: u32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for IndirectExecutionSetPipelineInfoEXT<'_> {} -unsafe impl Sync for IndirectExecutionSetPipelineInfoEXT<'_> {} -impl ::core::default::Default for IndirectExecutionSetPipelineInfoEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - initial_pipeline: Pipeline::default(), - max_pipeline_count: u32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for IndirectExecutionSetPipelineInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT; -} -impl<'a> IndirectExecutionSetPipelineInfoEXT<'a> { - #[inline] - pub fn initial_pipeline(mut self, initial_pipeline: Pipeline) -> Self { - self.initial_pipeline = initial_pipeline; - self - } - #[inline] - pub fn max_pipeline_count(mut self, max_pipeline_count: u32) -> Self { - self.max_pipeline_count = max_pipeline_count; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct IndirectExecutionSetShaderLayoutInfoEXT<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub set_layout_count: u32, - pub p_set_layouts: *const DescriptorSetLayout, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for IndirectExecutionSetShaderLayoutInfoEXT<'_> {} -unsafe impl Sync for IndirectExecutionSetShaderLayoutInfoEXT<'_> {} -impl ::core::default::Default for IndirectExecutionSetShaderLayoutInfoEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - set_layout_count: u32::default(), - p_set_layouts: ::core::ptr::null(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for IndirectExecutionSetShaderLayoutInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT; -} -impl<'a> IndirectExecutionSetShaderLayoutInfoEXT<'a> { - #[inline] - pub fn set_layouts(mut self, set_layouts: &'a [DescriptorSetLayout]) -> Self { - self.set_layout_count = set_layouts.len() as _; - self.p_set_layouts = set_layouts.as_ptr(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct IndirectExecutionSetShaderInfoEXT<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub shader_count: u32, - pub p_initial_shaders: *const ShaderEXT, - pub p_set_layout_infos: *const IndirectExecutionSetShaderLayoutInfoEXT<'a>, - pub max_shader_count: u32, - pub push_constant_range_count: u32, - pub p_push_constant_ranges: *const PushConstantRange, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for IndirectExecutionSetShaderInfoEXT<'_> {} -unsafe impl Sync for IndirectExecutionSetShaderInfoEXT<'_> {} -impl ::core::default::Default for IndirectExecutionSetShaderInfoEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - shader_count: u32::default(), - p_initial_shaders: ::core::ptr::null(), - p_set_layout_infos: ::core::ptr::null(), - max_shader_count: u32::default(), - push_constant_range_count: u32::default(), - p_push_constant_ranges: ::core::ptr::null(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for IndirectExecutionSetShaderInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_EXECUTION_SET_SHADER_INFO_EXT; -} -impl<'a> IndirectExecutionSetShaderInfoEXT<'a> { - #[inline] - pub fn initial_shaders(mut self, initial_shaders: &'a [ShaderEXT]) -> Self { - self.shader_count = initial_shaders.len() as _; - self.p_initial_shaders = initial_shaders.as_ptr(); - self - } - #[inline] - pub fn set_layout_infos( - mut self, - set_layout_infos: &'a [IndirectExecutionSetShaderLayoutInfoEXT<'a>], - ) -> Self { - self.shader_count = set_layout_infos.len() as _; - self.p_set_layout_infos = set_layout_infos.as_ptr(); - self - } - #[inline] - pub fn max_shader_count(mut self, max_shader_count: u32) -> Self { - self.max_shader_count = max_shader_count; - self - } - #[inline] - pub fn push_constant_ranges(mut self, push_constant_ranges: &'a [PushConstantRange]) -> Self { - self.push_constant_range_count = push_constant_ranges.len() as _; - self.p_push_constant_ranges = push_constant_ranges.as_ptr(); - self - } -} -#[repr(C)] -#[derive(Copy, Clone)] -#[doc = ""] -pub union IndirectExecutionSetInfoEXT<'a> { - pub p_pipeline_info: *const IndirectExecutionSetPipelineInfoEXT<'a>, - pub p_shader_info: *const IndirectExecutionSetShaderInfoEXT<'a>, -} -impl<'a> ::core::default::Default for IndirectExecutionSetInfoEXT<'a> { - #[inline] - fn default() -> Self { - unsafe { ::core::mem::zeroed() } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct IndirectExecutionSetCreateInfoEXT<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub ty: IndirectExecutionSetInfoTypeEXT, - pub info: IndirectExecutionSetInfoEXT<'a>, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for IndirectExecutionSetCreateInfoEXT<'_> {} -unsafe impl Sync for IndirectExecutionSetCreateInfoEXT<'_> {} -#[cfg(feature = "debug")] -impl fmt::Debug for IndirectExecutionSetCreateInfoEXT<'_> { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("IndirectExecutionSetCreateInfoEXT") - .field("s_type", &self.s_type) - .field("p_next", &self.p_next) - .field("ty", &self.ty) - .field("info", &"union") - .finish() - } -} -impl ::core::default::Default for IndirectExecutionSetCreateInfoEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - ty: IndirectExecutionSetInfoTypeEXT::default(), - info: IndirectExecutionSetInfoEXT::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for IndirectExecutionSetCreateInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_EXECUTION_SET_CREATE_INFO_EXT; -} -impl<'a> IndirectExecutionSetCreateInfoEXT<'a> { - #[inline] - pub fn ty(mut self, ty: IndirectExecutionSetInfoTypeEXT) -> Self { - self.ty = ty; - self - } - #[inline] - pub fn info(mut self, info: IndirectExecutionSetInfoEXT<'a>) -> Self { - self.info = info; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct GeneratedCommandsInfoEXT<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub shader_stages: ShaderStageFlags, - pub indirect_execution_set: IndirectExecutionSetEXT, - pub indirect_commands_layout: IndirectCommandsLayoutEXT, - pub indirect_address: DeviceAddress, - pub indirect_address_size: DeviceSize, - pub preprocess_address: DeviceAddress, - pub preprocess_size: DeviceSize, - pub max_sequence_count: u32, - pub sequence_count_address: DeviceAddress, - pub max_draw_count: u32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for GeneratedCommandsInfoEXT<'_> {} -unsafe impl Sync for GeneratedCommandsInfoEXT<'_> {} -impl ::core::default::Default for GeneratedCommandsInfoEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - shader_stages: ShaderStageFlags::default(), - indirect_execution_set: IndirectExecutionSetEXT::default(), - indirect_commands_layout: IndirectCommandsLayoutEXT::default(), - indirect_address: DeviceAddress::default(), - indirect_address_size: DeviceSize::default(), - preprocess_address: DeviceAddress::default(), - preprocess_size: DeviceSize::default(), - max_sequence_count: u32::default(), - sequence_count_address: DeviceAddress::default(), - max_draw_count: u32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for GeneratedCommandsInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_INFO_EXT; -} -unsafe impl<'a> BaseTaggedStructure for GeneratedCommandsInfoEXT<'_> {} -impl<'a> GeneratedCommandsInfoEXT<'a> { - #[inline] - pub fn shader_stages(mut self, shader_stages: ShaderStageFlags) -> Self { - self.shader_stages = shader_stages; - self - } - #[inline] - pub fn indirect_execution_set( - mut self, - indirect_execution_set: IndirectExecutionSetEXT, - ) -> Self { - self.indirect_execution_set = indirect_execution_set; - self - } - #[inline] - pub fn indirect_commands_layout( - mut self, - indirect_commands_layout: IndirectCommandsLayoutEXT, - ) -> Self { - self.indirect_commands_layout = indirect_commands_layout; - self - } - #[inline] - pub fn indirect_address(mut self, indirect_address: DeviceAddress) -> Self { - self.indirect_address = indirect_address; - self - } - #[inline] - pub fn indirect_address_size(mut self, indirect_address_size: DeviceSize) -> Self { - self.indirect_address_size = indirect_address_size; - self - } - #[inline] - pub fn preprocess_address(mut self, preprocess_address: DeviceAddress) -> Self { - self.preprocess_address = preprocess_address; - self - } - #[inline] - pub fn preprocess_size(mut self, preprocess_size: DeviceSize) -> Self { - self.preprocess_size = preprocess_size; - self - } - #[inline] - pub fn max_sequence_count(mut self, max_sequence_count: u32) -> Self { - self.max_sequence_count = max_sequence_count; - self - } - #[inline] - pub fn sequence_count_address(mut self, sequence_count_address: DeviceAddress) -> Self { - self.sequence_count_address = sequence_count_address; - self - } - #[inline] - pub fn max_draw_count(mut self, max_draw_count: u32) -> Self { - self.max_draw_count = max_draw_count; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct WriteIndirectExecutionSetPipelineEXT<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub index: u32, - pub pipeline: Pipeline, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for WriteIndirectExecutionSetPipelineEXT<'_> {} -unsafe impl Sync for WriteIndirectExecutionSetPipelineEXT<'_> {} -impl ::core::default::Default for WriteIndirectExecutionSetPipelineEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - index: u32::default(), - pipeline: Pipeline::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for WriteIndirectExecutionSetPipelineEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT; -} -impl<'a> WriteIndirectExecutionSetPipelineEXT<'a> { - #[inline] - pub fn index(mut self, index: u32) -> Self { - self.index = index; - self - } - #[inline] - pub fn pipeline(mut self, pipeline: Pipeline) -> Self { - self.pipeline = pipeline; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct WriteIndirectExecutionSetShaderEXT<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub index: u32, - pub shader: ShaderEXT, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for WriteIndirectExecutionSetShaderEXT<'_> {} -unsafe impl Sync for WriteIndirectExecutionSetShaderEXT<'_> {} -impl ::core::default::Default for WriteIndirectExecutionSetShaderEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - index: u32::default(), - shader: ShaderEXT::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for WriteIndirectExecutionSetShaderEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT; -} -impl<'a> WriteIndirectExecutionSetShaderEXT<'a> { - #[inline] - pub fn index(mut self, index: u32) -> Self { - self.index = index; - self - } - #[inline] - pub fn shader(mut self, shader: ShaderEXT) -> Self { - self.shader = shader; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct IndirectCommandsLayoutCreateInfoEXT<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub flags: IndirectCommandsLayoutUsageFlagsEXT, - pub shader_stages: ShaderStageFlags, - pub indirect_stride: u32, - pub pipeline_layout: PipelineLayout, - pub token_count: u32, - pub p_tokens: *const IndirectCommandsLayoutTokenEXT<'a>, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for IndirectCommandsLayoutCreateInfoEXT<'_> {} -unsafe impl Sync for IndirectCommandsLayoutCreateInfoEXT<'_> {} -impl ::core::default::Default for IndirectCommandsLayoutCreateInfoEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - flags: IndirectCommandsLayoutUsageFlagsEXT::default(), - shader_stages: ShaderStageFlags::default(), - indirect_stride: u32::default(), - pipeline_layout: PipelineLayout::default(), - token_count: u32::default(), - p_tokens: ::core::ptr::null(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for IndirectCommandsLayoutCreateInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT; -} -unsafe impl<'a> BaseTaggedStructure for IndirectCommandsLayoutCreateInfoEXT<'_> {} -impl<'a> IndirectCommandsLayoutCreateInfoEXT<'a> { - #[inline] - pub fn flags(mut self, flags: IndirectCommandsLayoutUsageFlagsEXT) -> Self { - self.flags = flags; - self - } - #[inline] - pub fn shader_stages(mut self, shader_stages: ShaderStageFlags) -> Self { - self.shader_stages = shader_stages; - self - } - #[inline] - pub fn indirect_stride(mut self, indirect_stride: u32) -> Self { - self.indirect_stride = indirect_stride; - self - } - #[inline] - pub fn pipeline_layout(mut self, pipeline_layout: PipelineLayout) -> Self { - self.pipeline_layout = pipeline_layout; - self - } - #[inline] - pub fn tokens(mut self, tokens: &'a [IndirectCommandsLayoutTokenEXT<'a>]) -> Self { - self.token_count = tokens.len() as _; - self.p_tokens = tokens.as_ptr(); - self - } -} -#[repr(C)] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct IndirectCommandsLayoutTokenEXT<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub ty: IndirectCommandsTokenTypeEXT, - pub data: IndirectCommandsTokenDataEXT, - pub offset: u32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for IndirectCommandsLayoutTokenEXT<'_> {} -unsafe impl Sync for IndirectCommandsLayoutTokenEXT<'_> {} -#[cfg(feature = "debug")] -impl fmt::Debug for IndirectCommandsLayoutTokenEXT<'_> { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("IndirectCommandsLayoutTokenEXT") - .field("s_type", &self.s_type) - .field("p_next", &self.p_next) - .field("ty", &self.ty) - .field("data", &"union") - .field("offset", &self.offset) - .finish() - } -} -impl ::core::default::Default for IndirectCommandsLayoutTokenEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - ty: IndirectCommandsTokenTypeEXT::default(), - data: IndirectCommandsTokenDataEXT::default(), - offset: u32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for IndirectCommandsLayoutTokenEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT; -} -impl<'a> IndirectCommandsLayoutTokenEXT<'a> { - #[inline] - pub fn ty(mut self, ty: IndirectCommandsTokenTypeEXT) -> Self { - self.ty = ty; - self - } - #[inline] - pub fn data(mut self, data: IndirectCommandsTokenDataEXT) -> Self { - self.data = data; - self - } - #[inline] - pub fn offset(mut self, offset: u32) -> Self { - self.offset = offset; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone, Default)] -#[doc = ""] -#[must_use] -pub struct DrawIndirectCountIndirectCommandEXT { - pub buffer_address: DeviceAddress, - pub stride: u32, - pub command_count: u32, -} -impl DrawIndirectCountIndirectCommandEXT { - #[inline] - pub fn buffer_address(mut self, buffer_address: DeviceAddress) -> Self { - self.buffer_address = buffer_address; - self - } - #[inline] - pub fn stride(mut self, stride: u32) -> Self { - self.stride = stride; - self - } - #[inline] - pub fn command_count(mut self, command_count: u32) -> Self { - self.command_count = command_count; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone, Default)] -#[doc = ""] -#[must_use] -pub struct IndirectCommandsVertexBufferTokenEXT { - pub vertex_binding_unit: u32, -} -impl IndirectCommandsVertexBufferTokenEXT { - #[inline] - pub fn vertex_binding_unit(mut self, vertex_binding_unit: u32) -> Self { - self.vertex_binding_unit = vertex_binding_unit; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone, Default)] -#[doc = ""] -#[must_use] -pub struct BindVertexBufferIndirectCommandEXT { - pub buffer_address: DeviceAddress, - pub size: u32, - pub stride: u32, -} -impl BindVertexBufferIndirectCommandEXT { - #[inline] - pub fn buffer_address(mut self, buffer_address: DeviceAddress) -> Self { - self.buffer_address = buffer_address; - self - } - #[inline] - pub fn size(mut self, size: u32) -> Self { - self.size = size; - self - } - #[inline] - pub fn stride(mut self, stride: u32) -> Self { - self.stride = stride; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone, Default)] -#[doc = ""] -#[must_use] -pub struct IndirectCommandsIndexBufferTokenEXT { - pub mode: IndirectCommandsInputModeFlagsEXT, -} -impl IndirectCommandsIndexBufferTokenEXT { - #[inline] - pub fn mode(mut self, mode: IndirectCommandsInputModeFlagsEXT) -> Self { - self.mode = mode; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone, Default)] -#[doc = ""] -#[must_use] -pub struct BindIndexBufferIndirectCommandEXT { - pub buffer_address: DeviceAddress, - pub size: u32, - pub index_type: IndexType, -} -impl BindIndexBufferIndirectCommandEXT { - #[inline] - pub fn buffer_address(mut self, buffer_address: DeviceAddress) -> Self { - self.buffer_address = buffer_address; - self - } - #[inline] - pub fn size(mut self, size: u32) -> Self { - self.size = size; - self - } - #[inline] - pub fn index_type(mut self, index_type: IndexType) -> Self { - self.index_type = index_type; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone, Default)] -#[doc = ""] -#[must_use] -pub struct IndirectCommandsPushConstantTokenEXT { - pub update_range: PushConstantRange, -} -impl IndirectCommandsPushConstantTokenEXT { - #[inline] - pub fn update_range(mut self, update_range: PushConstantRange) -> Self { - self.update_range = update_range; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone, Default)] -#[doc = ""] -#[must_use] -pub struct IndirectCommandsExecutionSetTokenEXT { - pub ty: IndirectExecutionSetInfoTypeEXT, - pub shader_stages: ShaderStageFlags, -} -impl IndirectCommandsExecutionSetTokenEXT { - #[inline] - pub fn ty(mut self, ty: IndirectExecutionSetInfoTypeEXT) -> Self { - self.ty = ty; - self - } - #[inline] - pub fn shader_stages(mut self, shader_stages: ShaderStageFlags) -> Self { - self.shader_stages = shader_stages; - self - } -} -#[repr(C)] -#[derive(Copy, Clone)] -#[doc = ""] -pub union IndirectCommandsTokenDataEXT { - pub p_push_constant: *const IndirectCommandsPushConstantTokenEXT, - pub p_vertex_buffer: *const IndirectCommandsVertexBufferTokenEXT, - pub p_index_buffer: *const IndirectCommandsIndexBufferTokenEXT, - pub p_execution_set: *const IndirectCommandsExecutionSetTokenEXT, -} -impl ::core::default::Default for IndirectCommandsTokenDataEXT { - #[inline] - fn default() -> Self { - unsafe { ::core::mem::zeroed() } - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct PipelineViewportDepthClipControlCreateInfoEXT<'a> { @@ -38875,92 +37069,6 @@ impl<'a> PipelineViewportDepthClipControlCreateInfoEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceDepthClampControlFeaturesEXT<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub depth_clamp_control: Bool32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceDepthClampControlFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceDepthClampControlFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceDepthClampControlFeaturesEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - depth_clamp_control: Bool32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthClampControlFeaturesEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT; -} -unsafe impl<'a> Extends> - for PhysicalDeviceDepthClampControlFeaturesEXT<'a> -{ -} -unsafe impl<'a> Extends> for PhysicalDeviceDepthClampControlFeaturesEXT<'a> {} -impl<'a> PhysicalDeviceDepthClampControlFeaturesEXT<'a> { - #[inline] - pub fn depth_clamp_control(mut self, depth_clamp_control: bool) -> Self { - self.depth_clamp_control = depth_clamp_control.into(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PipelineViewportDepthClampControlCreateInfoEXT<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub depth_clamp_mode: DepthClampModeEXT, - pub p_depth_clamp_range: *const DepthClampRangeEXT, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PipelineViewportDepthClampControlCreateInfoEXT<'_> {} -unsafe impl Sync for PipelineViewportDepthClampControlCreateInfoEXT<'_> {} -impl ::core::default::Default for PipelineViewportDepthClampControlCreateInfoEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - depth_clamp_mode: DepthClampModeEXT::default(), - p_depth_clamp_range: ::core::ptr::null(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PipelineViewportDepthClampControlCreateInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT; -} -unsafe impl<'a> Extends> - for PipelineViewportDepthClampControlCreateInfoEXT<'a> -{ -} -impl<'a> PipelineViewportDepthClampControlCreateInfoEXT<'a> { - #[inline] - pub fn depth_clamp_mode(mut self, depth_clamp_mode: DepthClampModeEXT) -> Self { - self.depth_clamp_mode = depth_clamp_mode; - self - } - #[inline] - pub fn depth_clamp_range(mut self, depth_clamp_range: &'a DepthClampRangeEXT) -> Self { - self.p_depth_clamp_range = depth_clamp_range; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct PhysicalDeviceVertexInputDynamicStateFeaturesEXT<'a> { @@ -39044,52 +37152,6 @@ impl<'a> PhysicalDeviceExternalMemoryRDMAFeaturesNV<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub shader_relaxed_extended_instruction: Bool32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - shader_relaxed_extended_instruction: Bool32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR; -} -unsafe impl<'a> Extends> - for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a> -{ -} -unsafe impl<'a> Extends> - for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a> -{ -} -impl<'a> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a> { - #[inline] - pub fn shader_relaxed_extended_instruction( - mut self, - shader_relaxed_extended_instruction: bool, - ) -> Self { - self.shader_relaxed_extended_instruction = shader_relaxed_extended_instruction.into(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct VertexInputBindingDescription2EXT<'a> { @@ -39379,7 +37441,7 @@ impl ::core::default::Default for ImageMemoryBarrier2<'_> { unsafe impl<'a> TaggedStructure for ImageMemoryBarrier2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_MEMORY_BARRIER_2; } -unsafe impl<'a> BaseTaggedStructure for ImageMemoryBarrier2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for ImageMemoryBarrier2<'a> {} impl<'a> ImageMemoryBarrier2<'a> { #[inline] pub fn src_stage_mask(mut self, src_stage_mask: PipelineStageFlags2) -> Self { @@ -39475,7 +37537,7 @@ impl ::core::default::Default for BufferMemoryBarrier2<'_> { unsafe impl<'a> TaggedStructure for BufferMemoryBarrier2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_MEMORY_BARRIER_2; } -unsafe impl<'a> BaseTaggedStructure for BufferMemoryBarrier2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for BufferMemoryBarrier2<'a> {} impl<'a> BufferMemoryBarrier2<'a> { #[inline] pub fn src_stage_mask(mut self, src_stage_mask: PipelineStageFlags2) -> Self { @@ -39677,7 +37739,7 @@ impl ::core::default::Default for CommandBufferSubmitInfo<'_> { unsafe impl<'a> TaggedStructure for CommandBufferSubmitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_SUBMIT_INFO; } -unsafe impl<'a> BaseTaggedStructure for CommandBufferSubmitInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for CommandBufferSubmitInfo<'a> {} impl<'a> CommandBufferSubmitInfo<'a> { #[inline] pub fn command_buffer(mut self, command_buffer: CommandBuffer) -> Self { @@ -39729,7 +37791,7 @@ impl ::core::default::Default for SubmitInfo2<'_> { unsafe impl<'a> TaggedStructure for SubmitInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBMIT_INFO_2; } -unsafe impl<'a> BaseTaggedStructure for SubmitInfo2<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for SubmitInfo2<'a> {} impl<'a> SubmitInfo2<'a> { #[inline] pub fn flags(mut self, flags: SubmitFlags) -> Self { @@ -40875,7 +38937,7 @@ impl ::core::default::Default for PhysicalDeviceVideoFormatInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceVideoFormatInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for PhysicalDeviceVideoFormatInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceVideoFormatInfoKHR<'a> {} impl<'a> PhysicalDeviceVideoFormatInfoKHR<'a> { #[inline] pub fn image_usage(mut self, image_usage: ImageUsageFlags) -> Self { @@ -40986,7 +39048,7 @@ unsafe impl<'a> TaggedStructure for VideoProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_PROFILE_INFO_KHR; } unsafe impl<'a> Extends> for VideoProfileInfoKHR<'a> {} -unsafe impl<'a> BaseTaggedStructure for VideoProfileInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for VideoProfileInfoKHR<'a> {} impl<'a> VideoProfileInfoKHR<'a> { #[inline] pub fn video_codec_operation( @@ -41058,7 +39120,7 @@ impl ::core::default::Default for VideoCapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoCapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_CAPABILITIES_KHR; } -unsafe impl<'a> BaseTaggedStructure for VideoCapabilitiesKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for VideoCapabilitiesKHR<'a> {} impl<'a> VideoCapabilitiesKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoCapabilityFlagsKHR) -> Self { @@ -41292,7 +39354,7 @@ impl ::core::default::Default for VideoReferenceSlotInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoReferenceSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_REFERENCE_SLOT_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for VideoReferenceSlotInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for VideoReferenceSlotInfoKHR<'a> {} impl<'a> VideoReferenceSlotInfoKHR<'a> { #[inline] pub fn slot_index(mut self, slot_index: i32) -> Self { @@ -41420,7 +39482,7 @@ impl ::core::default::Default for VideoDecodeInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for VideoDecodeInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for VideoDecodeInfoKHR<'a> {} impl<'a> VideoDecodeInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoDecodeFlagsKHR) -> Self { @@ -42381,7 +40443,7 @@ impl ::core::default::Default for VideoSessionCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoSessionCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_SESSION_CREATE_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for VideoSessionCreateInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for VideoSessionCreateInfoKHR<'a> {} impl<'a> VideoSessionCreateInfoKHR<'a> { #[inline] pub fn queue_family_index(mut self, queue_family_index: u32) -> Self { @@ -42460,7 +40522,7 @@ impl ::core::default::Default for VideoSessionParametersCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoSessionParametersCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for VideoSessionParametersCreateInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for VideoSessionParametersCreateInfoKHR<'a> {} impl<'a> VideoSessionParametersCreateInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoSessionParametersCreateFlagsKHR) -> Self { @@ -42508,7 +40570,7 @@ impl ::core::default::Default for VideoSessionParametersUpdateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoSessionParametersUpdateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for VideoSessionParametersUpdateInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for VideoSessionParametersUpdateInfoKHR<'a> {} impl<'a> VideoSessionParametersUpdateInfoKHR<'a> { #[inline] pub fn update_sequence_count(mut self, update_sequence_count: u32) -> Self { @@ -42544,7 +40606,7 @@ unsafe impl<'a> TaggedStructure for VideoEncodeSessionParametersGetInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for VideoEncodeSessionParametersGetInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for VideoEncodeSessionParametersGetInfoKHR<'a> {} impl<'a> VideoEncodeSessionParametersGetInfoKHR<'a> { #[inline] pub fn video_session_parameters( @@ -42583,7 +40645,7 @@ unsafe impl<'a> TaggedStructure for VideoEncodeSessionParametersFeedbackInfoKHR< const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for VideoEncodeSessionParametersFeedbackInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for VideoEncodeSessionParametersFeedbackInfoKHR<'a> {} impl<'a> VideoEncodeSessionParametersFeedbackInfoKHR<'a> { #[inline] pub fn has_overrides(mut self, has_overrides: bool) -> Self { @@ -42626,7 +40688,7 @@ impl ::core::default::Default for VideoBeginCodingInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoBeginCodingInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_BEGIN_CODING_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for VideoBeginCodingInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for VideoBeginCodingInfoKHR<'a> {} impl<'a> VideoBeginCodingInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoBeginCodingFlagsKHR) -> Self { @@ -42714,7 +40776,7 @@ impl ::core::default::Default for VideoCodingControlInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoCodingControlInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_CODING_CONTROL_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for VideoCodingControlInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for VideoCodingControlInfoKHR<'a> {} impl<'a> VideoCodingControlInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoCodingControlFlagsKHR) -> Self { @@ -42815,7 +40877,7 @@ impl ::core::default::Default for VideoEncodeInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for VideoEncodeInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for VideoEncodeInfoKHR<'a> {} impl<'a> VideoEncodeInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeFlagsKHR) -> Self { @@ -43017,7 +41079,7 @@ impl ::core::default::Default for VideoEncodeQualityLevelPropertiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeQualityLevelPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR; } -unsafe impl<'a> BaseTaggedStructure for VideoEncodeQualityLevelPropertiesKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for VideoEncodeQualityLevelPropertiesKHR<'a> {} impl<'a> VideoEncodeQualityLevelPropertiesKHR<'a> { #[inline] pub fn preferred_rate_control_mode( @@ -43142,7 +41204,7 @@ impl ::core::default::Default for VideoEncodeRateControlLayerInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeRateControlLayerInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for VideoEncodeRateControlLayerInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for VideoEncodeRateControlLayerInfoKHR<'a> {} impl<'a> VideoEncodeRateControlLayerInfoKHR<'a> { #[inline] pub fn average_bitrate(mut self, average_bitrate: u64) -> Self { @@ -46120,7 +44182,7 @@ impl<'a> DescriptorAddressInfoEXT<'a> { #[must_use] pub struct DescriptorBufferBindingInfoEXT<'a> { pub s_type: StructureType, - pub p_next: *const c_void, + pub p_next: *mut c_void, pub address: DeviceAddress, pub usage: BufferUsageFlags, pub _marker: PhantomData<&'a ()>, @@ -46132,7 +44194,7 @@ impl ::core::default::Default for DescriptorBufferBindingInfoEXT<'_> { fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), + p_next: ::core::ptr::null_mut(), address: DeviceAddress::default(), usage: BufferUsageFlags::default(), _marker: PhantomData, @@ -46142,7 +44204,7 @@ impl ::core::default::Default for DescriptorBufferBindingInfoEXT<'_> { unsafe impl<'a> TaggedStructure for DescriptorBufferBindingInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_BUFFER_BINDING_INFO_EXT; } -unsafe impl<'a> BaseTaggedStructure for DescriptorBufferBindingInfoEXT<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for DescriptorBufferBindingInfoEXT<'a> {} impl<'a> DescriptorBufferBindingInfoEXT<'a> { #[inline] pub fn address(mut self, address: DeviceAddress) -> Self { @@ -46162,7 +44224,7 @@ impl<'a> DescriptorBufferBindingInfoEXT<'a> { #[must_use] pub struct DescriptorBufferBindingPushDescriptorBufferHandleEXT<'a> { pub s_type: StructureType, - pub p_next: *const c_void, + pub p_next: *mut c_void, pub buffer: Buffer, pub _marker: PhantomData<&'a ()>, } @@ -46173,7 +44235,7 @@ impl ::core::default::Default for DescriptorBufferBindingPushDescriptorBufferHan fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), + p_next: ::core::ptr::null_mut(), buffer: Buffer::default(), _marker: PhantomData, } @@ -48548,7 +46610,7 @@ impl ::core::default::Default for RenderingInfo<'_> { unsafe impl<'a> TaggedStructure for RenderingInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_INFO; } -unsafe impl<'a> BaseTaggedStructure for RenderingInfo<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for RenderingInfo<'a> {} impl<'a> RenderingInfo<'a> { #[inline] pub fn flags(mut self, flags: RenderingFlags) -> Self { @@ -49240,162 +47302,6 @@ impl<'a> PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDevicePipelineBinaryFeaturesKHR<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub pipeline_binaries: Bool32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDevicePipelineBinaryFeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDevicePipelineBinaryFeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDevicePipelineBinaryFeaturesKHR<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - pipeline_binaries: Bool32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineBinaryFeaturesKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR; -} -unsafe impl<'a> Extends> - for PhysicalDevicePipelineBinaryFeaturesKHR<'a> -{ -} -unsafe impl<'a> Extends> for PhysicalDevicePipelineBinaryFeaturesKHR<'a> {} -impl<'a> PhysicalDevicePipelineBinaryFeaturesKHR<'a> { - #[inline] - pub fn pipeline_binaries(mut self, pipeline_binaries: bool) -> Self { - self.pipeline_binaries = pipeline_binaries.into(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct DevicePipelineBinaryInternalCacheControlKHR<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub disable_internal_cache: Bool32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for DevicePipelineBinaryInternalCacheControlKHR<'_> {} -unsafe impl Sync for DevicePipelineBinaryInternalCacheControlKHR<'_> {} -impl ::core::default::Default for DevicePipelineBinaryInternalCacheControlKHR<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - disable_internal_cache: Bool32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for DevicePipelineBinaryInternalCacheControlKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR; -} -unsafe impl<'a> Extends> for DevicePipelineBinaryInternalCacheControlKHR<'a> {} -impl<'a> DevicePipelineBinaryInternalCacheControlKHR<'a> { - #[inline] - pub fn disable_internal_cache(mut self, disable_internal_cache: bool) -> Self { - self.disable_internal_cache = disable_internal_cache.into(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDevicePipelineBinaryPropertiesKHR<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub pipeline_binary_internal_cache: Bool32, - pub pipeline_binary_internal_cache_control: Bool32, - pub pipeline_binary_prefers_internal_cache: Bool32, - pub pipeline_binary_precompiled_internal_cache: Bool32, - pub pipeline_binary_compressed_data: Bool32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDevicePipelineBinaryPropertiesKHR<'_> {} -unsafe impl Sync for PhysicalDevicePipelineBinaryPropertiesKHR<'_> {} -impl ::core::default::Default for PhysicalDevicePipelineBinaryPropertiesKHR<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - pipeline_binary_internal_cache: Bool32::default(), - pipeline_binary_internal_cache_control: Bool32::default(), - pipeline_binary_prefers_internal_cache: Bool32::default(), - pipeline_binary_precompiled_internal_cache: Bool32::default(), - pipeline_binary_compressed_data: Bool32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineBinaryPropertiesKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR; -} -unsafe impl<'a> Extends> - for PhysicalDevicePipelineBinaryPropertiesKHR<'a> -{ -} -impl<'a> PhysicalDevicePipelineBinaryPropertiesKHR<'a> { - #[inline] - pub fn pipeline_binary_internal_cache(mut self, pipeline_binary_internal_cache: bool) -> Self { - self.pipeline_binary_internal_cache = pipeline_binary_internal_cache.into(); - self - } - #[inline] - pub fn pipeline_binary_internal_cache_control( - mut self, - pipeline_binary_internal_cache_control: bool, - ) -> Self { - self.pipeline_binary_internal_cache_control = pipeline_binary_internal_cache_control.into(); - self - } - #[inline] - pub fn pipeline_binary_prefers_internal_cache( - mut self, - pipeline_binary_prefers_internal_cache: bool, - ) -> Self { - self.pipeline_binary_prefers_internal_cache = pipeline_binary_prefers_internal_cache.into(); - self - } - #[inline] - pub fn pipeline_binary_precompiled_internal_cache( - mut self, - pipeline_binary_precompiled_internal_cache: bool, - ) -> Self { - self.pipeline_binary_precompiled_internal_cache = - pipeline_binary_precompiled_internal_cache.into(); - self - } - #[inline] - pub fn pipeline_binary_compressed_data( - mut self, - pipeline_binary_compressed_data: bool, - ) -> Self { - self.pipeline_binary_compressed_data = pipeline_binary_compressed_data.into(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'a> { @@ -50140,7 +48046,7 @@ impl ::core::default::Default for SubresourceLayout2KHR<'_> { unsafe impl<'a> TaggedStructure for SubresourceLayout2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBRESOURCE_LAYOUT_2_KHR; } -unsafe impl<'a> BaseTaggedStructure for SubresourceLayout2KHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for SubresourceLayout2KHR<'a> {} impl<'a> SubresourceLayout2KHR<'a> { #[inline] pub fn subresource_layout(mut self, subresource_layout: SubresourceLayout) -> Self { @@ -51575,7 +49481,7 @@ impl ::core::default::Default for ExportMetalObjectsInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ExportMetalObjectsInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_OBJECTS_INFO_EXT; } -unsafe impl<'a> BaseTaggedStructure for ExportMetalObjectsInfoEXT<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for ExportMetalObjectsInfoEXT<'a> {} impl<'a> ExportMetalObjectsInfoEXT<'a> {} #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -52996,7 +50902,7 @@ impl ::core::default::Default for OpticalFlowSessionCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for OpticalFlowSessionCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_SESSION_CREATE_INFO_NV; } -unsafe impl<'a> BaseTaggedStructure for OpticalFlowSessionCreateInfoNV<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for OpticalFlowSessionCreateInfoNV<'a> {} impl<'a> OpticalFlowSessionCreateInfoNV<'a> { #[inline] pub fn width(mut self, width: u32) -> Self { @@ -53554,7 +51460,7 @@ impl ::core::default::Default for DepthBiasInfoEXT<'_> { unsafe impl<'a> TaggedStructure for DepthBiasInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEPTH_BIAS_INFO_EXT; } -unsafe impl<'a> BaseTaggedStructure for DepthBiasInfoEXT<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for DepthBiasInfoEXT<'a> {} impl<'a> DepthBiasInfoEXT<'a> { #[inline] pub fn depth_bias_constant_factor(mut self, depth_bias_constant_factor: f32) -> Self { @@ -55017,7 +52923,7 @@ impl ::core::default::Default for MemoryMapInfoKHR<'_> { unsafe impl<'a> TaggedStructure for MemoryMapInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_MAP_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for MemoryMapInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for MemoryMapInfoKHR<'a> {} impl<'a> MemoryMapInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: MemoryMapFlags) -> Self { @@ -55212,7 +53118,7 @@ impl ::core::default::Default for ShaderCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ShaderCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SHADER_CREATE_INFO_EXT; } -unsafe impl<'a> BaseTaggedStructure for ShaderCreateInfoEXT<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for ShaderCreateInfoEXT<'a> {} impl<'a> ShaderCreateInfoEXT<'a> { #[inline] pub fn flags(mut self, flags: ShaderCreateFlagsEXT) -> Self { @@ -55463,7 +53369,7 @@ impl ::core::default::Default for ScreenBufferPropertiesQNX<'_> { unsafe impl<'a> TaggedStructure for ScreenBufferPropertiesQNX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SCREEN_BUFFER_PROPERTIES_QNX; } -unsafe impl<'a> BaseTaggedStructure for ScreenBufferPropertiesQNX<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for ScreenBufferPropertiesQNX<'a> {} impl<'a> ScreenBufferPropertiesQNX<'a> { #[inline] pub fn allocation_size(mut self, allocation_size: DeviceSize) -> Self { @@ -55994,7 +53900,7 @@ impl ::core::default::Default for ExecutionGraphPipelineCreateInfoAMDX<'_> { unsafe impl<'a> TaggedStructure for ExecutionGraphPipelineCreateInfoAMDX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX; } -unsafe impl<'a> BaseTaggedStructure for ExecutionGraphPipelineCreateInfoAMDX<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for ExecutionGraphPipelineCreateInfoAMDX<'a> {} impl<'a> ExecutionGraphPipelineCreateInfoAMDX<'a> { #[inline] pub fn flags(mut self, flags: PipelineCreateFlags) -> Self { @@ -56198,134 +54104,6 @@ impl DispatchGraphCountInfoAMDX { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceAntiLagFeaturesAMD<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub anti_lag: Bool32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceAntiLagFeaturesAMD<'_> {} -unsafe impl Sync for PhysicalDeviceAntiLagFeaturesAMD<'_> {} -impl ::core::default::Default for PhysicalDeviceAntiLagFeaturesAMD<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - anti_lag: Bool32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDeviceAntiLagFeaturesAMD<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD; -} -unsafe impl<'a> Extends> for PhysicalDeviceAntiLagFeaturesAMD<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceAntiLagFeaturesAMD<'a> {} -impl<'a> PhysicalDeviceAntiLagFeaturesAMD<'a> { - #[inline] - pub fn anti_lag(mut self, anti_lag: bool) -> Self { - self.anti_lag = anti_lag.into(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct AntiLagDataAMD<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub mode: AntiLagModeAMD, - pub max_fps: u32, - pub p_presentation_info: *const AntiLagPresentationInfoAMD<'a>, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for AntiLagDataAMD<'_> {} -unsafe impl Sync for AntiLagDataAMD<'_> {} -impl ::core::default::Default for AntiLagDataAMD<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - mode: AntiLagModeAMD::default(), - max_fps: u32::default(), - p_presentation_info: ::core::ptr::null(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for AntiLagDataAMD<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::ANTI_LAG_DATA_AMD; -} -impl<'a> AntiLagDataAMD<'a> { - #[inline] - pub fn mode(mut self, mode: AntiLagModeAMD) -> Self { - self.mode = mode; - self - } - #[inline] - pub fn max_fps(mut self, max_fps: u32) -> Self { - self.max_fps = max_fps; - self - } - #[inline] - pub fn presentation_info( - mut self, - presentation_info: &'a AntiLagPresentationInfoAMD<'a>, - ) -> Self { - self.p_presentation_info = presentation_info; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct AntiLagPresentationInfoAMD<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub stage: AntiLagStageAMD, - pub frame_index: u64, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for AntiLagPresentationInfoAMD<'_> {} -unsafe impl Sync for AntiLagPresentationInfoAMD<'_> {} -impl ::core::default::Default for AntiLagPresentationInfoAMD<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - stage: AntiLagStageAMD::default(), - frame_index: u64::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for AntiLagPresentationInfoAMD<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::ANTI_LAG_PRESENTATION_INFO_AMD; -} -impl<'a> AntiLagPresentationInfoAMD<'a> { - #[inline] - pub fn stage(mut self, stage: AntiLagStageAMD) -> Self { - self.stage = stage; - self - } - #[inline] - pub fn frame_index(mut self, frame_index: u64) -> Self { - self.frame_index = frame_index; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct BindMemoryStatusKHR<'a> { @@ -56398,7 +54176,7 @@ impl ::core::default::Default for BindDescriptorSetsInfoKHR<'_> { unsafe impl<'a> TaggedStructure for BindDescriptorSetsInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_DESCRIPTOR_SETS_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for BindDescriptorSetsInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for BindDescriptorSetsInfoKHR<'a> {} impl<'a> BindDescriptorSetsInfoKHR<'a> { #[inline] pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { @@ -56463,7 +54241,7 @@ impl ::core::default::Default for PushConstantsInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PushConstantsInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PUSH_CONSTANTS_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for PushConstantsInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PushConstantsInfoKHR<'a> {} impl<'a> PushConstantsInfoKHR<'a> { #[inline] pub fn layout(mut self, layout: PipelineLayout) -> Self { @@ -56522,7 +54300,7 @@ impl ::core::default::Default for PushDescriptorSetInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PushDescriptorSetInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PUSH_DESCRIPTOR_SET_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for PushDescriptorSetInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PushDescriptorSetInfoKHR<'a> {} impl<'a> PushDescriptorSetInfoKHR<'a> { #[inline] pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { @@ -56579,7 +54357,7 @@ impl ::core::default::Default for PushDescriptorSetWithTemplateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PushDescriptorSetWithTemplateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR; } -unsafe impl<'a> BaseTaggedStructure for PushDescriptorSetWithTemplateInfoKHR<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for PushDescriptorSetWithTemplateInfoKHR<'a> {} impl<'a> PushDescriptorSetWithTemplateInfoKHR<'a> { #[inline] pub fn descriptor_update_template( @@ -56642,7 +54420,7 @@ impl ::core::default::Default for SetDescriptorBufferOffsetsInfoEXT<'_> { unsafe impl<'a> TaggedStructure for SetDescriptorBufferOffsetsInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT; } -unsafe impl<'a> BaseTaggedStructure for SetDescriptorBufferOffsetsInfoEXT<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for SetDescriptorBufferOffsetsInfoEXT<'a> {} impl<'a> SetDescriptorBufferOffsetsInfoEXT<'a> { #[inline] pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { @@ -56704,7 +54482,7 @@ unsafe impl<'a> TaggedStructure for BindDescriptorBufferEmbeddedSamplersInfoEXT< const STRUCTURE_TYPE: StructureType = StructureType::BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT; } -unsafe impl<'a> BaseTaggedStructure for BindDescriptorBufferEmbeddedSamplersInfoEXT<'_> {} +unsafe impl<'a> BaseTaggedStructure<'a> for BindDescriptorBufferEmbeddedSamplersInfoEXT<'a> {} impl<'a> BindDescriptorBufferEmbeddedSamplersInfoEXT<'a> { #[inline] pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { @@ -58828,227 +56606,3 @@ impl<'a> PhysicalDeviceRawAccessChainsFeaturesNV<'a> { self } } -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub command_buffer_inheritance: Bool32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'_> {} -unsafe impl Sync for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - command_buffer_inheritance: Bool32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV; -} -unsafe impl<'a> Extends> - for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> -{ -} -unsafe impl<'a> Extends> - for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> -{ -} -impl<'a> PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { - #[inline] - pub fn command_buffer_inheritance(mut self, command_buffer_inheritance: bool) -> Self { - self.command_buffer_inheritance = command_buffer_inheritance.into(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub image_alignment_control: Bool32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> {} -unsafe impl Sync for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> {} -impl ::core::default::Default for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - image_alignment_control: Bool32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA; -} -unsafe impl<'a> Extends> - for PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> -{ -} -unsafe impl<'a> Extends> - for PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> -{ -} -impl<'a> PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> { - #[inline] - pub fn image_alignment_control(mut self, image_alignment_control: bool) -> Self { - self.image_alignment_control = image_alignment_control.into(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub supported_image_alignment_mask: u32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceImageAlignmentControlPropertiesMESA<'_> {} -unsafe impl Sync for PhysicalDeviceImageAlignmentControlPropertiesMESA<'_> {} -impl ::core::default::Default for PhysicalDeviceImageAlignmentControlPropertiesMESA<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - supported_image_alignment_mask: u32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA; -} -unsafe impl<'a> Extends> - for PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> -{ -} -impl<'a> PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> { - #[inline] - pub fn supported_image_alignment_mask(mut self, supported_image_alignment_mask: u32) -> Self { - self.supported_image_alignment_mask = supported_image_alignment_mask; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct ImageAlignmentControlCreateInfoMESA<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub maximum_requested_alignment: u32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for ImageAlignmentControlCreateInfoMESA<'_> {} -unsafe impl Sync for ImageAlignmentControlCreateInfoMESA<'_> {} -impl ::core::default::Default for ImageAlignmentControlCreateInfoMESA<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - maximum_requested_alignment: u32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for ImageAlignmentControlCreateInfoMESA<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA; -} -unsafe impl<'a> Extends> for ImageAlignmentControlCreateInfoMESA<'a> {} -impl<'a> ImageAlignmentControlCreateInfoMESA<'a> { - #[inline] - pub fn maximum_requested_alignment(mut self, maximum_requested_alignment: u32) -> Self { - self.maximum_requested_alignment = maximum_requested_alignment; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub shader_replicated_composites: Bool32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - shader_replicated_composites: Bool32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT; -} -unsafe impl<'a> Extends> - for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> -{ -} -unsafe impl<'a> Extends> - for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> -{ -} -impl<'a> PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> { - #[inline] - pub fn shader_replicated_composites(mut self, shader_replicated_composites: bool) -> Self { - self.shader_replicated_composites = shader_replicated_composites.into(); - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone, Default)] -#[doc = ""] -#[must_use] -pub struct DepthClampRangeEXT { - pub min_depth_clamp: f32, - pub max_depth_clamp: f32, -} -impl DepthClampRangeEXT { - #[inline] - pub fn min_depth_clamp(mut self, min_depth_clamp: f32) -> Self { - self.min_depth_clamp = min_depth_clamp; - self - } - #[inline] - pub fn max_depth_clamp(mut self, max_depth_clamp: f32) -> Self { - self.max_depth_clamp = max_depth_clamp; - self - } -} diff --git a/ash/src/vk/enums.rs b/ash/src/vk/enums.rs index ee9da963e..643ca0259 100644 --- a/ash/src/vk/enums.rs +++ b/ash/src/vk/enums.rs @@ -1122,43 +1122,6 @@ impl DirectDriverLoadingModeLUNARG { } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] -#[doc = ""] -pub struct AntiLagModeAMD(pub(crate) i32); -impl AntiLagModeAMD { - #[inline] - pub const fn from_raw(x: i32) -> Self { - Self(x) - } - #[inline] - pub const fn as_raw(self) -> i32 { - self.0 - } -} -impl AntiLagModeAMD { - pub const DRIVER_CONTROL: Self = Self(0); - pub const ON: Self = Self(1); - pub const OFF: Self = Self(2); -} -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] -#[repr(transparent)] -#[doc = ""] -pub struct AntiLagStageAMD(pub(crate) i32); -impl AntiLagStageAMD { - #[inline] - pub const fn from_raw(x: i32) -> Self { - Self(x) - } - #[inline] - pub const fn as_raw(self) -> i32 { - self.0 - } -} -impl AntiLagStageAMD { - pub const INPUT: Self = Self(0); - pub const PRESENT: Self = Self(1); -} -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] -#[repr(transparent)] #[doc = ""] pub struct SemaphoreType(pub(crate) i32); impl SemaphoreType { @@ -1794,8 +1757,6 @@ impl VendorId { } } impl VendorId { - #[doc = "Khronos vendor ID"] - pub const KHRONOS: Self = Self(0x1_0000); #[doc = "Vivante vendor ID"] pub const VIV: Self = Self(0x1_0001); #[doc = "VeriSilicon vendor ID"] @@ -1877,9 +1838,7 @@ impl DriverId { #[doc = "Imagination Technologies"] pub const IMAGINATION_OPEN_SOURCE_MESA: Self = Self(25); #[doc = "Mesa open source project"] - pub const MESA_HONEYKRISP: Self = Self(26); - #[doc = "Reserved for undisclosed driver project"] - pub const RESERVED_27: Self = Self(27); + pub const MESA_AGXV: Self = Self(26); } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] @@ -2792,50 +2751,6 @@ impl DeviceFaultVendorBinaryHeaderVersionEXT { } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] -#[doc = ""] -pub struct IndirectExecutionSetInfoTypeEXT(pub(crate) i32); -impl IndirectExecutionSetInfoTypeEXT { - #[inline] - pub const fn from_raw(x: i32) -> Self { - Self(x) - } - #[inline] - pub const fn as_raw(self) -> i32 { - self.0 - } -} -impl IndirectExecutionSetInfoTypeEXT { - pub const PIPELINES: Self = Self(0); - pub const SHADER_OBJECTS: Self = Self(1); -} -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] -#[repr(transparent)] -#[doc = ""] -pub struct IndirectCommandsTokenTypeEXT(pub(crate) i32); -impl IndirectCommandsTokenTypeEXT { - #[inline] - pub const fn from_raw(x: i32) -> Self { - Self(x) - } - #[inline] - pub const fn as_raw(self) -> i32 { - self.0 - } -} -impl IndirectCommandsTokenTypeEXT { - pub const EXECUTION_SET: Self = Self(0); - pub const PUSH_CONSTANT: Self = Self(1); - pub const SEQUENCE_INDEX: Self = Self(2); - pub const INDEX_BUFFER: Self = Self(3); - pub const VERTEX_BUFFER: Self = Self(4); - pub const DRAW_INDEXED: Self = Self(5); - pub const DRAW: Self = Self(6); - pub const DRAW_INDEXED_COUNT: Self = Self(7); - pub const DRAW_COUNT: Self = Self(8); - pub const DISPATCH: Self = Self(9); -} -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] -#[repr(transparent)] #[doc = ""] pub struct DisplacementMicromapFormatNV(pub(crate) i32); impl DisplacementMicromapFormatNV { @@ -2958,27 +2873,6 @@ impl BlockMatchWindowCompareModeQCOM { } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] -#[doc = ""] -pub struct PhysicalDeviceLayeredApiKHR(pub(crate) i32); -impl PhysicalDeviceLayeredApiKHR { - #[inline] - pub const fn from_raw(x: i32) -> Self { - Self(x) - } - #[inline] - pub const fn as_raw(self) -> i32 { - self.0 - } -} -impl PhysicalDeviceLayeredApiKHR { - pub const VULKAN: Self = Self(0); - pub const D3D12: Self = Self(1); - pub const METAL: Self = Self(2); - pub const OPENGL: Self = Self(3); - pub const OPENGLES: Self = Self(4); -} -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] -#[repr(transparent)] #[doc = ""] pub struct LayeredDriverUnderlyingApiMSFT(pub(crate) i32); impl LayeredDriverUnderlyingApiMSFT { @@ -3041,24 +2935,6 @@ impl OutOfBandQueueTypeNV { pub const RENDER: Self = Self(0); pub const PRESENT: Self = Self(1); } -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] -#[repr(transparent)] -#[doc = ""] -pub struct DepthClampModeEXT(pub(crate) i32); -impl DepthClampModeEXT { - #[inline] - pub const fn from_raw(x: i32) -> Self { - Self(x) - } - #[inline] - pub const fn as_raw(self) -> i32 { - self.0 - } -} -impl DepthClampModeEXT { - pub const VIEWPORT_RANGE: Self = Self(0); - pub const USER_DEFINED_RANGE: Self = Self(1); -} impl fmt::Debug for ObjectType { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { @@ -3110,9 +2986,6 @@ impl fmt::Debug for ObjectType { Self::MICROMAP_EXT => Some("MICROMAP_EXT"), Self::OPTICAL_FLOW_SESSION_NV => Some("OPTICAL_FLOW_SESSION_NV"), Self::SHADER_EXT => Some("SHADER_EXT"), - Self::PIPELINE_BINARY_KHR => Some("PIPELINE_BINARY_KHR"), - Self::INDIRECT_COMMANDS_LAYOUT_EXT => Some("INDIRECT_COMMANDS_LAYOUT_EXT"), - Self::INDIRECT_EXECUTION_SET_EXT => Some("INDIRECT_EXECUTION_SET_EXT"), Self::SAMPLER_YCBCR_CONVERSION => Some("SAMPLER_YCBCR_CONVERSION"), Self::DESCRIPTOR_UPDATE_TEMPLATE => Some("DESCRIPTOR_UPDATE_TEMPLATE"), Self::PRIVATE_DATA_SLOT => Some("PRIVATE_DATA_SLOT"), @@ -3188,8 +3061,6 @@ impl fmt::Debug for Result { } Self::ERROR_COMPRESSION_EXHAUSTED_EXT => Some("ERROR_COMPRESSION_EXHAUSTED_EXT"), Self::INCOMPATIBLE_SHADER_BINARY_EXT => Some("INCOMPATIBLE_SHADER_BINARY_EXT"), - Self::PIPELINE_BINARY_MISSING_KHR => Some("PIPELINE_BINARY_MISSING_KHR"), - Self::ERROR_NOT_ENOUGH_SPACE_KHR => Some("ERROR_NOT_ENOUGH_SPACE_KHR"), Self::ERROR_OUT_OF_POOL_MEMORY => Some("ERROR_OUT_OF_POOL_MEMORY"), Self::ERROR_INVALID_EXTERNAL_HANDLE => Some("ERROR_INVALID_EXTERNAL_HANDLE"), Self::ERROR_FRAGMENTATION => Some("ERROR_FRAGMENTATION"), diff --git a/ash/src/vk/extensions.rs b/ash/src/vk/extensions.rs index 8d84a766e..075883d91 100644 --- a/ash/src/vk/extensions.rs +++ b/ash/src/vk/extensions.rs @@ -755,7 +755,6 @@ impl ColorSpaceKHR { pub const BT709_NONLINEAR_EXT: Self = Self(1_000_104_006); pub const BT2020_LINEAR_EXT: Self = Self(1_000_104_007); pub const HDR10_ST2084_EXT: Self = Self(1_000_104_008); - #[deprecated] pub const DOLBYVISION_EXT: Self = Self(1_000_104_009); pub const HDR10_HLG_EXT: Self = Self(1_000_104_010); pub const ADOBERGB_LINEAR_EXT: Self = Self(1_000_104_011); @@ -1741,13 +1740,7 @@ impl SwapchainCreateFlagsKHR { } #[doc = "Generated from 'VK_NV_compute_shader_derivatives'"] impl StructureType { - pub const PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: Self = - Self::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR; -} -#[doc = "Generated from 'VK_NV_mesh_shader'"] -impl IndirectCommandsTokenTypeEXT { - pub const DRAW_MESH_TASKS_NV: Self = Self(1_000_202_002); - pub const DRAW_MESH_TASKS_COUNT_NV: Self = Self(1_000_202_003); + pub const PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: Self = Self(1_000_201_000); } #[doc = "Generated from 'VK_NV_mesh_shader'"] impl PipelineStageFlags { @@ -2582,8 +2575,6 @@ impl AccessFlags2 { pub const CONDITIONAL_RENDERING_READ_EXT: Self = Self(0b1_0000_0000_0000_0000_0000); pub const COMMAND_PREPROCESS_READ_NV: Self = Self(0b10_0000_0000_0000_0000); pub const COMMAND_PREPROCESS_WRITE_NV: Self = Self(0b100_0000_0000_0000_0000); - pub const COMMAND_PREPROCESS_READ_EXT: Self = Self::COMMAND_PREPROCESS_READ_NV; - pub const COMMAND_PREPROCESS_WRITE_EXT: Self = Self::COMMAND_PREPROCESS_WRITE_NV; pub const FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR: Self = Self(0b1000_0000_0000_0000_0000_0000); pub const SHADING_RATE_IMAGE_READ_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR; @@ -2613,7 +2604,6 @@ impl PipelineStageFlags2 { #[doc = "A pipeline stage for conditional rendering predicate fetch"] pub const CONDITIONAL_RENDERING_EXT: Self = Self(0b100_0000_0000_0000_0000); pub const COMMAND_PREPROCESS_NV: Self = Self(0b10_0000_0000_0000_0000); - pub const COMMAND_PREPROCESS_EXT: Self = Self::COMMAND_PREPROCESS_NV; pub const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self = Self(0b100_0000_0000_0000_0000_0000); pub const SHADING_RATE_IMAGE_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_KHR; pub const ACCELERATION_STRUCTURE_BUILD_KHR: Self = Self(0b10_0000_0000_0000_0000_0000_0000); @@ -2760,11 +2750,6 @@ impl StructureType { pub const ACCELERATION_STRUCTURE_MOTION_INFO_NV: Self = Self(1_000_327_002); } #[doc = "Generated from 'VK_EXT_mesh_shader'"] -impl IndirectCommandsTokenTypeEXT { - pub const DRAW_MESH_TASKS: Self = Self(1_000_328_000); - pub const DRAW_MESH_TASKS_COUNT: Self = Self(1_000_328_001); -} -#[doc = "Generated from 'VK_EXT_mesh_shader'"] impl IndirectCommandsTokenTypeNV { pub const DRAW_MESH_TASKS: Self = Self(1_000_328_000); } @@ -3138,10 +3123,6 @@ impl AccessFlags2 { Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000); } #[doc = "Generated from 'VK_KHR_ray_tracing_maintenance1'"] -impl IndirectCommandsTokenTypeEXT { - pub const TRACE_RAYS2: Self = Self(1_000_386_004); -} -#[doc = "Generated from 'VK_KHR_ray_tracing_maintenance1'"] impl PipelineStageFlags2 { pub const ACCELERATION_STRUCTURE_COPY_KHR: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000); } @@ -3450,7 +3431,7 @@ impl StructureType { } #[doc = "Generated from 'VK_EXT_nested_command_buffer'"] impl RenderingFlags { - pub const CONTENTS_INLINE_EXT: Self = Self::CONTENTS_INLINE_KHR; + pub const CONTENTS_INLINE_EXT: Self = Self(0b1_0000); } #[doc = "Generated from 'VK_EXT_nested_command_buffer'"] impl StructureType { @@ -3459,8 +3440,7 @@ impl StructureType { } #[doc = "Generated from 'VK_EXT_nested_command_buffer'"] impl SubpassContents { - pub const INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT: Self = - Self::INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR; + pub const INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT: Self = Self(1_000_451_000); } #[doc = "Generated from 'VK_EXT_external_memory_acquire_unmodified'"] impl StructureType { @@ -3553,7 +3533,7 @@ impl AccessFlags2 { } #[doc = "Generated from 'VK_NV_optical_flow'"] impl Format { - pub const R16G16_SFIXED5_NV: Self = Self(1_000_464_000); + pub const R16G16_S10_5_NV: Self = Self(1_000_464_000); } #[doc = "Generated from 'VK_NV_optical_flow'"] impl FormatFeatureFlags2 { @@ -3587,11 +3567,6 @@ impl StructureType { pub const OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV: Self = Self(1_000_464_010); } #[doc = "Generated from 'VK_EXT_legacy_dithering'"] -impl PipelineCreateFlags2KHR { - pub const ENABLE_LEGACY_DITHERING_EXT: Self = - Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000); -} -#[doc = "Generated from 'VK_EXT_legacy_dithering'"] impl RenderingFlags { pub const ENABLE_LEGACY_DITHERING_EXT: Self = Self(0b1000); } @@ -3696,12 +3671,6 @@ impl StructureType { pub const PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR: Self = Self(1_000_470_005); pub const BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR: Self = Self(1_000_470_006); } -#[doc = "Generated from 'VK_AMD_anti_lag'"] -impl StructureType { - pub const PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD: Self = Self(1_000_476_000); - pub const ANTI_LAG_DATA_AMD: Self = Self(1_000_476_001); - pub const ANTI_LAG_PRESENTATION_INFO_AMD: Self = Self(1_000_476_002); -} #[doc = "Generated from 'VK_KHR_ray_tracing_position_fetch'"] impl BuildAccelerationStructureFlagsKHR { pub const ALLOW_DATA_ACCESS: Self = Self(0b1000_0000_0000); @@ -3735,32 +3704,6 @@ impl StructureType { pub const SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT: Self = Self::PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO; } -#[doc = "Generated from 'VK_KHR_pipeline_binary'"] -impl ObjectType { - pub const PIPELINE_BINARY_KHR: Self = Self(1_000_483_000); -} -#[doc = "Generated from 'VK_KHR_pipeline_binary'"] -impl PipelineCreateFlags2KHR { - pub const CAPTURE_DATA: Self = Self(0b1000_0000_0000_0000_0000_0000_0000_0000); -} -#[doc = "Generated from 'VK_KHR_pipeline_binary'"] -impl Result { - pub const PIPELINE_BINARY_MISSING_KHR: Self = Self(1_000_483_000); - pub const ERROR_NOT_ENOUGH_SPACE_KHR: Self = Self(-1_000_483_000); -} -#[doc = "Generated from 'VK_KHR_pipeline_binary'"] -impl StructureType { - pub const PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR: Self = Self(1_000_483_000); - pub const PIPELINE_BINARY_CREATE_INFO_KHR: Self = Self(1_000_483_001); - pub const PIPELINE_BINARY_INFO_KHR: Self = Self(1_000_483_002); - pub const PIPELINE_BINARY_KEY_KHR: Self = Self(1_000_483_003); - pub const PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR: Self = Self(1_000_483_004); - pub const RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR: Self = Self(1_000_483_005); - pub const PIPELINE_BINARY_DATA_INFO_KHR: Self = Self(1_000_483_006); - pub const PIPELINE_CREATE_INFO_KHR: Self = Self(1_000_483_007); - pub const DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR: Self = Self(1_000_483_008); - pub const PIPELINE_BINARY_HANDLES_INFO_KHR: Self = Self(1_000_483_009); -} #[doc = "Generated from 'VK_QCOM_tile_properties'"] impl StructureType { pub const PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM: Self = Self(1_000_484_000); @@ -3806,11 +3749,6 @@ impl StructureType { pub const PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT: Self = Self(1_000_351_000); pub const MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT: Self = Self(1_000_351_002); } -#[doc = "Generated from 'VK_EXT_legacy_vertex_attributes'"] -impl StructureType { - pub const PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT: Self = Self(1_000_495_000); - pub const PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT: Self = Self(1_000_495_001); -} #[doc = "Generated from 'VK_EXT_layer_settings'"] impl StructureType { pub const LAYER_SETTINGS_CREATE_INFO_EXT: Self = Self(1_000_496_000); @@ -3855,11 +3793,6 @@ impl StructureType { pub const MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM: Self = Self(1_000_510_001); } -#[doc = "Generated from 'VK_KHR_compute_shader_derivatives'"] -impl StructureType { - pub const PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR: Self = Self(1_000_201_000); - pub const PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR: Self = Self(1_000_511_000); -} #[doc = "Generated from 'VK_KHR_video_decode_av1'"] impl StructureType { pub const VIDEO_DECODE_AV1_CAPABILITIES_KHR: Self = Self(1_000_512_000); @@ -4014,103 +3947,14 @@ impl StructureType { impl StructureType { pub const PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV: Self = Self(1_000_555_000); } -#[doc = "Generated from 'VK_KHR_shader_relaxed_extended_instruction'"] -impl StructureType { - pub const PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR: Self = - Self(1_000_558_000); -} -#[doc = "Generated from 'VK_NV_command_buffer_inheritance'"] -impl StructureType { - pub const PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV: Self = Self(1_000_559_000); -} -#[doc = "Generated from 'VK_KHR_maintenance7'"] -impl RenderingFlags { - #[doc = "Promoted from extension 452"] - pub const CONTENTS_INLINE_KHR: Self = Self(0b1_0000); -} -#[doc = "Generated from 'VK_KHR_maintenance7'"] -impl StructureType { - pub const PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR: Self = Self(1_000_562_000); - pub const PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR: Self = Self(1_000_562_001); - pub const PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR: Self = Self(1_000_562_002); - pub const PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR: Self = Self(1_000_562_003); - pub const PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR: Self = Self(1_000_562_004); -} -#[doc = "Generated from 'VK_KHR_maintenance7'"] -impl SubpassContents { - pub const INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR: Self = Self(1_000_451_000); -} #[doc = "Generated from 'VK_NV_shader_atomic_float16_vector'"] impl StructureType { pub const PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV: Self = Self(1_000_563_000); } -#[doc = "Generated from 'VK_EXT_shader_replicated_composites'"] -impl StructureType { - pub const PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT: Self = Self(1_000_564_000); -} #[doc = "Generated from 'VK_NV_ray_tracing_validation'"] impl StructureType { pub const PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV: Self = Self(1_000_568_000); } -#[doc = "Generated from 'VK_EXT_device_generated_commands'"] -impl AccessFlags { - pub const COMMAND_PREPROCESS_READ_EXT: Self = Self::COMMAND_PREPROCESS_READ_NV; - pub const COMMAND_PREPROCESS_WRITE_EXT: Self = Self::COMMAND_PREPROCESS_WRITE_NV; -} -#[doc = "Generated from 'VK_EXT_device_generated_commands'"] -impl BufferUsageFlags2KHR { - pub const PREPROCESS_BUFFER_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000_0000_0000); -} -#[doc = "Generated from 'VK_EXT_device_generated_commands'"] -impl ObjectType { - pub const INDIRECT_COMMANDS_LAYOUT_EXT: Self = Self(1_000_572_000); - pub const INDIRECT_EXECUTION_SET_EXT: Self = Self(1_000_572_001); -} -#[doc = "Generated from 'VK_EXT_device_generated_commands'"] -impl PipelineCreateFlags2KHR { - pub const INDIRECT_BINDABLE_EXT: Self = - Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000); -} -#[doc = "Generated from 'VK_EXT_device_generated_commands'"] -impl PipelineStageFlags { - pub const COMMAND_PREPROCESS_EXT: Self = Self::COMMAND_PREPROCESS_NV; -} -#[doc = "Generated from 'VK_EXT_device_generated_commands'"] -impl ShaderCreateFlagsEXT { - pub const INDIRECT_BINDABLE: Self = Self(0b1000_0000); -} -#[doc = "Generated from 'VK_EXT_device_generated_commands'"] -impl StructureType { - pub const PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT: Self = Self(1_000_572_000); - pub const PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT: Self = Self(1_000_572_001); - pub const GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT: Self = Self(1_000_572_002); - pub const INDIRECT_EXECUTION_SET_CREATE_INFO_EXT: Self = Self(1_000_572_003); - pub const GENERATED_COMMANDS_INFO_EXT: Self = Self(1_000_572_004); - pub const INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT: Self = Self(1_000_572_006); - pub const INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT: Self = Self(1_000_572_007); - pub const WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT: Self = Self(1_000_572_008); - pub const WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT: Self = Self(1_000_572_009); - pub const INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT: Self = Self(1_000_572_010); - pub const INDIRECT_EXECUTION_SET_SHADER_INFO_EXT: Self = Self(1_000_572_011); - pub const INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT: Self = Self(1_000_572_012); - pub const GENERATED_COMMANDS_PIPELINE_INFO_EXT: Self = Self(1_000_572_013); - pub const GENERATED_COMMANDS_SHADER_INFO_EXT: Self = Self(1_000_572_014); -} -#[doc = "Generated from 'VK_MESA_image_alignment_control'"] -impl StructureType { - pub const PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA: Self = Self(1_000_575_000); - pub const PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA: Self = Self(1_000_575_001); - pub const IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA: Self = Self(1_000_575_002); -} -#[doc = "Generated from 'VK_EXT_depth_clamp_control'"] -impl DynamicState { - pub const DEPTH_CLAMP_RANGE_EXT: Self = Self(1_000_582_000); -} -#[doc = "Generated from 'VK_EXT_depth_clamp_control'"] -impl StructureType { - pub const PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT: Self = Self(1_000_582_000); - pub const PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT: Self = Self(1_000_582_001); -} pub const KHR_SURFACE_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_surface\0") }; pub const KHR_SURFACE_SPEC_VERSION: u32 = 25u32; @@ -5156,10 +5000,10 @@ pub const EXT_DEPTH_CLIP_ENABLE_NAME: &CStr = pub const EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION: u32 = 1u32; pub const EXT_SWAPCHAIN_COLORSPACE_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_swapchain_colorspace\0") }; -pub const EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION: u32 = 5u32; +pub const EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION: u32 = 4u32; pub const EXT_HDR_METADATA_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_hdr_metadata\0") }; -pub const EXT_HDR_METADATA_SPEC_VERSION: u32 = 3u32; +pub const EXT_HDR_METADATA_SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkSetHdrMetadataEXT = unsafe extern "system" fn( device: crate::vk::Device, @@ -6248,7 +6092,7 @@ pub type PFN_vkCmdSetRenderingAttachmentLocationsKHR = unsafe extern "system" fn #[allow(non_camel_case_types)] pub type PFN_vkCmdSetRenderingInputAttachmentIndicesKHR = unsafe extern "system" fn( command_buffer: CommandBuffer, - p_input_attachment_index_info: *const RenderingInputAttachmentIndexInfoKHR<'_>, + p_location_info: *const RenderingInputAttachmentIndexInfoKHR<'_>, ); pub const EXT_SHADER_IMAGE_ATOMIC_INT64_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_image_atomic_int64\0") }; @@ -6791,7 +6635,7 @@ pub const NV_LOW_LATENCY_NAME: &CStr = pub const NV_LOW_LATENCY_SPEC_VERSION: u32 = 1u32; pub const EXT_METAL_OBJECTS_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_metal_objects\0") }; -pub const EXT_METAL_OBJECTS_SPEC_VERSION: u32 = 2u32; +pub const EXT_METAL_OBJECTS_SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkExportMetalObjectsEXT = unsafe extern "system" fn( device: crate::vk::Device, @@ -7499,7 +7343,7 @@ pub const ARM_RENDER_PASS_STRIPED_NAME: &CStr = pub const ARM_RENDER_PASS_STRIPED_SPEC_VERSION: u32 = 1u32; pub const QCOM_FRAGMENT_DENSITY_MAP_OFFSET_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_fragment_density_map_offset\0") }; -pub const QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION: u32 = 2u32; +pub const QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION: u32 = 1u32; pub const NV_COPY_MEMORY_INDIRECT_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_copy_memory_indirect\0") }; pub const NV_COPY_MEMORY_INDIRECT_SPEC_VERSION: u32 = 1u32; @@ -7783,7 +7627,7 @@ pub type PFN_vkCmdOpticalFlowExecuteNV = unsafe extern "system" fn( ); pub const EXT_LEGACY_DITHERING_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_legacy_dithering\0") }; -pub const EXT_LEGACY_DITHERING_SPEC_VERSION: u32 = 2u32; +pub const EXT_LEGACY_DITHERING_SPEC_VERSION: u32 = 1u32; pub const EXT_PIPELINE_PROTECTED_ACCESS_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_protected_access\0") }; pub const EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION: u32 = 1u32; @@ -7813,12 +7657,6 @@ pub type PFN_vkGetDeviceImageSubresourceLayoutKHR = unsafe extern "system" fn( p_info: *const DeviceImageSubresourceInfoKHR<'_>, p_layout: *mut SubresourceLayout2KHR<'_>, ); -pub const AMD_ANTI_LAG_NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_anti_lag\0") }; -pub const AMD_ANTI_LAG_SPEC_VERSION: u32 = 1u32; -#[allow(non_camel_case_types)] -pub type PFN_vkAntiLagUpdateAMD = - unsafe extern "system" fn(device: crate::vk::Device, p_data: *const AntiLagDataAMD<'_>); pub const KHR_RAY_TRACING_POSITION_FETCH_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_ray_tracing_position_fetch\0") }; pub const KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION: u32 = 1u32; @@ -7853,48 +7691,6 @@ pub type PFN_vkCmdBindShadersEXT = unsafe extern "system" fn( p_stages: *const ShaderStageFlags, p_shaders: *const ShaderEXT, ); -#[allow(non_camel_case_types)] -pub type PFN_vkCmdSetDepthClampRangeEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - depth_clamp_mode: DepthClampModeEXT, - p_depth_clamp_range: *const DepthClampRangeEXT, -); -pub const KHR_PIPELINE_BINARY_NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_pipeline_binary\0") }; -pub const KHR_PIPELINE_BINARY_SPEC_VERSION: u32 = 1u32; -#[allow(non_camel_case_types)] -pub type PFN_vkCreatePipelineBinariesKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const PipelineBinaryCreateInfoKHR<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_binaries: *mut PipelineBinaryHandlesInfoKHR<'_>, -) -> Result; -#[allow(non_camel_case_types)] -pub type PFN_vkDestroyPipelineBinaryKHR = unsafe extern "system" fn( - device: crate::vk::Device, - pipeline_binary: PipelineBinaryKHR, - p_allocator: *const AllocationCallbacks<'_>, -); -#[allow(non_camel_case_types)] -pub type PFN_vkGetPipelineKeyKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_pipeline_create_info: *const PipelineCreateInfoKHR<'_>, - p_pipeline_key: *mut PipelineBinaryKeyKHR<'_>, -) -> Result; -#[allow(non_camel_case_types)] -pub type PFN_vkGetPipelineBinaryDataKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const PipelineBinaryDataInfoKHR<'_>, - p_pipeline_binary_key: *mut PipelineBinaryKeyKHR<'_>, - p_pipeline_binary_data_size: *mut usize, - p_pipeline_binary_data: *mut c_void, -) -> Result; -#[allow(non_camel_case_types)] -pub type PFN_vkReleaseCapturedPipelineDataKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const ReleaseCapturedPipelineDataInfoKHR<'_>, - p_allocator: *const AllocationCallbacks<'_>, -) -> Result; pub const QCOM_TILE_PROPERTIES_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_tile_properties\0") }; pub const QCOM_TILE_PROPERTIES_SPEC_VERSION: u32 = 1u32; @@ -7926,9 +7722,6 @@ pub const NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION: u32 = 1u32; pub const EXT_MUTABLE_DESCRIPTOR_TYPE_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_mutable_descriptor_type\0") }; pub const EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION: u32 = 1u32; -pub const EXT_LEGACY_VERTEX_ATTRIBUTES_NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_legacy_vertex_attributes\0") }; -pub const EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION: u32 = 1u32; pub const EXT_LAYER_SETTINGS_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_layer_settings\0") }; pub const EXT_LAYER_SETTINGS_SPEC_VERSION: u32 = 2u32; @@ -7985,9 +7778,6 @@ pub type PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = pub const QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_multiview_per_view_render_areas\0") }; pub const QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION: u32 = 1u32; -pub const KHR_COMPUTE_SHADER_DERIVATIVES_NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_compute_shader_derivatives\0") }; -pub const KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION: u32 = 1u32; pub const KHR_VIDEO_DECODE_AV1_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_decode_av1\0") }; pub const KHR_VIDEO_DECODE_AV1_SPEC_VERSION: u32 = 1u32; @@ -8085,88 +7875,9 @@ pub const NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION: u32 = 1u32; pub const NV_RAW_ACCESS_CHAINS_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_raw_access_chains\0") }; pub const NV_RAW_ACCESS_CHAINS_SPEC_VERSION: u32 = 1u32; -pub const KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_relaxed_extended_instruction\0") }; -pub const KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION: u32 = 1u32; -pub const NV_COMMAND_BUFFER_INHERITANCE_NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_command_buffer_inheritance\0") }; -pub const NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION: u32 = 1u32; -pub const KHR_MAINTENANCE7_NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance7\0") }; -pub const KHR_MAINTENANCE7_SPEC_VERSION: u32 = 1u32; pub const NV_SHADER_ATOMIC_FLOAT16_VECTOR_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_shader_atomic_float16_vector\0") }; pub const NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION: u32 = 1u32; -pub const EXT_SHADER_REPLICATED_COMPOSITES_NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_replicated_composites\0") }; -pub const EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION: u32 = 1u32; pub const NV_RAY_TRACING_VALIDATION_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_ray_tracing_validation\0") }; pub const NV_RAY_TRACING_VALIDATION_SPEC_VERSION: u32 = 1u32; -pub const EXT_DEVICE_GENERATED_COMMANDS_NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_device_generated_commands\0") }; -pub const EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION: u32 = 1u32; -#[allow(non_camel_case_types)] -pub type PFN_vkGetGeneratedCommandsMemoryRequirementsEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const GeneratedCommandsMemoryRequirementsInfoEXT<'_>, - p_memory_requirements: *mut MemoryRequirements2<'_>, -); -#[allow(non_camel_case_types)] -pub type PFN_vkCmdPreprocessGeneratedCommandsEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_generated_commands_info: *const GeneratedCommandsInfoEXT<'_>, - state_command_buffer: CommandBuffer, -); -#[allow(non_camel_case_types)] -pub type PFN_vkCmdExecuteGeneratedCommandsEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - is_preprocessed: Bool32, - p_generated_commands_info: *const GeneratedCommandsInfoEXT<'_>, -); -#[allow(non_camel_case_types)] -pub type PFN_vkCreateIndirectCommandsLayoutEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const IndirectCommandsLayoutCreateInfoEXT<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_indirect_commands_layout: *mut IndirectCommandsLayoutEXT, -) -> Result; -#[allow(non_camel_case_types)] -pub type PFN_vkDestroyIndirectCommandsLayoutEXT = unsafe extern "system" fn( - device: crate::vk::Device, - indirect_commands_layout: IndirectCommandsLayoutEXT, - p_allocator: *const AllocationCallbacks<'_>, -); -#[allow(non_camel_case_types)] -pub type PFN_vkCreateIndirectExecutionSetEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const IndirectExecutionSetCreateInfoEXT<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_indirect_execution_set: *mut IndirectExecutionSetEXT, -) -> Result; -#[allow(non_camel_case_types)] -pub type PFN_vkDestroyIndirectExecutionSetEXT = unsafe extern "system" fn( - device: crate::vk::Device, - indirect_execution_set: IndirectExecutionSetEXT, - p_allocator: *const AllocationCallbacks<'_>, -); -#[allow(non_camel_case_types)] -pub type PFN_vkUpdateIndirectExecutionSetPipelineEXT = unsafe extern "system" fn( - device: crate::vk::Device, - indirect_execution_set: IndirectExecutionSetEXT, - execution_set_write_count: u32, - p_execution_set_writes: *const WriteIndirectExecutionSetPipelineEXT<'_>, -); -#[allow(non_camel_case_types)] -pub type PFN_vkUpdateIndirectExecutionSetShaderEXT = unsafe extern "system" fn( - device: crate::vk::Device, - indirect_execution_set: IndirectExecutionSetEXT, - execution_set_write_count: u32, - p_execution_set_writes: *const WriteIndirectExecutionSetShaderEXT<'_>, -); -pub const MESA_IMAGE_ALIGNMENT_CONTROL_NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_MESA_image_alignment_control\0") }; -pub const MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION: u32 = 1u32; -pub const EXT_DEPTH_CLAMP_CONTROL_NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_clamp_control\0") }; -pub const EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION: u32 = 1u32; diff --git a/ash/src/vk/prelude.rs b/ash/src/vk/prelude.rs index bed1405c7..3a662594e 100644 --- a/ash/src/vk/prelude.rs +++ b/ash/src/vk/prelude.rs @@ -62,12 +62,6 @@ impl From for vk::Rect2D { /// must always match the value of [`TaggedStructure::STRUCTURE_TYPE`]. pub unsafe trait TaggedStructure { const STRUCTURE_TYPE: vk::StructureType; - fn as_base_out_structure(&mut self) -> &mut vk::BaseOutStructure<'_> { - unsafe { &mut *(<*mut Self>::cast(self) as *mut vk::BaseOutStructure<'_>) } - } - fn as_base_in_structure(&self) -> &vk::BaseInStructure<'_> { - unsafe { &*(<*const Self>::cast(self) as *const vk::BaseInStructure<'_>) } - } } #[inline] diff --git a/generator/src/lib.rs b/generator/src/lib.rs index bfa538834..b2c0e884d 100644 --- a/generator/src/lib.rs +++ b/generator/src/lib.rs @@ -2319,7 +2319,7 @@ fn derive_getters_and_setters( let next_field = &next_member.vkxml_field; assert_eq!(next_field.basetype, "void"); quote! { - unsafe impl<'a> BaseTaggedStructure for #name<'_>{} + unsafe impl<'a> BaseTaggedStructure<'a> for #name<'a>{} } } else { quote!() From 097bccbc8d3958b1dba5aa123702c1a5c7dc3802 Mon Sep 17 00:00:00 2001 From: Zhixing Zhang Date: Mon, 14 Oct 2024 02:40:30 -0700 Subject: [PATCH 3/7] Add doc tests --- ash/src/extensions_generated.rs | 614 +++++++- ash/src/util.rs | 117 +- ash/src/vk/aliases.rs | 2 + ash/src/vk/bitflags.rs | 24 + ash/src/vk/const_debugs.rs | 275 +++- ash/src/vk/constants.rs | 1 + ash/src/vk/definitions.rs | 2486 ++++++++++++++++++++++++++++++- ash/src/vk/enums.rs | 131 +- ash/src/vk/extensions.rs | 309 +++- 9 files changed, 3891 insertions(+), 68 deletions(-) diff --git a/ash/src/extensions_generated.rs b/ash/src/extensions_generated.rs index e831437d5..7e2a4affc 100644 --- a/ash/src/extensions_generated.rs +++ b/ash/src/extensions_generated.rs @@ -445,6 +445,68 @@ pub mod amd { crate::vk::AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION as SPEC_VERSION, }; } + #[doc = "VK_AMD_anti_lag"] + pub mod anti_lag { + use super::super::*; + pub use { + crate::vk::AMD_ANTI_LAG_NAME as NAME, + crate::vk::AMD_ANTI_LAG_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_AMD_anti_lag device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_AMD_anti_lag device-level function pointers"] + pub struct DeviceFn { + pub anti_lag_update_amd: PFN_vkAntiLagUpdateAMD, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load *const c_void>(mut f: F) -> Self { + Self::load_erased(&mut f) + } + fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { + Self { + anti_lag_update_amd: unsafe { + unsafe extern "system" fn anti_lag_update_amd( + _device: crate::vk::Device, + _p_data: *const AntiLagDataAMD<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(anti_lag_update_amd))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkAntiLagUpdateAMD\0"); + let val = _f(cname); + if val.is_null() { + anti_lag_update_amd + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } } #[doc = "Extensions tagged AMDX"] pub mod amdx { @@ -7250,6 +7312,7 @@ pub mod ext { pub cmd_set_representative_fragment_test_enable_nv: PFN_vkCmdSetRepresentativeFragmentTestEnableNV, pub cmd_set_coverage_reduction_mode_nv: PFN_vkCmdSetCoverageReductionModeNV, + pub cmd_set_depth_clamp_range_ext: PFN_vkCmdSetDepthClampRangeEXT, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -8302,6 +8365,26 @@ pub mod ext { ::core::mem::transmute(val) } }, + cmd_set_depth_clamp_range_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_clamp_range_ext( + _command_buffer: CommandBuffer, + _depth_clamp_mode: DepthClampModeEXT, + _p_depth_clamp_range: *const DepthClampRangeEXT, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_clamp_range_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthClampRangeEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_clamp_range_ext + } else { + ::core::mem::transmute(val) + } + }, } } } @@ -8314,6 +8397,14 @@ pub mod ext { crate::vk::EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION as SPEC_VERSION, }; } + #[doc = "VK_EXT_legacy_vertex_attributes"] + pub mod legacy_vertex_attributes { + use super::super::*; + pub use { + crate::vk::EXT_LEGACY_VERTEX_ATTRIBUTES_NAME as NAME, + crate::vk::EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION as SPEC_VERSION, + }; + } #[doc = "VK_EXT_layer_settings"] pub mod layer_settings { use super::super::*; @@ -8406,6 +8497,333 @@ pub mod ext { } } } + #[doc = "VK_EXT_shader_replicated_composites"] + pub mod shader_replicated_composites { + use super::super::*; + pub use { + crate::vk::EXT_SHADER_REPLICATED_COMPOSITES_NAME as NAME, + crate::vk::EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_device_generated_commands"] + pub mod device_generated_commands { + use super::super::*; + pub use { + crate::vk::EXT_DEVICE_GENERATED_COMMANDS_NAME as NAME, + crate::vk::EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_device_generated_commands device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_device_generated_commands device-level function pointers"] + pub struct DeviceFn { + pub get_generated_commands_memory_requirements_ext: + PFN_vkGetGeneratedCommandsMemoryRequirementsEXT, + pub cmd_preprocess_generated_commands_ext: PFN_vkCmdPreprocessGeneratedCommandsEXT, + pub cmd_execute_generated_commands_ext: PFN_vkCmdExecuteGeneratedCommandsEXT, + pub create_indirect_commands_layout_ext: PFN_vkCreateIndirectCommandsLayoutEXT, + pub destroy_indirect_commands_layout_ext: PFN_vkDestroyIndirectCommandsLayoutEXT, + pub create_indirect_execution_set_ext: PFN_vkCreateIndirectExecutionSetEXT, + pub destroy_indirect_execution_set_ext: PFN_vkDestroyIndirectExecutionSetEXT, + pub update_indirect_execution_set_pipeline_ext: + PFN_vkUpdateIndirectExecutionSetPipelineEXT, + pub update_indirect_execution_set_shader_ext: PFN_vkUpdateIndirectExecutionSetShaderEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load *const c_void>(mut f: F) -> Self { + Self::load_erased(&mut f) + } + fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { + Self { + get_generated_commands_memory_requirements_ext: unsafe { + unsafe extern "system" fn get_generated_commands_memory_requirements_ext( + _device: crate::vk::Device, + _p_info: *const GeneratedCommandsMemoryRequirementsInfoEXT<'_>, + _p_memory_requirements: *mut MemoryRequirements2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_generated_commands_memory_requirements_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetGeneratedCommandsMemoryRequirementsEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_generated_commands_memory_requirements_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_preprocess_generated_commands_ext: unsafe { + unsafe extern "system" fn cmd_preprocess_generated_commands_ext( + _command_buffer: CommandBuffer, + _p_generated_commands_info: *const GeneratedCommandsInfoEXT<'_>, + _state_command_buffer: CommandBuffer, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_preprocess_generated_commands_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdPreprocessGeneratedCommandsEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_preprocess_generated_commands_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_execute_generated_commands_ext: unsafe { + unsafe extern "system" fn cmd_execute_generated_commands_ext( + _command_buffer: CommandBuffer, + _is_preprocessed: Bool32, + _p_generated_commands_info: *const GeneratedCommandsInfoEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_execute_generated_commands_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdExecuteGeneratedCommandsEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_execute_generated_commands_ext + } else { + ::core::mem::transmute(val) + } + }, + create_indirect_commands_layout_ext: unsafe { + unsafe extern "system" fn create_indirect_commands_layout_ext( + _device: crate::vk::Device, + _p_create_info: *const IndirectCommandsLayoutCreateInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_indirect_commands_layout: *mut IndirectCommandsLayoutEXT, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_indirect_commands_layout_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateIndirectCommandsLayoutEXT\0", + ); + let val = _f(cname); + if val.is_null() { + create_indirect_commands_layout_ext + } else { + ::core::mem::transmute(val) + } + }, + destroy_indirect_commands_layout_ext: unsafe { + unsafe extern "system" fn destroy_indirect_commands_layout_ext( + _device: crate::vk::Device, + _indirect_commands_layout: IndirectCommandsLayoutEXT, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_indirect_commands_layout_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkDestroyIndirectCommandsLayoutEXT\0", + ); + let val = _f(cname); + if val.is_null() { + destroy_indirect_commands_layout_ext + } else { + ::core::mem::transmute(val) + } + }, + create_indirect_execution_set_ext: unsafe { + unsafe extern "system" fn create_indirect_execution_set_ext( + _device: crate::vk::Device, + _p_create_info: *const IndirectExecutionSetCreateInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_indirect_execution_set: *mut IndirectExecutionSetEXT, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_indirect_execution_set_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateIndirectExecutionSetEXT\0", + ); + let val = _f(cname); + if val.is_null() { + create_indirect_execution_set_ext + } else { + ::core::mem::transmute(val) + } + }, + destroy_indirect_execution_set_ext: unsafe { + unsafe extern "system" fn destroy_indirect_execution_set_ext( + _device: crate::vk::Device, + _indirect_execution_set: IndirectExecutionSetEXT, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_indirect_execution_set_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkDestroyIndirectExecutionSetEXT\0", + ); + let val = _f(cname); + if val.is_null() { + destroy_indirect_execution_set_ext + } else { + ::core::mem::transmute(val) + } + }, + update_indirect_execution_set_pipeline_ext: unsafe { + unsafe extern "system" fn update_indirect_execution_set_pipeline_ext( + _device: crate::vk::Device, + _indirect_execution_set: IndirectExecutionSetEXT, + _execution_set_write_count: u32, + _p_execution_set_writes: *const WriteIndirectExecutionSetPipelineEXT< + '_, + >, + ) { + panic!(concat!( + "Unable to load ", + stringify!(update_indirect_execution_set_pipeline_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkUpdateIndirectExecutionSetPipelineEXT\0", + ); + let val = _f(cname); + if val.is_null() { + update_indirect_execution_set_pipeline_ext + } else { + ::core::mem::transmute(val) + } + }, + update_indirect_execution_set_shader_ext: unsafe { + unsafe extern "system" fn update_indirect_execution_set_shader_ext( + _device: crate::vk::Device, + _indirect_execution_set: IndirectExecutionSetEXT, + _execution_set_write_count: u32, + _p_execution_set_writes: *const WriteIndirectExecutionSetShaderEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(update_indirect_execution_set_shader_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkUpdateIndirectExecutionSetShaderEXT\0", + ); + let val = _f(cname); + if val.is_null() { + update_indirect_execution_set_shader_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_depth_clamp_control"] + pub mod depth_clamp_control { + use super::super::*; + pub use { + crate::vk::EXT_DEPTH_CLAMP_CONTROL_NAME as NAME, + crate::vk::EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_depth_clamp_control device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_depth_clamp_control device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_depth_clamp_range_ext: PFN_vkCmdSetDepthClampRangeEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load *const c_void>(mut f: F) -> Self { + Self::load_erased(&mut f) + } + fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { + Self { + cmd_set_depth_clamp_range_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_clamp_range_ext( + _command_buffer: CommandBuffer, + _depth_clamp_mode: DepthClampModeEXT, + _p_depth_clamp_range: *const DepthClampRangeEXT, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_clamp_range_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthClampRangeEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_clamp_range_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } } #[doc = "Extensions tagged FUCHSIA"] pub mod fuchsia { @@ -14978,7 +15396,7 @@ pub mod khr { cmd_set_rendering_input_attachment_indices_khr: unsafe { unsafe extern "system" fn cmd_set_rendering_input_attachment_indices_khr( _command_buffer: CommandBuffer, - _p_location_info: *const RenderingInputAttachmentIndexInfoKHR<'_>, + _p_input_attachment_index_info : * const RenderingInputAttachmentIndexInfoKHR < '_ >, ) { panic!(concat!( "Unable to load ", @@ -16484,6 +16902,157 @@ pub mod khr { crate::vk::KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION as SPEC_VERSION, }; } + #[doc = "VK_KHR_pipeline_binary"] + pub mod pipeline_binary { + use super::super::*; + pub use { + crate::vk::KHR_PIPELINE_BINARY_NAME as NAME, + crate::vk::KHR_PIPELINE_BINARY_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_pipeline_binary device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_pipeline_binary device-level function pointers"] + pub struct DeviceFn { + pub create_pipeline_binaries_khr: PFN_vkCreatePipelineBinariesKHR, + pub destroy_pipeline_binary_khr: PFN_vkDestroyPipelineBinaryKHR, + pub get_pipeline_key_khr: PFN_vkGetPipelineKeyKHR, + pub get_pipeline_binary_data_khr: PFN_vkGetPipelineBinaryDataKHR, + pub release_captured_pipeline_data_khr: PFN_vkReleaseCapturedPipelineDataKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load *const c_void>(mut f: F) -> Self { + Self::load_erased(&mut f) + } + fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { + Self { + create_pipeline_binaries_khr: unsafe { + unsafe extern "system" fn create_pipeline_binaries_khr( + _device: crate::vk::Device, + _p_create_info: *const PipelineBinaryCreateInfoKHR<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_binaries: *mut PipelineBinaryHandlesInfoKHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_pipeline_binaries_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreatePipelineBinariesKHR\0"); + let val = _f(cname); + if val.is_null() { + create_pipeline_binaries_khr + } else { + ::core::mem::transmute(val) + } + }, + destroy_pipeline_binary_khr: unsafe { + unsafe extern "system" fn destroy_pipeline_binary_khr( + _device: crate::vk::Device, + _pipeline_binary: PipelineBinaryKHR, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_pipeline_binary_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkDestroyPipelineBinaryKHR\0"); + let val = _f(cname); + if val.is_null() { + destroy_pipeline_binary_khr + } else { + ::core::mem::transmute(val) + } + }, + get_pipeline_key_khr: unsafe { + unsafe extern "system" fn get_pipeline_key_khr( + _device: crate::vk::Device, + _p_pipeline_create_info: *const PipelineCreateInfoKHR<'_>, + _p_pipeline_key: *mut PipelineBinaryKeyKHR<'_>, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(get_pipeline_key_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetPipelineKeyKHR\0"); + let val = _f(cname); + if val.is_null() { + get_pipeline_key_khr + } else { + ::core::mem::transmute(val) + } + }, + get_pipeline_binary_data_khr: unsafe { + unsafe extern "system" fn get_pipeline_binary_data_khr( + _device: crate::vk::Device, + _p_info: *const PipelineBinaryDataInfoKHR<'_>, + _p_pipeline_binary_key: *mut PipelineBinaryKeyKHR<'_>, + _p_pipeline_binary_data_size: *mut usize, + _p_pipeline_binary_data: *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_pipeline_binary_data_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetPipelineBinaryDataKHR\0"); + let val = _f(cname); + if val.is_null() { + get_pipeline_binary_data_khr + } else { + ::core::mem::transmute(val) + } + }, + release_captured_pipeline_data_khr: unsafe { + unsafe extern "system" fn release_captured_pipeline_data_khr( + _device: crate::vk::Device, + _p_info: *const ReleaseCapturedPipelineDataInfoKHR<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(release_captured_pipeline_data_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkReleaseCapturedPipelineDataKHR\0", + ); + let val = _f(cname); + if val.is_null() { + release_captured_pipeline_data_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } #[doc = "VK_KHR_cooperative_matrix"] pub mod cooperative_matrix { use super::super::*; @@ -16553,6 +17122,14 @@ pub mod khr { } } } + #[doc = "VK_KHR_compute_shader_derivatives"] + pub mod compute_shader_derivatives { + use super::super::*; + pub use { + crate::vk::KHR_COMPUTE_SHADER_DERIVATIVES_NAME as NAME, + crate::vk::KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION as SPEC_VERSION, + }; + } #[doc = "VK_KHR_video_decode_av1"] pub mod video_decode_av1 { use super::super::*; @@ -16977,6 +17554,22 @@ pub mod khr { } } } + #[doc = "VK_KHR_shader_relaxed_extended_instruction"] + pub mod shader_relaxed_extended_instruction { + use super::super::*; + pub use { + crate::vk::KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_NAME as NAME, + crate::vk::KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_maintenance7"] + pub mod maintenance7 { + use super::super::*; + pub use { + crate::vk::KHR_MAINTENANCE7_NAME as NAME, + crate::vk::KHR_MAINTENANCE7_SPEC_VERSION as SPEC_VERSION, + }; + } } #[doc = "Extensions tagged LUNARG"] pub mod lunarg { @@ -16989,6 +17582,17 @@ pub mod lunarg { }; } } +#[doc = "Extensions tagged MESA"] +pub mod mesa { + #[doc = "VK_MESA_image_alignment_control"] + pub mod image_alignment_control { + use super::super::*; + pub use { + crate::vk::MESA_IMAGE_ALIGNMENT_CONTROL_NAME as NAME, + crate::vk::MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION as SPEC_VERSION, + }; + } +} #[doc = "Extensions tagged MSFT"] pub mod msft { #[doc = "VK_MSFT_layered_driver"] @@ -19745,6 +20349,14 @@ pub mod nv { crate::vk::NV_RAW_ACCESS_CHAINS_SPEC_VERSION as SPEC_VERSION, }; } + #[doc = "VK_NV_command_buffer_inheritance"] + pub mod command_buffer_inheritance { + use super::super::*; + pub use { + crate::vk::NV_COMMAND_BUFFER_INHERITANCE_NAME as NAME, + crate::vk::NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION as SPEC_VERSION, + }; + } #[doc = "VK_NV_shader_atomic_float16_vector"] pub mod shader_atomic_float16_vector { use super::super::*; diff --git a/ash/src/util.rs b/ash/src/util.rs index 63b0ad0fc..af4a42282 100644 --- a/ash/src/util.rs +++ b/ash/src/util.rs @@ -155,7 +155,7 @@ pub trait NextChainExt<'a>: vk::TaggedStructure { &mut *<*mut T>::cast(next) }; assert!(next.p_next.is_null()); - let base: &mut vk::BaseOutStructure<'a> = unsafe { + let base: &mut vk::BaseOutStructure<'a> = unsafe { // Safety: next implements vk::Extends and TaggedStructure &mut *<*mut Self>::cast(self) }; @@ -166,8 +166,10 @@ pub trait NextChainExt<'a>: vk::TaggedStructure { /// Builder method to prepends the given extension struct between the root and the first pointer. /// This method only exists on structs that can be passed to a function directly. Only /// valid extension structs can be pushed into the chain. - /// - /// ```rs + /// + /// ```rust + /// use ash::prelude::*; + /// use ash::vk; /// let mut a = vk::PhysicalDeviceRayTracingPipelineFeaturesKHR::default(); /// let mut b = vk::PhysicalDeviceAccelerationStructureFeaturesKHR::default(); /// let mut c = vk::PhysicalDeviceMultiDrawFeaturesEXT::default(); @@ -219,27 +221,42 @@ pub trait NextChainExt<'a>: vk::TaggedStructure { } } /// Extend the next chain of the current object with multiple tagged objects - fn extend( - &mut self, - nexts: impl IntoIterator>, - ) { - for next in nexts.into_iter() { - self.push_next(next); + /// ```rust + /// use ash::prelude::*; + /// use ash::vk; + /// use ash::util::TaggedObject; + /// let mut a = vk::PhysicalDeviceRayTracingPipelineFeaturesKHR::default(); + /// let mut b = vk::PhysicalDeviceAccelerationStructureFeaturesKHR::default(); + /// let mut c = vk::PhysicalDeviceMultiDrawFeaturesEXT::default(); + /// let mut base = vk::PhysicalDeviceFeatures2::default(); + /// base.extend([ + /// TaggedObject::from_mut(&mut a), + /// TaggedObject::from_mut(&mut b), + /// TaggedObject::from_mut(&mut c) + /// ]); + /// let mut iter = base.iter_next_chain(); + /// assert_eq!(iter.next().unwrap().tag(), vk::StructureType::PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT); // c.s_type + /// assert_eq!(iter.next().unwrap().tag(), vk::StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR); // b.s_type + /// assert_eq!(iter.next().unwrap().tag(), vk::StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR); // a.s_type + /// ``` + fn extend(&mut self, nexts: impl IntoIterator>) { + unsafe { + for next in nexts.into_iter() { + assert!(next.output.p_next.is_null()); + // Safety: self implements TaggedStructure + let base: &mut vk::BaseOutStructure<'a> = &mut *<*mut Self>::cast(self); + next.output.p_next = base.p_next; + base.p_next = <*mut TaggedObject<'a>>::cast(next); + } } } } /// Blanket implementation of next chain utility methods on all base types -impl<'a, T> NextChainExt<'a> for T -where - T: vk::BaseTaggedStructure<'a>, -{ -} - - +impl<'a, T> NextChainExt<'a> for T where T: vk::BaseTaggedStructure<'a> {} /// Type-erased object representing a tagged Vulkan structure. -/// It is basically a [`Box`], but for types implementing [`ash::vk::TaggedStructure`]. +/// It is basically a [`Box`], but for types implementing [`vk::TaggedStructure`]. #[repr(C)] pub union TaggedObject<'a> { output: vk::BaseOutStructure<'a>, @@ -248,11 +265,57 @@ pub union TaggedObject<'a> { impl vk::StructureType { const ASH_DYNAMIC: Self = Self(-1); } -/// TaggedObject may extend anything -unsafe impl<'a> vk::TaggedStructure for TaggedObject<'a>{ + +/// [`TaggedObject`]s are layout-compatible with [`vk::BaseInStructure`] and +/// [`vk::BaseOutStructure`]. +unsafe impl<'a> vk::TaggedStructure for TaggedObject<'a> { + /// Querying the tag of a [`TaggedObject`] statically using [`vk::TaggedStructure::STRUCTURE_TYPE`] + /// returns [`vk::StructureType::ASH_DYNAMIC`], since the actual tag is dynamic. + /// To query the tag of a [`TaggedObject`] dynamically, use [`TaggedObject::tag`]. const STRUCTURE_TYPE: vk::StructureType = vk::StructureType::ASH_DYNAMIC; } -unsafe impl<'a, T: ?Sized> vk::Extends for TaggedObject<'a>{} + +impl<'a> NextChainExt<'a> for TaggedObject<'a> {} + +/// [`TaggedObject`]s can be extended with ANY tagged objects. It is up to the user to ensure that they're +/// calling it correctly. +/// ```rust +/// use ash::prelude::*; +/// use ash::vk; +/// use ash::util::TaggedObject; +/// let mut a = vk::PhysicalDeviceRayTracingPipelineFeaturesKHR::default(); +/// let mut b = vk::PhysicalDeviceAccelerationStructureFeaturesKHR::default(); +/// let mut c = vk::PhysicalDeviceMultiDrawFeaturesEXT::default(); +/// let mut d = vk::ApplicationInfo::default(); +/// let mut base = vk::PhysicalDeviceFeatures2::default(); +/// let base = TaggedObject::from_mut(&mut base); +/// base.push_next(&mut a); +/// base.push_next(&mut b); +/// base.push_next(&mut c); +/// base.push_next(&mut d); +/// +/// +/// let mut iter = base.iter_next_chain(); +/// assert_eq!(iter.next().unwrap().tag(), vk::StructureType::APPLICATION_INFO); // d.s_type +/// assert_eq!(iter.next().unwrap().tag(), vk::StructureType::PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT); // c.s_type +/// assert_eq!(iter.next().unwrap().tag(), vk::StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR); // b.s_type +/// assert_eq!(iter.next().unwrap().tag(), vk::StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR); // a.s_type +/// ``` +unsafe impl<'a, T: vk::TaggedStructure + ?Sized> vk::Extends> for T {} +/// [`TaggedObject`]s can extend ANY other tagged objects. +/// ```rust +/// use ash::prelude::*; +/// use ash::vk; +/// use ash::util::TaggedObject; +/// let mut a = vk::ApplicationInfo::default(); +/// let mut a = TaggedObject::from_mut(&mut a); +/// let mut base = vk::PhysicalDeviceFeatures2::default(); +/// base.push_next(a); +/// +/// let mut iter = base.iter_next_chain(); +/// assert_eq!(iter.next().unwrap().tag(), vk::StructureType::APPLICATION_INFO); // a.s_type +/// ``` +unsafe impl<'a, T: vk::BaseTaggedStructure<'a> + ?Sized> vk::Extends for TaggedObject<'a> {} impl<'a> TaggedObject<'a> { pub unsafe fn from_raw(obj: *const vk::BaseInStructure<'_>) -> &Self { @@ -263,14 +326,10 @@ impl<'a> TaggedObject<'a> { unsafe { &mut *(obj as *mut Self) } } pub fn base_structure(&self) -> &vk::BaseInStructure<'a> { - unsafe { - &self.input - } + unsafe { &self.input } } pub fn base_structure_mut(&mut self) -> &mut vk::BaseOutStructure<'a> { - unsafe { - &mut self.output - } + unsafe { &mut self.output } } pub fn from_ref(obj: &T) -> &Self { @@ -278,7 +337,7 @@ impl<'a> TaggedObject<'a> { } pub fn from_mut(obj: &mut T) -> &mut Self { - unsafe { &mut *(<*mut T>::cast(obj) ) } + unsafe { &mut *(<*mut T>::cast(obj)) } } pub fn tag(&self) -> vk::StructureType { self.base_structure().s_type @@ -295,7 +354,9 @@ impl<'a> TaggedObject<'a> { pub fn downcast_mut(&mut self) -> Option<&mut T> { unsafe { if self.tag() == T::STRUCTURE_TYPE { - Some(&mut *<*mut vk::BaseOutStructure<'_>>::cast(&mut self.output)) + Some(&mut *<*mut vk::BaseOutStructure<'_>>::cast( + &mut self.output, + )) } else { None } diff --git a/ash/src/vk/aliases.rs b/ash/src/vk/aliases.rs index 3a62e1ff6..f049d0087 100644 --- a/ash/src/vk/aliases.rs +++ b/ash/src/vk/aliases.rs @@ -189,6 +189,8 @@ pub type PhysicalDeviceVertexAttributeDivisorFeaturesEXT<'a> = pub type PhysicalDeviceDepthStencilResolvePropertiesKHR<'a> = PhysicalDeviceDepthStencilResolveProperties<'a>; pub type SubpassDescriptionDepthStencilResolveKHR<'a> = SubpassDescriptionDepthStencilResolve<'a>; +pub type PhysicalDeviceComputeShaderDerivativesFeaturesNV<'a> = + PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a>; pub type PhysicalDeviceFragmentShaderBarycentricFeaturesNV<'a> = PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a>; pub type ImageStencilUsageCreateInfoEXT<'a> = ImageStencilUsageCreateInfo<'a>; diff --git a/ash/src/vk/bitflags.rs b/ash/src/vk/bitflags.rs index bceb0d5ba..c2f24094a 100644 --- a/ash/src/vk/bitflags.rs +++ b/ash/src/vk/bitflags.rs @@ -1724,6 +1724,24 @@ impl MicromapCreateFlagsEXT { } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct IndirectCommandsLayoutUsageFlagsEXT(pub(crate) Flags); +vk_bitflags_wrapped!(IndirectCommandsLayoutUsageFlagsEXT, Flags); +impl IndirectCommandsLayoutUsageFlagsEXT { + pub const EXPLICIT_PREPROCESS: Self = Self(0b1); + pub const UNORDERED_SEQUENCES: Self = Self(0b10); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct IndirectCommandsInputModeFlagsEXT(pub(crate) Flags); +vk_bitflags_wrapped!(IndirectCommandsInputModeFlagsEXT, Flags); +impl IndirectCommandsInputModeFlagsEXT { + pub const VULKAN_INDEX_BUFFER: Self = Self(0b1); + pub const DXGI_INDEX_BUFFER: Self = Self(0b10); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] #[doc = ""] pub struct ShaderCreateFlagsEXT(pub(crate) Flags); vk_bitflags_wrapped!(ShaderCreateFlagsEXT, Flags); @@ -1736,3 +1754,9 @@ impl ShaderCreateFlagsEXT { pub struct MemoryUnmapFlagsKHR(pub(crate) Flags); vk_bitflags_wrapped!(MemoryUnmapFlagsKHR, Flags); impl MemoryUnmapFlagsKHR {} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct WaylandSurfaceCreateFlagsKHR(pub(crate) Flags); +vk_bitflags_wrapped!(WaylandSurfaceCreateFlagsKHR, Flags); +impl WaylandSurfaceCreateFlagsKHR {} diff --git a/ash/src/vk/const_debugs.rs b/ash/src/vk/const_debugs.rs index bb9481e70..b0d032397 100644 --- a/ash/src/vk/const_debugs.rs +++ b/ash/src/vk/const_debugs.rs @@ -338,6 +338,35 @@ impl fmt::Debug for AndroidSurfaceCreateFlagsKHR { debug_flags(f, KNOWN, self.0) } } +impl fmt::Debug for AntiLagModeAMD { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::DRIVER_CONTROL => Some("DRIVER_CONTROL"), + Self::ON => Some("ON"), + Self::OFF => Some("OFF"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} +impl fmt::Debug for AntiLagStageAMD { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::INPUT => Some("INPUT"), + Self::PRESENT => Some("PRESENT"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} impl fmt::Debug for AttachmentDescriptionFlags { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[(AttachmentDescriptionFlags::MAY_ALIAS.0, "MAY_ALIAS")]; @@ -705,6 +734,10 @@ impl fmt::Debug for BufferUsageFlags2KHR { BufferUsageFlags2KHR::MICROMAP_STORAGE_EXT.0, "MICROMAP_STORAGE_EXT", ), + ( + BufferUsageFlags2KHR::PREPROCESS_BUFFER_EXT.0, + "PREPROCESS_BUFFER_EXT", + ), ]; debug_flags(f, KNOWN, self.0) } @@ -862,6 +895,7 @@ impl fmt::Debug for ColorSpaceKHR { Self::BT709_NONLINEAR_EXT => Some("BT709_NONLINEAR_EXT"), Self::BT2020_LINEAR_EXT => Some("BT2020_LINEAR_EXT"), Self::HDR10_ST2084_EXT => Some("HDR10_ST2084_EXT"), + #[allow(deprecated)] Self::DOLBYVISION_EXT => Some("DOLBYVISION_EXT"), Self::HDR10_HLG_EXT => Some("HDR10_HLG_EXT"), Self::ADOBERGB_LINEAR_EXT => Some("ADOBERGB_LINEAR_EXT"), @@ -1264,6 +1298,20 @@ impl fmt::Debug for DepthBiasRepresentationEXT { } } } +impl fmt::Debug for DepthClampModeEXT { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::VIEWPORT_RANGE => Some("VIEWPORT_RANGE"), + Self::USER_DEFINED_RANGE => Some("USER_DEFINED_RANGE"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} impl fmt::Debug for DescriptorBindingFlags { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[ @@ -1675,7 +1723,8 @@ impl fmt::Debug for DriverId { Self::MESA_DOZEN => Some("MESA_DOZEN"), Self::MESA_NVK => Some("MESA_NVK"), Self::IMAGINATION_OPEN_SOURCE_MESA => Some("IMAGINATION_OPEN_SOURCE_MESA"), - Self::MESA_AGXV => Some("MESA_AGXV"), + Self::MESA_HONEYKRISP => Some("MESA_HONEYKRISP"), + Self::RESERVED_27 => Some("RESERVED_27"), _ => None, }; if let Some(x) = name { @@ -1757,6 +1806,7 @@ impl fmt::Debug for DynamicState { Some("ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT") } Self::LINE_STIPPLE_KHR => Some("LINE_STIPPLE_KHR"), + Self::DEPTH_CLAMP_RANGE_EXT => Some("DEPTH_CLAMP_RANGE_EXT"), Self::CULL_MODE => Some("CULL_MODE"), Self::FRONT_FACE => Some("FRONT_FACE"), Self::PRIMITIVE_TOPOLOGY => Some("PRIMITIVE_TOPOLOGY"), @@ -2201,7 +2251,7 @@ impl fmt::Debug for Format { Self::PVRTC1_4BPP_SRGB_BLOCK_IMG => Some("PVRTC1_4BPP_SRGB_BLOCK_IMG"), Self::PVRTC2_2BPP_SRGB_BLOCK_IMG => Some("PVRTC2_2BPP_SRGB_BLOCK_IMG"), Self::PVRTC2_4BPP_SRGB_BLOCK_IMG => Some("PVRTC2_4BPP_SRGB_BLOCK_IMG"), - Self::R16G16_S10_5_NV => Some("R16G16_S10_5_NV"), + Self::R16G16_SFIXED5_NV => Some("R16G16_SFIXED5_NV"), Self::A1B5G5R5_UNORM_PACK16_KHR => Some("A1B5G5R5_UNORM_PACK16_KHR"), Self::A8_UNORM_KHR => Some("A8_UNORM_KHR"), Self::G8B8G8R8_422_UNORM => Some("G8B8G8R8_422_UNORM"), @@ -2910,6 +2960,36 @@ impl fmt::Debug for IndexType { } } } +impl fmt::Debug for IndirectCommandsInputModeFlagsEXT { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags, &str)] = &[ + ( + IndirectCommandsInputModeFlagsEXT::VULKAN_INDEX_BUFFER.0, + "VULKAN_INDEX_BUFFER", + ), + ( + IndirectCommandsInputModeFlagsEXT::DXGI_INDEX_BUFFER.0, + "DXGI_INDEX_BUFFER", + ), + ]; + debug_flags(f, KNOWN, self.0) + } +} +impl fmt::Debug for IndirectCommandsLayoutUsageFlagsEXT { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags, &str)] = &[ + ( + IndirectCommandsLayoutUsageFlagsEXT::EXPLICIT_PREPROCESS.0, + "EXPLICIT_PREPROCESS", + ), + ( + IndirectCommandsLayoutUsageFlagsEXT::UNORDERED_SEQUENCES.0, + "UNORDERED_SEQUENCES", + ), + ]; + debug_flags(f, KNOWN, self.0) + } +} impl fmt::Debug for IndirectCommandsLayoutUsageFlagsNV { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[ @@ -2929,6 +3009,33 @@ impl fmt::Debug for IndirectCommandsLayoutUsageFlagsNV { debug_flags(f, KNOWN, self.0) } } +impl fmt::Debug for IndirectCommandsTokenTypeEXT { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::EXECUTION_SET => Some("EXECUTION_SET"), + Self::PUSH_CONSTANT => Some("PUSH_CONSTANT"), + Self::SEQUENCE_INDEX => Some("SEQUENCE_INDEX"), + Self::INDEX_BUFFER => Some("INDEX_BUFFER"), + Self::VERTEX_BUFFER => Some("VERTEX_BUFFER"), + Self::DRAW_INDEXED => Some("DRAW_INDEXED"), + Self::DRAW => Some("DRAW"), + Self::DRAW_INDEXED_COUNT => Some("DRAW_INDEXED_COUNT"), + Self::DRAW_COUNT => Some("DRAW_COUNT"), + Self::DISPATCH => Some("DISPATCH"), + Self::DRAW_MESH_TASKS_NV => Some("DRAW_MESH_TASKS_NV"), + Self::DRAW_MESH_TASKS_COUNT_NV => Some("DRAW_MESH_TASKS_COUNT_NV"), + Self::DRAW_MESH_TASKS => Some("DRAW_MESH_TASKS"), + Self::DRAW_MESH_TASKS_COUNT => Some("DRAW_MESH_TASKS_COUNT"), + Self::TRACE_RAYS2 => Some("TRACE_RAYS2"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} impl fmt::Debug for IndirectCommandsTokenTypeNV { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { @@ -2952,6 +3059,20 @@ impl fmt::Debug for IndirectCommandsTokenTypeNV { } } } +impl fmt::Debug for IndirectExecutionSetInfoTypeEXT { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::PIPELINES => Some("PIPELINES"), + Self::SHADER_OBJECTS => Some("SHADER_OBJECTS"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} impl fmt::Debug for IndirectStateFlagsNV { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = @@ -3482,6 +3603,23 @@ impl fmt::Debug for PerformanceValueTypeINTEL { } } } +impl fmt::Debug for PhysicalDeviceLayeredApiKHR { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::VULKAN => Some("VULKAN"), + Self::D3D12 => Some("D3D12"), + Self::METAL => Some("METAL"), + Self::OPENGL => Some("OPENGL"), + Self::OPENGLES => Some("OPENGLES"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} impl fmt::Debug for PhysicalDeviceSchedulingControlsFlagsARM { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags64, &str)] = &[( @@ -3711,6 +3849,10 @@ impl fmt::Debug for PipelineCreateFlags2KHR { "ALLOW_DERIVATIVES", ), (PipelineCreateFlags2KHR::DERIVATIVE.0, "DERIVATIVE"), + ( + PipelineCreateFlags2KHR::ENABLE_LEGACY_DITHERING_EXT.0, + "ENABLE_LEGACY_DITHERING_EXT", + ), ( PipelineCreateFlags2KHR::VIEW_INDEX_FROM_DEVICE_INDEX.0, "VIEW_INDEX_FROM_DEVICE_INDEX", @@ -3817,6 +3959,11 @@ impl fmt::Debug for PipelineCreateFlags2KHR { PipelineCreateFlags2KHR::DESCRIPTOR_BUFFER_EXT.0, "DESCRIPTOR_BUFFER_EXT", ), + (PipelineCreateFlags2KHR::CAPTURE_DATA.0, "CAPTURE_DATA"), + ( + PipelineCreateFlags2KHR::INDIRECT_BINDABLE_EXT.0, + "INDIRECT_BINDABLE_EXT", + ), ]; debug_flags(f, KNOWN, self.0) } @@ -4520,11 +4667,11 @@ impl fmt::Debug for RenderingFlags { ), (RenderingFlags::SUSPENDING.0, "SUSPENDING"), (RenderingFlags::RESUMING.0, "RESUMING"), - (RenderingFlags::CONTENTS_INLINE_EXT.0, "CONTENTS_INLINE_EXT"), ( RenderingFlags::ENABLE_LEGACY_DITHERING_EXT.0, "ENABLE_LEGACY_DITHERING_EXT", ), + (RenderingFlags::CONTENTS_INLINE_KHR.0, "CONTENTS_INLINE_KHR"), ]; debug_flags(f, KNOWN, self.0) } @@ -4757,6 +4904,10 @@ impl fmt::Debug for ShaderCreateFlagsEXT { ShaderCreateFlagsEXT::FRAGMENT_DENSITY_MAP_ATTACHMENT.0, "FRAGMENT_DENSITY_MAP_ATTACHMENT", ), + ( + ShaderCreateFlagsEXT::INDIRECT_BINDABLE.0, + "INDIRECT_BINDABLE", + ), ]; debug_flags(f, KNOWN, self.0) } @@ -5600,9 +5751,6 @@ impl fmt::Debug for StructureType { Some("PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT") } Self::PRESENT_FRAME_TOKEN_GGP => Some("PRESENT_FRAME_TOKEN_GGP"), - Self::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV => { - Some("PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV") - } Self::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV => { Some("PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV") } @@ -6426,6 +6574,11 @@ impl fmt::Debug for StructureType { Self::BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR => { Some("BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR") } + Self::PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD => { + Some("PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD") + } + Self::ANTI_LAG_DATA_AMD => Some("ANTI_LAG_DATA_AMD"), + Self::ANTI_LAG_PRESENTATION_INFO_AMD => Some("ANTI_LAG_PRESENTATION_INFO_AMD"), Self::PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR => { Some("PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR") } @@ -6436,6 +6589,24 @@ impl fmt::Debug for StructureType { Some("PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT") } Self::SHADER_CREATE_INFO_EXT => Some("SHADER_CREATE_INFO_EXT"), + Self::PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR") + } + Self::PIPELINE_BINARY_CREATE_INFO_KHR => Some("PIPELINE_BINARY_CREATE_INFO_KHR"), + Self::PIPELINE_BINARY_INFO_KHR => Some("PIPELINE_BINARY_INFO_KHR"), + Self::PIPELINE_BINARY_KEY_KHR => Some("PIPELINE_BINARY_KEY_KHR"), + Self::PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR => { + Some("PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR") + } + Self::RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR => { + Some("RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR") + } + Self::PIPELINE_BINARY_DATA_INFO_KHR => Some("PIPELINE_BINARY_DATA_INFO_KHR"), + Self::PIPELINE_CREATE_INFO_KHR => Some("PIPELINE_CREATE_INFO_KHR"), + Self::DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR => { + Some("DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR") + } + Self::PIPELINE_BINARY_HANDLES_INFO_KHR => Some("PIPELINE_BINARY_HANDLES_INFO_KHR"), Self::PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM => { Some("PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM") } @@ -6465,6 +6636,12 @@ impl fmt::Debug for StructureType { Self::MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT => { Some("MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT") } + Self::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT => { + Some("PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT") + } + Self::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT => { + Some("PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT") + } Self::LAYER_SETTINGS_CREATE_INFO_EXT => Some("LAYER_SETTINGS_CREATE_INFO_EXT"), Self::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM => { Some("PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM") @@ -6500,6 +6677,12 @@ impl fmt::Debug for StructureType { Self::MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM => { Some("MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM") } + Self::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR") + } + Self::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR => { + Some("PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR") + } Self::VIDEO_DECODE_AV1_CAPABILITIES_KHR => Some("VIDEO_DECODE_AV1_CAPABILITIES_KHR"), Self::VIDEO_DECODE_AV1_PICTURE_INFO_KHR => Some("VIDEO_DECODE_AV1_PICTURE_INFO_KHR"), Self::VIDEO_DECODE_AV1_PROFILE_INFO_KHR => Some("VIDEO_DECODE_AV1_PROFILE_INFO_KHR"), @@ -6607,12 +6790,87 @@ impl fmt::Debug for StructureType { Self::PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV => { Some("PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV") } + Self::PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR") + } + Self::PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV => { + Some("PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV") + } + Self::PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR") + } + Self::PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR => { + Some("PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR") + } + Self::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR => { + Some("PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR") + } + Self::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR => { + Some("PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR") + } + Self::PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR => { + Some("PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR") + } Self::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV => { Some("PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV") } + Self::PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT => { + Some("PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT") + } Self::PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV => { Some("PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV") } + Self::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT => { + Some("PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT") + } + Self::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT => { + Some("PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT") + } + Self::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT => { + Some("GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT") + } + Self::INDIRECT_EXECUTION_SET_CREATE_INFO_EXT => { + Some("INDIRECT_EXECUTION_SET_CREATE_INFO_EXT") + } + Self::GENERATED_COMMANDS_INFO_EXT => Some("GENERATED_COMMANDS_INFO_EXT"), + Self::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT => { + Some("INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT") + } + Self::INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT => Some("INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT"), + Self::WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT => { + Some("WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT") + } + Self::WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT => { + Some("WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT") + } + Self::INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT => { + Some("INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT") + } + Self::INDIRECT_EXECUTION_SET_SHADER_INFO_EXT => { + Some("INDIRECT_EXECUTION_SET_SHADER_INFO_EXT") + } + Self::INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT => { + Some("INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT") + } + Self::GENERATED_COMMANDS_PIPELINE_INFO_EXT => { + Some("GENERATED_COMMANDS_PIPELINE_INFO_EXT") + } + Self::GENERATED_COMMANDS_SHADER_INFO_EXT => Some("GENERATED_COMMANDS_SHADER_INFO_EXT"), + Self::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA => { + Some("PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA") + } + Self::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA => { + Some("PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA") + } + Self::IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA => { + Some("IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA") + } + Self::PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT => { + Some("PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT") + } + Self::PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT => { + Some("PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT") + } Self::PHYSICAL_DEVICE_SUBGROUP_PROPERTIES => { Some("PHYSICAL_DEVICE_SUBGROUP_PROPERTIES") } @@ -6991,8 +7249,8 @@ impl fmt::Debug for SubpassContents { let name = match *self { Self::INLINE => Some("INLINE"), Self::SECONDARY_COMMAND_BUFFERS => Some("SECONDARY_COMMAND_BUFFERS"), - Self::INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT => { - Some("INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT") + Self::INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR => { + Some("INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR") } _ => None, }; @@ -7269,6 +7527,7 @@ impl fmt::Debug for ValidationFeatureEnableEXT { impl fmt::Debug for VendorId { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { + Self::KHRONOS => Some("KHRONOS"), Self::VIV => Some("VIV"), Self::VSI => Some("VSI"), Self::KAZAN => Some("KAZAN"), diff --git a/ash/src/vk/constants.rs b/ash/src/vk/constants.rs index 7b4701560..7abea7fa6 100644 --- a/ash/src/vk/constants.rs +++ b/ash/src/vk/constants.rs @@ -25,6 +25,7 @@ pub const MAX_DRIVER_INFO_SIZE: usize = 256; pub const SHADER_UNUSED_KHR: u32 = !0; pub const MAX_GLOBAL_PRIORITY_SIZE_KHR: usize = 16; pub const MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT: usize = 32; +pub const MAX_PIPELINE_BINARY_KEY_SIZE_KHR: usize = 32; pub const MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR: usize = 7; pub const SHADER_INDEX_UNUSED_AMDX: u32 = !0; pub const SHADER_UNUSED_NV: u32 = SHADER_UNUSED_KHR; diff --git a/ash/src/vk/definitions.rs b/ash/src/vk/definitions.rs index 469d0dfdc..1c6ed2bbb 100644 --- a/ash/src/vk/definitions.rs +++ b/ash/src/vk/definitions.rs @@ -58,7 +58,7 @@ pub const API_VERSION_1_2: u32 = make_api_version(0, 1, 2, 0); #[doc = ""] pub const API_VERSION_1_3: u32 = make_api_version(0, 1, 3, 0); #[doc = ""] -pub const HEADER_VERSION: u32 = 281; +pub const HEADER_VERSION: u32 = 296; #[doc = ""] pub const HEADER_VERSION_COMPLETE: u32 = make_api_version(0, 1, 3, HEADER_VERSION); #[doc = ""] @@ -170,11 +170,6 @@ pub struct ViSurfaceCreateFlagsNN(pub(crate) Flags); vk_bitflags_wrapped!(ViSurfaceCreateFlagsNN, Flags); #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] -#[doc = ""] -pub struct WaylandSurfaceCreateFlagsKHR(pub(crate) Flags); -vk_bitflags_wrapped!(WaylandSurfaceCreateFlagsKHR, Flags); -#[repr(transparent)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] #[doc = ""] pub struct Win32SurfaceCreateFlagsKHR(pub(crate) Flags); vk_bitflags_wrapped!(Win32SurfaceCreateFlagsKHR, Flags); @@ -445,7 +440,10 @@ handle_nondispatchable!( doc = "" ); +handle_nondispatchable ! (PipelineBinaryKHR , PIPELINE_BINARY_KHR , doc = "") ; handle_nondispatchable ! (IndirectCommandsLayoutNV , INDIRECT_COMMANDS_LAYOUT_NV , doc = "") ; +handle_nondispatchable ! (IndirectCommandsLayoutEXT , INDIRECT_COMMANDS_LAYOUT_EXT , doc = "") ; +handle_nondispatchable ! (IndirectExecutionSetEXT , INDIRECT_EXECUTION_SET_EXT , doc = "") ; handle_nondispatchable ! (DescriptorUpdateTemplate , DESCRIPTOR_UPDATE_TEMPLATE , doc = "") ; handle_nondispatchable ! (SamplerYcbcrConversion , SAMPLER_YCBCR_CONVERSION , doc = "") ; handle_nondispatchable ! (ValidationCacheEXT , VALIDATION_CACHE_EXT , doc = "") ; @@ -4895,6 +4893,346 @@ impl PushConstantRange { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PipelineBinaryCreateInfoKHR<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub p_keys_and_data_info: *const PipelineBinaryKeysAndDataKHR<'a>, + pub pipeline: Pipeline, + pub p_pipeline_create_info: *const PipelineCreateInfoKHR<'a>, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PipelineBinaryCreateInfoKHR<'_> {} +unsafe impl Sync for PipelineBinaryCreateInfoKHR<'_> {} +impl ::core::default::Default for PipelineBinaryCreateInfoKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + p_keys_and_data_info: ::core::ptr::null(), + pipeline: Pipeline::default(), + p_pipeline_create_info: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PipelineBinaryCreateInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_BINARY_CREATE_INFO_KHR; +} +impl<'a> PipelineBinaryCreateInfoKHR<'a> { + #[inline] + pub fn keys_and_data_info( + mut self, + keys_and_data_info: &'a PipelineBinaryKeysAndDataKHR<'a>, + ) -> Self { + self.p_keys_and_data_info = keys_and_data_info; + self + } + #[inline] + pub fn pipeline(mut self, pipeline: Pipeline) -> Self { + self.pipeline = pipeline; + self + } + #[inline] + pub fn pipeline_create_info( + mut self, + pipeline_create_info: &'a PipelineCreateInfoKHR<'a>, + ) -> Self { + self.p_pipeline_create_info = pipeline_create_info; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PipelineBinaryHandlesInfoKHR<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub pipeline_binary_count: u32, + pub p_pipeline_binaries: *mut PipelineBinaryKHR, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PipelineBinaryHandlesInfoKHR<'_> {} +unsafe impl Sync for PipelineBinaryHandlesInfoKHR<'_> {} +impl ::core::default::Default for PipelineBinaryHandlesInfoKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + pipeline_binary_count: u32::default(), + p_pipeline_binaries: ::core::ptr::null_mut(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PipelineBinaryHandlesInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_BINARY_HANDLES_INFO_KHR; +} +impl<'a> PipelineBinaryHandlesInfoKHR<'a> { + #[inline] + pub fn pipeline_binaries(mut self, pipeline_binaries: &'a mut [PipelineBinaryKHR]) -> Self { + self.pipeline_binary_count = pipeline_binaries.len() as _; + self.p_pipeline_binaries = pipeline_binaries.as_mut_ptr(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PipelineBinaryDataKHR<'a> { + pub data_size: usize, + pub p_data: *mut c_void, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PipelineBinaryDataKHR<'_> {} +unsafe impl Sync for PipelineBinaryDataKHR<'_> {} +impl ::core::default::Default for PipelineBinaryDataKHR<'_> { + #[inline] + fn default() -> Self { + Self { + data_size: usize::default(), + p_data: ::core::ptr::null_mut(), + _marker: PhantomData, + } + } +} +impl<'a> PipelineBinaryDataKHR<'a> { + #[inline] + pub fn data(mut self, data: &'a mut [u8]) -> Self { + self.data_size = data.len(); + self.p_data = data.as_mut_ptr().cast(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PipelineBinaryKeysAndDataKHR<'a> { + pub binary_count: u32, + pub p_pipeline_binary_keys: *const PipelineBinaryKeyKHR<'a>, + pub p_pipeline_binary_data: *const PipelineBinaryDataKHR<'a>, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PipelineBinaryKeysAndDataKHR<'_> {} +unsafe impl Sync for PipelineBinaryKeysAndDataKHR<'_> {} +impl ::core::default::Default for PipelineBinaryKeysAndDataKHR<'_> { + #[inline] + fn default() -> Self { + Self { + binary_count: u32::default(), + p_pipeline_binary_keys: ::core::ptr::null(), + p_pipeline_binary_data: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +impl<'a> PipelineBinaryKeysAndDataKHR<'a> { + #[inline] + pub fn pipeline_binary_keys( + mut self, + pipeline_binary_keys: &'a [PipelineBinaryKeyKHR<'a>], + ) -> Self { + self.binary_count = pipeline_binary_keys.len() as _; + self.p_pipeline_binary_keys = pipeline_binary_keys.as_ptr(); + self + } + #[inline] + pub fn pipeline_binary_data( + mut self, + pipeline_binary_data: &'a [PipelineBinaryDataKHR<'a>], + ) -> Self { + self.binary_count = pipeline_binary_data.len() as _; + self.p_pipeline_binary_data = pipeline_binary_data.as_ptr(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PipelineBinaryKeyKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub key_size: u32, + pub key: [u8; MAX_PIPELINE_BINARY_KEY_SIZE_KHR], + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PipelineBinaryKeyKHR<'_> {} +unsafe impl Sync for PipelineBinaryKeyKHR<'_> {} +impl ::core::default::Default for PipelineBinaryKeyKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + key_size: u32::default(), + key: unsafe { ::core::mem::zeroed() }, + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PipelineBinaryKeyKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_BINARY_KEY_KHR; +} +impl<'a> PipelineBinaryKeyKHR<'a> { + #[inline] + pub fn key_size(mut self, key_size: u32) -> Self { + self.key_size = key_size; + self + } + #[inline] + pub fn key(mut self, key: [u8; MAX_PIPELINE_BINARY_KEY_SIZE_KHR]) -> Self { + self.key = key; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PipelineBinaryInfoKHR<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub binary_count: u32, + pub p_pipeline_binaries: *const PipelineBinaryKHR, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PipelineBinaryInfoKHR<'_> {} +unsafe impl Sync for PipelineBinaryInfoKHR<'_> {} +impl ::core::default::Default for PipelineBinaryInfoKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + binary_count: u32::default(), + p_pipeline_binaries: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PipelineBinaryInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_BINARY_INFO_KHR; +} +unsafe impl<'a> Extends> for PipelineBinaryInfoKHR<'a> {} +unsafe impl<'a> Extends> for PipelineBinaryInfoKHR<'a> {} +unsafe impl<'a> Extends> for PipelineBinaryInfoKHR<'a> {} +impl<'a> PipelineBinaryInfoKHR<'a> { + #[inline] + pub fn pipeline_binaries(mut self, pipeline_binaries: &'a [PipelineBinaryKHR]) -> Self { + self.binary_count = pipeline_binaries.len() as _; + self.p_pipeline_binaries = pipeline_binaries.as_ptr(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ReleaseCapturedPipelineDataInfoKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub pipeline: Pipeline, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ReleaseCapturedPipelineDataInfoKHR<'_> {} +unsafe impl Sync for ReleaseCapturedPipelineDataInfoKHR<'_> {} +impl ::core::default::Default for ReleaseCapturedPipelineDataInfoKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + pipeline: Pipeline::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for ReleaseCapturedPipelineDataInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR; +} +impl<'a> ReleaseCapturedPipelineDataInfoKHR<'a> { + #[inline] + pub fn pipeline(mut self, pipeline: Pipeline) -> Self { + self.pipeline = pipeline; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PipelineBinaryDataInfoKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub pipeline_binary: PipelineBinaryKHR, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PipelineBinaryDataInfoKHR<'_> {} +unsafe impl Sync for PipelineBinaryDataInfoKHR<'_> {} +impl ::core::default::Default for PipelineBinaryDataInfoKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + pipeline_binary: PipelineBinaryKHR::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PipelineBinaryDataInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_BINARY_DATA_INFO_KHR; +} +impl<'a> PipelineBinaryDataInfoKHR<'a> { + #[inline] + pub fn pipeline_binary(mut self, pipeline_binary: PipelineBinaryKHR) -> Self { + self.pipeline_binary = pipeline_binary; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PipelineCreateInfoKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PipelineCreateInfoKHR<'_> {} +unsafe impl Sync for PipelineCreateInfoKHR<'_> {} +impl ::core::default::Default for PipelineCreateInfoKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PipelineCreateInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_CREATE_INFO_KHR; +} +impl<'a> PipelineCreateInfoKHR<'a> {} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct PipelineLayoutCreateInfo<'a> { @@ -4936,6 +5274,7 @@ unsafe impl<'a> Extends> for PipelineLayoutCreateInfo<'a> { } +unsafe impl<'a> Extends> for PipelineLayoutCreateInfo<'a> {} impl<'a> PipelineLayoutCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineLayoutCreateFlags) -> Self { @@ -8760,6 +9099,8 @@ unsafe impl<'a> TaggedStructure for ValidationFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VALIDATION_FEATURES_EXT; } unsafe impl<'a> Extends> for ValidationFeaturesEXT<'a> {} +unsafe impl<'a> Extends> for ValidationFeaturesEXT<'a> {} +unsafe impl<'a> Extends> for ValidationFeaturesEXT<'a> {} impl<'a> ValidationFeaturesEXT<'a> { #[inline] pub fn enabled_validation_features( @@ -18032,6 +18373,319 @@ impl<'a> PhysicalDeviceMaintenance6PropertiesKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceMaintenance7FeaturesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub maintenance7: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceMaintenance7FeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceMaintenance7FeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceMaintenance7FeaturesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + maintenance7: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance7FeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR; +} +unsafe impl<'a> Extends> for PhysicalDeviceMaintenance7FeaturesKHR<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceMaintenance7FeaturesKHR<'a> {} +impl<'a> PhysicalDeviceMaintenance7FeaturesKHR<'a> { + #[inline] + pub fn maintenance7(mut self, maintenance7: bool) -> Self { + self.maintenance7 = maintenance7.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceMaintenance7PropertiesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub robust_fragment_shading_rate_attachment_access: Bool32, + pub separate_depth_stencil_attachment_access: Bool32, + pub max_descriptor_set_total_uniform_buffers_dynamic: u32, + pub max_descriptor_set_total_storage_buffers_dynamic: u32, + pub max_descriptor_set_total_buffers_dynamic: u32, + pub max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic: u32, + pub max_descriptor_set_update_after_bind_total_storage_buffers_dynamic: u32, + pub max_descriptor_set_update_after_bind_total_buffers_dynamic: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceMaintenance7PropertiesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceMaintenance7PropertiesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceMaintenance7PropertiesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + robust_fragment_shading_rate_attachment_access: Bool32::default(), + separate_depth_stencil_attachment_access: Bool32::default(), + max_descriptor_set_total_uniform_buffers_dynamic: u32::default(), + max_descriptor_set_total_storage_buffers_dynamic: u32::default(), + max_descriptor_set_total_buffers_dynamic: u32::default(), + max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic: u32::default(), + max_descriptor_set_update_after_bind_total_storage_buffers_dynamic: u32::default(), + max_descriptor_set_update_after_bind_total_buffers_dynamic: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance7PropertiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR; +} +unsafe impl<'a> Extends> + for PhysicalDeviceMaintenance7PropertiesKHR<'a> +{ +} +impl<'a> PhysicalDeviceMaintenance7PropertiesKHR<'a> { + #[inline] + pub fn robust_fragment_shading_rate_attachment_access( + mut self, + robust_fragment_shading_rate_attachment_access: bool, + ) -> Self { + self.robust_fragment_shading_rate_attachment_access = + robust_fragment_shading_rate_attachment_access.into(); + self + } + #[inline] + pub fn separate_depth_stencil_attachment_access( + mut self, + separate_depth_stencil_attachment_access: bool, + ) -> Self { + self.separate_depth_stencil_attachment_access = + separate_depth_stencil_attachment_access.into(); + self + } + #[inline] + pub fn max_descriptor_set_total_uniform_buffers_dynamic( + mut self, + max_descriptor_set_total_uniform_buffers_dynamic: u32, + ) -> Self { + self.max_descriptor_set_total_uniform_buffers_dynamic = + max_descriptor_set_total_uniform_buffers_dynamic; + self + } + #[inline] + pub fn max_descriptor_set_total_storage_buffers_dynamic( + mut self, + max_descriptor_set_total_storage_buffers_dynamic: u32, + ) -> Self { + self.max_descriptor_set_total_storage_buffers_dynamic = + max_descriptor_set_total_storage_buffers_dynamic; + self + } + #[inline] + pub fn max_descriptor_set_total_buffers_dynamic( + mut self, + max_descriptor_set_total_buffers_dynamic: u32, + ) -> Self { + self.max_descriptor_set_total_buffers_dynamic = max_descriptor_set_total_buffers_dynamic; + self + } + #[inline] + pub fn max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic( + mut self, + max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic: u32, + ) -> Self { + self.max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic = + max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic; + self + } + #[inline] + pub fn max_descriptor_set_update_after_bind_total_storage_buffers_dynamic( + mut self, + max_descriptor_set_update_after_bind_total_storage_buffers_dynamic: u32, + ) -> Self { + self.max_descriptor_set_update_after_bind_total_storage_buffers_dynamic = + max_descriptor_set_update_after_bind_total_storage_buffers_dynamic; + self + } + #[inline] + pub fn max_descriptor_set_update_after_bind_total_buffers_dynamic( + mut self, + max_descriptor_set_update_after_bind_total_buffers_dynamic: u32, + ) -> Self { + self.max_descriptor_set_update_after_bind_total_buffers_dynamic = + max_descriptor_set_update_after_bind_total_buffers_dynamic; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceLayeredApiPropertiesListKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub layered_api_count: u32, + pub p_layered_apis: *mut PhysicalDeviceLayeredApiPropertiesKHR<'a>, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceLayeredApiPropertiesListKHR<'_> {} +unsafe impl Sync for PhysicalDeviceLayeredApiPropertiesListKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceLayeredApiPropertiesListKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + layered_api_count: u32::default(), + p_layered_apis: ::core::ptr::null_mut(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDeviceLayeredApiPropertiesListKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR; +} +unsafe impl<'a> Extends> + for PhysicalDeviceLayeredApiPropertiesListKHR<'a> +{ +} +impl<'a> PhysicalDeviceLayeredApiPropertiesListKHR<'a> { + #[inline] + pub fn layered_apis( + mut self, + layered_apis: &'a mut [PhysicalDeviceLayeredApiPropertiesKHR<'_>], + ) -> Self { + self.layered_api_count = layered_apis.len() as _; + self.p_layered_apis = layered_apis.as_mut_ptr().cast(); + self + } +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceLayeredApiPropertiesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub vendor_id: u32, + pub device_id: u32, + pub layered_api: PhysicalDeviceLayeredApiKHR, + pub device_name: [c_char; MAX_PHYSICAL_DEVICE_NAME_SIZE], + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceLayeredApiPropertiesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceLayeredApiPropertiesKHR<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for PhysicalDeviceLayeredApiPropertiesKHR<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("PhysicalDeviceLayeredApiPropertiesKHR") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field("vendor_id", &self.vendor_id) + .field("device_id", &self.device_id) + .field("layered_api", &self.layered_api) + .field("device_name", &self.device_name_as_c_str()) + .finish() + } +} +impl ::core::default::Default for PhysicalDeviceLayeredApiPropertiesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + vendor_id: u32::default(), + device_id: u32::default(), + layered_api: PhysicalDeviceLayeredApiKHR::default(), + device_name: unsafe { ::core::mem::zeroed() }, + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDeviceLayeredApiPropertiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR; +} +unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceLayeredApiPropertiesKHR<'a> {} +impl<'a> PhysicalDeviceLayeredApiPropertiesKHR<'a> { + #[inline] + pub fn vendor_id(mut self, vendor_id: u32) -> Self { + self.vendor_id = vendor_id; + self + } + #[inline] + pub fn device_id(mut self, device_id: u32) -> Self { + self.device_id = device_id; + self + } + #[inline] + pub fn layered_api(mut self, layered_api: PhysicalDeviceLayeredApiKHR) -> Self { + self.layered_api = layered_api; + self + } + #[inline] + pub fn device_name( + mut self, + device_name: &CStr, + ) -> core::result::Result { + write_c_str_slice_with_nul(&mut self.device_name, device_name).map(|()| self) + } + #[inline] + pub fn device_name_as_c_str(&self) -> core::result::Result<&CStr, FromBytesUntilNulError> { + wrap_c_str_slice_until_nul(&self.device_name) + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceLayeredApiVulkanPropertiesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub properties: PhysicalDeviceProperties2<'a>, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceLayeredApiVulkanPropertiesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceLayeredApiVulkanPropertiesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceLayeredApiVulkanPropertiesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + properties: PhysicalDeviceProperties2::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDeviceLayeredApiVulkanPropertiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR; +} +unsafe impl<'a> Extends> + for PhysicalDeviceLayeredApiVulkanPropertiesKHR<'a> +{ +} +impl<'a> PhysicalDeviceLayeredApiVulkanPropertiesKHR<'a> { + #[inline] + pub fn properties(mut self, properties: PhysicalDeviceProperties2<'a>) -> Self { + self.properties = properties; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct RenderingAreaInfoKHR<'a> { @@ -23007,18 +23661,18 @@ impl<'a> PhysicalDeviceCornerSampledImageFeaturesNV<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceComputeShaderDerivativesFeaturesNV<'a> { +pub struct PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub compute_derivative_group_quads: Bool32, pub compute_derivative_group_linear: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceComputeShaderDerivativesFeaturesNV<'_> {} -unsafe impl Sync for PhysicalDeviceComputeShaderDerivativesFeaturesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceComputeShaderDerivativesFeaturesNV<'_> { +unsafe impl Send for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'_> { #[inline] fn default() -> Self { Self { @@ -23030,19 +23684,19 @@ impl ::core::default::Default for PhysicalDeviceComputeShaderDerivativesFeatures } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceComputeShaderDerivativesFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV; + StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR; } unsafe impl<'a> Extends> - for PhysicalDeviceComputeShaderDerivativesFeaturesNV<'a> + for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> { } unsafe impl<'a> Extends> - for PhysicalDeviceComputeShaderDerivativesFeaturesNV<'a> + for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> { } -impl<'a> PhysicalDeviceComputeShaderDerivativesFeaturesNV<'a> { +impl<'a> PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> { #[inline] pub fn compute_derivative_group_quads(mut self, compute_derivative_group_quads: bool) -> Self { self.compute_derivative_group_quads = compute_derivative_group_quads.into(); @@ -23060,6 +23714,48 @@ impl<'a> PhysicalDeviceComputeShaderDerivativesFeaturesNV<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub mesh_and_task_shader_derivatives: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + mesh_and_task_shader_derivatives: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR; +} +unsafe impl<'a> Extends> + for PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'a> +{ +} +impl<'a> PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'a> { + #[inline] + pub fn mesh_and_task_shader_derivatives( + mut self, + mesh_and_task_shader_derivatives: bool, + ) -> Self { + self.mesh_and_task_shader_derivatives = mesh_and_task_shader_derivatives.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct PhysicalDeviceShaderImageFootprintFeaturesNV<'a> { @@ -36872,6 +37568,88 @@ impl<'a> PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub legacy_vertex_attributes: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + legacy_vertex_attributes: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT; +} +unsafe impl<'a> Extends> + for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a> +{ +} +impl<'a> PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a> { + #[inline] + pub fn legacy_vertex_attributes(mut self, legacy_vertex_attributes: bool) -> Self { + self.legacy_vertex_attributes = legacy_vertex_attributes.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub native_unaligned_performance: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + native_unaligned_performance: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT; +} +unsafe impl<'a> Extends> + for PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'a> +{ +} +impl<'a> PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'a> { + #[inline] + pub fn native_unaligned_performance(mut self, native_unaligned_performance: bool) -> Self { + self.native_unaligned_performance = native_unaligned_performance.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'a> { @@ -37030,6 +37808,1034 @@ impl<'a> PhysicalDeviceDepthClipControlFeaturesEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub device_generated_commands: Bool32, + pub dynamic_generated_pipeline_layout: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + device_generated_commands: Bool32::default(), + dynamic_generated_pipeline_layout: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT; +} +unsafe impl<'a> Extends> + for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> +{ +} +impl<'a> PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> { + #[inline] + pub fn device_generated_commands(mut self, device_generated_commands: bool) -> Self { + self.device_generated_commands = device_generated_commands.into(); + self + } + #[inline] + pub fn dynamic_generated_pipeline_layout( + mut self, + dynamic_generated_pipeline_layout: bool, + ) -> Self { + self.dynamic_generated_pipeline_layout = dynamic_generated_pipeline_layout.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub max_indirect_pipeline_count: u32, + pub max_indirect_shader_object_count: u32, + pub max_indirect_sequence_count: u32, + pub max_indirect_commands_token_count: u32, + pub max_indirect_commands_token_offset: u32, + pub max_indirect_commands_indirect_stride: u32, + pub supported_indirect_commands_input_modes: IndirectCommandsInputModeFlagsEXT, + pub supported_indirect_commands_shader_stages: ShaderStageFlags, + pub supported_indirect_commands_shader_stages_pipeline_binding: ShaderStageFlags, + pub supported_indirect_commands_shader_stages_shader_binding: ShaderStageFlags, + pub device_generated_commands_transform_feedback: Bool32, + pub device_generated_commands_multi_draw_indirect_count: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + max_indirect_pipeline_count: u32::default(), + max_indirect_shader_object_count: u32::default(), + max_indirect_sequence_count: u32::default(), + max_indirect_commands_token_count: u32::default(), + max_indirect_commands_token_offset: u32::default(), + max_indirect_commands_indirect_stride: u32::default(), + supported_indirect_commands_input_modes: IndirectCommandsInputModeFlagsEXT::default(), + supported_indirect_commands_shader_stages: ShaderStageFlags::default(), + supported_indirect_commands_shader_stages_pipeline_binding: ShaderStageFlags::default(), + supported_indirect_commands_shader_stages_shader_binding: ShaderStageFlags::default(), + device_generated_commands_transform_feedback: Bool32::default(), + device_generated_commands_multi_draw_indirect_count: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT; +} +unsafe impl<'a> Extends> + for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'a> +{ +} +impl<'a> PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'a> { + #[inline] + pub fn max_indirect_pipeline_count(mut self, max_indirect_pipeline_count: u32) -> Self { + self.max_indirect_pipeline_count = max_indirect_pipeline_count; + self + } + #[inline] + pub fn max_indirect_shader_object_count( + mut self, + max_indirect_shader_object_count: u32, + ) -> Self { + self.max_indirect_shader_object_count = max_indirect_shader_object_count; + self + } + #[inline] + pub fn max_indirect_sequence_count(mut self, max_indirect_sequence_count: u32) -> Self { + self.max_indirect_sequence_count = max_indirect_sequence_count; + self + } + #[inline] + pub fn max_indirect_commands_token_count( + mut self, + max_indirect_commands_token_count: u32, + ) -> Self { + self.max_indirect_commands_token_count = max_indirect_commands_token_count; + self + } + #[inline] + pub fn max_indirect_commands_token_offset( + mut self, + max_indirect_commands_token_offset: u32, + ) -> Self { + self.max_indirect_commands_token_offset = max_indirect_commands_token_offset; + self + } + #[inline] + pub fn max_indirect_commands_indirect_stride( + mut self, + max_indirect_commands_indirect_stride: u32, + ) -> Self { + self.max_indirect_commands_indirect_stride = max_indirect_commands_indirect_stride; + self + } + #[inline] + pub fn supported_indirect_commands_input_modes( + mut self, + supported_indirect_commands_input_modes: IndirectCommandsInputModeFlagsEXT, + ) -> Self { + self.supported_indirect_commands_input_modes = supported_indirect_commands_input_modes; + self + } + #[inline] + pub fn supported_indirect_commands_shader_stages( + mut self, + supported_indirect_commands_shader_stages: ShaderStageFlags, + ) -> Self { + self.supported_indirect_commands_shader_stages = supported_indirect_commands_shader_stages; + self + } + #[inline] + pub fn supported_indirect_commands_shader_stages_pipeline_binding( + mut self, + supported_indirect_commands_shader_stages_pipeline_binding: ShaderStageFlags, + ) -> Self { + self.supported_indirect_commands_shader_stages_pipeline_binding = + supported_indirect_commands_shader_stages_pipeline_binding; + self + } + #[inline] + pub fn supported_indirect_commands_shader_stages_shader_binding( + mut self, + supported_indirect_commands_shader_stages_shader_binding: ShaderStageFlags, + ) -> Self { + self.supported_indirect_commands_shader_stages_shader_binding = + supported_indirect_commands_shader_stages_shader_binding; + self + } + #[inline] + pub fn device_generated_commands_transform_feedback( + mut self, + device_generated_commands_transform_feedback: bool, + ) -> Self { + self.device_generated_commands_transform_feedback = + device_generated_commands_transform_feedback.into(); + self + } + #[inline] + pub fn device_generated_commands_multi_draw_indirect_count( + mut self, + device_generated_commands_multi_draw_indirect_count: bool, + ) -> Self { + self.device_generated_commands_multi_draw_indirect_count = + device_generated_commands_multi_draw_indirect_count.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct GeneratedCommandsPipelineInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub pipeline: Pipeline, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for GeneratedCommandsPipelineInfoEXT<'_> {} +unsafe impl Sync for GeneratedCommandsPipelineInfoEXT<'_> {} +impl ::core::default::Default for GeneratedCommandsPipelineInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + pipeline: Pipeline::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for GeneratedCommandsPipelineInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_PIPELINE_INFO_EXT; +} +unsafe impl<'a> Extends> for GeneratedCommandsPipelineInfoEXT<'a> {} +unsafe impl<'a> Extends> + for GeneratedCommandsPipelineInfoEXT<'a> +{ +} +impl<'a> GeneratedCommandsPipelineInfoEXT<'a> { + #[inline] + pub fn pipeline(mut self, pipeline: Pipeline) -> Self { + self.pipeline = pipeline; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct GeneratedCommandsShaderInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub shader_count: u32, + pub p_shaders: *const ShaderEXT, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for GeneratedCommandsShaderInfoEXT<'_> {} +unsafe impl Sync for GeneratedCommandsShaderInfoEXT<'_> {} +impl ::core::default::Default for GeneratedCommandsShaderInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + shader_count: u32::default(), + p_shaders: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for GeneratedCommandsShaderInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_SHADER_INFO_EXT; +} +unsafe impl<'a> Extends> for GeneratedCommandsShaderInfoEXT<'a> {} +unsafe impl<'a> Extends> + for GeneratedCommandsShaderInfoEXT<'a> +{ +} +impl<'a> GeneratedCommandsShaderInfoEXT<'a> { + #[inline] + pub fn shaders(mut self, shaders: &'a [ShaderEXT]) -> Self { + self.shader_count = shaders.len() as _; + self.p_shaders = shaders.as_ptr(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct GeneratedCommandsMemoryRequirementsInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub indirect_execution_set: IndirectExecutionSetEXT, + pub indirect_commands_layout: IndirectCommandsLayoutEXT, + pub max_sequence_count: u32, + pub max_draw_count: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for GeneratedCommandsMemoryRequirementsInfoEXT<'_> {} +unsafe impl Sync for GeneratedCommandsMemoryRequirementsInfoEXT<'_> {} +impl ::core::default::Default for GeneratedCommandsMemoryRequirementsInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + indirect_execution_set: IndirectExecutionSetEXT::default(), + indirect_commands_layout: IndirectCommandsLayoutEXT::default(), + max_sequence_count: u32::default(), + max_draw_count: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for GeneratedCommandsMemoryRequirementsInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT; +} +unsafe impl<'a> BaseTaggedStructure<'a> for GeneratedCommandsMemoryRequirementsInfoEXT<'a> {} +impl<'a> GeneratedCommandsMemoryRequirementsInfoEXT<'a> { + #[inline] + pub fn indirect_execution_set( + mut self, + indirect_execution_set: IndirectExecutionSetEXT, + ) -> Self { + self.indirect_execution_set = indirect_execution_set; + self + } + #[inline] + pub fn indirect_commands_layout( + mut self, + indirect_commands_layout: IndirectCommandsLayoutEXT, + ) -> Self { + self.indirect_commands_layout = indirect_commands_layout; + self + } + #[inline] + pub fn max_sequence_count(mut self, max_sequence_count: u32) -> Self { + self.max_sequence_count = max_sequence_count; + self + } + #[inline] + pub fn max_draw_count(mut self, max_draw_count: u32) -> Self { + self.max_draw_count = max_draw_count; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct IndirectExecutionSetPipelineInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub initial_pipeline: Pipeline, + pub max_pipeline_count: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for IndirectExecutionSetPipelineInfoEXT<'_> {} +unsafe impl Sync for IndirectExecutionSetPipelineInfoEXT<'_> {} +impl ::core::default::Default for IndirectExecutionSetPipelineInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + initial_pipeline: Pipeline::default(), + max_pipeline_count: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for IndirectExecutionSetPipelineInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT; +} +impl<'a> IndirectExecutionSetPipelineInfoEXT<'a> { + #[inline] + pub fn initial_pipeline(mut self, initial_pipeline: Pipeline) -> Self { + self.initial_pipeline = initial_pipeline; + self + } + #[inline] + pub fn max_pipeline_count(mut self, max_pipeline_count: u32) -> Self { + self.max_pipeline_count = max_pipeline_count; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct IndirectExecutionSetShaderLayoutInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub set_layout_count: u32, + pub p_set_layouts: *const DescriptorSetLayout, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for IndirectExecutionSetShaderLayoutInfoEXT<'_> {} +unsafe impl Sync for IndirectExecutionSetShaderLayoutInfoEXT<'_> {} +impl ::core::default::Default for IndirectExecutionSetShaderLayoutInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + set_layout_count: u32::default(), + p_set_layouts: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for IndirectExecutionSetShaderLayoutInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT; +} +impl<'a> IndirectExecutionSetShaderLayoutInfoEXT<'a> { + #[inline] + pub fn set_layouts(mut self, set_layouts: &'a [DescriptorSetLayout]) -> Self { + self.set_layout_count = set_layouts.len() as _; + self.p_set_layouts = set_layouts.as_ptr(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct IndirectExecutionSetShaderInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub shader_count: u32, + pub p_initial_shaders: *const ShaderEXT, + pub p_set_layout_infos: *const IndirectExecutionSetShaderLayoutInfoEXT<'a>, + pub max_shader_count: u32, + pub push_constant_range_count: u32, + pub p_push_constant_ranges: *const PushConstantRange, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for IndirectExecutionSetShaderInfoEXT<'_> {} +unsafe impl Sync for IndirectExecutionSetShaderInfoEXT<'_> {} +impl ::core::default::Default for IndirectExecutionSetShaderInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + shader_count: u32::default(), + p_initial_shaders: ::core::ptr::null(), + p_set_layout_infos: ::core::ptr::null(), + max_shader_count: u32::default(), + push_constant_range_count: u32::default(), + p_push_constant_ranges: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for IndirectExecutionSetShaderInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_EXECUTION_SET_SHADER_INFO_EXT; +} +impl<'a> IndirectExecutionSetShaderInfoEXT<'a> { + #[inline] + pub fn initial_shaders(mut self, initial_shaders: &'a [ShaderEXT]) -> Self { + self.shader_count = initial_shaders.len() as _; + self.p_initial_shaders = initial_shaders.as_ptr(); + self + } + #[inline] + pub fn set_layout_infos( + mut self, + set_layout_infos: &'a [IndirectExecutionSetShaderLayoutInfoEXT<'a>], + ) -> Self { + self.shader_count = set_layout_infos.len() as _; + self.p_set_layout_infos = set_layout_infos.as_ptr(); + self + } + #[inline] + pub fn max_shader_count(mut self, max_shader_count: u32) -> Self { + self.max_shader_count = max_shader_count; + self + } + #[inline] + pub fn push_constant_ranges(mut self, push_constant_ranges: &'a [PushConstantRange]) -> Self { + self.push_constant_range_count = push_constant_ranges.len() as _; + self.p_push_constant_ranges = push_constant_ranges.as_ptr(); + self + } +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +pub union IndirectExecutionSetInfoEXT<'a> { + pub p_pipeline_info: *const IndirectExecutionSetPipelineInfoEXT<'a>, + pub p_shader_info: *const IndirectExecutionSetShaderInfoEXT<'a>, +} +impl<'a> ::core::default::Default for IndirectExecutionSetInfoEXT<'a> { + #[inline] + fn default() -> Self { + unsafe { ::core::mem::zeroed() } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct IndirectExecutionSetCreateInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub ty: IndirectExecutionSetInfoTypeEXT, + pub info: IndirectExecutionSetInfoEXT<'a>, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for IndirectExecutionSetCreateInfoEXT<'_> {} +unsafe impl Sync for IndirectExecutionSetCreateInfoEXT<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for IndirectExecutionSetCreateInfoEXT<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("IndirectExecutionSetCreateInfoEXT") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field("ty", &self.ty) + .field("info", &"union") + .finish() + } +} +impl ::core::default::Default for IndirectExecutionSetCreateInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + ty: IndirectExecutionSetInfoTypeEXT::default(), + info: IndirectExecutionSetInfoEXT::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for IndirectExecutionSetCreateInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_EXECUTION_SET_CREATE_INFO_EXT; +} +impl<'a> IndirectExecutionSetCreateInfoEXT<'a> { + #[inline] + pub fn ty(mut self, ty: IndirectExecutionSetInfoTypeEXT) -> Self { + self.ty = ty; + self + } + #[inline] + pub fn info(mut self, info: IndirectExecutionSetInfoEXT<'a>) -> Self { + self.info = info; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct GeneratedCommandsInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub shader_stages: ShaderStageFlags, + pub indirect_execution_set: IndirectExecutionSetEXT, + pub indirect_commands_layout: IndirectCommandsLayoutEXT, + pub indirect_address: DeviceAddress, + pub indirect_address_size: DeviceSize, + pub preprocess_address: DeviceAddress, + pub preprocess_size: DeviceSize, + pub max_sequence_count: u32, + pub sequence_count_address: DeviceAddress, + pub max_draw_count: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for GeneratedCommandsInfoEXT<'_> {} +unsafe impl Sync for GeneratedCommandsInfoEXT<'_> {} +impl ::core::default::Default for GeneratedCommandsInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + shader_stages: ShaderStageFlags::default(), + indirect_execution_set: IndirectExecutionSetEXT::default(), + indirect_commands_layout: IndirectCommandsLayoutEXT::default(), + indirect_address: DeviceAddress::default(), + indirect_address_size: DeviceSize::default(), + preprocess_address: DeviceAddress::default(), + preprocess_size: DeviceSize::default(), + max_sequence_count: u32::default(), + sequence_count_address: DeviceAddress::default(), + max_draw_count: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for GeneratedCommandsInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_INFO_EXT; +} +unsafe impl<'a> BaseTaggedStructure<'a> for GeneratedCommandsInfoEXT<'a> {} +impl<'a> GeneratedCommandsInfoEXT<'a> { + #[inline] + pub fn shader_stages(mut self, shader_stages: ShaderStageFlags) -> Self { + self.shader_stages = shader_stages; + self + } + #[inline] + pub fn indirect_execution_set( + mut self, + indirect_execution_set: IndirectExecutionSetEXT, + ) -> Self { + self.indirect_execution_set = indirect_execution_set; + self + } + #[inline] + pub fn indirect_commands_layout( + mut self, + indirect_commands_layout: IndirectCommandsLayoutEXT, + ) -> Self { + self.indirect_commands_layout = indirect_commands_layout; + self + } + #[inline] + pub fn indirect_address(mut self, indirect_address: DeviceAddress) -> Self { + self.indirect_address = indirect_address; + self + } + #[inline] + pub fn indirect_address_size(mut self, indirect_address_size: DeviceSize) -> Self { + self.indirect_address_size = indirect_address_size; + self + } + #[inline] + pub fn preprocess_address(mut self, preprocess_address: DeviceAddress) -> Self { + self.preprocess_address = preprocess_address; + self + } + #[inline] + pub fn preprocess_size(mut self, preprocess_size: DeviceSize) -> Self { + self.preprocess_size = preprocess_size; + self + } + #[inline] + pub fn max_sequence_count(mut self, max_sequence_count: u32) -> Self { + self.max_sequence_count = max_sequence_count; + self + } + #[inline] + pub fn sequence_count_address(mut self, sequence_count_address: DeviceAddress) -> Self { + self.sequence_count_address = sequence_count_address; + self + } + #[inline] + pub fn max_draw_count(mut self, max_draw_count: u32) -> Self { + self.max_draw_count = max_draw_count; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct WriteIndirectExecutionSetPipelineEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub index: u32, + pub pipeline: Pipeline, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for WriteIndirectExecutionSetPipelineEXT<'_> {} +unsafe impl Sync for WriteIndirectExecutionSetPipelineEXT<'_> {} +impl ::core::default::Default for WriteIndirectExecutionSetPipelineEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + index: u32::default(), + pipeline: Pipeline::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for WriteIndirectExecutionSetPipelineEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT; +} +impl<'a> WriteIndirectExecutionSetPipelineEXT<'a> { + #[inline] + pub fn index(mut self, index: u32) -> Self { + self.index = index; + self + } + #[inline] + pub fn pipeline(mut self, pipeline: Pipeline) -> Self { + self.pipeline = pipeline; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct WriteIndirectExecutionSetShaderEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub index: u32, + pub shader: ShaderEXT, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for WriteIndirectExecutionSetShaderEXT<'_> {} +unsafe impl Sync for WriteIndirectExecutionSetShaderEXT<'_> {} +impl ::core::default::Default for WriteIndirectExecutionSetShaderEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + index: u32::default(), + shader: ShaderEXT::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for WriteIndirectExecutionSetShaderEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT; +} +impl<'a> WriteIndirectExecutionSetShaderEXT<'a> { + #[inline] + pub fn index(mut self, index: u32) -> Self { + self.index = index; + self + } + #[inline] + pub fn shader(mut self, shader: ShaderEXT) -> Self { + self.shader = shader; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct IndirectCommandsLayoutCreateInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub flags: IndirectCommandsLayoutUsageFlagsEXT, + pub shader_stages: ShaderStageFlags, + pub indirect_stride: u32, + pub pipeline_layout: PipelineLayout, + pub token_count: u32, + pub p_tokens: *const IndirectCommandsLayoutTokenEXT<'a>, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for IndirectCommandsLayoutCreateInfoEXT<'_> {} +unsafe impl Sync for IndirectCommandsLayoutCreateInfoEXT<'_> {} +impl ::core::default::Default for IndirectCommandsLayoutCreateInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + flags: IndirectCommandsLayoutUsageFlagsEXT::default(), + shader_stages: ShaderStageFlags::default(), + indirect_stride: u32::default(), + pipeline_layout: PipelineLayout::default(), + token_count: u32::default(), + p_tokens: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for IndirectCommandsLayoutCreateInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT; +} +unsafe impl<'a> BaseTaggedStructure<'a> for IndirectCommandsLayoutCreateInfoEXT<'a> {} +impl<'a> IndirectCommandsLayoutCreateInfoEXT<'a> { + #[inline] + pub fn flags(mut self, flags: IndirectCommandsLayoutUsageFlagsEXT) -> Self { + self.flags = flags; + self + } + #[inline] + pub fn shader_stages(mut self, shader_stages: ShaderStageFlags) -> Self { + self.shader_stages = shader_stages; + self + } + #[inline] + pub fn indirect_stride(mut self, indirect_stride: u32) -> Self { + self.indirect_stride = indirect_stride; + self + } + #[inline] + pub fn pipeline_layout(mut self, pipeline_layout: PipelineLayout) -> Self { + self.pipeline_layout = pipeline_layout; + self + } + #[inline] + pub fn tokens(mut self, tokens: &'a [IndirectCommandsLayoutTokenEXT<'a>]) -> Self { + self.token_count = tokens.len() as _; + self.p_tokens = tokens.as_ptr(); + self + } +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct IndirectCommandsLayoutTokenEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub ty: IndirectCommandsTokenTypeEXT, + pub data: IndirectCommandsTokenDataEXT, + pub offset: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for IndirectCommandsLayoutTokenEXT<'_> {} +unsafe impl Sync for IndirectCommandsLayoutTokenEXT<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for IndirectCommandsLayoutTokenEXT<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("IndirectCommandsLayoutTokenEXT") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field("ty", &self.ty) + .field("data", &"union") + .field("offset", &self.offset) + .finish() + } +} +impl ::core::default::Default for IndirectCommandsLayoutTokenEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + ty: IndirectCommandsTokenTypeEXT::default(), + data: IndirectCommandsTokenDataEXT::default(), + offset: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for IndirectCommandsLayoutTokenEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT; +} +impl<'a> IndirectCommandsLayoutTokenEXT<'a> { + #[inline] + pub fn ty(mut self, ty: IndirectCommandsTokenTypeEXT) -> Self { + self.ty = ty; + self + } + #[inline] + pub fn data(mut self, data: IndirectCommandsTokenDataEXT) -> Self { + self.data = data; + self + } + #[inline] + pub fn offset(mut self, offset: u32) -> Self { + self.offset = offset; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct DrawIndirectCountIndirectCommandEXT { + pub buffer_address: DeviceAddress, + pub stride: u32, + pub command_count: u32, +} +impl DrawIndirectCountIndirectCommandEXT { + #[inline] + pub fn buffer_address(mut self, buffer_address: DeviceAddress) -> Self { + self.buffer_address = buffer_address; + self + } + #[inline] + pub fn stride(mut self, stride: u32) -> Self { + self.stride = stride; + self + } + #[inline] + pub fn command_count(mut self, command_count: u32) -> Self { + self.command_count = command_count; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct IndirectCommandsVertexBufferTokenEXT { + pub vertex_binding_unit: u32, +} +impl IndirectCommandsVertexBufferTokenEXT { + #[inline] + pub fn vertex_binding_unit(mut self, vertex_binding_unit: u32) -> Self { + self.vertex_binding_unit = vertex_binding_unit; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct BindVertexBufferIndirectCommandEXT { + pub buffer_address: DeviceAddress, + pub size: u32, + pub stride: u32, +} +impl BindVertexBufferIndirectCommandEXT { + #[inline] + pub fn buffer_address(mut self, buffer_address: DeviceAddress) -> Self { + self.buffer_address = buffer_address; + self + } + #[inline] + pub fn size(mut self, size: u32) -> Self { + self.size = size; + self + } + #[inline] + pub fn stride(mut self, stride: u32) -> Self { + self.stride = stride; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct IndirectCommandsIndexBufferTokenEXT { + pub mode: IndirectCommandsInputModeFlagsEXT, +} +impl IndirectCommandsIndexBufferTokenEXT { + #[inline] + pub fn mode(mut self, mode: IndirectCommandsInputModeFlagsEXT) -> Self { + self.mode = mode; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct BindIndexBufferIndirectCommandEXT { + pub buffer_address: DeviceAddress, + pub size: u32, + pub index_type: IndexType, +} +impl BindIndexBufferIndirectCommandEXT { + #[inline] + pub fn buffer_address(mut self, buffer_address: DeviceAddress) -> Self { + self.buffer_address = buffer_address; + self + } + #[inline] + pub fn size(mut self, size: u32) -> Self { + self.size = size; + self + } + #[inline] + pub fn index_type(mut self, index_type: IndexType) -> Self { + self.index_type = index_type; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct IndirectCommandsPushConstantTokenEXT { + pub update_range: PushConstantRange, +} +impl IndirectCommandsPushConstantTokenEXT { + #[inline] + pub fn update_range(mut self, update_range: PushConstantRange) -> Self { + self.update_range = update_range; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct IndirectCommandsExecutionSetTokenEXT { + pub ty: IndirectExecutionSetInfoTypeEXT, + pub shader_stages: ShaderStageFlags, +} +impl IndirectCommandsExecutionSetTokenEXT { + #[inline] + pub fn ty(mut self, ty: IndirectExecutionSetInfoTypeEXT) -> Self { + self.ty = ty; + self + } + #[inline] + pub fn shader_stages(mut self, shader_stages: ShaderStageFlags) -> Self { + self.shader_stages = shader_stages; + self + } +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +pub union IndirectCommandsTokenDataEXT { + pub p_push_constant: *const IndirectCommandsPushConstantTokenEXT, + pub p_vertex_buffer: *const IndirectCommandsVertexBufferTokenEXT, + pub p_index_buffer: *const IndirectCommandsIndexBufferTokenEXT, + pub p_execution_set: *const IndirectCommandsExecutionSetTokenEXT, +} +impl ::core::default::Default for IndirectCommandsTokenDataEXT { + #[inline] + fn default() -> Self { + unsafe { ::core::mem::zeroed() } + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct PipelineViewportDepthClipControlCreateInfoEXT<'a> { @@ -37069,6 +38875,92 @@ impl<'a> PipelineViewportDepthClipControlCreateInfoEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceDepthClampControlFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub depth_clamp_control: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceDepthClampControlFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceDepthClampControlFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceDepthClampControlFeaturesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + depth_clamp_control: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthClampControlFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT; +} +unsafe impl<'a> Extends> + for PhysicalDeviceDepthClampControlFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDeviceDepthClampControlFeaturesEXT<'a> {} +impl<'a> PhysicalDeviceDepthClampControlFeaturesEXT<'a> { + #[inline] + pub fn depth_clamp_control(mut self, depth_clamp_control: bool) -> Self { + self.depth_clamp_control = depth_clamp_control.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PipelineViewportDepthClampControlCreateInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub depth_clamp_mode: DepthClampModeEXT, + pub p_depth_clamp_range: *const DepthClampRangeEXT, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PipelineViewportDepthClampControlCreateInfoEXT<'_> {} +unsafe impl Sync for PipelineViewportDepthClampControlCreateInfoEXT<'_> {} +impl ::core::default::Default for PipelineViewportDepthClampControlCreateInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + depth_clamp_mode: DepthClampModeEXT::default(), + p_depth_clamp_range: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PipelineViewportDepthClampControlCreateInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT; +} +unsafe impl<'a> Extends> + for PipelineViewportDepthClampControlCreateInfoEXT<'a> +{ +} +impl<'a> PipelineViewportDepthClampControlCreateInfoEXT<'a> { + #[inline] + pub fn depth_clamp_mode(mut self, depth_clamp_mode: DepthClampModeEXT) -> Self { + self.depth_clamp_mode = depth_clamp_mode; + self + } + #[inline] + pub fn depth_clamp_range(mut self, depth_clamp_range: &'a DepthClampRangeEXT) -> Self { + self.p_depth_clamp_range = depth_clamp_range; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct PhysicalDeviceVertexInputDynamicStateFeaturesEXT<'a> { @@ -37152,6 +39044,52 @@ impl<'a> PhysicalDeviceExternalMemoryRDMAFeaturesNV<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub shader_relaxed_extended_instruction: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + shader_relaxed_extended_instruction: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR; +} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a> +{ +} +impl<'a> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a> { + #[inline] + pub fn shader_relaxed_extended_instruction( + mut self, + shader_relaxed_extended_instruction: bool, + ) -> Self { + self.shader_relaxed_extended_instruction = shader_relaxed_extended_instruction.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct VertexInputBindingDescription2EXT<'a> { @@ -44182,7 +46120,7 @@ impl<'a> DescriptorAddressInfoEXT<'a> { #[must_use] pub struct DescriptorBufferBindingInfoEXT<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, + pub p_next: *const c_void, pub address: DeviceAddress, pub usage: BufferUsageFlags, pub _marker: PhantomData<&'a ()>, @@ -44194,7 +46132,7 @@ impl ::core::default::Default for DescriptorBufferBindingInfoEXT<'_> { fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), + p_next: ::core::ptr::null(), address: DeviceAddress::default(), usage: BufferUsageFlags::default(), _marker: PhantomData, @@ -44224,7 +46162,7 @@ impl<'a> DescriptorBufferBindingInfoEXT<'a> { #[must_use] pub struct DescriptorBufferBindingPushDescriptorBufferHandleEXT<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, + pub p_next: *const c_void, pub buffer: Buffer, pub _marker: PhantomData<&'a ()>, } @@ -44235,7 +46173,7 @@ impl ::core::default::Default for DescriptorBufferBindingPushDescriptorBufferHan fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), + p_next: ::core::ptr::null(), buffer: Buffer::default(), _marker: PhantomData, } @@ -47302,6 +49240,162 @@ impl<'a> PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDevicePipelineBinaryFeaturesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub pipeline_binaries: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDevicePipelineBinaryFeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDevicePipelineBinaryFeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDevicePipelineBinaryFeaturesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + pipeline_binaries: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineBinaryFeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR; +} +unsafe impl<'a> Extends> + for PhysicalDevicePipelineBinaryFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends> for PhysicalDevicePipelineBinaryFeaturesKHR<'a> {} +impl<'a> PhysicalDevicePipelineBinaryFeaturesKHR<'a> { + #[inline] + pub fn pipeline_binaries(mut self, pipeline_binaries: bool) -> Self { + self.pipeline_binaries = pipeline_binaries.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct DevicePipelineBinaryInternalCacheControlKHR<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub disable_internal_cache: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for DevicePipelineBinaryInternalCacheControlKHR<'_> {} +unsafe impl Sync for DevicePipelineBinaryInternalCacheControlKHR<'_> {} +impl ::core::default::Default for DevicePipelineBinaryInternalCacheControlKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + disable_internal_cache: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for DevicePipelineBinaryInternalCacheControlKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR; +} +unsafe impl<'a> Extends> for DevicePipelineBinaryInternalCacheControlKHR<'a> {} +impl<'a> DevicePipelineBinaryInternalCacheControlKHR<'a> { + #[inline] + pub fn disable_internal_cache(mut self, disable_internal_cache: bool) -> Self { + self.disable_internal_cache = disable_internal_cache.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDevicePipelineBinaryPropertiesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub pipeline_binary_internal_cache: Bool32, + pub pipeline_binary_internal_cache_control: Bool32, + pub pipeline_binary_prefers_internal_cache: Bool32, + pub pipeline_binary_precompiled_internal_cache: Bool32, + pub pipeline_binary_compressed_data: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDevicePipelineBinaryPropertiesKHR<'_> {} +unsafe impl Sync for PhysicalDevicePipelineBinaryPropertiesKHR<'_> {} +impl ::core::default::Default for PhysicalDevicePipelineBinaryPropertiesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + pipeline_binary_internal_cache: Bool32::default(), + pipeline_binary_internal_cache_control: Bool32::default(), + pipeline_binary_prefers_internal_cache: Bool32::default(), + pipeline_binary_precompiled_internal_cache: Bool32::default(), + pipeline_binary_compressed_data: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineBinaryPropertiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR; +} +unsafe impl<'a> Extends> + for PhysicalDevicePipelineBinaryPropertiesKHR<'a> +{ +} +impl<'a> PhysicalDevicePipelineBinaryPropertiesKHR<'a> { + #[inline] + pub fn pipeline_binary_internal_cache(mut self, pipeline_binary_internal_cache: bool) -> Self { + self.pipeline_binary_internal_cache = pipeline_binary_internal_cache.into(); + self + } + #[inline] + pub fn pipeline_binary_internal_cache_control( + mut self, + pipeline_binary_internal_cache_control: bool, + ) -> Self { + self.pipeline_binary_internal_cache_control = pipeline_binary_internal_cache_control.into(); + self + } + #[inline] + pub fn pipeline_binary_prefers_internal_cache( + mut self, + pipeline_binary_prefers_internal_cache: bool, + ) -> Self { + self.pipeline_binary_prefers_internal_cache = pipeline_binary_prefers_internal_cache.into(); + self + } + #[inline] + pub fn pipeline_binary_precompiled_internal_cache( + mut self, + pipeline_binary_precompiled_internal_cache: bool, + ) -> Self { + self.pipeline_binary_precompiled_internal_cache = + pipeline_binary_precompiled_internal_cache.into(); + self + } + #[inline] + pub fn pipeline_binary_compressed_data( + mut self, + pipeline_binary_compressed_data: bool, + ) -> Self { + self.pipeline_binary_compressed_data = pipeline_binary_compressed_data.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'a> { @@ -54104,6 +56198,134 @@ impl DispatchGraphCountInfoAMDX { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceAntiLagFeaturesAMD<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub anti_lag: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceAntiLagFeaturesAMD<'_> {} +unsafe impl Sync for PhysicalDeviceAntiLagFeaturesAMD<'_> {} +impl ::core::default::Default for PhysicalDeviceAntiLagFeaturesAMD<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + anti_lag: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDeviceAntiLagFeaturesAMD<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD; +} +unsafe impl<'a> Extends> for PhysicalDeviceAntiLagFeaturesAMD<'a> {} +unsafe impl<'a> Extends> for PhysicalDeviceAntiLagFeaturesAMD<'a> {} +impl<'a> PhysicalDeviceAntiLagFeaturesAMD<'a> { + #[inline] + pub fn anti_lag(mut self, anti_lag: bool) -> Self { + self.anti_lag = anti_lag.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct AntiLagDataAMD<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub mode: AntiLagModeAMD, + pub max_fps: u32, + pub p_presentation_info: *const AntiLagPresentationInfoAMD<'a>, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for AntiLagDataAMD<'_> {} +unsafe impl Sync for AntiLagDataAMD<'_> {} +impl ::core::default::Default for AntiLagDataAMD<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + mode: AntiLagModeAMD::default(), + max_fps: u32::default(), + p_presentation_info: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for AntiLagDataAMD<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::ANTI_LAG_DATA_AMD; +} +impl<'a> AntiLagDataAMD<'a> { + #[inline] + pub fn mode(mut self, mode: AntiLagModeAMD) -> Self { + self.mode = mode; + self + } + #[inline] + pub fn max_fps(mut self, max_fps: u32) -> Self { + self.max_fps = max_fps; + self + } + #[inline] + pub fn presentation_info( + mut self, + presentation_info: &'a AntiLagPresentationInfoAMD<'a>, + ) -> Self { + self.p_presentation_info = presentation_info; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct AntiLagPresentationInfoAMD<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub stage: AntiLagStageAMD, + pub frame_index: u64, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for AntiLagPresentationInfoAMD<'_> {} +unsafe impl Sync for AntiLagPresentationInfoAMD<'_> {} +impl ::core::default::Default for AntiLagPresentationInfoAMD<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + stage: AntiLagStageAMD::default(), + frame_index: u64::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for AntiLagPresentationInfoAMD<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::ANTI_LAG_PRESENTATION_INFO_AMD; +} +impl<'a> AntiLagPresentationInfoAMD<'a> { + #[inline] + pub fn stage(mut self, stage: AntiLagStageAMD) -> Self { + self.stage = stage; + self + } + #[inline] + pub fn frame_index(mut self, frame_index: u64) -> Self { + self.frame_index = frame_index; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct BindMemoryStatusKHR<'a> { @@ -56606,3 +58828,227 @@ impl<'a> PhysicalDeviceRawAccessChainsFeaturesNV<'a> { self } } +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub command_buffer_inheritance: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + command_buffer_inheritance: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV; +} +unsafe impl<'a> Extends> + for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> +{ +} +impl<'a> PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { + #[inline] + pub fn command_buffer_inheritance(mut self, command_buffer_inheritance: bool) -> Self { + self.command_buffer_inheritance = command_buffer_inheritance.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub image_alignment_control: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> {} +unsafe impl Sync for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> {} +impl ::core::default::Default for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + image_alignment_control: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA; +} +unsafe impl<'a> Extends> + for PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> +{ +} +impl<'a> PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> { + #[inline] + pub fn image_alignment_control(mut self, image_alignment_control: bool) -> Self { + self.image_alignment_control = image_alignment_control.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub supported_image_alignment_mask: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceImageAlignmentControlPropertiesMESA<'_> {} +unsafe impl Sync for PhysicalDeviceImageAlignmentControlPropertiesMESA<'_> {} +impl ::core::default::Default for PhysicalDeviceImageAlignmentControlPropertiesMESA<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + supported_image_alignment_mask: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA; +} +unsafe impl<'a> Extends> + for PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> +{ +} +impl<'a> PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> { + #[inline] + pub fn supported_image_alignment_mask(mut self, supported_image_alignment_mask: u32) -> Self { + self.supported_image_alignment_mask = supported_image_alignment_mask; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ImageAlignmentControlCreateInfoMESA<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub maximum_requested_alignment: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ImageAlignmentControlCreateInfoMESA<'_> {} +unsafe impl Sync for ImageAlignmentControlCreateInfoMESA<'_> {} +impl ::core::default::Default for ImageAlignmentControlCreateInfoMESA<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + maximum_requested_alignment: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for ImageAlignmentControlCreateInfoMESA<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA; +} +unsafe impl<'a> Extends> for ImageAlignmentControlCreateInfoMESA<'a> {} +impl<'a> ImageAlignmentControlCreateInfoMESA<'a> { + #[inline] + pub fn maximum_requested_alignment(mut self, maximum_requested_alignment: u32) -> Self { + self.maximum_requested_alignment = maximum_requested_alignment; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub shader_replicated_composites: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + shader_replicated_composites: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT; +} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends> + for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> +{ +} +impl<'a> PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> { + #[inline] + pub fn shader_replicated_composites(mut self, shader_replicated_composites: bool) -> Self { + self.shader_replicated_composites = shader_replicated_composites.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct DepthClampRangeEXT { + pub min_depth_clamp: f32, + pub max_depth_clamp: f32, +} +impl DepthClampRangeEXT { + #[inline] + pub fn min_depth_clamp(mut self, min_depth_clamp: f32) -> Self { + self.min_depth_clamp = min_depth_clamp; + self + } + #[inline] + pub fn max_depth_clamp(mut self, max_depth_clamp: f32) -> Self { + self.max_depth_clamp = max_depth_clamp; + self + } +} diff --git a/ash/src/vk/enums.rs b/ash/src/vk/enums.rs index 643ca0259..ee9da963e 100644 --- a/ash/src/vk/enums.rs +++ b/ash/src/vk/enums.rs @@ -1122,6 +1122,43 @@ impl DirectDriverLoadingModeLUNARG { } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] +#[doc = ""] +pub struct AntiLagModeAMD(pub(crate) i32); +impl AntiLagModeAMD { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl AntiLagModeAMD { + pub const DRIVER_CONTROL: Self = Self(0); + pub const ON: Self = Self(1); + pub const OFF: Self = Self(2); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +#[doc = ""] +pub struct AntiLagStageAMD(pub(crate) i32); +impl AntiLagStageAMD { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl AntiLagStageAMD { + pub const INPUT: Self = Self(0); + pub const PRESENT: Self = Self(1); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] #[doc = ""] pub struct SemaphoreType(pub(crate) i32); impl SemaphoreType { @@ -1757,6 +1794,8 @@ impl VendorId { } } impl VendorId { + #[doc = "Khronos vendor ID"] + pub const KHRONOS: Self = Self(0x1_0000); #[doc = "Vivante vendor ID"] pub const VIV: Self = Self(0x1_0001); #[doc = "VeriSilicon vendor ID"] @@ -1838,7 +1877,9 @@ impl DriverId { #[doc = "Imagination Technologies"] pub const IMAGINATION_OPEN_SOURCE_MESA: Self = Self(25); #[doc = "Mesa open source project"] - pub const MESA_AGXV: Self = Self(26); + pub const MESA_HONEYKRISP: Self = Self(26); + #[doc = "Reserved for undisclosed driver project"] + pub const RESERVED_27: Self = Self(27); } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] @@ -2751,6 +2792,50 @@ impl DeviceFaultVendorBinaryHeaderVersionEXT { } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] +#[doc = ""] +pub struct IndirectExecutionSetInfoTypeEXT(pub(crate) i32); +impl IndirectExecutionSetInfoTypeEXT { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl IndirectExecutionSetInfoTypeEXT { + pub const PIPELINES: Self = Self(0); + pub const SHADER_OBJECTS: Self = Self(1); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +#[doc = ""] +pub struct IndirectCommandsTokenTypeEXT(pub(crate) i32); +impl IndirectCommandsTokenTypeEXT { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl IndirectCommandsTokenTypeEXT { + pub const EXECUTION_SET: Self = Self(0); + pub const PUSH_CONSTANT: Self = Self(1); + pub const SEQUENCE_INDEX: Self = Self(2); + pub const INDEX_BUFFER: Self = Self(3); + pub const VERTEX_BUFFER: Self = Self(4); + pub const DRAW_INDEXED: Self = Self(5); + pub const DRAW: Self = Self(6); + pub const DRAW_INDEXED_COUNT: Self = Self(7); + pub const DRAW_COUNT: Self = Self(8); + pub const DISPATCH: Self = Self(9); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] #[doc = ""] pub struct DisplacementMicromapFormatNV(pub(crate) i32); impl DisplacementMicromapFormatNV { @@ -2873,6 +2958,27 @@ impl BlockMatchWindowCompareModeQCOM { } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] +#[doc = ""] +pub struct PhysicalDeviceLayeredApiKHR(pub(crate) i32); +impl PhysicalDeviceLayeredApiKHR { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl PhysicalDeviceLayeredApiKHR { + pub const VULKAN: Self = Self(0); + pub const D3D12: Self = Self(1); + pub const METAL: Self = Self(2); + pub const OPENGL: Self = Self(3); + pub const OPENGLES: Self = Self(4); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] #[doc = ""] pub struct LayeredDriverUnderlyingApiMSFT(pub(crate) i32); impl LayeredDriverUnderlyingApiMSFT { @@ -2935,6 +3041,24 @@ impl OutOfBandQueueTypeNV { pub const RENDER: Self = Self(0); pub const PRESENT: Self = Self(1); } +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +#[doc = ""] +pub struct DepthClampModeEXT(pub(crate) i32); +impl DepthClampModeEXT { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl DepthClampModeEXT { + pub const VIEWPORT_RANGE: Self = Self(0); + pub const USER_DEFINED_RANGE: Self = Self(1); +} impl fmt::Debug for ObjectType { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { @@ -2986,6 +3110,9 @@ impl fmt::Debug for ObjectType { Self::MICROMAP_EXT => Some("MICROMAP_EXT"), Self::OPTICAL_FLOW_SESSION_NV => Some("OPTICAL_FLOW_SESSION_NV"), Self::SHADER_EXT => Some("SHADER_EXT"), + Self::PIPELINE_BINARY_KHR => Some("PIPELINE_BINARY_KHR"), + Self::INDIRECT_COMMANDS_LAYOUT_EXT => Some("INDIRECT_COMMANDS_LAYOUT_EXT"), + Self::INDIRECT_EXECUTION_SET_EXT => Some("INDIRECT_EXECUTION_SET_EXT"), Self::SAMPLER_YCBCR_CONVERSION => Some("SAMPLER_YCBCR_CONVERSION"), Self::DESCRIPTOR_UPDATE_TEMPLATE => Some("DESCRIPTOR_UPDATE_TEMPLATE"), Self::PRIVATE_DATA_SLOT => Some("PRIVATE_DATA_SLOT"), @@ -3061,6 +3188,8 @@ impl fmt::Debug for Result { } Self::ERROR_COMPRESSION_EXHAUSTED_EXT => Some("ERROR_COMPRESSION_EXHAUSTED_EXT"), Self::INCOMPATIBLE_SHADER_BINARY_EXT => Some("INCOMPATIBLE_SHADER_BINARY_EXT"), + Self::PIPELINE_BINARY_MISSING_KHR => Some("PIPELINE_BINARY_MISSING_KHR"), + Self::ERROR_NOT_ENOUGH_SPACE_KHR => Some("ERROR_NOT_ENOUGH_SPACE_KHR"), Self::ERROR_OUT_OF_POOL_MEMORY => Some("ERROR_OUT_OF_POOL_MEMORY"), Self::ERROR_INVALID_EXTERNAL_HANDLE => Some("ERROR_INVALID_EXTERNAL_HANDLE"), Self::ERROR_FRAGMENTATION => Some("ERROR_FRAGMENTATION"), diff --git a/ash/src/vk/extensions.rs b/ash/src/vk/extensions.rs index 075883d91..8d84a766e 100644 --- a/ash/src/vk/extensions.rs +++ b/ash/src/vk/extensions.rs @@ -755,6 +755,7 @@ impl ColorSpaceKHR { pub const BT709_NONLINEAR_EXT: Self = Self(1_000_104_006); pub const BT2020_LINEAR_EXT: Self = Self(1_000_104_007); pub const HDR10_ST2084_EXT: Self = Self(1_000_104_008); + #[deprecated] pub const DOLBYVISION_EXT: Self = Self(1_000_104_009); pub const HDR10_HLG_EXT: Self = Self(1_000_104_010); pub const ADOBERGB_LINEAR_EXT: Self = Self(1_000_104_011); @@ -1740,7 +1741,13 @@ impl SwapchainCreateFlagsKHR { } #[doc = "Generated from 'VK_NV_compute_shader_derivatives'"] impl StructureType { - pub const PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: Self = Self(1_000_201_000); + pub const PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: Self = + Self::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR; +} +#[doc = "Generated from 'VK_NV_mesh_shader'"] +impl IndirectCommandsTokenTypeEXT { + pub const DRAW_MESH_TASKS_NV: Self = Self(1_000_202_002); + pub const DRAW_MESH_TASKS_COUNT_NV: Self = Self(1_000_202_003); } #[doc = "Generated from 'VK_NV_mesh_shader'"] impl PipelineStageFlags { @@ -2575,6 +2582,8 @@ impl AccessFlags2 { pub const CONDITIONAL_RENDERING_READ_EXT: Self = Self(0b1_0000_0000_0000_0000_0000); pub const COMMAND_PREPROCESS_READ_NV: Self = Self(0b10_0000_0000_0000_0000); pub const COMMAND_PREPROCESS_WRITE_NV: Self = Self(0b100_0000_0000_0000_0000); + pub const COMMAND_PREPROCESS_READ_EXT: Self = Self::COMMAND_PREPROCESS_READ_NV; + pub const COMMAND_PREPROCESS_WRITE_EXT: Self = Self::COMMAND_PREPROCESS_WRITE_NV; pub const FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR: Self = Self(0b1000_0000_0000_0000_0000_0000); pub const SHADING_RATE_IMAGE_READ_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR; @@ -2604,6 +2613,7 @@ impl PipelineStageFlags2 { #[doc = "A pipeline stage for conditional rendering predicate fetch"] pub const CONDITIONAL_RENDERING_EXT: Self = Self(0b100_0000_0000_0000_0000); pub const COMMAND_PREPROCESS_NV: Self = Self(0b10_0000_0000_0000_0000); + pub const COMMAND_PREPROCESS_EXT: Self = Self::COMMAND_PREPROCESS_NV; pub const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self = Self(0b100_0000_0000_0000_0000_0000); pub const SHADING_RATE_IMAGE_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_KHR; pub const ACCELERATION_STRUCTURE_BUILD_KHR: Self = Self(0b10_0000_0000_0000_0000_0000_0000); @@ -2750,6 +2760,11 @@ impl StructureType { pub const ACCELERATION_STRUCTURE_MOTION_INFO_NV: Self = Self(1_000_327_002); } #[doc = "Generated from 'VK_EXT_mesh_shader'"] +impl IndirectCommandsTokenTypeEXT { + pub const DRAW_MESH_TASKS: Self = Self(1_000_328_000); + pub const DRAW_MESH_TASKS_COUNT: Self = Self(1_000_328_001); +} +#[doc = "Generated from 'VK_EXT_mesh_shader'"] impl IndirectCommandsTokenTypeNV { pub const DRAW_MESH_TASKS: Self = Self(1_000_328_000); } @@ -3123,6 +3138,10 @@ impl AccessFlags2 { Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000); } #[doc = "Generated from 'VK_KHR_ray_tracing_maintenance1'"] +impl IndirectCommandsTokenTypeEXT { + pub const TRACE_RAYS2: Self = Self(1_000_386_004); +} +#[doc = "Generated from 'VK_KHR_ray_tracing_maintenance1'"] impl PipelineStageFlags2 { pub const ACCELERATION_STRUCTURE_COPY_KHR: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000); } @@ -3431,7 +3450,7 @@ impl StructureType { } #[doc = "Generated from 'VK_EXT_nested_command_buffer'"] impl RenderingFlags { - pub const CONTENTS_INLINE_EXT: Self = Self(0b1_0000); + pub const CONTENTS_INLINE_EXT: Self = Self::CONTENTS_INLINE_KHR; } #[doc = "Generated from 'VK_EXT_nested_command_buffer'"] impl StructureType { @@ -3440,7 +3459,8 @@ impl StructureType { } #[doc = "Generated from 'VK_EXT_nested_command_buffer'"] impl SubpassContents { - pub const INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT: Self = Self(1_000_451_000); + pub const INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT: Self = + Self::INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR; } #[doc = "Generated from 'VK_EXT_external_memory_acquire_unmodified'"] impl StructureType { @@ -3533,7 +3553,7 @@ impl AccessFlags2 { } #[doc = "Generated from 'VK_NV_optical_flow'"] impl Format { - pub const R16G16_S10_5_NV: Self = Self(1_000_464_000); + pub const R16G16_SFIXED5_NV: Self = Self(1_000_464_000); } #[doc = "Generated from 'VK_NV_optical_flow'"] impl FormatFeatureFlags2 { @@ -3567,6 +3587,11 @@ impl StructureType { pub const OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV: Self = Self(1_000_464_010); } #[doc = "Generated from 'VK_EXT_legacy_dithering'"] +impl PipelineCreateFlags2KHR { + pub const ENABLE_LEGACY_DITHERING_EXT: Self = + Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_EXT_legacy_dithering'"] impl RenderingFlags { pub const ENABLE_LEGACY_DITHERING_EXT: Self = Self(0b1000); } @@ -3671,6 +3696,12 @@ impl StructureType { pub const PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR: Self = Self(1_000_470_005); pub const BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR: Self = Self(1_000_470_006); } +#[doc = "Generated from 'VK_AMD_anti_lag'"] +impl StructureType { + pub const PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD: Self = Self(1_000_476_000); + pub const ANTI_LAG_DATA_AMD: Self = Self(1_000_476_001); + pub const ANTI_LAG_PRESENTATION_INFO_AMD: Self = Self(1_000_476_002); +} #[doc = "Generated from 'VK_KHR_ray_tracing_position_fetch'"] impl BuildAccelerationStructureFlagsKHR { pub const ALLOW_DATA_ACCESS: Self = Self(0b1000_0000_0000); @@ -3704,6 +3735,32 @@ impl StructureType { pub const SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT: Self = Self::PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO; } +#[doc = "Generated from 'VK_KHR_pipeline_binary'"] +impl ObjectType { + pub const PIPELINE_BINARY_KHR: Self = Self(1_000_483_000); +} +#[doc = "Generated from 'VK_KHR_pipeline_binary'"] +impl PipelineCreateFlags2KHR { + pub const CAPTURE_DATA: Self = Self(0b1000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_KHR_pipeline_binary'"] +impl Result { + pub const PIPELINE_BINARY_MISSING_KHR: Self = Self(1_000_483_000); + pub const ERROR_NOT_ENOUGH_SPACE_KHR: Self = Self(-1_000_483_000); +} +#[doc = "Generated from 'VK_KHR_pipeline_binary'"] +impl StructureType { + pub const PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR: Self = Self(1_000_483_000); + pub const PIPELINE_BINARY_CREATE_INFO_KHR: Self = Self(1_000_483_001); + pub const PIPELINE_BINARY_INFO_KHR: Self = Self(1_000_483_002); + pub const PIPELINE_BINARY_KEY_KHR: Self = Self(1_000_483_003); + pub const PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR: Self = Self(1_000_483_004); + pub const RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR: Self = Self(1_000_483_005); + pub const PIPELINE_BINARY_DATA_INFO_KHR: Self = Self(1_000_483_006); + pub const PIPELINE_CREATE_INFO_KHR: Self = Self(1_000_483_007); + pub const DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR: Self = Self(1_000_483_008); + pub const PIPELINE_BINARY_HANDLES_INFO_KHR: Self = Self(1_000_483_009); +} #[doc = "Generated from 'VK_QCOM_tile_properties'"] impl StructureType { pub const PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM: Self = Self(1_000_484_000); @@ -3749,6 +3806,11 @@ impl StructureType { pub const PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT: Self = Self(1_000_351_000); pub const MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT: Self = Self(1_000_351_002); } +#[doc = "Generated from 'VK_EXT_legacy_vertex_attributes'"] +impl StructureType { + pub const PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT: Self = Self(1_000_495_000); + pub const PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT: Self = Self(1_000_495_001); +} #[doc = "Generated from 'VK_EXT_layer_settings'"] impl StructureType { pub const LAYER_SETTINGS_CREATE_INFO_EXT: Self = Self(1_000_496_000); @@ -3793,6 +3855,11 @@ impl StructureType { pub const MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM: Self = Self(1_000_510_001); } +#[doc = "Generated from 'VK_KHR_compute_shader_derivatives'"] +impl StructureType { + pub const PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR: Self = Self(1_000_201_000); + pub const PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR: Self = Self(1_000_511_000); +} #[doc = "Generated from 'VK_KHR_video_decode_av1'"] impl StructureType { pub const VIDEO_DECODE_AV1_CAPABILITIES_KHR: Self = Self(1_000_512_000); @@ -3947,14 +4014,103 @@ impl StructureType { impl StructureType { pub const PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV: Self = Self(1_000_555_000); } +#[doc = "Generated from 'VK_KHR_shader_relaxed_extended_instruction'"] +impl StructureType { + pub const PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR: Self = + Self(1_000_558_000); +} +#[doc = "Generated from 'VK_NV_command_buffer_inheritance'"] +impl StructureType { + pub const PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV: Self = Self(1_000_559_000); +} +#[doc = "Generated from 'VK_KHR_maintenance7'"] +impl RenderingFlags { + #[doc = "Promoted from extension 452"] + pub const CONTENTS_INLINE_KHR: Self = Self(0b1_0000); +} +#[doc = "Generated from 'VK_KHR_maintenance7'"] +impl StructureType { + pub const PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR: Self = Self(1_000_562_000); + pub const PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR: Self = Self(1_000_562_001); + pub const PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR: Self = Self(1_000_562_002); + pub const PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR: Self = Self(1_000_562_003); + pub const PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR: Self = Self(1_000_562_004); +} +#[doc = "Generated from 'VK_KHR_maintenance7'"] +impl SubpassContents { + pub const INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR: Self = Self(1_000_451_000); +} #[doc = "Generated from 'VK_NV_shader_atomic_float16_vector'"] impl StructureType { pub const PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV: Self = Self(1_000_563_000); } +#[doc = "Generated from 'VK_EXT_shader_replicated_composites'"] +impl StructureType { + pub const PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT: Self = Self(1_000_564_000); +} #[doc = "Generated from 'VK_NV_ray_tracing_validation'"] impl StructureType { pub const PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV: Self = Self(1_000_568_000); } +#[doc = "Generated from 'VK_EXT_device_generated_commands'"] +impl AccessFlags { + pub const COMMAND_PREPROCESS_READ_EXT: Self = Self::COMMAND_PREPROCESS_READ_NV; + pub const COMMAND_PREPROCESS_WRITE_EXT: Self = Self::COMMAND_PREPROCESS_WRITE_NV; +} +#[doc = "Generated from 'VK_EXT_device_generated_commands'"] +impl BufferUsageFlags2KHR { + pub const PREPROCESS_BUFFER_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_EXT_device_generated_commands'"] +impl ObjectType { + pub const INDIRECT_COMMANDS_LAYOUT_EXT: Self = Self(1_000_572_000); + pub const INDIRECT_EXECUTION_SET_EXT: Self = Self(1_000_572_001); +} +#[doc = "Generated from 'VK_EXT_device_generated_commands'"] +impl PipelineCreateFlags2KHR { + pub const INDIRECT_BINDABLE_EXT: Self = + Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_EXT_device_generated_commands'"] +impl PipelineStageFlags { + pub const COMMAND_PREPROCESS_EXT: Self = Self::COMMAND_PREPROCESS_NV; +} +#[doc = "Generated from 'VK_EXT_device_generated_commands'"] +impl ShaderCreateFlagsEXT { + pub const INDIRECT_BINDABLE: Self = Self(0b1000_0000); +} +#[doc = "Generated from 'VK_EXT_device_generated_commands'"] +impl StructureType { + pub const PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT: Self = Self(1_000_572_000); + pub const PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT: Self = Self(1_000_572_001); + pub const GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT: Self = Self(1_000_572_002); + pub const INDIRECT_EXECUTION_SET_CREATE_INFO_EXT: Self = Self(1_000_572_003); + pub const GENERATED_COMMANDS_INFO_EXT: Self = Self(1_000_572_004); + pub const INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT: Self = Self(1_000_572_006); + pub const INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT: Self = Self(1_000_572_007); + pub const WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT: Self = Self(1_000_572_008); + pub const WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT: Self = Self(1_000_572_009); + pub const INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT: Self = Self(1_000_572_010); + pub const INDIRECT_EXECUTION_SET_SHADER_INFO_EXT: Self = Self(1_000_572_011); + pub const INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT: Self = Self(1_000_572_012); + pub const GENERATED_COMMANDS_PIPELINE_INFO_EXT: Self = Self(1_000_572_013); + pub const GENERATED_COMMANDS_SHADER_INFO_EXT: Self = Self(1_000_572_014); +} +#[doc = "Generated from 'VK_MESA_image_alignment_control'"] +impl StructureType { + pub const PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA: Self = Self(1_000_575_000); + pub const PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA: Self = Self(1_000_575_001); + pub const IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA: Self = Self(1_000_575_002); +} +#[doc = "Generated from 'VK_EXT_depth_clamp_control'"] +impl DynamicState { + pub const DEPTH_CLAMP_RANGE_EXT: Self = Self(1_000_582_000); +} +#[doc = "Generated from 'VK_EXT_depth_clamp_control'"] +impl StructureType { + pub const PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT: Self = Self(1_000_582_000); + pub const PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT: Self = Self(1_000_582_001); +} pub const KHR_SURFACE_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_surface\0") }; pub const KHR_SURFACE_SPEC_VERSION: u32 = 25u32; @@ -5000,10 +5156,10 @@ pub const EXT_DEPTH_CLIP_ENABLE_NAME: &CStr = pub const EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION: u32 = 1u32; pub const EXT_SWAPCHAIN_COLORSPACE_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_swapchain_colorspace\0") }; -pub const EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION: u32 = 4u32; +pub const EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION: u32 = 5u32; pub const EXT_HDR_METADATA_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_hdr_metadata\0") }; -pub const EXT_HDR_METADATA_SPEC_VERSION: u32 = 2u32; +pub const EXT_HDR_METADATA_SPEC_VERSION: u32 = 3u32; #[allow(non_camel_case_types)] pub type PFN_vkSetHdrMetadataEXT = unsafe extern "system" fn( device: crate::vk::Device, @@ -6092,7 +6248,7 @@ pub type PFN_vkCmdSetRenderingAttachmentLocationsKHR = unsafe extern "system" fn #[allow(non_camel_case_types)] pub type PFN_vkCmdSetRenderingInputAttachmentIndicesKHR = unsafe extern "system" fn( command_buffer: CommandBuffer, - p_location_info: *const RenderingInputAttachmentIndexInfoKHR<'_>, + p_input_attachment_index_info: *const RenderingInputAttachmentIndexInfoKHR<'_>, ); pub const EXT_SHADER_IMAGE_ATOMIC_INT64_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_image_atomic_int64\0") }; @@ -6635,7 +6791,7 @@ pub const NV_LOW_LATENCY_NAME: &CStr = pub const NV_LOW_LATENCY_SPEC_VERSION: u32 = 1u32; pub const EXT_METAL_OBJECTS_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_metal_objects\0") }; -pub const EXT_METAL_OBJECTS_SPEC_VERSION: u32 = 1u32; +pub const EXT_METAL_OBJECTS_SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkExportMetalObjectsEXT = unsafe extern "system" fn( device: crate::vk::Device, @@ -7343,7 +7499,7 @@ pub const ARM_RENDER_PASS_STRIPED_NAME: &CStr = pub const ARM_RENDER_PASS_STRIPED_SPEC_VERSION: u32 = 1u32; pub const QCOM_FRAGMENT_DENSITY_MAP_OFFSET_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_fragment_density_map_offset\0") }; -pub const QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION: u32 = 1u32; +pub const QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION: u32 = 2u32; pub const NV_COPY_MEMORY_INDIRECT_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_copy_memory_indirect\0") }; pub const NV_COPY_MEMORY_INDIRECT_SPEC_VERSION: u32 = 1u32; @@ -7627,7 +7783,7 @@ pub type PFN_vkCmdOpticalFlowExecuteNV = unsafe extern "system" fn( ); pub const EXT_LEGACY_DITHERING_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_legacy_dithering\0") }; -pub const EXT_LEGACY_DITHERING_SPEC_VERSION: u32 = 1u32; +pub const EXT_LEGACY_DITHERING_SPEC_VERSION: u32 = 2u32; pub const EXT_PIPELINE_PROTECTED_ACCESS_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_protected_access\0") }; pub const EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION: u32 = 1u32; @@ -7657,6 +7813,12 @@ pub type PFN_vkGetDeviceImageSubresourceLayoutKHR = unsafe extern "system" fn( p_info: *const DeviceImageSubresourceInfoKHR<'_>, p_layout: *mut SubresourceLayout2KHR<'_>, ); +pub const AMD_ANTI_LAG_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_anti_lag\0") }; +pub const AMD_ANTI_LAG_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkAntiLagUpdateAMD = + unsafe extern "system" fn(device: crate::vk::Device, p_data: *const AntiLagDataAMD<'_>); pub const KHR_RAY_TRACING_POSITION_FETCH_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_ray_tracing_position_fetch\0") }; pub const KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION: u32 = 1u32; @@ -7691,6 +7853,48 @@ pub type PFN_vkCmdBindShadersEXT = unsafe extern "system" fn( p_stages: *const ShaderStageFlags, p_shaders: *const ShaderEXT, ); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetDepthClampRangeEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + depth_clamp_mode: DepthClampModeEXT, + p_depth_clamp_range: *const DepthClampRangeEXT, +); +pub const KHR_PIPELINE_BINARY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_pipeline_binary\0") }; +pub const KHR_PIPELINE_BINARY_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreatePipelineBinariesKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const PipelineBinaryCreateInfoKHR<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_binaries: *mut PipelineBinaryHandlesInfoKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyPipelineBinaryKHR = unsafe extern "system" fn( + device: crate::vk::Device, + pipeline_binary: PipelineBinaryKHR, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetPipelineKeyKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_pipeline_create_info: *const PipelineCreateInfoKHR<'_>, + p_pipeline_key: *mut PipelineBinaryKeyKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPipelineBinaryDataKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const PipelineBinaryDataInfoKHR<'_>, + p_pipeline_binary_key: *mut PipelineBinaryKeyKHR<'_>, + p_pipeline_binary_data_size: *mut usize, + p_pipeline_binary_data: *mut c_void, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkReleaseCapturedPipelineDataKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const ReleaseCapturedPipelineDataInfoKHR<'_>, + p_allocator: *const AllocationCallbacks<'_>, +) -> Result; pub const QCOM_TILE_PROPERTIES_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_tile_properties\0") }; pub const QCOM_TILE_PROPERTIES_SPEC_VERSION: u32 = 1u32; @@ -7722,6 +7926,9 @@ pub const NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION: u32 = 1u32; pub const EXT_MUTABLE_DESCRIPTOR_TYPE_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_mutable_descriptor_type\0") }; pub const EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION: u32 = 1u32; +pub const EXT_LEGACY_VERTEX_ATTRIBUTES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_legacy_vertex_attributes\0") }; +pub const EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION: u32 = 1u32; pub const EXT_LAYER_SETTINGS_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_layer_settings\0") }; pub const EXT_LAYER_SETTINGS_SPEC_VERSION: u32 = 2u32; @@ -7778,6 +7985,9 @@ pub type PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = pub const QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_multiview_per_view_render_areas\0") }; pub const QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION: u32 = 1u32; +pub const KHR_COMPUTE_SHADER_DERIVATIVES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_compute_shader_derivatives\0") }; +pub const KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION: u32 = 1u32; pub const KHR_VIDEO_DECODE_AV1_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_decode_av1\0") }; pub const KHR_VIDEO_DECODE_AV1_SPEC_VERSION: u32 = 1u32; @@ -7875,9 +8085,88 @@ pub const NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION: u32 = 1u32; pub const NV_RAW_ACCESS_CHAINS_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_raw_access_chains\0") }; pub const NV_RAW_ACCESS_CHAINS_SPEC_VERSION: u32 = 1u32; +pub const KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_relaxed_extended_instruction\0") }; +pub const KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION: u32 = 1u32; +pub const NV_COMMAND_BUFFER_INHERITANCE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_command_buffer_inheritance\0") }; +pub const NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION: u32 = 1u32; +pub const KHR_MAINTENANCE7_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance7\0") }; +pub const KHR_MAINTENANCE7_SPEC_VERSION: u32 = 1u32; pub const NV_SHADER_ATOMIC_FLOAT16_VECTOR_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_shader_atomic_float16_vector\0") }; pub const NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION: u32 = 1u32; +pub const EXT_SHADER_REPLICATED_COMPOSITES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_replicated_composites\0") }; +pub const EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION: u32 = 1u32; pub const NV_RAY_TRACING_VALIDATION_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_ray_tracing_validation\0") }; pub const NV_RAY_TRACING_VALIDATION_SPEC_VERSION: u32 = 1u32; +pub const EXT_DEVICE_GENERATED_COMMANDS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_device_generated_commands\0") }; +pub const EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetGeneratedCommandsMemoryRequirementsEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const GeneratedCommandsMemoryRequirementsInfoEXT<'_>, + p_memory_requirements: *mut MemoryRequirements2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdPreprocessGeneratedCommandsEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_generated_commands_info: *const GeneratedCommandsInfoEXT<'_>, + state_command_buffer: CommandBuffer, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdExecuteGeneratedCommandsEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + is_preprocessed: Bool32, + p_generated_commands_info: *const GeneratedCommandsInfoEXT<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCreateIndirectCommandsLayoutEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const IndirectCommandsLayoutCreateInfoEXT<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_indirect_commands_layout: *mut IndirectCommandsLayoutEXT, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyIndirectCommandsLayoutEXT = unsafe extern "system" fn( + device: crate::vk::Device, + indirect_commands_layout: IndirectCommandsLayoutEXT, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCreateIndirectExecutionSetEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const IndirectExecutionSetCreateInfoEXT<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_indirect_execution_set: *mut IndirectExecutionSetEXT, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyIndirectExecutionSetEXT = unsafe extern "system" fn( + device: crate::vk::Device, + indirect_execution_set: IndirectExecutionSetEXT, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkUpdateIndirectExecutionSetPipelineEXT = unsafe extern "system" fn( + device: crate::vk::Device, + indirect_execution_set: IndirectExecutionSetEXT, + execution_set_write_count: u32, + p_execution_set_writes: *const WriteIndirectExecutionSetPipelineEXT<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkUpdateIndirectExecutionSetShaderEXT = unsafe extern "system" fn( + device: crate::vk::Device, + indirect_execution_set: IndirectExecutionSetEXT, + execution_set_write_count: u32, + p_execution_set_writes: *const WriteIndirectExecutionSetShaderEXT<'_>, +); +pub const MESA_IMAGE_ALIGNMENT_CONTROL_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_MESA_image_alignment_control\0") }; +pub const MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION: u32 = 1u32; +pub const EXT_DEPTH_CLAMP_CONTROL_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_clamp_control\0") }; +pub const EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION: u32 = 1u32; From 0846df0e44b5f290e5dcb435a85ea4518221ba8f Mon Sep 17 00:00:00 2001 From: Zhixing Zhang Date: Wed, 16 Oct 2024 03:58:35 -0700 Subject: [PATCH 4/7] Adding lifetimes --- ash/src/prelude.rs | 1 + ash/src/util.rs | 102 +- ash/src/vk.rs | 4 +- ash/src/vk/definitions.rs | 4065 ++++++++++++++++++++----------------- ash/src/vk/native.rs | 56 +- ash/src/vk/prelude.rs | 8 +- generator/src/lib.rs | 6 +- 7 files changed, 2316 insertions(+), 1926 deletions(-) diff --git a/ash/src/prelude.rs b/ash/src/prelude.rs index c0bc43516..7a6b7d063 100644 --- a/ash/src/prelude.rs +++ b/ash/src/prelude.rs @@ -6,6 +6,7 @@ use core::ptr; use crate::vk; pub type VkResult = Result; pub use crate::util::NextChainExt; +pub use vk::TaggedStructure; impl vk::Result { #[inline] diff --git a/ash/src/util.rs b/ash/src/util.rs index af4a42282..10d4c5baa 100644 --- a/ash/src/util.rs +++ b/ash/src/util.rs @@ -1,4 +1,4 @@ -use crate::vk; +use crate::{vk, vk::TaggedStructure}; use core::ffi::c_void; use core::iter::Iterator; use core::marker::PhantomData; @@ -141,7 +141,7 @@ pub fn read_spv(x: &mut R) -> io::Result> { Ok(result) } -pub trait NextChainExt<'a>: vk::TaggedStructure { +pub trait NextChainExt<'a>: TaggedStructure<'a> { /// Prepends the given extension struct between the root and the first pointer. This /// method only exists on structs that can be passed to a function directly. Only /// valid extension structs can be pushed into the chain. @@ -149,16 +149,10 @@ pub trait NextChainExt<'a>: vk::TaggedStructure { /// chain will look like `A -> D -> B -> C`. /// /// For inline construction of extension structs using the builder pattern, use `with_next` instead. - fn push_next + 'a>(&mut self, next: &'a mut T) { - let next: &mut vk::BaseOutStructure<'a> = unsafe { - // Safety: next implements vk::Extends and TaggedStructure - &mut *<*mut T>::cast(next) - }; + fn push_next>(&mut self, next: &'a mut T) { + let next: &mut vk::BaseOutStructure<'a> = next.as_base_mut(); assert!(next.p_next.is_null()); - let base: &mut vk::BaseOutStructure<'a> = unsafe { - // Safety: next implements vk::Extends and TaggedStructure - &mut *<*mut Self>::cast(self) - }; + let base: &mut vk::BaseOutStructure<'a> = self.as_base_mut(); next.p_next = base.p_next; base.p_next = next; } @@ -183,7 +177,7 @@ pub trait NextChainExt<'a>: vk::TaggedStructure { /// assert_eq!(iter.next().unwrap().tag(), vk::StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR); // a.s_type /// ``` /// For inline construction of extension structs, use `with_next` instead. - fn with_next + 'a>(mut self, next: &'a mut T) -> Self + fn with_next>(mut self, next: &'a mut T) -> Self where Self: Sized, { @@ -192,33 +186,27 @@ pub trait NextChainExt<'a>: vk::TaggedStructure { } /// Returns a mutable iterator over the entire extension chain attached to `Self` fn iter_next_chain_mut(&'a mut self) -> impl Iterator> + 'a { - unsafe { - let this = TaggedObject::from_mut(self); - (0..).scan(this.output.p_next, |p_ptr, _| { - if p_ptr.is_null() { - return None; - } - let n_ptr = (**p_ptr).p_next; - let old = *p_ptr; - *p_ptr = n_ptr; - Some(TaggedObject::from_raw_mut(old)) - }) - } + (0..).scan(self.as_base_mut().p_next, |p_ptr, _| unsafe { + if p_ptr.is_null() { + return None; + } + let n_ptr = (**p_ptr).p_next; + let old = *p_ptr; + *p_ptr = n_ptr; + Some(TaggedObject::from_raw_mut(old)) + }) } /// Returns an iterator over the entire extension chain attached to `Self` fn iter_next_chain(&'a self) -> impl Iterator> + 'a { - unsafe { - let ptr = <*const Self>::cast::>(self); - (0..).scan((&*ptr).p_next, |p_ptr, _| { - if p_ptr.is_null() { - return None; - } - let n_ptr = (**p_ptr).p_next; - let old = *p_ptr; - *p_ptr = n_ptr; - Some(TaggedObject::from_raw(old)) - }) - } + (0..).scan(self.as_base().p_next, |p_ptr, _| unsafe { + if p_ptr.is_null() { + return None; + } + let n_ptr = (**p_ptr).p_next; + let old = *p_ptr; + *p_ptr = n_ptr; + Some(TaggedObject::from_raw(old)) + }) } /// Extend the next chain of the current object with multiple tagged objects /// ```rust @@ -240,14 +228,12 @@ pub trait NextChainExt<'a>: vk::TaggedStructure { /// assert_eq!(iter.next().unwrap().tag(), vk::StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR); // a.s_type /// ``` fn extend(&mut self, nexts: impl IntoIterator>) { - unsafe { - for next in nexts.into_iter() { - assert!(next.output.p_next.is_null()); - // Safety: self implements TaggedStructure - let base: &mut vk::BaseOutStructure<'a> = &mut *<*mut Self>::cast(self); - next.output.p_next = base.p_next; - base.p_next = <*mut TaggedObject<'a>>::cast(next); - } + for next in nexts.into_iter() { + assert!(next.as_base_mut().p_next.is_null()); + // Safety: self implements TaggedStructure + let base: &mut vk::BaseOutStructure<'a> = self.as_base_mut(); + next.output.p_next = base.p_next; + base.p_next = <*mut TaggedObject<'a>>::cast(next); } } } @@ -256,7 +242,7 @@ pub trait NextChainExt<'a>: vk::TaggedStructure { impl<'a, T> NextChainExt<'a> for T where T: vk::BaseTaggedStructure<'a> {} /// Type-erased object representing a tagged Vulkan structure. -/// It is basically a [`Box`], but for types implementing [`vk::TaggedStructure`]. +/// It is basically a [`Box`], but for types implementing [`TaggedStructure`]. #[repr(C)] pub union TaggedObject<'a> { output: vk::BaseOutStructure<'a>, @@ -268,8 +254,8 @@ impl vk::StructureType { /// [`TaggedObject`]s are layout-compatible with [`vk::BaseInStructure`] and /// [`vk::BaseOutStructure`]. -unsafe impl<'a> vk::TaggedStructure for TaggedObject<'a> { - /// Querying the tag of a [`TaggedObject`] statically using [`vk::TaggedStructure::STRUCTURE_TYPE`] +unsafe impl<'a> TaggedStructure<'a> for TaggedObject<'a> { + /// Querying the tag of a [`TaggedObject`] statically using [`TaggedStructure::STRUCTURE_TYPE`] /// returns [`vk::StructureType::ASH_DYNAMIC`], since the actual tag is dynamic. /// To query the tag of a [`TaggedObject`] dynamically, use [`TaggedObject::tag`]. const STRUCTURE_TYPE: vk::StructureType = vk::StructureType::ASH_DYNAMIC; @@ -301,7 +287,7 @@ impl<'a> NextChainExt<'a> for TaggedObject<'a> {} /// assert_eq!(iter.next().unwrap().tag(), vk::StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR); // b.s_type /// assert_eq!(iter.next().unwrap().tag(), vk::StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR); // a.s_type /// ``` -unsafe impl<'a, T: vk::TaggedStructure + ?Sized> vk::Extends> for T {} +unsafe impl<'a, T: TaggedStructure<'a> + ?Sized> vk::Extends<'a, TaggedObject<'a>> for T {} /// [`TaggedObject`]s can extend ANY other tagged objects. /// ```rust /// use ash::prelude::*; @@ -315,15 +301,15 @@ unsafe impl<'a, T: vk::TaggedStructure + ?Sized> vk::Extends> f /// let mut iter = base.iter_next_chain(); /// assert_eq!(iter.next().unwrap().tag(), vk::StructureType::APPLICATION_INFO); // a.s_type /// ``` -unsafe impl<'a, T: vk::BaseTaggedStructure<'a> + ?Sized> vk::Extends for TaggedObject<'a> {} +unsafe impl<'a, T: vk::BaseTaggedStructure<'a> + ?Sized> vk::Extends<'a, T> for TaggedObject<'a> {} impl<'a> TaggedObject<'a> { - pub unsafe fn from_raw(obj: *const vk::BaseInStructure<'_>) -> &Self { - unsafe { &*(obj as *const Self) } + pub unsafe fn from_raw(obj: *const vk::BaseInStructure<'a>) -> &'a Self { + &*(obj as *const Self) } - pub unsafe fn from_raw_mut(obj: *mut vk::BaseOutStructure<'_>) -> &mut Self { - unsafe { &mut *(obj as *mut Self) } + pub unsafe fn from_raw_mut(obj: *mut vk::BaseOutStructure<'a>) -> &'a mut Self { + &mut *(obj as *mut Self) } pub fn base_structure(&self) -> &vk::BaseInStructure<'a> { unsafe { &self.input } @@ -332,17 +318,17 @@ impl<'a> TaggedObject<'a> { unsafe { &mut self.output } } - pub fn from_ref(obj: &T) -> &Self { + pub fn from_ref + ?Sized>(obj: &T) -> &Self { unsafe { &*(<*const T>::cast(obj)) } } - pub fn from_mut(obj: &mut T) -> &mut Self { + pub fn from_mut + ?Sized>(obj: &mut T) -> &mut Self { unsafe { &mut *(<*mut T>::cast(obj)) } } pub fn tag(&self) -> vk::StructureType { self.base_structure().s_type } - pub fn downcast_ref(&self) -> Option<&T> { + pub fn downcast_ref>(&self) -> Option<&T> { unsafe { if self.tag() == T::STRUCTURE_TYPE { Some(&*<*const vk::BaseInStructure<'_>>::cast(&self.input)) @@ -351,7 +337,7 @@ impl<'a> TaggedObject<'a> { } } } - pub fn downcast_mut(&mut self) -> Option<&mut T> { + pub fn downcast_mut>(&mut self) -> Option<&mut T> { unsafe { if self.tag() == T::STRUCTURE_TYPE { Some(&mut *<*mut vk::BaseOutStructure<'_>>::cast( @@ -362,7 +348,7 @@ impl<'a> TaggedObject<'a> { } } } - pub fn is(&self) -> bool { + pub fn is>(&self) -> bool { self.tag() == T::STRUCTURE_TYPE } } diff --git a/ash/src/vk.rs b/ash/src/vk.rs index 9c4bad53b..f511d02ff 100644 --- a/ash/src/vk.rs +++ b/ash/src/vk.rs @@ -50,5 +50,5 @@ pub trait Handle: Sized { } } -pub unsafe trait BaseTaggedStructure<'a>: TaggedStructure {} -pub unsafe trait Extends: TaggedStructure {} +pub unsafe trait BaseTaggedStructure<'a>: TaggedStructure<'a> {} +pub unsafe trait Extends<'a, T: ?Sized>: TaggedStructure<'a> {} diff --git a/ash/src/vk/definitions.rs b/ash/src/vk/definitions.rs index 1c6ed2bbb..224237ae8 100644 --- a/ash/src/vk/definitions.rs +++ b/ash/src/vk/definitions.rs @@ -1093,7 +1093,7 @@ impl ::core::default::Default for ApplicationInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for ApplicationInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for ApplicationInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::APPLICATION_INFO; } impl<'a> ApplicationInfo<'a> { @@ -1258,7 +1258,7 @@ impl ::core::default::Default for DeviceQueueCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceQueueCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceQueueCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_QUEUE_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for DeviceQueueCreateInfo<'a> {} @@ -1321,7 +1321,7 @@ impl ::core::default::Default for DeviceCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for DeviceCreateInfo<'a> {} @@ -1394,7 +1394,7 @@ impl ::core::default::Default for InstanceCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for InstanceCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for InstanceCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::INSTANCE_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for InstanceCreateInfo<'a> {} @@ -1538,7 +1538,7 @@ impl ::core::default::Default for MemoryAllocateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryAllocateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_ALLOCATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for MemoryAllocateInfo<'a> {} @@ -1717,7 +1717,7 @@ impl ::core::default::Default for MappedMemoryRange<'_> { } } } -unsafe impl<'a> TaggedStructure for MappedMemoryRange<'a> { +unsafe impl<'a> TaggedStructure<'a> for MappedMemoryRange<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MAPPED_MEMORY_RANGE; } impl<'a> MappedMemoryRange<'a> { @@ -1895,7 +1895,7 @@ impl ::core::default::Default for WriteDescriptorSet<'_> { } } } -unsafe impl<'a> TaggedStructure for WriteDescriptorSet<'a> { +unsafe impl<'a> TaggedStructure<'a> for WriteDescriptorSet<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET; } unsafe impl<'a> BaseTaggedStructure<'a> for WriteDescriptorSet<'a> {} @@ -1980,7 +1980,7 @@ impl ::core::default::Default for CopyDescriptorSet<'_> { } } } -unsafe impl<'a> TaggedStructure for CopyDescriptorSet<'a> { +unsafe impl<'a> TaggedStructure<'a> for CopyDescriptorSet<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COPY_DESCRIPTOR_SET; } impl<'a> CopyDescriptorSet<'a> { @@ -2044,16 +2044,19 @@ impl ::core::default::Default for BufferUsageFlags2CreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for BufferUsageFlags2CreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for BufferUsageFlags2CreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR; } -unsafe impl<'a> Extends> for BufferUsageFlags2CreateInfoKHR<'a> {} -unsafe impl<'a> Extends> for BufferUsageFlags2CreateInfoKHR<'a> {} -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, BufferViewCreateInfo<'a>> for BufferUsageFlags2CreateInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, BufferCreateInfo<'a>> for BufferUsageFlags2CreateInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceExternalBufferInfo<'a>> + for BufferUsageFlags2CreateInfoKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, DescriptorBufferBindingInfoEXT<'a>> for BufferUsageFlags2CreateInfoKHR<'a> { } -unsafe impl<'a> Extends> for BufferUsageFlags2CreateInfoKHR<'a> {} impl<'a> BufferUsageFlags2CreateInfoKHR<'a> { #[inline] pub fn usage(mut self, usage: BufferUsageFlags2KHR) -> Self { @@ -2095,7 +2098,7 @@ impl ::core::default::Default for BufferCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for BufferCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for BufferCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for BufferCreateInfo<'a> {} @@ -2159,7 +2162,7 @@ impl ::core::default::Default for BufferViewCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for BufferViewCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for BufferViewCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_VIEW_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for BufferViewCreateInfo<'a> {} @@ -2315,7 +2318,7 @@ impl ::core::default::Default for MemoryBarrier<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryBarrier<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryBarrier<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_BARRIER; } impl<'a> MemoryBarrier<'a> { @@ -2366,7 +2369,7 @@ impl ::core::default::Default for BufferMemoryBarrier<'_> { } } } -unsafe impl<'a> TaggedStructure for BufferMemoryBarrier<'a> { +unsafe impl<'a> TaggedStructure<'a> for BufferMemoryBarrier<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_MEMORY_BARRIER; } unsafe impl<'a> BaseTaggedStructure<'a> for BufferMemoryBarrier<'a> {} @@ -2445,7 +2448,7 @@ impl ::core::default::Default for ImageMemoryBarrier<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageMemoryBarrier<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageMemoryBarrier<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_MEMORY_BARRIER; } unsafe impl<'a> BaseTaggedStructure<'a> for ImageMemoryBarrier<'a> {} @@ -2539,7 +2542,7 @@ impl ::core::default::Default for ImageCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for ImageCreateInfo<'a> {} @@ -2679,7 +2682,7 @@ impl ::core::default::Default for ImageViewCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageViewCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageViewCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for ImageViewCreateInfo<'a> {} @@ -2979,7 +2982,7 @@ impl ::core::default::Default for BindSparseInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for BindSparseInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for BindSparseInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_SPARSE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for BindSparseInfo<'a> {} @@ -3285,10 +3288,10 @@ impl ::core::default::Default for ShaderModuleCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for ShaderModuleCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for ShaderModuleCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SHADER_MODULE_CREATE_INFO; } -unsafe impl<'a> Extends> for ShaderModuleCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, PipelineShaderStageCreateInfo<'a>> for ShaderModuleCreateInfo<'a> {} unsafe impl<'a> BaseTaggedStructure<'a> for ShaderModuleCreateInfo<'a> {} impl<'a> ShaderModuleCreateInfo<'a> { #[inline] @@ -3387,7 +3390,7 @@ impl ::core::default::Default for DescriptorSetLayoutCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for DescriptorSetLayoutCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for DescriptorSetLayoutCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for DescriptorSetLayoutCreateInfo<'a> {} @@ -3455,7 +3458,7 @@ impl ::core::default::Default for DescriptorPoolCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for DescriptorPoolCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for DescriptorPoolCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_POOL_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for DescriptorPoolCreateInfo<'a> {} @@ -3505,7 +3508,7 @@ impl ::core::default::Default for DescriptorSetAllocateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for DescriptorSetAllocateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for DescriptorSetAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_ALLOCATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for DescriptorSetAllocateInfo<'a> {} @@ -3621,7 +3624,7 @@ impl ::core::default::Default for PipelineShaderStageCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineShaderStageCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineShaderStageCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_SHADER_STAGE_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for PipelineShaderStageCreateInfo<'a> {} @@ -3692,7 +3695,7 @@ impl ::core::default::Default for ComputePipelineCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for ComputePipelineCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for ComputePipelineCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMPUTE_PIPELINE_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for ComputePipelineCreateInfo<'a> {} @@ -3751,10 +3754,13 @@ impl ::core::default::Default for ComputePipelineIndirectBufferInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for ComputePipelineIndirectBufferInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for ComputePipelineIndirectBufferInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV; } -unsafe impl<'a> Extends> for ComputePipelineIndirectBufferInfoNV<'a> {} +unsafe impl<'a> Extends<'a, ComputePipelineCreateInfo<'a>> + for ComputePipelineIndirectBufferInfoNV<'a> +{ +} impl<'a> ComputePipelineIndirectBufferInfoNV<'a> { #[inline] pub fn device_address(mut self, device_address: DeviceAddress) -> Self { @@ -3799,16 +3805,22 @@ impl ::core::default::Default for PipelineCreateFlags2CreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineCreateFlags2CreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineCreateFlags2CreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR; } -unsafe impl<'a> Extends> for PipelineCreateFlags2CreateInfoKHR<'a> {} -unsafe impl<'a> Extends> for PipelineCreateFlags2CreateInfoKHR<'a> {} -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, ComputePipelineCreateInfo<'a>> + for PipelineCreateFlags2CreateInfoKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, GraphicsPipelineCreateInfo<'a>> + for PipelineCreateFlags2CreateInfoKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, RayTracingPipelineCreateInfoNV<'a>> for PipelineCreateFlags2CreateInfoKHR<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, RayTracingPipelineCreateInfoKHR<'a>> for PipelineCreateFlags2CreateInfoKHR<'a> { } @@ -3911,7 +3923,7 @@ impl ::core::default::Default for PipelineVertexInputStateCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineVertexInputStateCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineVertexInputStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for PipelineVertexInputStateCreateInfo<'a> {} @@ -3968,7 +3980,7 @@ impl ::core::default::Default for PipelineInputAssemblyStateCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineInputAssemblyStateCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineInputAssemblyStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO; } impl<'a> PipelineInputAssemblyStateCreateInfo<'a> { @@ -4014,7 +4026,7 @@ impl ::core::default::Default for PipelineTessellationStateCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineTessellationStateCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineTessellationStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_TESSELLATION_STATE_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for PipelineTessellationStateCreateInfo<'a> {} @@ -4062,7 +4074,7 @@ impl ::core::default::Default for PipelineViewportStateCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineViewportStateCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineViewportStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_STATE_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for PipelineViewportStateCreateInfo<'a> {} @@ -4139,7 +4151,7 @@ impl ::core::default::Default for PipelineRasterizationStateCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineRasterizationStateCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineRasterizationStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_STATE_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for PipelineRasterizationStateCreateInfo<'a> {} @@ -4236,7 +4248,7 @@ impl ::core::default::Default for PipelineMultisampleStateCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineMultisampleStateCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineMultisampleStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_MULTISAMPLE_STATE_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for PipelineMultisampleStateCreateInfo<'a> {} @@ -4377,7 +4389,7 @@ impl ::core::default::Default for PipelineColorBlendStateCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineColorBlendStateCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineColorBlendStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COLOR_BLEND_STATE_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for PipelineColorBlendStateCreateInfo<'a> {} @@ -4437,7 +4449,7 @@ impl ::core::default::Default for PipelineDynamicStateCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineDynamicStateCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineDynamicStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_DYNAMIC_STATE_CREATE_INFO; } impl<'a> PipelineDynamicStateCreateInfo<'a> { @@ -4546,7 +4558,7 @@ impl ::core::default::Default for PipelineDepthStencilStateCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineDepthStencilStateCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineDepthStencilStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO; } impl<'a> PipelineDepthStencilStateCreateInfo<'a> { @@ -4657,7 +4669,7 @@ impl ::core::default::Default for GraphicsPipelineCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for GraphicsPipelineCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for GraphicsPipelineCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GRAPHICS_PIPELINE_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for GraphicsPipelineCreateInfo<'a> {} @@ -4796,7 +4808,7 @@ impl ::core::default::Default for PipelineCacheCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineCacheCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineCacheCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_CACHE_CREATE_INFO; } impl<'a> PipelineCacheCreateInfo<'a> { @@ -4918,7 +4930,7 @@ impl ::core::default::Default for PipelineBinaryCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineBinaryCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineBinaryCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_BINARY_CREATE_INFO_KHR; } impl<'a> PipelineBinaryCreateInfoKHR<'a> { @@ -4970,7 +4982,7 @@ impl ::core::default::Default for PipelineBinaryHandlesInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineBinaryHandlesInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineBinaryHandlesInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_BINARY_HANDLES_INFO_KHR; } impl<'a> PipelineBinaryHandlesInfoKHR<'a> { @@ -5081,7 +5093,7 @@ impl ::core::default::Default for PipelineBinaryKeyKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineBinaryKeyKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineBinaryKeyKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_BINARY_KEY_KHR; } impl<'a> PipelineBinaryKeyKHR<'a> { @@ -5122,12 +5134,12 @@ impl ::core::default::Default for PipelineBinaryInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineBinaryInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineBinaryInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_BINARY_INFO_KHR; } -unsafe impl<'a> Extends> for PipelineBinaryInfoKHR<'a> {} -unsafe impl<'a> Extends> for PipelineBinaryInfoKHR<'a> {} -unsafe impl<'a> Extends> for PipelineBinaryInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, GraphicsPipelineCreateInfo<'a>> for PipelineBinaryInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, ComputePipelineCreateInfo<'a>> for PipelineBinaryInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, RayTracingPipelineCreateInfoKHR<'a>> for PipelineBinaryInfoKHR<'a> {} impl<'a> PipelineBinaryInfoKHR<'a> { #[inline] pub fn pipeline_binaries(mut self, pipeline_binaries: &'a [PipelineBinaryKHR]) -> Self { @@ -5160,7 +5172,7 @@ impl ::core::default::Default for ReleaseCapturedPipelineDataInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for ReleaseCapturedPipelineDataInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for ReleaseCapturedPipelineDataInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR; } impl<'a> ReleaseCapturedPipelineDataInfoKHR<'a> { @@ -5194,7 +5206,7 @@ impl ::core::default::Default for PipelineBinaryDataInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineBinaryDataInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineBinaryDataInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_BINARY_DATA_INFO_KHR; } impl<'a> PipelineBinaryDataInfoKHR<'a> { @@ -5226,7 +5238,7 @@ impl ::core::default::Default for PipelineCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_CREATE_INFO_KHR; } impl<'a> PipelineCreateInfoKHR<'a> {} @@ -5262,19 +5274,28 @@ impl ::core::default::Default for PipelineLayoutCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineLayoutCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineLayoutCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_LAYOUT_CREATE_INFO; } -unsafe impl<'a> Extends> for PipelineLayoutCreateInfo<'a> {} -unsafe impl<'a> Extends> for PipelineLayoutCreateInfo<'a> {} -unsafe impl<'a> Extends> for PipelineLayoutCreateInfo<'a> {} -unsafe impl<'a> Extends> for PipelineLayoutCreateInfo<'a> {} -unsafe impl<'a> Extends> for PipelineLayoutCreateInfo<'a> {} -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, BindDescriptorSetsInfoKHR<'a>> for PipelineLayoutCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, PushConstantsInfoKHR<'a>> for PipelineLayoutCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, PushDescriptorSetInfoKHR<'a>> for PipelineLayoutCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, PushDescriptorSetWithTemplateInfoKHR<'a>> + for PipelineLayoutCreateInfo<'a> +{ +} +unsafe impl<'a> Extends<'a, SetDescriptorBufferOffsetsInfoEXT<'a>> + for PipelineLayoutCreateInfo<'a> +{ +} +unsafe impl<'a> Extends<'a, BindDescriptorBufferEmbeddedSamplersInfoEXT<'a>> + for PipelineLayoutCreateInfo<'a> +{ +} +unsafe impl<'a> Extends<'a, IndirectCommandsLayoutCreateInfoEXT<'a>> for PipelineLayoutCreateInfo<'a> { } -unsafe impl<'a> Extends> for PipelineLayoutCreateInfo<'a> {} impl<'a> PipelineLayoutCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineLayoutCreateFlags) -> Self { @@ -5348,7 +5369,7 @@ impl ::core::default::Default for SamplerCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for SamplerCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for SamplerCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for SamplerCreateInfo<'a> {} @@ -5460,7 +5481,7 @@ impl ::core::default::Default for CommandPoolCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for CommandPoolCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for CommandPoolCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_POOL_CREATE_INFO; } impl<'a> CommandPoolCreateInfo<'a> { @@ -5503,7 +5524,7 @@ impl ::core::default::Default for CommandBufferAllocateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for CommandBufferAllocateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for CommandBufferAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_ALLOCATE_INFO; } impl<'a> CommandBufferAllocateInfo<'a> { @@ -5557,7 +5578,7 @@ impl ::core::default::Default for CommandBufferInheritanceInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for CommandBufferInheritanceInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for CommandBufferInheritanceInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for CommandBufferInheritanceInfo<'a> {} @@ -5619,7 +5640,7 @@ impl ::core::default::Default for CommandBufferBeginInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for CommandBufferBeginInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for CommandBufferBeginInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_BEGIN_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for CommandBufferBeginInfo<'a> {} @@ -5683,7 +5704,7 @@ impl ::core::default::Default for RenderPassBeginInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for RenderPassBeginInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderPassBeginInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_BEGIN_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for RenderPassBeginInfo<'a> {} @@ -6047,7 +6068,7 @@ impl ::core::default::Default for RenderPassCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for RenderPassCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderPassCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for RenderPassCreateInfo<'a> {} @@ -6100,7 +6121,7 @@ impl ::core::default::Default for EventCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for EventCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for EventCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EVENT_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for EventCreateInfo<'a> {} @@ -6135,7 +6156,7 @@ impl ::core::default::Default for FenceCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for FenceCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for FenceCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FENCE_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for FenceCreateInfo<'a> {} @@ -7485,7 +7506,7 @@ impl ::core::default::Default for SemaphoreCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for SemaphoreCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for SemaphoreCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SEMAPHORE_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for SemaphoreCreateInfo<'a> {} @@ -7526,7 +7547,7 @@ impl ::core::default::Default for QueryPoolCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for QueryPoolCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for QueryPoolCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUERY_POOL_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for QueryPoolCreateInfo<'a> {} @@ -7588,7 +7609,7 @@ impl ::core::default::Default for FramebufferCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for FramebufferCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for FramebufferCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FRAMEBUFFER_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for FramebufferCreateInfo<'a> {} @@ -7813,7 +7834,7 @@ impl ::core::default::Default for SubmitInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for SubmitInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for SubmitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBMIT_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for SubmitInfo<'a> {} @@ -8009,7 +8030,7 @@ impl ::core::default::Default for DisplayModeCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for DisplayModeCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for DisplayModeCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DISPLAY_MODE_CREATE_INFO_KHR; } impl<'a> DisplayModeCreateInfoKHR<'a> { @@ -8125,7 +8146,7 @@ impl ::core::default::Default for DisplaySurfaceCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for DisplaySurfaceCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for DisplaySurfaceCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DISPLAY_SURFACE_CREATE_INFO_KHR; } impl<'a> DisplaySurfaceCreateInfoKHR<'a> { @@ -8198,10 +8219,10 @@ impl ::core::default::Default for DisplayPresentInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for DisplayPresentInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for DisplayPresentInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DISPLAY_PRESENT_INFO_KHR; } -unsafe impl<'a> Extends> for DisplayPresentInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, PresentInfoKHR<'a>> for DisplayPresentInfoKHR<'a> {} impl<'a> DisplayPresentInfoKHR<'a> { #[inline] pub fn src_rect(mut self, src_rect: Rect2D) -> Self { @@ -8317,7 +8338,7 @@ impl ::core::default::Default for AndroidSurfaceCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for AndroidSurfaceCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for AndroidSurfaceCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ANDROID_SURFACE_CREATE_INFO_KHR; } impl<'a> AndroidSurfaceCreateInfoKHR<'a> { @@ -8358,7 +8379,7 @@ impl ::core::default::Default for ViSurfaceCreateInfoNN<'_> { } } } -unsafe impl<'a> TaggedStructure for ViSurfaceCreateInfoNN<'a> { +unsafe impl<'a> TaggedStructure<'a> for ViSurfaceCreateInfoNN<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VI_SURFACE_CREATE_INFO_NN; } impl<'a> ViSurfaceCreateInfoNN<'a> { @@ -8401,7 +8422,7 @@ impl ::core::default::Default for WaylandSurfaceCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for WaylandSurfaceCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for WaylandSurfaceCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WAYLAND_SURFACE_CREATE_INFO_KHR; } impl<'a> WaylandSurfaceCreateInfoKHR<'a> { @@ -8449,7 +8470,7 @@ impl ::core::default::Default for Win32SurfaceCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for Win32SurfaceCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for Win32SurfaceCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WIN32_SURFACE_CREATE_INFO_KHR; } impl<'a> Win32SurfaceCreateInfoKHR<'a> { @@ -8497,7 +8518,7 @@ impl ::core::default::Default for XlibSurfaceCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for XlibSurfaceCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for XlibSurfaceCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::XLIB_SURFACE_CREATE_INFO_KHR; } impl<'a> XlibSurfaceCreateInfoKHR<'a> { @@ -8545,7 +8566,7 @@ impl ::core::default::Default for XcbSurfaceCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for XcbSurfaceCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for XcbSurfaceCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::XCB_SURFACE_CREATE_INFO_KHR; } impl<'a> XcbSurfaceCreateInfoKHR<'a> { @@ -8593,7 +8614,7 @@ impl ::core::default::Default for DirectFBSurfaceCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DirectFBSurfaceCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DirectFBSurfaceCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DIRECTFB_SURFACE_CREATE_INFO_EXT; } impl<'a> DirectFBSurfaceCreateInfoEXT<'a> { @@ -8639,7 +8660,7 @@ impl ::core::default::Default for ImagePipeSurfaceCreateInfoFUCHSIA<'_> { } } } -unsafe impl<'a> TaggedStructure for ImagePipeSurfaceCreateInfoFUCHSIA<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImagePipeSurfaceCreateInfoFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA; } impl<'a> ImagePipeSurfaceCreateInfoFUCHSIA<'a> { @@ -8680,7 +8701,7 @@ impl ::core::default::Default for StreamDescriptorSurfaceCreateInfoGGP<'_> { } } } -unsafe impl<'a> TaggedStructure for StreamDescriptorSurfaceCreateInfoGGP<'a> { +unsafe impl<'a> TaggedStructure<'a> for StreamDescriptorSurfaceCreateInfoGGP<'a> { const STRUCTURE_TYPE: StructureType = StructureType::STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP; } impl<'a> StreamDescriptorSurfaceCreateInfoGGP<'a> { @@ -8723,7 +8744,7 @@ impl ::core::default::Default for ScreenSurfaceCreateInfoQNX<'_> { } } } -unsafe impl<'a> TaggedStructure for ScreenSurfaceCreateInfoQNX<'a> { +unsafe impl<'a> TaggedStructure<'a> for ScreenSurfaceCreateInfoQNX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SCREEN_SURFACE_CREATE_INFO_QNX; } impl<'a> ScreenSurfaceCreateInfoQNX<'a> { @@ -8818,7 +8839,7 @@ impl ::core::default::Default for SwapchainCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for SwapchainCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for SwapchainCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_CREATE_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for SwapchainCreateInfoKHR<'a> {} @@ -8934,7 +8955,7 @@ impl ::core::default::Default for PresentInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PresentInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PresentInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PRESENT_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for PresentInfoKHR<'a> {} @@ -9003,10 +9024,10 @@ impl ::core::default::Default for DebugReportCallbackCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DebugReportCallbackCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DebugReportCallbackCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> for DebugReportCallbackCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, InstanceCreateInfo<'a>> for DebugReportCallbackCreateInfoEXT<'a> {} impl<'a> DebugReportCallbackCreateInfoEXT<'a> { #[inline] pub fn flags(mut self, flags: DebugReportFlagsEXT) -> Self { @@ -9050,10 +9071,10 @@ impl ::core::default::Default for ValidationFlagsEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ValidationFlagsEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ValidationFlagsEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VALIDATION_FLAGS_EXT; } -unsafe impl<'a> Extends> for ValidationFlagsEXT<'a> {} +unsafe impl<'a> Extends<'a, InstanceCreateInfo<'a>> for ValidationFlagsEXT<'a> {} impl<'a> ValidationFlagsEXT<'a> { #[inline] pub fn disabled_validation_checks( @@ -9095,12 +9116,12 @@ impl ::core::default::Default for ValidationFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ValidationFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ValidationFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VALIDATION_FEATURES_EXT; } -unsafe impl<'a> Extends> for ValidationFeaturesEXT<'a> {} -unsafe impl<'a> Extends> for ValidationFeaturesEXT<'a> {} -unsafe impl<'a> Extends> for ValidationFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, InstanceCreateInfo<'a>> for ValidationFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, ShaderModuleCreateInfo<'a>> for ValidationFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, ShaderCreateInfoEXT<'a>> for ValidationFeaturesEXT<'a> {} impl<'a> ValidationFeaturesEXT<'a> { #[inline] pub fn enabled_validation_features( @@ -9147,10 +9168,10 @@ impl ::core::default::Default for LayerSettingsCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for LayerSettingsCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for LayerSettingsCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::LAYER_SETTINGS_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> for LayerSettingsCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, InstanceCreateInfo<'a>> for LayerSettingsCreateInfoEXT<'a> {} impl<'a> LayerSettingsCreateInfoEXT<'a> { #[inline] pub fn settings(mut self, settings: &'a [LayerSettingEXT<'a>]) -> Self { @@ -9250,11 +9271,11 @@ impl ::core::default::Default for PipelineRasterizationStateRasterizationOrderAM } } } -unsafe impl<'a> TaggedStructure for PipelineRasterizationStateRasterizationOrderAMD<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineRasterizationStateRasterizationOrderAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineRasterizationStateCreateInfo<'a>> for PipelineRasterizationStateRasterizationOrderAMD<'a> { } @@ -9293,7 +9314,7 @@ impl ::core::default::Default for DebugMarkerObjectNameInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DebugMarkerObjectNameInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DebugMarkerObjectNameInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEBUG_MARKER_OBJECT_NAME_INFO_EXT; } impl<'a> DebugMarkerObjectNameInfoEXT<'a> { @@ -9353,7 +9374,7 @@ impl ::core::default::Default for DebugMarkerObjectTagInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DebugMarkerObjectTagInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DebugMarkerObjectTagInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEBUG_MARKER_OBJECT_TAG_INFO_EXT; } impl<'a> DebugMarkerObjectTagInfoEXT<'a> { @@ -9405,7 +9426,7 @@ impl ::core::default::Default for DebugMarkerMarkerInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DebugMarkerMarkerInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DebugMarkerMarkerInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEBUG_MARKER_MARKER_INFO_EXT; } impl<'a> DebugMarkerMarkerInfoEXT<'a> { @@ -9452,10 +9473,10 @@ impl ::core::default::Default for DedicatedAllocationImageCreateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for DedicatedAllocationImageCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for DedicatedAllocationImageCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV; } -unsafe impl<'a> Extends> for DedicatedAllocationImageCreateInfoNV<'a> {} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> for DedicatedAllocationImageCreateInfoNV<'a> {} impl<'a> DedicatedAllocationImageCreateInfoNV<'a> { #[inline] pub fn dedicated_allocation(mut self, dedicated_allocation: bool) -> Self { @@ -9487,10 +9508,10 @@ impl ::core::default::Default for DedicatedAllocationBufferCreateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for DedicatedAllocationBufferCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for DedicatedAllocationBufferCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV; } -unsafe impl<'a> Extends> for DedicatedAllocationBufferCreateInfoNV<'a> {} +unsafe impl<'a> Extends<'a, BufferCreateInfo<'a>> for DedicatedAllocationBufferCreateInfoNV<'a> {} impl<'a> DedicatedAllocationBufferCreateInfoNV<'a> { #[inline] pub fn dedicated_allocation(mut self, dedicated_allocation: bool) -> Self { @@ -9524,11 +9545,14 @@ impl ::core::default::Default for DedicatedAllocationMemoryAllocateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for DedicatedAllocationMemoryAllocateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for DedicatedAllocationMemoryAllocateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV; } -unsafe impl<'a> Extends> for DedicatedAllocationMemoryAllocateInfoNV<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> + for DedicatedAllocationMemoryAllocateInfoNV<'a> +{ +} impl<'a> DedicatedAllocationMemoryAllocateInfoNV<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { @@ -9610,10 +9634,10 @@ impl ::core::default::Default for ExternalMemoryImageCreateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for ExternalMemoryImageCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExternalMemoryImageCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV; } -unsafe impl<'a> Extends> for ExternalMemoryImageCreateInfoNV<'a> {} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> for ExternalMemoryImageCreateInfoNV<'a> {} impl<'a> ExternalMemoryImageCreateInfoNV<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalMemoryHandleTypeFlagsNV) -> Self { @@ -9645,10 +9669,10 @@ impl ::core::default::Default for ExportMemoryAllocateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for ExportMemoryAllocateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExportMemoryAllocateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_MEMORY_ALLOCATE_INFO_NV; } -unsafe impl<'a> Extends> for ExportMemoryAllocateInfoNV<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> for ExportMemoryAllocateInfoNV<'a> {} impl<'a> ExportMemoryAllocateInfoNV<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalMemoryHandleTypeFlagsNV) -> Self { @@ -9682,10 +9706,10 @@ impl ::core::default::Default for ImportMemoryWin32HandleInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for ImportMemoryWin32HandleInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImportMemoryWin32HandleInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_WIN32_HANDLE_INFO_NV; } -unsafe impl<'a> Extends> for ImportMemoryWin32HandleInfoNV<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> for ImportMemoryWin32HandleInfoNV<'a> {} impl<'a> ImportMemoryWin32HandleInfoNV<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlagsNV) -> Self { @@ -9724,10 +9748,10 @@ impl ::core::default::Default for ExportMemoryWin32HandleInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for ExportMemoryWin32HandleInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExportMemoryWin32HandleInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_MEMORY_WIN32_HANDLE_INFO_NV; } -unsafe impl<'a> Extends> for ExportMemoryWin32HandleInfoNV<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> for ExportMemoryWin32HandleInfoNV<'a> {} impl<'a> ExportMemoryWin32HandleInfoNV<'a> { #[inline] pub fn attributes(mut self, attributes: &'a SECURITY_ATTRIBUTES) -> Self { @@ -9776,11 +9800,11 @@ impl ::core::default::Default for Win32KeyedMutexAcquireReleaseInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for Win32KeyedMutexAcquireReleaseInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for Win32KeyedMutexAcquireReleaseInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV; } -unsafe impl<'a> Extends> for Win32KeyedMutexAcquireReleaseInfoNV<'a> {} -unsafe impl<'a> Extends> for Win32KeyedMutexAcquireReleaseInfoNV<'a> {} +unsafe impl<'a> Extends<'a, SubmitInfo<'a>> for Win32KeyedMutexAcquireReleaseInfoNV<'a> {} +unsafe impl<'a> Extends<'a, SubmitInfo2<'a>> for Win32KeyedMutexAcquireReleaseInfoNV<'a> {} impl<'a> Win32KeyedMutexAcquireReleaseInfoNV<'a> { #[inline] pub fn acquire_syncs(mut self, acquire_syncs: &'a [DeviceMemory]) -> Self { @@ -9837,15 +9861,15 @@ impl ::core::default::Default for PhysicalDeviceDeviceGeneratedCommandsFeaturesN } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV<'a> { } @@ -9884,15 +9908,15 @@ impl ::core::default::Default for PhysicalDeviceDeviceGeneratedCommandsComputeFe } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV<'a> { } @@ -9944,10 +9968,10 @@ impl ::core::default::Default for DevicePrivateDataCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for DevicePrivateDataCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for DevicePrivateDataCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_PRIVATE_DATA_CREATE_INFO; } -unsafe impl<'a> Extends> for DevicePrivateDataCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for DevicePrivateDataCreateInfo<'a> {} impl<'a> DevicePrivateDataCreateInfo<'a> { #[inline] pub fn private_data_slot_request_count(mut self, private_data_slot_request_count: u32) -> Self { @@ -9979,7 +10003,7 @@ impl ::core::default::Default for PrivateDataSlotCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PrivateDataSlotCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PrivateDataSlotCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PRIVATE_DATA_SLOT_CREATE_INFO; } impl<'a> PrivateDataSlotCreateInfo<'a> { @@ -10013,11 +10037,11 @@ impl ::core::default::Default for PhysicalDevicePrivateDataFeatures<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePrivateDataFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePrivateDataFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES; } -unsafe impl<'a> Extends> for PhysicalDevicePrivateDataFeatures<'a> {} -unsafe impl<'a> Extends> for PhysicalDevicePrivateDataFeatures<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDevicePrivateDataFeatures<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevicePrivateDataFeatures<'a> {} impl<'a> PhysicalDevicePrivateDataFeatures<'a> { #[inline] pub fn private_data(mut self, private_data: bool) -> Self { @@ -10065,11 +10089,11 @@ impl ::core::default::Default for PhysicalDeviceDeviceGeneratedCommandsPropertie } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsPropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDeviceGeneratedCommandsPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceDeviceGeneratedCommandsPropertiesNV<'a> { } @@ -10168,10 +10192,10 @@ impl ::core::default::Default for PhysicalDeviceMultiDrawPropertiesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiDrawPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMultiDrawPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceMultiDrawPropertiesEXT<'a> { } @@ -10212,7 +10236,7 @@ impl ::core::default::Default for GraphicsShaderGroupCreateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for GraphicsShaderGroupCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for GraphicsShaderGroupCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GRAPHICS_SHADER_GROUP_CREATE_INFO_NV; } impl<'a> GraphicsShaderGroupCreateInfoNV<'a> { @@ -10269,11 +10293,11 @@ impl ::core::default::Default for GraphicsPipelineShaderGroupsCreateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for GraphicsPipelineShaderGroupsCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for GraphicsPipelineShaderGroupsCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, GraphicsPipelineCreateInfo<'a>> for GraphicsPipelineShaderGroupsCreateInfoNV<'a> { } @@ -10444,7 +10468,7 @@ impl ::core::default::Default for IndirectCommandsLayoutTokenNV<'_> { } } } -unsafe impl<'a> TaggedStructure for IndirectCommandsLayoutTokenNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for IndirectCommandsLayoutTokenNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_TOKEN_NV; } impl<'a> IndirectCommandsLayoutTokenNV<'a> { @@ -10551,7 +10575,7 @@ impl ::core::default::Default for IndirectCommandsLayoutCreateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for IndirectCommandsLayoutCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for IndirectCommandsLayoutCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV; } impl<'a> IndirectCommandsLayoutCreateInfoNV<'a> { @@ -10626,7 +10650,7 @@ impl ::core::default::Default for GeneratedCommandsInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for GeneratedCommandsInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for GeneratedCommandsInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_INFO_NV; } impl<'a> GeneratedCommandsInfoNV<'a> { @@ -10725,7 +10749,7 @@ impl ::core::default::Default for GeneratedCommandsMemoryRequirementsInfoNV<'_> } } } -unsafe impl<'a> TaggedStructure for GeneratedCommandsMemoryRequirementsInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for GeneratedCommandsMemoryRequirementsInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV; } @@ -10780,7 +10804,7 @@ impl ::core::default::Default for PipelineIndirectDeviceAddressInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineIndirectDeviceAddressInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineIndirectDeviceAddressInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV; } impl<'a> PipelineIndirectDeviceAddressInfoNV<'a> { @@ -10834,10 +10858,10 @@ impl ::core::default::Default for PhysicalDeviceFeatures2<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceFeatures2<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFeatures2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FEATURES_2; } -unsafe impl<'a> Extends> for PhysicalDeviceFeatures2<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceFeatures2<'a> {} unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceFeatures2<'a> {} impl<'a> PhysicalDeviceFeatures2<'a> { #[inline] @@ -10870,7 +10894,7 @@ impl ::core::default::Default for PhysicalDeviceProperties2<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceProperties2<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROPERTIES_2; } unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceProperties2<'a> {} @@ -10905,7 +10929,7 @@ impl ::core::default::Default for FormatProperties2<'_> { } } } -unsafe impl<'a> TaggedStructure for FormatProperties2<'a> { +unsafe impl<'a> TaggedStructure<'a> for FormatProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FORMAT_PROPERTIES_2; } unsafe impl<'a> BaseTaggedStructure<'a> for FormatProperties2<'a> {} @@ -10940,7 +10964,7 @@ impl ::core::default::Default for ImageFormatProperties2<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageFormatProperties2<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageFormatProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_FORMAT_PROPERTIES_2; } unsafe impl<'a> BaseTaggedStructure<'a> for ImageFormatProperties2<'a> {} @@ -10986,7 +11010,7 @@ impl ::core::default::Default for PhysicalDeviceImageFormatInfo2<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceImageFormatInfo2<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageFormatInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2; } unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceImageFormatInfo2<'a> {} @@ -11041,7 +11065,7 @@ impl ::core::default::Default for QueueFamilyProperties2<'_> { } } } -unsafe impl<'a> TaggedStructure for QueueFamilyProperties2<'a> { +unsafe impl<'a> TaggedStructure<'a> for QueueFamilyProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_PROPERTIES_2; } unsafe impl<'a> BaseTaggedStructure<'a> for QueueFamilyProperties2<'a> {} @@ -11079,7 +11103,7 @@ impl ::core::default::Default for PhysicalDeviceMemoryProperties2<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMemoryProperties2<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMemoryProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_PROPERTIES_2; } unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceMemoryProperties2<'a> {} @@ -11114,7 +11138,7 @@ impl ::core::default::Default for SparseImageFormatProperties2<'_> { } } } -unsafe impl<'a> TaggedStructure for SparseImageFormatProperties2<'a> { +unsafe impl<'a> TaggedStructure<'a> for SparseImageFormatProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SPARSE_IMAGE_FORMAT_PROPERTIES_2; } impl<'a> SparseImageFormatProperties2<'a> { @@ -11156,7 +11180,7 @@ impl ::core::default::Default for PhysicalDeviceSparseImageFormatInfo2<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceSparseImageFormatInfo2<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSparseImageFormatInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2; } impl<'a> PhysicalDeviceSparseImageFormatInfo2<'a> { @@ -11210,11 +11234,11 @@ impl ::core::default::Default for PhysicalDevicePushDescriptorPropertiesKHR<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePushDescriptorPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePushDescriptorPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDevicePushDescriptorPropertiesKHR<'a> { } @@ -11300,10 +11324,10 @@ impl ::core::default::Default for PhysicalDeviceDriverProperties<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDriverProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDriverProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DRIVER_PROPERTIES; } -unsafe impl<'a> Extends> for PhysicalDeviceDriverProperties<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceDriverProperties<'a> {} impl<'a> PhysicalDeviceDriverProperties<'a> { #[inline] pub fn driver_id(mut self, driver_id: DriverId) -> Self { @@ -11364,10 +11388,10 @@ impl ::core::default::Default for PresentRegionsKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PresentRegionsKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PresentRegionsKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PRESENT_REGIONS_KHR; } -unsafe impl<'a> Extends> for PresentRegionsKHR<'a> {} +unsafe impl<'a> Extends<'a, PresentInfoKHR<'a>> for PresentRegionsKHR<'a> {} impl<'a> PresentRegionsKHR<'a> { #[inline] pub fn regions(mut self, regions: &'a [PresentRegionKHR<'a>]) -> Self { @@ -11459,14 +11483,14 @@ impl ::core::default::Default for PhysicalDeviceVariablePointersFeatures<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceVariablePointersFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVariablePointersFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceVariablePointersFeatures<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceVariablePointersFeatures<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceVariablePointersFeatures<'a> {} impl<'a> PhysicalDeviceVariablePointersFeatures<'a> { #[inline] pub fn variable_pointers_storage_buffer( @@ -11542,10 +11566,10 @@ impl ::core::default::Default for PhysicalDeviceExternalImageFormatInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalImageFormatInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExternalImageFormatInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceImageFormatInfo2<'a>> for PhysicalDeviceExternalImageFormatInfo<'a> { } @@ -11580,10 +11604,10 @@ impl ::core::default::Default for ExternalImageFormatProperties<'_> { } } } -unsafe impl<'a> TaggedStructure for ExternalImageFormatProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExternalImageFormatProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_IMAGE_FORMAT_PROPERTIES; } -unsafe impl<'a> Extends> for ExternalImageFormatProperties<'a> {} +unsafe impl<'a> Extends<'a, ImageFormatProperties2<'a>> for ExternalImageFormatProperties<'a> {} impl<'a> ExternalImageFormatProperties<'a> { #[inline] pub fn external_memory_properties( @@ -11622,7 +11646,7 @@ impl ::core::default::Default for PhysicalDeviceExternalBufferInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalBufferInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExternalBufferInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceExternalBufferInfo<'a> {} @@ -11667,7 +11691,7 @@ impl ::core::default::Default for ExternalBufferProperties<'_> { } } } -unsafe impl<'a> TaggedStructure for ExternalBufferProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExternalBufferProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_BUFFER_PROPERTIES; } impl<'a> ExternalBufferProperties<'a> { @@ -11712,10 +11736,10 @@ impl ::core::default::Default for PhysicalDeviceIDProperties<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceIDProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceIDProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ID_PROPERTIES; } -unsafe impl<'a> Extends> for PhysicalDeviceIDProperties<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceIDProperties<'a> {} impl<'a> PhysicalDeviceIDProperties<'a> { #[inline] pub fn device_uuid(mut self, device_uuid: [u8; UUID_SIZE]) -> Self { @@ -11767,10 +11791,10 @@ impl ::core::default::Default for ExternalMemoryImageCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for ExternalMemoryImageCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExternalMemoryImageCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_MEMORY_IMAGE_CREATE_INFO; } -unsafe impl<'a> Extends> for ExternalMemoryImageCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> for ExternalMemoryImageCreateInfo<'a> {} impl<'a> ExternalMemoryImageCreateInfo<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalMemoryHandleTypeFlags) -> Self { @@ -11802,10 +11826,10 @@ impl ::core::default::Default for ExternalMemoryBufferCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for ExternalMemoryBufferCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExternalMemoryBufferCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_MEMORY_BUFFER_CREATE_INFO; } -unsafe impl<'a> Extends> for ExternalMemoryBufferCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, BufferCreateInfo<'a>> for ExternalMemoryBufferCreateInfo<'a> {} impl<'a> ExternalMemoryBufferCreateInfo<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalMemoryHandleTypeFlags) -> Self { @@ -11837,10 +11861,10 @@ impl ::core::default::Default for ExportMemoryAllocateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for ExportMemoryAllocateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExportMemoryAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_MEMORY_ALLOCATE_INFO; } -unsafe impl<'a> Extends> for ExportMemoryAllocateInfo<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> for ExportMemoryAllocateInfo<'a> {} impl<'a> ExportMemoryAllocateInfo<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalMemoryHandleTypeFlags) -> Self { @@ -11876,10 +11900,10 @@ impl ::core::default::Default for ImportMemoryWin32HandleInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for ImportMemoryWin32HandleInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImportMemoryWin32HandleInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR; } -unsafe impl<'a> Extends> for ImportMemoryWin32HandleInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> for ImportMemoryWin32HandleInfoKHR<'a> {} impl<'a> ImportMemoryWin32HandleInfoKHR<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { @@ -11925,10 +11949,10 @@ impl ::core::default::Default for ExportMemoryWin32HandleInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for ExportMemoryWin32HandleInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExportMemoryWin32HandleInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR; } -unsafe impl<'a> Extends> for ExportMemoryWin32HandleInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> for ExportMemoryWin32HandleInfoKHR<'a> {} impl<'a> ExportMemoryWin32HandleInfoKHR<'a> { #[inline] pub fn attributes(mut self, attributes: &'a SECURITY_ATTRIBUTES) -> Self { @@ -11972,10 +11996,10 @@ impl ::core::default::Default for ImportMemoryZirconHandleInfoFUCHSIA<'_> { } } } -unsafe impl<'a> TaggedStructure for ImportMemoryZirconHandleInfoFUCHSIA<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImportMemoryZirconHandleInfoFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA; } -unsafe impl<'a> Extends> for ImportMemoryZirconHandleInfoFUCHSIA<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> for ImportMemoryZirconHandleInfoFUCHSIA<'a> {} impl<'a> ImportMemoryZirconHandleInfoFUCHSIA<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { @@ -12012,7 +12036,7 @@ impl ::core::default::Default for MemoryZirconHandlePropertiesFUCHSIA<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryZirconHandlePropertiesFUCHSIA<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryZirconHandlePropertiesFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA; } impl<'a> MemoryZirconHandlePropertiesFUCHSIA<'a> { @@ -12048,7 +12072,7 @@ impl ::core::default::Default for MemoryGetZirconHandleInfoFUCHSIA<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryGetZirconHandleInfoFUCHSIA<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryGetZirconHandleInfoFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA; } impl<'a> MemoryGetZirconHandleInfoFUCHSIA<'a> { @@ -12087,7 +12111,7 @@ impl ::core::default::Default for MemoryWin32HandlePropertiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryWin32HandlePropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryWin32HandlePropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_WIN32_HANDLE_PROPERTIES_KHR; } impl<'a> MemoryWin32HandlePropertiesKHR<'a> { @@ -12123,7 +12147,7 @@ impl ::core::default::Default for MemoryGetWin32HandleInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryGetWin32HandleInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryGetWin32HandleInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_GET_WIN32_HANDLE_INFO_KHR; } impl<'a> MemoryGetWin32HandleInfoKHR<'a> { @@ -12164,10 +12188,10 @@ impl ::core::default::Default for ImportMemoryFdInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for ImportMemoryFdInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImportMemoryFdInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_FD_INFO_KHR; } -unsafe impl<'a> Extends> for ImportMemoryFdInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> for ImportMemoryFdInfoKHR<'a> {} impl<'a> ImportMemoryFdInfoKHR<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { @@ -12204,7 +12228,7 @@ impl ::core::default::Default for MemoryFdPropertiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryFdPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryFdPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_FD_PROPERTIES_KHR; } impl<'a> MemoryFdPropertiesKHR<'a> { @@ -12240,7 +12264,7 @@ impl ::core::default::Default for MemoryGetFdInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryGetFdInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryGetFdInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_GET_FD_INFO_KHR; } impl<'a> MemoryGetFdInfoKHR<'a> { @@ -12291,11 +12315,11 @@ impl ::core::default::Default for Win32KeyedMutexAcquireReleaseInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for Win32KeyedMutexAcquireReleaseInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for Win32KeyedMutexAcquireReleaseInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR; } -unsafe impl<'a> Extends> for Win32KeyedMutexAcquireReleaseInfoKHR<'a> {} -unsafe impl<'a> Extends> for Win32KeyedMutexAcquireReleaseInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, SubmitInfo<'a>> for Win32KeyedMutexAcquireReleaseInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, SubmitInfo2<'a>> for Win32KeyedMutexAcquireReleaseInfoKHR<'a> {} impl<'a> Win32KeyedMutexAcquireReleaseInfoKHR<'a> { #[inline] pub fn acquire_syncs(mut self, acquire_syncs: &'a [DeviceMemory]) -> Self { @@ -12352,7 +12376,7 @@ impl ::core::default::Default for PhysicalDeviceExternalSemaphoreInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalSemaphoreInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExternalSemaphoreInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceExternalSemaphoreInfo<'a> {} @@ -12391,7 +12415,7 @@ impl ::core::default::Default for ExternalSemaphoreProperties<'_> { } } } -unsafe impl<'a> TaggedStructure for ExternalSemaphoreProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExternalSemaphoreProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_SEMAPHORE_PROPERTIES; } impl<'a> ExternalSemaphoreProperties<'a> { @@ -12444,10 +12468,10 @@ impl ::core::default::Default for ExportSemaphoreCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for ExportSemaphoreCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExportSemaphoreCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_SEMAPHORE_CREATE_INFO; } -unsafe impl<'a> Extends> for ExportSemaphoreCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, SemaphoreCreateInfo<'a>> for ExportSemaphoreCreateInfo<'a> {} impl<'a> ExportSemaphoreCreateInfo<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalSemaphoreHandleTypeFlags) -> Self { @@ -12487,7 +12511,7 @@ impl ::core::default::Default for ImportSemaphoreWin32HandleInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for ImportSemaphoreWin32HandleInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImportSemaphoreWin32HandleInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR; } impl<'a> ImportSemaphoreWin32HandleInfoKHR<'a> { @@ -12545,10 +12569,10 @@ impl ::core::default::Default for ExportSemaphoreWin32HandleInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for ExportSemaphoreWin32HandleInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExportSemaphoreWin32HandleInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR; } -unsafe impl<'a> Extends> for ExportSemaphoreWin32HandleInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, SemaphoreCreateInfo<'a>> for ExportSemaphoreWin32HandleInfoKHR<'a> {} impl<'a> ExportSemaphoreWin32HandleInfoKHR<'a> { #[inline] pub fn attributes(mut self, attributes: &'a SECURITY_ATTRIBUTES) -> Self { @@ -12596,10 +12620,10 @@ impl ::core::default::Default for D3D12FenceSubmitInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for D3D12FenceSubmitInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for D3D12FenceSubmitInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::D3D12_FENCE_SUBMIT_INFO_KHR; } -unsafe impl<'a> Extends> for D3D12FenceSubmitInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, SubmitInfo<'a>> for D3D12FenceSubmitInfoKHR<'a> {} impl<'a> D3D12FenceSubmitInfoKHR<'a> { #[inline] pub fn wait_semaphore_values(mut self, wait_semaphore_values: &'a [u64]) -> Self { @@ -12640,7 +12664,7 @@ impl ::core::default::Default for SemaphoreGetWin32HandleInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for SemaphoreGetWin32HandleInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for SemaphoreGetWin32HandleInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR; } impl<'a> SemaphoreGetWin32HandleInfoKHR<'a> { @@ -12685,7 +12709,7 @@ impl ::core::default::Default for ImportSemaphoreFdInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for ImportSemaphoreFdInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImportSemaphoreFdInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_SEMAPHORE_FD_INFO_KHR; } impl<'a> ImportSemaphoreFdInfoKHR<'a> { @@ -12736,7 +12760,7 @@ impl ::core::default::Default for SemaphoreGetFdInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for SemaphoreGetFdInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for SemaphoreGetFdInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SEMAPHORE_GET_FD_INFO_KHR; } impl<'a> SemaphoreGetFdInfoKHR<'a> { @@ -12781,7 +12805,7 @@ impl ::core::default::Default for ImportSemaphoreZirconHandleInfoFUCHSIA<'_> { } } } -unsafe impl<'a> TaggedStructure for ImportSemaphoreZirconHandleInfoFUCHSIA<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImportSemaphoreZirconHandleInfoFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA; } @@ -12833,7 +12857,7 @@ impl ::core::default::Default for SemaphoreGetZirconHandleInfoFUCHSIA<'_> { } } } -unsafe impl<'a> TaggedStructure for SemaphoreGetZirconHandleInfoFUCHSIA<'a> { +unsafe impl<'a> TaggedStructure<'a> for SemaphoreGetZirconHandleInfoFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA; } impl<'a> SemaphoreGetZirconHandleInfoFUCHSIA<'a> { @@ -12872,7 +12896,7 @@ impl ::core::default::Default for PhysicalDeviceExternalFenceInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalFenceInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExternalFenceInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO; } impl<'a> PhysicalDeviceExternalFenceInfo<'a> { @@ -12910,7 +12934,7 @@ impl ::core::default::Default for ExternalFenceProperties<'_> { } } } -unsafe impl<'a> TaggedStructure for ExternalFenceProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExternalFenceProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_FENCE_PROPERTIES; } impl<'a> ExternalFenceProperties<'a> { @@ -12963,10 +12987,10 @@ impl ::core::default::Default for ExportFenceCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for ExportFenceCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExportFenceCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_FENCE_CREATE_INFO; } -unsafe impl<'a> Extends> for ExportFenceCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, FenceCreateInfo<'a>> for ExportFenceCreateInfo<'a> {} impl<'a> ExportFenceCreateInfo<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalFenceHandleTypeFlags) -> Self { @@ -13006,7 +13030,7 @@ impl ::core::default::Default for ImportFenceWin32HandleInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for ImportFenceWin32HandleInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImportFenceWin32HandleInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_FENCE_WIN32_HANDLE_INFO_KHR; } impl<'a> ImportFenceWin32HandleInfoKHR<'a> { @@ -13064,10 +13088,10 @@ impl ::core::default::Default for ExportFenceWin32HandleInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for ExportFenceWin32HandleInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExportFenceWin32HandleInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_FENCE_WIN32_HANDLE_INFO_KHR; } -unsafe impl<'a> Extends> for ExportFenceWin32HandleInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, FenceCreateInfo<'a>> for ExportFenceWin32HandleInfoKHR<'a> {} impl<'a> ExportFenceWin32HandleInfoKHR<'a> { #[inline] pub fn attributes(mut self, attributes: &'a SECURITY_ATTRIBUTES) -> Self { @@ -13111,7 +13135,7 @@ impl ::core::default::Default for FenceGetWin32HandleInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for FenceGetWin32HandleInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for FenceGetWin32HandleInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FENCE_GET_WIN32_HANDLE_INFO_KHR; } impl<'a> FenceGetWin32HandleInfoKHR<'a> { @@ -13156,7 +13180,7 @@ impl ::core::default::Default for ImportFenceFdInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for ImportFenceFdInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImportFenceFdInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_FENCE_FD_INFO_KHR; } impl<'a> ImportFenceFdInfoKHR<'a> { @@ -13207,7 +13231,7 @@ impl ::core::default::Default for FenceGetFdInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for FenceGetFdInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for FenceGetFdInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FENCE_GET_FD_INFO_KHR; } impl<'a> FenceGetFdInfoKHR<'a> { @@ -13250,11 +13274,11 @@ impl ::core::default::Default for PhysicalDeviceMultiviewFeatures<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiviewFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMultiviewFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_FEATURES; } -unsafe impl<'a> Extends> for PhysicalDeviceMultiviewFeatures<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceMultiviewFeatures<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceMultiviewFeatures<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceMultiviewFeatures<'a> {} impl<'a> PhysicalDeviceMultiviewFeatures<'a> { #[inline] pub fn multiview(mut self, multiview: bool) -> Self { @@ -13298,10 +13322,13 @@ impl ::core::default::Default for PhysicalDeviceMultiviewProperties<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiviewProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMultiviewProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES; } -unsafe impl<'a> Extends> for PhysicalDeviceMultiviewProperties<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> + for PhysicalDeviceMultiviewProperties<'a> +{ +} impl<'a> PhysicalDeviceMultiviewProperties<'a> { #[inline] pub fn max_multiview_view_count(mut self, max_multiview_view_count: u32) -> Self { @@ -13348,10 +13375,10 @@ impl ::core::default::Default for RenderPassMultiviewCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for RenderPassMultiviewCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderPassMultiviewCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_MULTIVIEW_CREATE_INFO; } -unsafe impl<'a> Extends> for RenderPassMultiviewCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, RenderPassCreateInfo<'a>> for RenderPassMultiviewCreateInfo<'a> {} impl<'a> RenderPassMultiviewCreateInfo<'a> { #[inline] pub fn view_masks(mut self, view_masks: &'a [u32]) -> Self { @@ -13416,7 +13443,7 @@ impl ::core::default::Default for SurfaceCapabilities2EXT<'_> { } } } -unsafe impl<'a> TaggedStructure for SurfaceCapabilities2EXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SurfaceCapabilities2EXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_2_EXT; } impl<'a> SurfaceCapabilities2EXT<'a> { @@ -13506,7 +13533,7 @@ impl ::core::default::Default for DisplayPowerInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DisplayPowerInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DisplayPowerInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DISPLAY_POWER_INFO_EXT; } impl<'a> DisplayPowerInfoEXT<'a> { @@ -13540,7 +13567,7 @@ impl ::core::default::Default for DeviceEventInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceEventInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceEventInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_EVENT_INFO_EXT; } impl<'a> DeviceEventInfoEXT<'a> { @@ -13574,7 +13601,7 @@ impl ::core::default::Default for DisplayEventInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DisplayEventInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DisplayEventInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DISPLAY_EVENT_INFO_EXT; } impl<'a> DisplayEventInfoEXT<'a> { @@ -13608,10 +13635,10 @@ impl ::core::default::Default for SwapchainCounterCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for SwapchainCounterCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SwapchainCounterCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_COUNTER_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> for SwapchainCounterCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, SwapchainCreateInfoKHR<'a>> for SwapchainCounterCreateInfoEXT<'a> {} impl<'a> SwapchainCounterCreateInfoEXT<'a> { #[inline] pub fn surface_counters(mut self, surface_counters: SurfaceCounterFlagsEXT) -> Self { @@ -13658,7 +13685,7 @@ impl ::core::default::Default for PhysicalDeviceGroupProperties<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceGroupProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceGroupProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_GROUP_PROPERTIES; } impl<'a> PhysicalDeviceGroupProperties<'a> { @@ -13704,10 +13731,10 @@ impl ::core::default::Default for MemoryAllocateFlagsInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryAllocateFlagsInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryAllocateFlagsInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_ALLOCATE_FLAGS_INFO; } -unsafe impl<'a> Extends> for MemoryAllocateFlagsInfo<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> for MemoryAllocateFlagsInfo<'a> {} impl<'a> MemoryAllocateFlagsInfo<'a> { #[inline] pub fn flags(mut self, flags: MemoryAllocateFlags) -> Self { @@ -13748,7 +13775,7 @@ impl ::core::default::Default for BindBufferMemoryInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for BindBufferMemoryInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for BindBufferMemoryInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_BUFFER_MEMORY_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for BindBufferMemoryInfo<'a> {} @@ -13795,10 +13822,10 @@ impl ::core::default::Default for BindBufferMemoryDeviceGroupInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for BindBufferMemoryDeviceGroupInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for BindBufferMemoryDeviceGroupInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO; } -unsafe impl<'a> Extends> for BindBufferMemoryDeviceGroupInfo<'a> {} +unsafe impl<'a> Extends<'a, BindBufferMemoryInfo<'a>> for BindBufferMemoryDeviceGroupInfo<'a> {} impl<'a> BindBufferMemoryDeviceGroupInfo<'a> { #[inline] pub fn device_indices(mut self, device_indices: &'a [u32]) -> Self { @@ -13835,7 +13862,7 @@ impl ::core::default::Default for BindImageMemoryInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for BindImageMemoryInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for BindImageMemoryInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_IMAGE_MEMORY_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for BindImageMemoryInfo<'a> {} @@ -13886,10 +13913,10 @@ impl ::core::default::Default for BindImageMemoryDeviceGroupInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for BindImageMemoryDeviceGroupInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for BindImageMemoryDeviceGroupInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO; } -unsafe impl<'a> Extends> for BindImageMemoryDeviceGroupInfo<'a> {} +unsafe impl<'a> Extends<'a, BindImageMemoryInfo<'a>> for BindImageMemoryDeviceGroupInfo<'a> {} impl<'a> BindImageMemoryDeviceGroupInfo<'a> { #[inline] pub fn device_indices(mut self, device_indices: &'a [u32]) -> Self { @@ -13935,11 +13962,11 @@ impl ::core::default::Default for DeviceGroupRenderPassBeginInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceGroupRenderPassBeginInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceGroupRenderPassBeginInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_RENDER_PASS_BEGIN_INFO; } -unsafe impl<'a> Extends> for DeviceGroupRenderPassBeginInfo<'a> {} -unsafe impl<'a> Extends> for DeviceGroupRenderPassBeginInfo<'a> {} +unsafe impl<'a> Extends<'a, RenderPassBeginInfo<'a>> for DeviceGroupRenderPassBeginInfo<'a> {} +unsafe impl<'a> Extends<'a, RenderingInfo<'a>> for DeviceGroupRenderPassBeginInfo<'a> {} impl<'a> DeviceGroupRenderPassBeginInfo<'a> { #[inline] pub fn device_mask(mut self, device_mask: u32) -> Self { @@ -13977,10 +14004,10 @@ impl ::core::default::Default for DeviceGroupCommandBufferBeginInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceGroupCommandBufferBeginInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceGroupCommandBufferBeginInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO; } -unsafe impl<'a> Extends> for DeviceGroupCommandBufferBeginInfo<'a> {} +unsafe impl<'a> Extends<'a, CommandBufferBeginInfo<'a>> for DeviceGroupCommandBufferBeginInfo<'a> {} impl<'a> DeviceGroupCommandBufferBeginInfo<'a> { #[inline] pub fn device_mask(mut self, device_mask: u32) -> Self { @@ -14022,10 +14049,10 @@ impl ::core::default::Default for DeviceGroupSubmitInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceGroupSubmitInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceGroupSubmitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_SUBMIT_INFO; } -unsafe impl<'a> Extends> for DeviceGroupSubmitInfo<'a> {} +unsafe impl<'a> Extends<'a, SubmitInfo<'a>> for DeviceGroupSubmitInfo<'a> {} impl<'a> DeviceGroupSubmitInfo<'a> { #[inline] pub fn wait_semaphore_device_indices( @@ -14078,10 +14105,10 @@ impl ::core::default::Default for DeviceGroupBindSparseInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceGroupBindSparseInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceGroupBindSparseInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_BIND_SPARSE_INFO; } -unsafe impl<'a> Extends> for DeviceGroupBindSparseInfo<'a> {} +unsafe impl<'a> Extends<'a, BindSparseInfo<'a>> for DeviceGroupBindSparseInfo<'a> {} impl<'a> DeviceGroupBindSparseInfo<'a> { #[inline] pub fn resource_device_index(mut self, resource_device_index: u32) -> Self { @@ -14120,7 +14147,7 @@ impl ::core::default::Default for DeviceGroupPresentCapabilitiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceGroupPresentCapabilitiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceGroupPresentCapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_PRESENT_CAPABILITIES_KHR; } impl<'a> DeviceGroupPresentCapabilitiesKHR<'a> { @@ -14159,10 +14186,10 @@ impl ::core::default::Default for ImageSwapchainCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageSwapchainCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageSwapchainCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_SWAPCHAIN_CREATE_INFO_KHR; } -unsafe impl<'a> Extends> for ImageSwapchainCreateInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> for ImageSwapchainCreateInfoKHR<'a> {} impl<'a> ImageSwapchainCreateInfoKHR<'a> { #[inline] pub fn swapchain(mut self, swapchain: SwapchainKHR) -> Self { @@ -14196,10 +14223,10 @@ impl ::core::default::Default for BindImageMemorySwapchainInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for BindImageMemorySwapchainInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for BindImageMemorySwapchainInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR; } -unsafe impl<'a> Extends> for BindImageMemorySwapchainInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, BindImageMemoryInfo<'a>> for BindImageMemorySwapchainInfoKHR<'a> {} impl<'a> BindImageMemorySwapchainInfoKHR<'a> { #[inline] pub fn swapchain(mut self, swapchain: SwapchainKHR) -> Self { @@ -14244,7 +14271,7 @@ impl ::core::default::Default for AcquireNextImageInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for AcquireNextImageInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for AcquireNextImageInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACQUIRE_NEXT_IMAGE_INFO_KHR; } impl<'a> AcquireNextImageInfoKHR<'a> { @@ -14302,10 +14329,10 @@ impl ::core::default::Default for DeviceGroupPresentInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceGroupPresentInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceGroupPresentInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_PRESENT_INFO_KHR; } -unsafe impl<'a> Extends> for DeviceGroupPresentInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, PresentInfoKHR<'a>> for DeviceGroupPresentInfoKHR<'a> {} impl<'a> DeviceGroupPresentInfoKHR<'a> { #[inline] pub fn device_masks(mut self, device_masks: &'a [u32]) -> Self { @@ -14345,10 +14372,10 @@ impl ::core::default::Default for DeviceGroupDeviceCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceGroupDeviceCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceGroupDeviceCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_DEVICE_CREATE_INFO; } -unsafe impl<'a> Extends> for DeviceGroupDeviceCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for DeviceGroupDeviceCreateInfo<'a> {} impl<'a> DeviceGroupDeviceCreateInfo<'a> { #[inline] pub fn physical_devices(mut self, physical_devices: &'a [PhysicalDevice]) -> Self { @@ -14381,10 +14408,10 @@ impl ::core::default::Default for DeviceGroupSwapchainCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceGroupSwapchainCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceGroupSwapchainCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR; } -unsafe impl<'a> Extends> for DeviceGroupSwapchainCreateInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, SwapchainCreateInfoKHR<'a>> for DeviceGroupSwapchainCreateInfoKHR<'a> {} impl<'a> DeviceGroupSwapchainCreateInfoKHR<'a> { #[inline] pub fn modes(mut self, modes: DeviceGroupPresentModeFlagsKHR) -> Self { @@ -14475,7 +14502,7 @@ impl ::core::default::Default for DescriptorUpdateTemplateCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for DescriptorUpdateTemplateCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for DescriptorUpdateTemplateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO; } impl<'a> DescriptorUpdateTemplateCreateInfo<'a> { @@ -14564,11 +14591,14 @@ impl ::core::default::Default for PhysicalDevicePresentIdFeaturesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePresentIdFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePresentIdFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR; } -unsafe impl<'a> Extends> for PhysicalDevicePresentIdFeaturesKHR<'a> {} -unsafe impl<'a> Extends> for PhysicalDevicePresentIdFeaturesKHR<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDevicePresentIdFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevicePresentIdFeaturesKHR<'a> {} impl<'a> PhysicalDevicePresentIdFeaturesKHR<'a> { #[inline] pub fn present_id(mut self, present_id: bool) -> Self { @@ -14602,10 +14632,10 @@ impl ::core::default::Default for PresentIdKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PresentIdKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PresentIdKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PRESENT_ID_KHR; } -unsafe impl<'a> Extends> for PresentIdKHR<'a> {} +unsafe impl<'a> Extends<'a, PresentInfoKHR<'a>> for PresentIdKHR<'a> {} impl<'a> PresentIdKHR<'a> { #[inline] pub fn present_ids(mut self, present_ids: &'a [u64]) -> Self { @@ -14638,11 +14668,14 @@ impl ::core::default::Default for PhysicalDevicePresentWaitFeaturesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePresentWaitFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePresentWaitFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR; } -unsafe impl<'a> Extends> for PhysicalDevicePresentWaitFeaturesKHR<'a> {} -unsafe impl<'a> Extends> for PhysicalDevicePresentWaitFeaturesKHR<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDevicePresentWaitFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevicePresentWaitFeaturesKHR<'a> {} impl<'a> PhysicalDevicePresentWaitFeaturesKHR<'a> { #[inline] pub fn present_wait(mut self, present_wait: bool) -> Self { @@ -14688,7 +14721,7 @@ impl ::core::default::Default for HdrMetadataEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for HdrMetadataEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for HdrMetadataEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::HDR_METADATA_EXT; } impl<'a> HdrMetadataEXT<'a> { @@ -14757,11 +14790,11 @@ impl ::core::default::Default for DisplayNativeHdrSurfaceCapabilitiesAMD<'_> { } } } -unsafe impl<'a> TaggedStructure for DisplayNativeHdrSurfaceCapabilitiesAMD<'a> { +unsafe impl<'a> TaggedStructure<'a> for DisplayNativeHdrSurfaceCapabilitiesAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, SurfaceCapabilities2KHR<'a>> for DisplayNativeHdrSurfaceCapabilitiesAMD<'a> { } @@ -14796,11 +14829,14 @@ impl ::core::default::Default for SwapchainDisplayNativeHdrCreateInfoAMD<'_> { } } } -unsafe impl<'a> TaggedStructure for SwapchainDisplayNativeHdrCreateInfoAMD<'a> { +unsafe impl<'a> TaggedStructure<'a> for SwapchainDisplayNativeHdrCreateInfoAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD; } -unsafe impl<'a> Extends> for SwapchainDisplayNativeHdrCreateInfoAMD<'a> {} +unsafe impl<'a> Extends<'a, SwapchainCreateInfoKHR<'a>> + for SwapchainDisplayNativeHdrCreateInfoAMD<'a> +{ +} impl<'a> SwapchainDisplayNativeHdrCreateInfoAMD<'a> { #[inline] pub fn local_dimming_enable(mut self, local_dimming_enable: bool) -> Self { @@ -14888,10 +14924,10 @@ impl ::core::default::Default for PresentTimesInfoGOOGLE<'_> { } } } -unsafe impl<'a> TaggedStructure for PresentTimesInfoGOOGLE<'a> { +unsafe impl<'a> TaggedStructure<'a> for PresentTimesInfoGOOGLE<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PRESENT_TIMES_INFO_GOOGLE; } -unsafe impl<'a> Extends> for PresentTimesInfoGOOGLE<'a> {} +unsafe impl<'a> Extends<'a, PresentInfoKHR<'a>> for PresentTimesInfoGOOGLE<'a> {} impl<'a> PresentTimesInfoGOOGLE<'a> { #[inline] pub fn times(mut self, times: &'a [PresentTimeGOOGLE]) -> Self { @@ -14947,7 +14983,7 @@ impl ::core::default::Default for IOSSurfaceCreateInfoMVK<'_> { } } } -unsafe impl<'a> TaggedStructure for IOSSurfaceCreateInfoMVK<'a> { +unsafe impl<'a> TaggedStructure<'a> for IOSSurfaceCreateInfoMVK<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IOS_SURFACE_CREATE_INFO_MVK; } impl<'a> IOSSurfaceCreateInfoMVK<'a> { @@ -14988,7 +15024,7 @@ impl ::core::default::Default for MacOSSurfaceCreateInfoMVK<'_> { } } } -unsafe impl<'a> TaggedStructure for MacOSSurfaceCreateInfoMVK<'a> { +unsafe impl<'a> TaggedStructure<'a> for MacOSSurfaceCreateInfoMVK<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MACOS_SURFACE_CREATE_INFO_MVK; } impl<'a> MacOSSurfaceCreateInfoMVK<'a> { @@ -15029,7 +15065,7 @@ impl ::core::default::Default for MetalSurfaceCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for MetalSurfaceCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for MetalSurfaceCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::METAL_SURFACE_CREATE_INFO_EXT; } impl<'a> MetalSurfaceCreateInfoEXT<'a> { @@ -15093,11 +15129,11 @@ impl ::core::default::Default for PipelineViewportWScalingStateCreateInfoNV<'_> } } } -unsafe impl<'a> TaggedStructure for PipelineViewportWScalingStateCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineViewportWScalingStateCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineViewportStateCreateInfo<'a>> for PipelineViewportWScalingStateCreateInfoNV<'a> { } @@ -15175,11 +15211,11 @@ impl ::core::default::Default for PipelineViewportSwizzleStateCreateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineViewportSwizzleStateCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineViewportSwizzleStateCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineViewportStateCreateInfo<'a>> for PipelineViewportSwizzleStateCreateInfoNV<'a> { } @@ -15220,11 +15256,11 @@ impl ::core::default::Default for PhysicalDeviceDiscardRectanglePropertiesEXT<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDiscardRectanglePropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDiscardRectanglePropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceDiscardRectanglePropertiesEXT<'a> { } @@ -15265,11 +15301,11 @@ impl ::core::default::Default for PipelineDiscardRectangleStateCreateInfoEXT<'_> } } } -unsafe impl<'a> TaggedStructure for PipelineDiscardRectangleStateCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineDiscardRectangleStateCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, GraphicsPipelineCreateInfo<'a>> for PipelineDiscardRectangleStateCreateInfoEXT<'a> { } @@ -15318,11 +15354,11 @@ impl ::core::default::Default for PhysicalDeviceMultiviewPerViewAttributesProper } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX<'a> { } @@ -15389,11 +15425,11 @@ impl ::core::default::Default for RenderPassInputAttachmentAspectCreateInfo<'_> } } } -unsafe impl<'a> TaggedStructure for RenderPassInputAttachmentAspectCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderPassInputAttachmentAspectCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, RenderPassCreateInfo<'a>> for RenderPassInputAttachmentAspectCreateInfo<'a> { } @@ -15432,7 +15468,7 @@ impl ::core::default::Default for PhysicalDeviceSurfaceInfo2KHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceSurfaceInfo2KHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSurfaceInfo2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SURFACE_INFO_2_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceSurfaceInfo2KHR<'a> {} @@ -15467,7 +15503,7 @@ impl ::core::default::Default for SurfaceCapabilities2KHR<'_> { } } } -unsafe impl<'a> TaggedStructure for SurfaceCapabilities2KHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for SurfaceCapabilities2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_2_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for SurfaceCapabilities2KHR<'a> {} @@ -15502,7 +15538,7 @@ impl ::core::default::Default for SurfaceFormat2KHR<'_> { } } } -unsafe impl<'a> TaggedStructure for SurfaceFormat2KHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for SurfaceFormat2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_FORMAT_2_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for SurfaceFormat2KHR<'a> {} @@ -15537,7 +15573,7 @@ impl ::core::default::Default for DisplayProperties2KHR<'_> { } } } -unsafe impl<'a> TaggedStructure for DisplayProperties2KHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for DisplayProperties2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DISPLAY_PROPERTIES_2_KHR; } impl<'a> DisplayProperties2KHR<'a> { @@ -15571,7 +15607,7 @@ impl ::core::default::Default for DisplayPlaneProperties2KHR<'_> { } } } -unsafe impl<'a> TaggedStructure for DisplayPlaneProperties2KHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for DisplayPlaneProperties2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DISPLAY_PLANE_PROPERTIES_2_KHR; } impl<'a> DisplayPlaneProperties2KHR<'a> { @@ -15608,7 +15644,7 @@ impl ::core::default::Default for DisplayModeProperties2KHR<'_> { } } } -unsafe impl<'a> TaggedStructure for DisplayModeProperties2KHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for DisplayModeProperties2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DISPLAY_MODE_PROPERTIES_2_KHR; } impl<'a> DisplayModeProperties2KHR<'a> { @@ -15647,7 +15683,7 @@ impl ::core::default::Default for DisplayPlaneInfo2KHR<'_> { } } } -unsafe impl<'a> TaggedStructure for DisplayPlaneInfo2KHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for DisplayPlaneInfo2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DISPLAY_PLANE_INFO_2_KHR; } impl<'a> DisplayPlaneInfo2KHR<'a> { @@ -15686,7 +15722,7 @@ impl ::core::default::Default for DisplayPlaneCapabilities2KHR<'_> { } } } -unsafe impl<'a> TaggedStructure for DisplayPlaneCapabilities2KHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for DisplayPlaneCapabilities2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DISPLAY_PLANE_CAPABILITIES_2_KHR; } impl<'a> DisplayPlaneCapabilities2KHR<'a> { @@ -15720,10 +15756,13 @@ impl ::core::default::Default for SharedPresentSurfaceCapabilitiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for SharedPresentSurfaceCapabilitiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for SharedPresentSurfaceCapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SHARED_PRESENT_SURFACE_CAPABILITIES_KHR; } -unsafe impl<'a> Extends> for SharedPresentSurfaceCapabilitiesKHR<'a> {} +unsafe impl<'a> Extends<'a, SurfaceCapabilities2KHR<'a>> + for SharedPresentSurfaceCapabilitiesKHR<'a> +{ +} impl<'a> SharedPresentSurfaceCapabilitiesKHR<'a> { #[inline] pub fn shared_present_supported_usage_flags( @@ -15764,11 +15803,14 @@ impl ::core::default::Default for PhysicalDevice16BitStorageFeatures<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDevice16BitStorageFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevice16BitStorageFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES; } -unsafe impl<'a> Extends> for PhysicalDevice16BitStorageFeatures<'a> {} -unsafe impl<'a> Extends> for PhysicalDevice16BitStorageFeatures<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDevice16BitStorageFeatures<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevice16BitStorageFeatures<'a> {} impl<'a> PhysicalDevice16BitStorageFeatures<'a> { #[inline] pub fn storage_buffer16_bit_access(mut self, storage_buffer16_bit_access: bool) -> Self { @@ -15825,10 +15867,13 @@ impl ::core::default::Default for PhysicalDeviceSubgroupProperties<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceSubgroupProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSubgroupProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBGROUP_PROPERTIES; } -unsafe impl<'a> Extends> for PhysicalDeviceSubgroupProperties<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> + for PhysicalDeviceSubgroupProperties<'a> +{ +} impl<'a> PhysicalDeviceSubgroupProperties<'a> { #[inline] pub fn subgroup_size(mut self, subgroup_size: u32) -> Self { @@ -15875,15 +15920,15 @@ impl ::core::default::Default for PhysicalDeviceShaderSubgroupExtendedTypesFeatu } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderSubgroupExtendedTypesFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderSubgroupExtendedTypesFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderSubgroupExtendedTypesFeatures<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderSubgroupExtendedTypesFeatures<'a> { } @@ -15918,7 +15963,7 @@ impl ::core::default::Default for BufferMemoryRequirementsInfo2<'_> { } } } -unsafe impl<'a> TaggedStructure for BufferMemoryRequirementsInfo2<'a> { +unsafe impl<'a> TaggedStructure<'a> for BufferMemoryRequirementsInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_MEMORY_REQUIREMENTS_INFO_2; } impl<'a> BufferMemoryRequirementsInfo2<'a> { @@ -15952,7 +15997,7 @@ impl ::core::default::Default for DeviceBufferMemoryRequirements<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceBufferMemoryRequirements<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceBufferMemoryRequirements<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_BUFFER_MEMORY_REQUIREMENTS; } impl<'a> DeviceBufferMemoryRequirements<'a> { @@ -15986,7 +16031,7 @@ impl ::core::default::Default for ImageMemoryRequirementsInfo2<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageMemoryRequirementsInfo2<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageMemoryRequirementsInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_MEMORY_REQUIREMENTS_INFO_2; } unsafe impl<'a> BaseTaggedStructure<'a> for ImageMemoryRequirementsInfo2<'a> {} @@ -16021,7 +16066,7 @@ impl ::core::default::Default for ImageSparseMemoryRequirementsInfo2<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageSparseMemoryRequirementsInfo2<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageSparseMemoryRequirementsInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2; } impl<'a> ImageSparseMemoryRequirementsInfo2<'a> { @@ -16057,7 +16102,7 @@ impl ::core::default::Default for DeviceImageMemoryRequirements<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceImageMemoryRequirements<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceImageMemoryRequirements<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_IMAGE_MEMORY_REQUIREMENTS; } impl<'a> DeviceImageMemoryRequirements<'a> { @@ -16096,7 +16141,7 @@ impl ::core::default::Default for MemoryRequirements2<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryRequirements2<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryRequirements2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_REQUIREMENTS_2; } unsafe impl<'a> BaseTaggedStructure<'a> for MemoryRequirements2<'a> {} @@ -16131,7 +16176,7 @@ impl ::core::default::Default for SparseImageMemoryRequirements2<'_> { } } } -unsafe impl<'a> TaggedStructure for SparseImageMemoryRequirements2<'a> { +unsafe impl<'a> TaggedStructure<'a> for SparseImageMemoryRequirements2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SPARSE_IMAGE_MEMORY_REQUIREMENTS_2; } impl<'a> SparseImageMemoryRequirements2<'a> { @@ -16168,10 +16213,10 @@ impl ::core::default::Default for PhysicalDevicePointClippingProperties<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePointClippingProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePointClippingProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDevicePointClippingProperties<'a> { } @@ -16211,10 +16256,10 @@ impl ::core::default::Default for MemoryDedicatedRequirements<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryDedicatedRequirements<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryDedicatedRequirements<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_DEDICATED_REQUIREMENTS; } -unsafe impl<'a> Extends> for MemoryDedicatedRequirements<'a> {} +unsafe impl<'a> Extends<'a, MemoryRequirements2<'a>> for MemoryDedicatedRequirements<'a> {} impl<'a> MemoryDedicatedRequirements<'a> { #[inline] pub fn prefers_dedicated_allocation(mut self, prefers_dedicated_allocation: bool) -> Self { @@ -16253,10 +16298,10 @@ impl ::core::default::Default for MemoryDedicatedAllocateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryDedicatedAllocateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryDedicatedAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_DEDICATED_ALLOCATE_INFO; } -unsafe impl<'a> Extends> for MemoryDedicatedAllocateInfo<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> for MemoryDedicatedAllocateInfo<'a> {} impl<'a> MemoryDedicatedAllocateInfo<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { @@ -16293,10 +16338,10 @@ impl ::core::default::Default for ImageViewUsageCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageViewUsageCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageViewUsageCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_USAGE_CREATE_INFO; } -unsafe impl<'a> Extends> for ImageViewUsageCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, ImageViewCreateInfo<'a>> for ImageViewUsageCreateInfo<'a> {} impl<'a> ImageViewUsageCreateInfo<'a> { #[inline] pub fn usage(mut self, usage: ImageUsageFlags) -> Self { @@ -16330,10 +16375,10 @@ impl ::core::default::Default for ImageViewSlicedCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageViewSlicedCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageViewSlicedCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_SLICED_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> for ImageViewSlicedCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, ImageViewCreateInfo<'a>> for ImageViewSlicedCreateInfoEXT<'a> {} impl<'a> ImageViewSlicedCreateInfoEXT<'a> { #[inline] pub fn slice_offset(mut self, slice_offset: u32) -> Self { @@ -16370,11 +16415,11 @@ impl ::core::default::Default for PipelineTessellationDomainOriginStateCreateInf } } } -unsafe impl<'a> TaggedStructure for PipelineTessellationDomainOriginStateCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineTessellationDomainOriginStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineTessellationStateCreateInfo<'a>> for PipelineTessellationDomainOriginStateCreateInfo<'a> { } @@ -16409,11 +16454,11 @@ impl ::core::default::Default for SamplerYcbcrConversionInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for SamplerYcbcrConversionInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for SamplerYcbcrConversionInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_INFO; } -unsafe impl<'a> Extends> for SamplerYcbcrConversionInfo<'a> {} -unsafe impl<'a> Extends> for SamplerYcbcrConversionInfo<'a> {} +unsafe impl<'a> Extends<'a, SamplerCreateInfo<'a>> for SamplerYcbcrConversionInfo<'a> {} +unsafe impl<'a> Extends<'a, ImageViewCreateInfo<'a>> for SamplerYcbcrConversionInfo<'a> {} impl<'a> SamplerYcbcrConversionInfo<'a> { #[inline] pub fn conversion(mut self, conversion: SamplerYcbcrConversion) -> Self { @@ -16459,7 +16504,7 @@ impl ::core::default::Default for SamplerYcbcrConversionCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for SamplerYcbcrConversionCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for SamplerYcbcrConversionCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_CREATE_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for SamplerYcbcrConversionCreateInfo<'a> {} @@ -16529,10 +16574,10 @@ impl ::core::default::Default for BindImagePlaneMemoryInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for BindImagePlaneMemoryInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for BindImagePlaneMemoryInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_IMAGE_PLANE_MEMORY_INFO; } -unsafe impl<'a> Extends> for BindImagePlaneMemoryInfo<'a> {} +unsafe impl<'a> Extends<'a, BindImageMemoryInfo<'a>> for BindImagePlaneMemoryInfo<'a> {} impl<'a> BindImagePlaneMemoryInfo<'a> { #[inline] pub fn plane_aspect(mut self, plane_aspect: ImageAspectFlags) -> Self { @@ -16564,10 +16609,13 @@ impl ::core::default::Default for ImagePlaneMemoryRequirementsInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for ImagePlaneMemoryRequirementsInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImagePlaneMemoryRequirementsInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO; } -unsafe impl<'a> Extends> for ImagePlaneMemoryRequirementsInfo<'a> {} +unsafe impl<'a> Extends<'a, ImageMemoryRequirementsInfo2<'a>> + for ImagePlaneMemoryRequirementsInfo<'a> +{ +} impl<'a> ImagePlaneMemoryRequirementsInfo<'a> { #[inline] pub fn plane_aspect(mut self, plane_aspect: ImageAspectFlags) -> Self { @@ -16599,15 +16647,18 @@ impl ::core::default::Default for PhysicalDeviceSamplerYcbcrConversionFeatures<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceSamplerYcbcrConversionFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSamplerYcbcrConversionFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceSamplerYcbcrConversionFeatures<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceSamplerYcbcrConversionFeatures<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceSamplerYcbcrConversionFeatures<'a> {} impl<'a> PhysicalDeviceSamplerYcbcrConversionFeatures<'a> { #[inline] pub fn sampler_ycbcr_conversion(mut self, sampler_ycbcr_conversion: bool) -> Self { @@ -16639,11 +16690,11 @@ impl ::core::default::Default for SamplerYcbcrConversionImageFormatProperties<'_ } } } -unsafe impl<'a> TaggedStructure for SamplerYcbcrConversionImageFormatProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for SamplerYcbcrConversionImageFormatProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, ImageFormatProperties2<'a>> for SamplerYcbcrConversionImageFormatProperties<'a> { } @@ -16681,10 +16732,13 @@ impl ::core::default::Default for TextureLODGatherFormatPropertiesAMD<'_> { } } } -unsafe impl<'a> TaggedStructure for TextureLODGatherFormatPropertiesAMD<'a> { +unsafe impl<'a> TaggedStructure<'a> for TextureLODGatherFormatPropertiesAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD; } -unsafe impl<'a> Extends> for TextureLODGatherFormatPropertiesAMD<'a> {} +unsafe impl<'a> Extends<'a, ImageFormatProperties2<'a>> + for TextureLODGatherFormatPropertiesAMD<'a> +{ +} impl<'a> TextureLODGatherFormatPropertiesAMD<'a> { #[inline] pub fn supports_texture_gather_lod_bias_amd( @@ -16723,7 +16777,7 @@ impl ::core::default::Default for ConditionalRenderingBeginInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ConditionalRenderingBeginInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ConditionalRenderingBeginInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::CONDITIONAL_RENDERING_BEGIN_INFO_EXT; } impl<'a> ConditionalRenderingBeginInfoEXT<'a> { @@ -16767,10 +16821,10 @@ impl ::core::default::Default for ProtectedSubmitInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for ProtectedSubmitInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for ProtectedSubmitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PROTECTED_SUBMIT_INFO; } -unsafe impl<'a> Extends> for ProtectedSubmitInfo<'a> {} +unsafe impl<'a> Extends<'a, SubmitInfo<'a>> for ProtectedSubmitInfo<'a> {} impl<'a> ProtectedSubmitInfo<'a> { #[inline] pub fn protected_submit(mut self, protected_submit: bool) -> Self { @@ -16802,11 +16856,14 @@ impl ::core::default::Default for PhysicalDeviceProtectedMemoryFeatures<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceProtectedMemoryFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceProtectedMemoryFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES; } -unsafe impl<'a> Extends> for PhysicalDeviceProtectedMemoryFeatures<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceProtectedMemoryFeatures<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceProtectedMemoryFeatures<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceProtectedMemoryFeatures<'a> {} impl<'a> PhysicalDeviceProtectedMemoryFeatures<'a> { #[inline] pub fn protected_memory(mut self, protected_memory: bool) -> Self { @@ -16838,11 +16895,11 @@ impl ::core::default::Default for PhysicalDeviceProtectedMemoryProperties<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceProtectedMemoryProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceProtectedMemoryProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceProtectedMemoryProperties<'a> { } @@ -16881,7 +16938,7 @@ impl ::core::default::Default for DeviceQueueInfo2<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceQueueInfo2<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceQueueInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_QUEUE_INFO_2; } impl<'a> DeviceQueueInfo2<'a> { @@ -16929,11 +16986,11 @@ impl ::core::default::Default for PipelineCoverageToColorStateCreateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineCoverageToColorStateCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineCoverageToColorStateCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineMultisampleStateCreateInfo<'a>> for PipelineCoverageToColorStateCreateInfoNV<'a> { } @@ -16980,11 +17037,11 @@ impl ::core::default::Default for PhysicalDeviceSamplerFilterMinmaxProperties<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceSamplerFilterMinmaxProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSamplerFilterMinmaxProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceSamplerFilterMinmaxProperties<'a> { } @@ -17057,11 +17114,11 @@ impl ::core::default::Default for SampleLocationsInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for SampleLocationsInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SampleLocationsInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLE_LOCATIONS_INFO_EXT; } -unsafe impl<'a> Extends> for SampleLocationsInfoEXT<'a> {} -unsafe impl<'a> Extends> for SampleLocationsInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, ImageMemoryBarrier<'a>> for SampleLocationsInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, ImageMemoryBarrier2<'a>> for SampleLocationsInfoEXT<'a> {} impl<'a> SampleLocationsInfoEXT<'a> { #[inline] pub fn sample_locations_per_pixel( @@ -17163,11 +17220,11 @@ impl ::core::default::Default for RenderPassSampleLocationsBeginInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for RenderPassSampleLocationsBeginInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderPassSampleLocationsBeginInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT; } -unsafe impl<'a> Extends> for RenderPassSampleLocationsBeginInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, RenderPassBeginInfo<'a>> for RenderPassSampleLocationsBeginInfoEXT<'a> {} impl<'a> RenderPassSampleLocationsBeginInfoEXT<'a> { #[inline] pub fn attachment_initial_sample_locations( @@ -17215,11 +17272,11 @@ impl ::core::default::Default for PipelineSampleLocationsStateCreateInfoEXT<'_> } } } -unsafe impl<'a> TaggedStructure for PipelineSampleLocationsStateCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineSampleLocationsStateCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineMultisampleStateCreateInfo<'a>> for PipelineSampleLocationsStateCreateInfoEXT<'a> { } @@ -17270,11 +17327,11 @@ impl ::core::default::Default for PhysicalDeviceSampleLocationsPropertiesEXT<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceSampleLocationsPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSampleLocationsPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceSampleLocationsPropertiesEXT<'a> { } @@ -17338,7 +17395,7 @@ impl ::core::default::Default for MultisamplePropertiesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for MultisamplePropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for MultisamplePropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MULTISAMPLE_PROPERTIES_EXT; } impl<'a> MultisamplePropertiesEXT<'a> { @@ -17375,10 +17432,10 @@ impl ::core::default::Default for SamplerReductionModeCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for SamplerReductionModeCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for SamplerReductionModeCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_REDUCTION_MODE_CREATE_INFO; } -unsafe impl<'a> Extends> for SamplerReductionModeCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, SamplerCreateInfo<'a>> for SamplerReductionModeCreateInfo<'a> {} impl<'a> SamplerReductionModeCreateInfo<'a> { #[inline] pub fn reduction_mode(mut self, reduction_mode: SamplerReductionMode) -> Self { @@ -17410,15 +17467,15 @@ impl ::core::default::Default for PhysicalDeviceBlendOperationAdvancedFeaturesEX } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceBlendOperationAdvancedFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceBlendOperationAdvancedFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceBlendOperationAdvancedFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceBlendOperationAdvancedFeaturesEXT<'a> { } @@ -17456,11 +17513,14 @@ impl ::core::default::Default for PhysicalDeviceMultiDrawFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiDrawFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMultiDrawFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT; } -unsafe impl<'a> Extends> for PhysicalDeviceMultiDrawFeaturesEXT<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceMultiDrawFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceMultiDrawFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceMultiDrawFeaturesEXT<'a> {} impl<'a> PhysicalDeviceMultiDrawFeaturesEXT<'a> { #[inline] pub fn multi_draw(mut self, multi_draw: bool) -> Self { @@ -17502,11 +17562,11 @@ impl ::core::default::Default for PhysicalDeviceBlendOperationAdvancedProperties } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceBlendOperationAdvancedPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceBlendOperationAdvancedPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceBlendOperationAdvancedPropertiesEXT<'a> { } @@ -17587,11 +17647,11 @@ impl ::core::default::Default for PipelineColorBlendAdvancedStateCreateInfoEXT<' } } } -unsafe impl<'a> TaggedStructure for PipelineColorBlendAdvancedStateCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineColorBlendAdvancedStateCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineColorBlendStateCreateInfo<'a>> for PipelineColorBlendAdvancedStateCreateInfoEXT<'a> { } @@ -17638,15 +17698,15 @@ impl ::core::default::Default for PhysicalDeviceInlineUniformBlockFeatures<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceInlineUniformBlockFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceInlineUniformBlockFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceInlineUniformBlockFeatures<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceInlineUniformBlockFeatures<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceInlineUniformBlockFeatures<'a> {} impl<'a> PhysicalDeviceInlineUniformBlockFeatures<'a> { #[inline] pub fn inline_uniform_block(mut self, inline_uniform_block: bool) -> Self { @@ -17695,11 +17755,11 @@ impl ::core::default::Default for PhysicalDeviceInlineUniformBlockProperties<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceInlineUniformBlockProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceInlineUniformBlockProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceInlineUniformBlockProperties<'a> { } @@ -17771,10 +17831,10 @@ impl ::core::default::Default for WriteDescriptorSetInlineUniformBlock<'_> { } } } -unsafe impl<'a> TaggedStructure for WriteDescriptorSetInlineUniformBlock<'a> { +unsafe impl<'a> TaggedStructure<'a> for WriteDescriptorSetInlineUniformBlock<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK; } -unsafe impl<'a> Extends> for WriteDescriptorSetInlineUniformBlock<'a> {} +unsafe impl<'a> Extends<'a, WriteDescriptorSet<'a>> for WriteDescriptorSetInlineUniformBlock<'a> {} impl<'a> WriteDescriptorSetInlineUniformBlock<'a> { #[inline] pub fn data(mut self, data: &'a [u8]) -> Self { @@ -17807,11 +17867,11 @@ impl ::core::default::Default for DescriptorPoolInlineUniformBlockCreateInfo<'_> } } } -unsafe impl<'a> TaggedStructure for DescriptorPoolInlineUniformBlockCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for DescriptorPoolInlineUniformBlockCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DescriptorPoolCreateInfo<'a>> for DescriptorPoolInlineUniformBlockCreateInfo<'a> { } @@ -17857,11 +17917,11 @@ impl ::core::default::Default for PipelineCoverageModulationStateCreateInfoNV<'_ } } } -unsafe impl<'a> TaggedStructure for PipelineCoverageModulationStateCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineCoverageModulationStateCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineMultisampleStateCreateInfo<'a>> for PipelineCoverageModulationStateCreateInfoNV<'a> { } @@ -17920,12 +17980,12 @@ impl ::core::default::Default for ImageFormatListCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageFormatListCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageFormatListCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_FORMAT_LIST_CREATE_INFO; } -unsafe impl<'a> Extends> for ImageFormatListCreateInfo<'a> {} -unsafe impl<'a> Extends> for ImageFormatListCreateInfo<'a> {} -unsafe impl<'a> Extends> for ImageFormatListCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> for ImageFormatListCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, SwapchainCreateInfoKHR<'a>> for ImageFormatListCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceImageFormatInfo2<'a>> for ImageFormatListCreateInfo<'a> {} impl<'a> ImageFormatListCreateInfo<'a> { #[inline] pub fn view_formats(mut self, view_formats: &'a [Format]) -> Self { @@ -17962,7 +18022,7 @@ impl ::core::default::Default for ValidationCacheCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ValidationCacheCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ValidationCacheCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VALIDATION_CACHE_CREATE_INFO_EXT; } impl<'a> ValidationCacheCreateInfoEXT<'a> { @@ -18002,15 +18062,15 @@ impl ::core::default::Default for ShaderModuleValidationCacheCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ShaderModuleValidationCacheCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ShaderModuleValidationCacheCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, ShaderModuleCreateInfo<'a>> for ShaderModuleValidationCacheCreateInfoEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineShaderStageCreateInfo<'a>> for ShaderModuleValidationCacheCreateInfoEXT<'a> { } @@ -18047,10 +18107,10 @@ impl ::core::default::Default for PhysicalDeviceMaintenance3Properties<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance3Properties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance3Properties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceMaintenance3Properties<'a> { } @@ -18090,11 +18150,14 @@ impl ::core::default::Default for PhysicalDeviceMaintenance4Features<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance4Features<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance4Features<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES; } -unsafe impl<'a> Extends> for PhysicalDeviceMaintenance4Features<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceMaintenance4Features<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceMaintenance4Features<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceMaintenance4Features<'a> {} impl<'a> PhysicalDeviceMaintenance4Features<'a> { #[inline] pub fn maintenance4(mut self, maintenance4: bool) -> Self { @@ -18126,10 +18189,10 @@ impl ::core::default::Default for PhysicalDeviceMaintenance4Properties<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance4Properties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance4Properties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceMaintenance4Properties<'a> { } @@ -18164,11 +18227,14 @@ impl ::core::default::Default for PhysicalDeviceMaintenance5FeaturesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance5FeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance5FeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR; } -unsafe impl<'a> Extends> for PhysicalDeviceMaintenance5FeaturesKHR<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceMaintenance5FeaturesKHR<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceMaintenance5FeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceMaintenance5FeaturesKHR<'a> {} impl<'a> PhysicalDeviceMaintenance5FeaturesKHR<'a> { #[inline] pub fn maintenance5(mut self, maintenance5: bool) -> Self { @@ -18210,11 +18276,11 @@ impl ::core::default::Default for PhysicalDeviceMaintenance5PropertiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance5PropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance5PropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceMaintenance5PropertiesKHR<'a> { } @@ -18293,11 +18359,14 @@ impl ::core::default::Default for PhysicalDeviceMaintenance6FeaturesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance6FeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance6FeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR; } -unsafe impl<'a> Extends> for PhysicalDeviceMaintenance6FeaturesKHR<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceMaintenance6FeaturesKHR<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceMaintenance6FeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceMaintenance6FeaturesKHR<'a> {} impl<'a> PhysicalDeviceMaintenance6FeaturesKHR<'a> { #[inline] pub fn maintenance6(mut self, maintenance6: bool) -> Self { @@ -18333,11 +18402,11 @@ impl ::core::default::Default for PhysicalDeviceMaintenance6PropertiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance6PropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance6PropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceMaintenance6PropertiesKHR<'a> { } @@ -18394,11 +18463,14 @@ impl ::core::default::Default for PhysicalDeviceMaintenance7FeaturesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance7FeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance7FeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR; } -unsafe impl<'a> Extends> for PhysicalDeviceMaintenance7FeaturesKHR<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceMaintenance7FeaturesKHR<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceMaintenance7FeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceMaintenance7FeaturesKHR<'a> {} impl<'a> PhysicalDeviceMaintenance7FeaturesKHR<'a> { #[inline] pub fn maintenance7(mut self, maintenance7: bool) -> Self { @@ -18444,11 +18516,11 @@ impl ::core::default::Default for PhysicalDeviceMaintenance7PropertiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance7PropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance7PropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceMaintenance7PropertiesKHR<'a> { } @@ -18551,11 +18623,11 @@ impl ::core::default::Default for PhysicalDeviceLayeredApiPropertiesListKHR<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceLayeredApiPropertiesListKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceLayeredApiPropertiesListKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceLayeredApiPropertiesListKHR<'a> { } @@ -18612,7 +18684,7 @@ impl ::core::default::Default for PhysicalDeviceLayeredApiPropertiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceLayeredApiPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceLayeredApiPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceLayeredApiPropertiesKHR<'a> {} @@ -18668,11 +18740,11 @@ impl ::core::default::Default for PhysicalDeviceLayeredApiVulkanPropertiesKHR<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceLayeredApiVulkanPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceLayeredApiVulkanPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceLayeredApiPropertiesKHR<'a>> for PhysicalDeviceLayeredApiVulkanPropertiesKHR<'a> { } @@ -18715,7 +18787,7 @@ impl ::core::default::Default for RenderingAreaInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for RenderingAreaInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderingAreaInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_AREA_INFO_KHR; } impl<'a> RenderingAreaInfoKHR<'a> { @@ -18765,7 +18837,7 @@ impl ::core::default::Default for DescriptorSetLayoutSupport<'_> { } } } -unsafe impl<'a> TaggedStructure for DescriptorSetLayoutSupport<'a> { +unsafe impl<'a> TaggedStructure<'a> for DescriptorSetLayoutSupport<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_SUPPORT; } unsafe impl<'a> BaseTaggedStructure<'a> for DescriptorSetLayoutSupport<'a> {} @@ -18800,15 +18872,18 @@ impl ::core::default::Default for PhysicalDeviceShaderDrawParametersFeatures<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderDrawParametersFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderDrawParametersFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceShaderDrawParametersFeatures<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderDrawParametersFeatures<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceShaderDrawParametersFeatures<'a> {} impl<'a> PhysicalDeviceShaderDrawParametersFeatures<'a> { #[inline] pub fn shader_draw_parameters(mut self, shader_draw_parameters: bool) -> Self { @@ -18842,15 +18917,15 @@ impl ::core::default::Default for PhysicalDeviceShaderFloat16Int8Features<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderFloat16Int8Features<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderFloat16Int8Features<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderFloat16Int8Features<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceShaderFloat16Int8Features<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderFloat16Int8Features<'a> {} impl<'a> PhysicalDeviceShaderFloat16Int8Features<'a> { #[inline] pub fn shader_float16(mut self, shader_float16: bool) -> Self { @@ -18919,10 +18994,10 @@ impl ::core::default::Default for PhysicalDeviceFloatControlsProperties<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceFloatControlsProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFloatControlsProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceFloatControlsProperties<'a> { } @@ -19082,11 +19157,14 @@ impl ::core::default::Default for PhysicalDeviceHostQueryResetFeatures<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceHostQueryResetFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceHostQueryResetFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES; } -unsafe impl<'a> Extends> for PhysicalDeviceHostQueryResetFeatures<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceHostQueryResetFeatures<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceHostQueryResetFeatures<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceHostQueryResetFeatures<'a> {} impl<'a> PhysicalDeviceHostQueryResetFeatures<'a> { #[inline] pub fn host_query_reset(mut self, host_query_reset: bool) -> Self { @@ -19147,7 +19225,7 @@ impl ::core::default::Default for NativeBufferANDROID<'_> { } } } -unsafe impl<'a> TaggedStructure for NativeBufferANDROID<'a> { +unsafe impl<'a> TaggedStructure<'a> for NativeBufferANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::NATIVE_BUFFER_ANDROID; } impl<'a> NativeBufferANDROID<'a> { @@ -19201,7 +19279,7 @@ impl ::core::default::Default for SwapchainImageCreateInfoANDROID<'_> { } } } -unsafe impl<'a> TaggedStructure for SwapchainImageCreateInfoANDROID<'a> { +unsafe impl<'a> TaggedStructure<'a> for SwapchainImageCreateInfoANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID; } impl<'a> SwapchainImageCreateInfoANDROID<'a> { @@ -19235,7 +19313,7 @@ impl ::core::default::Default for PhysicalDevicePresentationPropertiesANDROID<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePresentationPropertiesANDROID<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePresentationPropertiesANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID; } @@ -19374,11 +19452,14 @@ impl ::core::default::Default for DeviceQueueGlobalPriorityCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceQueueGlobalPriorityCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceQueueGlobalPriorityCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR; } -unsafe impl<'a> Extends> for DeviceQueueGlobalPriorityCreateInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, DeviceQueueCreateInfo<'a>> + for DeviceQueueGlobalPriorityCreateInfoKHR<'a> +{ +} impl<'a> DeviceQueueGlobalPriorityCreateInfoKHR<'a> { #[inline] pub fn global_priority(mut self, global_priority: QueueGlobalPriorityKHR) -> Self { @@ -19410,15 +19491,18 @@ impl ::core::default::Default for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'a> {} impl<'a> PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'a> { #[inline] pub fn global_priority_query(mut self, global_priority_query: bool) -> Self { @@ -19462,11 +19546,14 @@ impl ::core::default::Default for QueueFamilyGlobalPriorityPropertiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for QueueFamilyGlobalPriorityPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for QueueFamilyGlobalPriorityPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR; } -unsafe impl<'a> Extends> for QueueFamilyGlobalPriorityPropertiesKHR<'a> {} +unsafe impl<'a> Extends<'a, QueueFamilyProperties2<'a>> + for QueueFamilyGlobalPriorityPropertiesKHR<'a> +{ +} impl<'a> QueueFamilyGlobalPriorityPropertiesKHR<'a> { #[inline] pub fn priorities(mut self, priorities: &'_ [QueueGlobalPriorityKHR]) -> Self { @@ -19507,10 +19594,10 @@ impl ::core::default::Default for DebugUtilsObjectNameInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DebugUtilsObjectNameInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DebugUtilsObjectNameInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEBUG_UTILS_OBJECT_NAME_INFO_EXT; } -unsafe impl<'a> Extends> for DebugUtilsObjectNameInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, PipelineShaderStageCreateInfo<'a>> for DebugUtilsObjectNameInfoEXT<'a> {} impl<'a> DebugUtilsObjectNameInfoEXT<'a> { #[inline] pub fn object_handle(mut self, object_handle: T) -> Self { @@ -19564,7 +19651,7 @@ impl ::core::default::Default for DebugUtilsObjectTagInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DebugUtilsObjectTagInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DebugUtilsObjectTagInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEBUG_UTILS_OBJECT_TAG_INFO_EXT; } impl<'a> DebugUtilsObjectTagInfoEXT<'a> { @@ -19612,7 +19699,7 @@ impl ::core::default::Default for DebugUtilsLabelEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DebugUtilsLabelEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DebugUtilsLabelEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEBUG_UTILS_LABEL_EXT; } impl<'a> DebugUtilsLabelEXT<'a> { @@ -19683,10 +19770,10 @@ impl ::core::default::Default for DebugUtilsMessengerCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DebugUtilsMessengerCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DebugUtilsMessengerCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> for DebugUtilsMessengerCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, InstanceCreateInfo<'a>> for DebugUtilsMessengerCreateInfoEXT<'a> {} impl<'a> DebugUtilsMessengerCreateInfoEXT<'a> { #[inline] pub fn flags(mut self, flags: DebugUtilsMessengerCreateFlagsEXT) -> Self { @@ -19759,7 +19846,7 @@ impl ::core::default::Default for DebugUtilsMessengerCallbackDataEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DebugUtilsMessengerCallbackDataEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DebugUtilsMessengerCallbackDataEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT; } unsafe impl<'a> BaseTaggedStructure<'a> for DebugUtilsMessengerCallbackDataEXT<'a> {} @@ -19843,15 +19930,18 @@ impl ::core::default::Default for PhysicalDeviceDeviceMemoryReportFeaturesEXT<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceMemoryReportFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDeviceMemoryReportFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceDeviceMemoryReportFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDeviceMemoryReportFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceDeviceMemoryReportFeaturesEXT<'a> {} impl<'a> PhysicalDeviceDeviceMemoryReportFeaturesEXT<'a> { #[inline] pub fn device_memory_report(mut self, device_memory_report: bool) -> Self { @@ -19901,11 +19991,11 @@ impl ::core::default::Default for DeviceDeviceMemoryReportCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceDeviceMemoryReportCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceDeviceMemoryReportCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> for DeviceDeviceMemoryReportCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for DeviceDeviceMemoryReportCreateInfoEXT<'a> {} impl<'a> DeviceDeviceMemoryReportCreateInfoEXT<'a> { #[inline] pub fn flags(mut self, flags: DeviceMemoryReportFlagsEXT) -> Self { @@ -19962,7 +20052,7 @@ impl ::core::default::Default for DeviceMemoryReportCallbackDataEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceMemoryReportCallbackDataEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceMemoryReportCallbackDataEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT; } impl<'a> DeviceMemoryReportCallbackDataEXT<'a> { @@ -20024,10 +20114,10 @@ impl ::core::default::Default for ImportMemoryHostPointerInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ImportMemoryHostPointerInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImportMemoryHostPointerInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_HOST_POINTER_INFO_EXT; } -unsafe impl<'a> Extends> for ImportMemoryHostPointerInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> for ImportMemoryHostPointerInfoEXT<'a> {} impl<'a> ImportMemoryHostPointerInfoEXT<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { @@ -20064,7 +20154,7 @@ impl ::core::default::Default for MemoryHostPointerPropertiesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryHostPointerPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryHostPointerPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_HOST_POINTER_PROPERTIES_EXT; } impl<'a> MemoryHostPointerPropertiesEXT<'a> { @@ -20098,11 +20188,11 @@ impl ::core::default::Default for PhysicalDeviceExternalMemoryHostPropertiesEXT< } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalMemoryHostPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExternalMemoryHostPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceExternalMemoryHostPropertiesEXT<'a> { } @@ -20156,11 +20246,11 @@ impl ::core::default::Default for PhysicalDeviceConservativeRasterizationPropert } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceConservativeRasterizationPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceConservativeRasterizationPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceConservativeRasterizationPropertiesEXT<'a> { } @@ -20257,7 +20347,7 @@ impl ::core::default::Default for CalibratedTimestampInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for CalibratedTimestampInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for CalibratedTimestampInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::CALIBRATED_TIMESTAMP_INFO_KHR; } impl<'a> CalibratedTimestampInfoKHR<'a> { @@ -20317,10 +20407,10 @@ impl ::core::default::Default for PhysicalDeviceShaderCorePropertiesAMD<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderCorePropertiesAMD<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderCorePropertiesAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceShaderCorePropertiesAMD<'a> { } @@ -20422,11 +20512,11 @@ impl ::core::default::Default for PhysicalDeviceShaderCoreProperties2AMD<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderCoreProperties2AMD<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderCoreProperties2AMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceShaderCoreProperties2AMD<'a> { } @@ -20473,11 +20563,11 @@ impl ::core::default::Default for PipelineRasterizationConservativeStateCreateIn } } } -unsafe impl<'a> TaggedStructure for PipelineRasterizationConservativeStateCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineRasterizationConservativeStateCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineRasterizationStateCreateInfo<'a>> for PipelineRasterizationConservativeStateCreateInfoEXT<'a> { } @@ -20566,15 +20656,15 @@ impl ::core::default::Default for PhysicalDeviceDescriptorIndexingFeatures<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorIndexingFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorIndexingFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceDescriptorIndexingFeatures<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceDescriptorIndexingFeatures<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDescriptorIndexingFeatures<'a> {} impl<'a> PhysicalDeviceDescriptorIndexingFeatures<'a> { #[inline] pub fn shader_input_attachment_array_dynamic_indexing( @@ -20820,11 +20910,11 @@ impl ::core::default::Default for PhysicalDeviceDescriptorIndexingProperties<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorIndexingProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorIndexingProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceDescriptorIndexingProperties<'a> { } @@ -21057,11 +21147,11 @@ impl ::core::default::Default for DescriptorSetLayoutBindingFlagsCreateInfo<'_> } } } -unsafe impl<'a> TaggedStructure for DescriptorSetLayoutBindingFlagsCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for DescriptorSetLayoutBindingFlagsCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DescriptorSetLayoutCreateInfo<'a>> for DescriptorSetLayoutBindingFlagsCreateInfo<'a> { } @@ -21099,11 +21189,11 @@ impl ::core::default::Default for DescriptorSetVariableDescriptorCountAllocateIn } } } -unsafe impl<'a> TaggedStructure for DescriptorSetVariableDescriptorCountAllocateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for DescriptorSetVariableDescriptorCountAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DescriptorSetAllocateInfo<'a>> for DescriptorSetVariableDescriptorCountAllocateInfo<'a> { } @@ -21139,11 +21229,11 @@ impl ::core::default::Default for DescriptorSetVariableDescriptorCountLayoutSupp } } } -unsafe impl<'a> TaggedStructure for DescriptorSetVariableDescriptorCountLayoutSupport<'a> { +unsafe impl<'a> TaggedStructure<'a> for DescriptorSetVariableDescriptorCountLayoutSupport<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DescriptorSetLayoutSupport<'a>> for DescriptorSetVariableDescriptorCountLayoutSupport<'a> { } @@ -21194,7 +21284,7 @@ impl ::core::default::Default for AttachmentDescription2<'_> { } } } -unsafe impl<'a> TaggedStructure for AttachmentDescription2<'a> { +unsafe impl<'a> TaggedStructure<'a> for AttachmentDescription2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_DESCRIPTION_2; } unsafe impl<'a> BaseTaggedStructure<'a> for AttachmentDescription2<'a> {} @@ -21273,7 +21363,7 @@ impl ::core::default::Default for AttachmentReference2<'_> { } } } -unsafe impl<'a> TaggedStructure for AttachmentReference2<'a> { +unsafe impl<'a> TaggedStructure<'a> for AttachmentReference2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_REFERENCE_2; } unsafe impl<'a> BaseTaggedStructure<'a> for AttachmentReference2<'a> {} @@ -21338,7 +21428,7 @@ impl ::core::default::Default for SubpassDescription2<'_> { } } } -unsafe impl<'a> TaggedStructure for SubpassDescription2<'a> { +unsafe impl<'a> TaggedStructure<'a> for SubpassDescription2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_DESCRIPTION_2; } unsafe impl<'a> BaseTaggedStructure<'a> for SubpassDescription2<'a> {} @@ -21432,7 +21522,7 @@ impl ::core::default::Default for SubpassDependency2<'_> { } } } -unsafe impl<'a> TaggedStructure for SubpassDependency2<'a> { +unsafe impl<'a> TaggedStructure<'a> for SubpassDependency2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_DEPENDENCY_2; } unsafe impl<'a> BaseTaggedStructure<'a> for SubpassDependency2<'a> {} @@ -21518,7 +21608,7 @@ impl ::core::default::Default for RenderPassCreateInfo2<'_> { } } } -unsafe impl<'a> TaggedStructure for RenderPassCreateInfo2<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderPassCreateInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_CREATE_INFO_2; } unsafe impl<'a> BaseTaggedStructure<'a> for RenderPassCreateInfo2<'a> {} @@ -21577,7 +21667,7 @@ impl ::core::default::Default for SubpassBeginInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for SubpassBeginInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for SubpassBeginInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_BEGIN_INFO; } impl<'a> SubpassBeginInfo<'a> { @@ -21609,7 +21699,7 @@ impl ::core::default::Default for SubpassEndInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for SubpassEndInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for SubpassEndInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_END_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for SubpassEndInfo<'a> {} @@ -21638,15 +21728,15 @@ impl ::core::default::Default for PhysicalDeviceTimelineSemaphoreFeatures<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceTimelineSemaphoreFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceTimelineSemaphoreFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceTimelineSemaphoreFeatures<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceTimelineSemaphoreFeatures<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceTimelineSemaphoreFeatures<'a> {} impl<'a> PhysicalDeviceTimelineSemaphoreFeatures<'a> { #[inline] pub fn timeline_semaphore(mut self, timeline_semaphore: bool) -> Self { @@ -21678,11 +21768,11 @@ impl ::core::default::Default for PhysicalDeviceTimelineSemaphoreProperties<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceTimelineSemaphoreProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceTimelineSemaphoreProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceTimelineSemaphoreProperties<'a> { } @@ -21722,11 +21812,14 @@ impl ::core::default::Default for SemaphoreTypeCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for SemaphoreTypeCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for SemaphoreTypeCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SEMAPHORE_TYPE_CREATE_INFO; } -unsafe impl<'a> Extends> for SemaphoreTypeCreateInfo<'a> {} -unsafe impl<'a> Extends> for SemaphoreTypeCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, SemaphoreCreateInfo<'a>> for SemaphoreTypeCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceExternalSemaphoreInfo<'a>> + for SemaphoreTypeCreateInfo<'a> +{ +} impl<'a> SemaphoreTypeCreateInfo<'a> { #[inline] pub fn semaphore_type(mut self, semaphore_type: SemaphoreType) -> Self { @@ -21769,11 +21862,11 @@ impl ::core::default::Default for TimelineSemaphoreSubmitInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for TimelineSemaphoreSubmitInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for TimelineSemaphoreSubmitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::TIMELINE_SEMAPHORE_SUBMIT_INFO; } -unsafe impl<'a> Extends> for TimelineSemaphoreSubmitInfo<'a> {} -unsafe impl<'a> Extends> for TimelineSemaphoreSubmitInfo<'a> {} +unsafe impl<'a> Extends<'a, SubmitInfo<'a>> for TimelineSemaphoreSubmitInfo<'a> {} +unsafe impl<'a> Extends<'a, BindSparseInfo<'a>> for TimelineSemaphoreSubmitInfo<'a> {} impl<'a> TimelineSemaphoreSubmitInfo<'a> { #[inline] pub fn wait_semaphore_values(mut self, wait_semaphore_values: &'a [u64]) -> Self { @@ -21818,7 +21911,7 @@ impl ::core::default::Default for SemaphoreWaitInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for SemaphoreWaitInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for SemaphoreWaitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SEMAPHORE_WAIT_INFO; } impl<'a> SemaphoreWaitInfo<'a> { @@ -21866,7 +21959,7 @@ impl ::core::default::Default for SemaphoreSignalInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for SemaphoreSignalInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for SemaphoreSignalInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SEMAPHORE_SIGNAL_INFO; } impl<'a> SemaphoreSignalInfo<'a> { @@ -21928,11 +22021,11 @@ impl ::core::default::Default for PipelineVertexInputDivisorStateCreateInfoKHR<' } } } -unsafe impl<'a> TaggedStructure for PipelineVertexInputDivisorStateCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineVertexInputDivisorStateCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineVertexInputStateCreateInfo<'a>> for PipelineVertexInputDivisorStateCreateInfoKHR<'a> { } @@ -21971,11 +22064,11 @@ impl ::core::default::Default for PhysicalDeviceVertexAttributeDivisorProperties } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceVertexAttributeDivisorPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVertexAttributeDivisorPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceVertexAttributeDivisorPropertiesEXT<'a> { } @@ -22012,11 +22105,11 @@ impl ::core::default::Default for PhysicalDeviceVertexAttributeDivisorProperties } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceVertexAttributeDivisorPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVertexAttributeDivisorPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceVertexAttributeDivisorPropertiesKHR<'a> { } @@ -22065,11 +22158,11 @@ impl ::core::default::Default for PhysicalDevicePCIBusInfoPropertiesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePCIBusInfoPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePCIBusInfoPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDevicePCIBusInfoPropertiesEXT<'a> { } @@ -22119,11 +22212,11 @@ impl ::core::default::Default for ImportAndroidHardwareBufferInfoANDROID<'_> { } } } -unsafe impl<'a> TaggedStructure for ImportAndroidHardwareBufferInfoANDROID<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImportAndroidHardwareBufferInfoANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID; } -unsafe impl<'a> Extends> for ImportAndroidHardwareBufferInfoANDROID<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> for ImportAndroidHardwareBufferInfoANDROID<'a> {} impl<'a> ImportAndroidHardwareBufferInfoANDROID<'a> { #[inline] pub fn buffer(mut self, buffer: *mut AHardwareBuffer) -> Self { @@ -22155,10 +22248,10 @@ impl ::core::default::Default for AndroidHardwareBufferUsageANDROID<'_> { } } } -unsafe impl<'a> TaggedStructure for AndroidHardwareBufferUsageANDROID<'a> { +unsafe impl<'a> TaggedStructure<'a> for AndroidHardwareBufferUsageANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_USAGE_ANDROID; } -unsafe impl<'a> Extends> for AndroidHardwareBufferUsageANDROID<'a> {} +unsafe impl<'a> Extends<'a, ImageFormatProperties2<'a>> for AndroidHardwareBufferUsageANDROID<'a> {} impl<'a> AndroidHardwareBufferUsageANDROID<'a> { #[inline] pub fn android_hardware_buffer_usage(mut self, android_hardware_buffer_usage: u64) -> Self { @@ -22192,7 +22285,7 @@ impl ::core::default::Default for AndroidHardwareBufferPropertiesANDROID<'_> { } } } -unsafe impl<'a> TaggedStructure for AndroidHardwareBufferPropertiesANDROID<'a> { +unsafe impl<'a> TaggedStructure<'a> for AndroidHardwareBufferPropertiesANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID; } unsafe impl<'a> BaseTaggedStructure<'a> for AndroidHardwareBufferPropertiesANDROID<'a> {} @@ -22232,7 +22325,7 @@ impl ::core::default::Default for MemoryGetAndroidHardwareBufferInfoANDROID<'_> } } } -unsafe impl<'a> TaggedStructure for MemoryGetAndroidHardwareBufferInfoANDROID<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryGetAndroidHardwareBufferInfoANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID; } @@ -22281,11 +22374,11 @@ impl ::core::default::Default for AndroidHardwareBufferFormatPropertiesANDROID<' } } } -unsafe impl<'a> TaggedStructure for AndroidHardwareBufferFormatPropertiesANDROID<'a> { +unsafe impl<'a> TaggedStructure<'a> for AndroidHardwareBufferFormatPropertiesANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, AndroidHardwareBufferPropertiesANDROID<'a>> for AndroidHardwareBufferFormatPropertiesANDROID<'a> { } @@ -22361,11 +22454,11 @@ impl ::core::default::Default for CommandBufferInheritanceConditionalRenderingIn } } } -unsafe impl<'a> TaggedStructure for CommandBufferInheritanceConditionalRenderingInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for CommandBufferInheritanceConditionalRenderingInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, CommandBufferInheritanceInfo<'a>> for CommandBufferInheritanceConditionalRenderingInfoEXT<'a> { } @@ -22400,14 +22493,14 @@ impl ::core::default::Default for ExternalFormatANDROID<'_> { } } } -unsafe impl<'a> TaggedStructure for ExternalFormatANDROID<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExternalFormatANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_FORMAT_ANDROID; } -unsafe impl<'a> Extends> for ExternalFormatANDROID<'a> {} -unsafe impl<'a> Extends> for ExternalFormatANDROID<'a> {} -unsafe impl<'a> Extends> for ExternalFormatANDROID<'a> {} -unsafe impl<'a> Extends> for ExternalFormatANDROID<'a> {} -unsafe impl<'a> Extends> for ExternalFormatANDROID<'a> {} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> for ExternalFormatANDROID<'a> {} +unsafe impl<'a> Extends<'a, SamplerYcbcrConversionCreateInfo<'a>> for ExternalFormatANDROID<'a> {} +unsafe impl<'a> Extends<'a, AttachmentDescription2<'a>> for ExternalFormatANDROID<'a> {} +unsafe impl<'a> Extends<'a, GraphicsPipelineCreateInfo<'a>> for ExternalFormatANDROID<'a> {} +unsafe impl<'a> Extends<'a, CommandBufferInheritanceInfo<'a>> for ExternalFormatANDROID<'a> {} impl<'a> ExternalFormatANDROID<'a> { #[inline] pub fn external_format(mut self, external_format: u64) -> Self { @@ -22443,11 +22536,11 @@ impl ::core::default::Default for PhysicalDevice8BitStorageFeatures<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDevice8BitStorageFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevice8BitStorageFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES; } -unsafe impl<'a> Extends> for PhysicalDevice8BitStorageFeatures<'a> {} -unsafe impl<'a> Extends> for PhysicalDevice8BitStorageFeatures<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDevice8BitStorageFeatures<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevice8BitStorageFeatures<'a> {} impl<'a> PhysicalDevice8BitStorageFeatures<'a> { #[inline] pub fn storage_buffer8_bit_access(mut self, storage_buffer8_bit_access: bool) -> Self { @@ -22494,15 +22587,15 @@ impl ::core::default::Default for PhysicalDeviceConditionalRenderingFeaturesEXT< } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceConditionalRenderingFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceConditionalRenderingFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceConditionalRenderingFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceConditionalRenderingFeaturesEXT<'a> { } @@ -22549,15 +22642,15 @@ impl ::core::default::Default for PhysicalDeviceVulkanMemoryModelFeatures<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkanMemoryModelFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVulkanMemoryModelFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceVulkanMemoryModelFeatures<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceVulkanMemoryModelFeatures<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceVulkanMemoryModelFeatures<'a> {} impl<'a> PhysicalDeviceVulkanMemoryModelFeatures<'a> { #[inline] pub fn vulkan_memory_model(mut self, vulkan_memory_model: bool) -> Self { @@ -22608,15 +22701,15 @@ impl ::core::default::Default for PhysicalDeviceShaderAtomicInt64Features<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderAtomicInt64Features<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderAtomicInt64Features<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderAtomicInt64Features<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceShaderAtomicInt64Features<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderAtomicInt64Features<'a> {} impl<'a> PhysicalDeviceShaderAtomicInt64Features<'a> { #[inline] pub fn shader_buffer_int64_atomics(mut self, shader_buffer_int64_atomics: bool) -> Self { @@ -22675,15 +22768,18 @@ impl ::core::default::Default for PhysicalDeviceShaderAtomicFloatFeaturesEXT<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderAtomicFloatFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderAtomicFloatFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceShaderAtomicFloatFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderAtomicFloatFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceShaderAtomicFloatFeaturesEXT<'a> {} impl<'a> PhysicalDeviceShaderAtomicFloatFeaturesEXT<'a> { #[inline] pub fn shader_buffer_float32_atomics(mut self, shader_buffer_float32_atomics: bool) -> Self { @@ -22810,15 +22906,18 @@ impl ::core::default::Default for PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'a> {} impl<'a> PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'a> { #[inline] pub fn shader_buffer_float16_atomics(mut self, shader_buffer_float16_atomics: bool) -> Self { @@ -22937,15 +23036,15 @@ impl ::core::default::Default for PhysicalDeviceVertexAttributeDivisorFeaturesKH } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'a> { } @@ -22992,10 +23091,10 @@ impl ::core::default::Default for QueueFamilyCheckpointPropertiesNV<'_> { } } } -unsafe impl<'a> TaggedStructure for QueueFamilyCheckpointPropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for QueueFamilyCheckpointPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV; } -unsafe impl<'a> Extends> for QueueFamilyCheckpointPropertiesNV<'a> {} +unsafe impl<'a> Extends<'a, QueueFamilyProperties2<'a>> for QueueFamilyCheckpointPropertiesNV<'a> {} impl<'a> QueueFamilyCheckpointPropertiesNV<'a> { #[inline] pub fn checkpoint_execution_stage_mask( @@ -23032,7 +23131,7 @@ impl ::core::default::Default for CheckpointDataNV<'_> { } } } -unsafe impl<'a> TaggedStructure for CheckpointDataNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for CheckpointDataNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::CHECKPOINT_DATA_NV; } impl<'a> CheckpointDataNV<'a> { @@ -23077,11 +23176,11 @@ impl ::core::default::Default for PhysicalDeviceDepthStencilResolveProperties<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthStencilResolveProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDepthStencilResolveProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceDepthStencilResolveProperties<'a> { } @@ -23141,10 +23240,10 @@ impl ::core::default::Default for SubpassDescriptionDepthStencilResolve<'_> { } } } -unsafe impl<'a> TaggedStructure for SubpassDescriptionDepthStencilResolve<'a> { +unsafe impl<'a> TaggedStructure<'a> for SubpassDescriptionDepthStencilResolve<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE; } -unsafe impl<'a> Extends> for SubpassDescriptionDepthStencilResolve<'a> {} +unsafe impl<'a> Extends<'a, SubpassDescription2<'a>> for SubpassDescriptionDepthStencilResolve<'a> {} impl<'a> SubpassDescriptionDepthStencilResolve<'a> { #[inline] pub fn depth_resolve_mode(mut self, depth_resolve_mode: ResolveModeFlags) -> Self { @@ -23189,10 +23288,10 @@ impl ::core::default::Default for ImageViewASTCDecodeModeEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageViewASTCDecodeModeEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageViewASTCDecodeModeEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_ASTC_DECODE_MODE_EXT; } -unsafe impl<'a> Extends> for ImageViewASTCDecodeModeEXT<'a> {} +unsafe impl<'a> Extends<'a, ImageViewCreateInfo<'a>> for ImageViewASTCDecodeModeEXT<'a> {} impl<'a> ImageViewASTCDecodeModeEXT<'a> { #[inline] pub fn decode_mode(mut self, decode_mode: Format) -> Self { @@ -23224,11 +23323,14 @@ impl ::core::default::Default for PhysicalDeviceASTCDecodeFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceASTCDecodeFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceASTCDecodeFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT; } -unsafe impl<'a> Extends> for PhysicalDeviceASTCDecodeFeaturesEXT<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceASTCDecodeFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceASTCDecodeFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceASTCDecodeFeaturesEXT<'a> {} impl<'a> PhysicalDeviceASTCDecodeFeaturesEXT<'a> { #[inline] pub fn decode_mode_shared_exponent(mut self, decode_mode_shared_exponent: bool) -> Self { @@ -23262,15 +23364,18 @@ impl ::core::default::Default for PhysicalDeviceTransformFeedbackFeaturesEXT<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceTransformFeedbackFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceTransformFeedbackFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceTransformFeedbackFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceTransformFeedbackFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceTransformFeedbackFeaturesEXT<'a> {} impl<'a> PhysicalDeviceTransformFeedbackFeaturesEXT<'a> { #[inline] pub fn transform_feedback(mut self, transform_feedback: bool) -> Self { @@ -23325,11 +23430,11 @@ impl ::core::default::Default for PhysicalDeviceTransformFeedbackPropertiesEXT<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceTransformFeedbackPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceTransformFeedbackPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceTransformFeedbackPropertiesEXT<'a> { } @@ -23431,11 +23536,11 @@ impl ::core::default::Default for PipelineRasterizationStateStreamCreateInfoEXT< } } } -unsafe impl<'a> TaggedStructure for PipelineRasterizationStateStreamCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineRasterizationStateStreamCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineRasterizationStateCreateInfo<'a>> for PipelineRasterizationStateStreamCreateInfoEXT<'a> { } @@ -23475,15 +23580,15 @@ impl ::core::default::Default for PhysicalDeviceRepresentativeFragmentTestFeatur } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceRepresentativeFragmentTestFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRepresentativeFragmentTestFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceRepresentativeFragmentTestFeaturesNV<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceRepresentativeFragmentTestFeaturesNV<'a> { } @@ -23518,11 +23623,11 @@ impl ::core::default::Default for PipelineRepresentativeFragmentTestStateCreateI } } } -unsafe impl<'a> TaggedStructure for PipelineRepresentativeFragmentTestStateCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineRepresentativeFragmentTestStateCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, GraphicsPipelineCreateInfo<'a>> for PipelineRepresentativeFragmentTestStateCreateInfoNV<'a> { } @@ -23560,15 +23665,15 @@ impl ::core::default::Default for PhysicalDeviceExclusiveScissorFeaturesNV<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceExclusiveScissorFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExclusiveScissorFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceExclusiveScissorFeaturesNV<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceExclusiveScissorFeaturesNV<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceExclusiveScissorFeaturesNV<'a> {} impl<'a> PhysicalDeviceExclusiveScissorFeaturesNV<'a> { #[inline] pub fn exclusive_scissor(mut self, exclusive_scissor: bool) -> Self { @@ -23602,11 +23707,11 @@ impl ::core::default::Default for PipelineViewportExclusiveScissorStateCreateInf } } } -unsafe impl<'a> TaggedStructure for PipelineViewportExclusiveScissorStateCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineViewportExclusiveScissorStateCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineViewportStateCreateInfo<'a>> for PipelineViewportExclusiveScissorStateCreateInfoNV<'a> { } @@ -23642,15 +23747,18 @@ impl ::core::default::Default for PhysicalDeviceCornerSampledImageFeaturesNV<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceCornerSampledImageFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCornerSampledImageFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceCornerSampledImageFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceCornerSampledImageFeaturesNV<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceCornerSampledImageFeaturesNV<'a> {} impl<'a> PhysicalDeviceCornerSampledImageFeaturesNV<'a> { #[inline] pub fn corner_sampled_image(mut self, corner_sampled_image: bool) -> Self { @@ -23684,15 +23792,15 @@ impl ::core::default::Default for PhysicalDeviceComputeShaderDerivativesFeatures } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> { } @@ -23735,11 +23843,11 @@ impl ::core::default::Default for PhysicalDeviceComputeShaderDerivativesProperti } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'a> { } @@ -23777,15 +23885,18 @@ impl ::core::default::Default for PhysicalDeviceShaderImageFootprintFeaturesNV<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderImageFootprintFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderImageFootprintFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceShaderImageFootprintFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderImageFootprintFeaturesNV<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceShaderImageFootprintFeaturesNV<'a> {} impl<'a> PhysicalDeviceShaderImageFootprintFeaturesNV<'a> { #[inline] pub fn image_footprint(mut self, image_footprint: bool) -> Self { @@ -23817,15 +23928,17 @@ impl ::core::default::Default for PhysicalDeviceDedicatedAllocationImageAliasing } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> + for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV<'a> +{ const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV<'a> { } @@ -23863,15 +23976,18 @@ impl ::core::default::Default for PhysicalDeviceCopyMemoryIndirectFeaturesNV<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceCopyMemoryIndirectFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCopyMemoryIndirectFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceCopyMemoryIndirectFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceCopyMemoryIndirectFeaturesNV<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceCopyMemoryIndirectFeaturesNV<'a> {} impl<'a> PhysicalDeviceCopyMemoryIndirectFeaturesNV<'a> { #[inline] pub fn indirect_copy(mut self, indirect_copy: bool) -> Self { @@ -23903,11 +24019,11 @@ impl ::core::default::Default for PhysicalDeviceCopyMemoryIndirectPropertiesNV<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceCopyMemoryIndirectPropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCopyMemoryIndirectPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceCopyMemoryIndirectPropertiesNV<'a> { } @@ -23942,15 +24058,18 @@ impl ::core::default::Default for PhysicalDeviceMemoryDecompressionFeaturesNV<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMemoryDecompressionFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMemoryDecompressionFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceMemoryDecompressionFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceMemoryDecompressionFeaturesNV<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceMemoryDecompressionFeaturesNV<'a> {} impl<'a> PhysicalDeviceMemoryDecompressionFeaturesNV<'a> { #[inline] pub fn memory_decompression(mut self, memory_decompression: bool) -> Self { @@ -23984,11 +24103,11 @@ impl ::core::default::Default for PhysicalDeviceMemoryDecompressionPropertiesNV< } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMemoryDecompressionPropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMemoryDecompressionPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceMemoryDecompressionPropertiesNV<'a> { } @@ -24071,11 +24190,11 @@ impl ::core::default::Default for PipelineViewportShadingRateImageStateCreateInf } } } -unsafe impl<'a> TaggedStructure for PipelineViewportShadingRateImageStateCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineViewportShadingRateImageStateCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineViewportStateCreateInfo<'a>> for PipelineViewportShadingRateImageStateCreateInfoNV<'a> { } @@ -24121,15 +24240,15 @@ impl ::core::default::Default for PhysicalDeviceShadingRateImageFeaturesNV<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShadingRateImageFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShadingRateImageFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShadingRateImageFeaturesNV<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceShadingRateImageFeaturesNV<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShadingRateImageFeaturesNV<'a> {} impl<'a> PhysicalDeviceShadingRateImageFeaturesNV<'a> { #[inline] pub fn shading_rate_image(mut self, shading_rate_image: bool) -> Self { @@ -24173,11 +24292,11 @@ impl ::core::default::Default for PhysicalDeviceShadingRateImagePropertiesNV<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShadingRateImagePropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShadingRateImagePropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceShadingRateImagePropertiesNV<'a> { } @@ -24222,15 +24341,18 @@ impl ::core::default::Default for PhysicalDeviceInvocationMaskFeaturesHUAWEI<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceInvocationMaskFeaturesHUAWEI<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceInvocationMaskFeaturesHUAWEI<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceInvocationMaskFeaturesHUAWEI<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceInvocationMaskFeaturesHUAWEI<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceInvocationMaskFeaturesHUAWEI<'a> {} impl<'a> PhysicalDeviceInvocationMaskFeaturesHUAWEI<'a> { #[inline] pub fn invocation_mask(mut self, invocation_mask: bool) -> Self { @@ -24337,11 +24459,11 @@ impl ::core::default::Default for PipelineViewportCoarseSampleOrderStateCreateIn } } } -unsafe impl<'a> TaggedStructure for PipelineViewportCoarseSampleOrderStateCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineViewportCoarseSampleOrderStateCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineViewportStateCreateInfo<'a>> for PipelineViewportCoarseSampleOrderStateCreateInfoNV<'a> { } @@ -24387,11 +24509,14 @@ impl ::core::default::Default for PhysicalDeviceMeshShaderFeaturesNV<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMeshShaderFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMeshShaderFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV; } -unsafe impl<'a> Extends> for PhysicalDeviceMeshShaderFeaturesNV<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceMeshShaderFeaturesNV<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceMeshShaderFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceMeshShaderFeaturesNV<'a> {} impl<'a> PhysicalDeviceMeshShaderFeaturesNV<'a> { #[inline] pub fn task_shader(mut self, task_shader: bool) -> Self { @@ -24452,10 +24577,10 @@ impl ::core::default::Default for PhysicalDeviceMeshShaderPropertiesNV<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMeshShaderPropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMeshShaderPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceMeshShaderPropertiesNV<'a> { } @@ -24585,11 +24710,14 @@ impl ::core::default::Default for PhysicalDeviceMeshShaderFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMeshShaderFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMeshShaderFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT; } -unsafe impl<'a> Extends> for PhysicalDeviceMeshShaderFeaturesEXT<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceMeshShaderFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceMeshShaderFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceMeshShaderFeaturesEXT<'a> {} impl<'a> PhysicalDeviceMeshShaderFeaturesEXT<'a> { #[inline] pub fn task_shader(mut self, task_shader: bool) -> Self { @@ -24699,10 +24827,10 @@ impl ::core::default::Default for PhysicalDeviceMeshShaderPropertiesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMeshShaderPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMeshShaderPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceMeshShaderPropertiesEXT<'a> { } @@ -24938,7 +25066,7 @@ impl ::core::default::Default for RayTracingShaderGroupCreateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for RayTracingShaderGroupCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for RayTracingShaderGroupCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV; } impl<'a> RayTracingShaderGroupCreateInfoNV<'a> { @@ -25002,7 +25130,7 @@ impl ::core::default::Default for RayTracingShaderGroupCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for RayTracingShaderGroupCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for RayTracingShaderGroupCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR; } impl<'a> RayTracingShaderGroupCreateInfoKHR<'a> { @@ -25080,7 +25208,7 @@ impl ::core::default::Default for RayTracingPipelineCreateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for RayTracingPipelineCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for RayTracingPipelineCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RAY_TRACING_PIPELINE_CREATE_INFO_NV; } unsafe impl<'a> BaseTaggedStructure<'a> for RayTracingPipelineCreateInfoNV<'a> {} @@ -25169,7 +25297,7 @@ impl ::core::default::Default for RayTracingPipelineCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for RayTracingPipelineCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for RayTracingPipelineCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RAY_TRACING_PIPELINE_CREATE_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for RayTracingPipelineCreateInfoKHR<'a> {} @@ -25277,7 +25405,7 @@ impl ::core::default::Default for GeometryTrianglesNV<'_> { } } } -unsafe impl<'a> TaggedStructure for GeometryTrianglesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for GeometryTrianglesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GEOMETRY_TRIANGLES_NV; } impl<'a> GeometryTrianglesNV<'a> { @@ -25367,7 +25495,7 @@ impl ::core::default::Default for GeometryAABBNV<'_> { } } } -unsafe impl<'a> TaggedStructure for GeometryAABBNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for GeometryAABBNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GEOMETRY_AABB_NV; } impl<'a> GeometryAABBNV<'a> { @@ -25442,7 +25570,7 @@ impl ::core::default::Default for GeometryNV<'_> { } } } -unsafe impl<'a> TaggedStructure for GeometryNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for GeometryNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GEOMETRY_NV; } impl<'a> GeometryNV<'a> { @@ -25494,7 +25622,7 @@ impl ::core::default::Default for AccelerationStructureInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for AccelerationStructureInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_INFO_NV; } impl<'a> AccelerationStructureInfoNV<'a> { @@ -25546,7 +25674,7 @@ impl ::core::default::Default for AccelerationStructureCreateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for AccelerationStructureCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_NV; } unsafe impl<'a> BaseTaggedStructure<'a> for AccelerationStructureCreateInfoNV<'a> {} @@ -25594,7 +25722,7 @@ impl ::core::default::Default for BindAccelerationStructureMemoryInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for BindAccelerationStructureMemoryInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for BindAccelerationStructureMemoryInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV; } impl<'a> BindAccelerationStructureMemoryInfoNV<'a> { @@ -25649,11 +25777,14 @@ impl ::core::default::Default for WriteDescriptorSetAccelerationStructureKHR<'_> } } } -unsafe impl<'a> TaggedStructure for WriteDescriptorSetAccelerationStructureKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for WriteDescriptorSetAccelerationStructureKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR; } -unsafe impl<'a> Extends> for WriteDescriptorSetAccelerationStructureKHR<'a> {} +unsafe impl<'a> Extends<'a, WriteDescriptorSet<'a>> + for WriteDescriptorSetAccelerationStructureKHR<'a> +{ +} impl<'a> WriteDescriptorSetAccelerationStructureKHR<'a> { #[inline] pub fn acceleration_structures( @@ -25691,11 +25822,14 @@ impl ::core::default::Default for WriteDescriptorSetAccelerationStructureNV<'_> } } } -unsafe impl<'a> TaggedStructure for WriteDescriptorSetAccelerationStructureNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for WriteDescriptorSetAccelerationStructureNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV; } -unsafe impl<'a> Extends> for WriteDescriptorSetAccelerationStructureNV<'a> {} +unsafe impl<'a> Extends<'a, WriteDescriptorSet<'a>> + for WriteDescriptorSetAccelerationStructureNV<'a> +{ +} impl<'a> WriteDescriptorSetAccelerationStructureNV<'a> { #[inline] pub fn acceleration_structures( @@ -25733,7 +25867,7 @@ impl ::core::default::Default for AccelerationStructureMemoryRequirementsInfoNV< } } } -unsafe impl<'a> TaggedStructure for AccelerationStructureMemoryRequirementsInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureMemoryRequirementsInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV; } @@ -25784,15 +25918,15 @@ impl ::core::default::Default for PhysicalDeviceAccelerationStructureFeaturesKHR } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceAccelerationStructureFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceAccelerationStructureFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceAccelerationStructureFeaturesKHR<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceAccelerationStructureFeaturesKHR<'a> { } @@ -25868,15 +26002,18 @@ impl ::core::default::Default for PhysicalDeviceRayTracingPipelineFeaturesKHR<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingPipelineFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingPipelineFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceRayTracingPipelineFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceRayTracingPipelineFeaturesKHR<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceRayTracingPipelineFeaturesKHR<'a> {} impl<'a> PhysicalDeviceRayTracingPipelineFeaturesKHR<'a> { #[inline] pub fn ray_tracing_pipeline(mut self, ray_tracing_pipeline: bool) -> Self { @@ -25943,11 +26080,11 @@ impl ::core::default::Default for PhysicalDeviceRayQueryFeaturesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceRayQueryFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayQueryFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR; } -unsafe impl<'a> Extends> for PhysicalDeviceRayQueryFeaturesKHR<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceRayQueryFeaturesKHR<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceRayQueryFeaturesKHR<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceRayQueryFeaturesKHR<'a> {} impl<'a> PhysicalDeviceRayQueryFeaturesKHR<'a> { #[inline] pub fn ray_query(mut self, ray_query: bool) -> Self { @@ -25993,11 +26130,11 @@ impl ::core::default::Default for PhysicalDeviceAccelerationStructurePropertiesK } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceAccelerationStructurePropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceAccelerationStructurePropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceAccelerationStructurePropertiesKHR<'a> { } @@ -26101,11 +26238,11 @@ impl ::core::default::Default for PhysicalDeviceRayTracingPipelinePropertiesKHR< } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingPipelinePropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingPipelinePropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceRayTracingPipelinePropertiesKHR<'a> { } @@ -26195,10 +26332,10 @@ impl ::core::default::Default for PhysicalDeviceRayTracingPropertiesNV<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingPropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceRayTracingPropertiesNV<'a> { } @@ -26451,15 +26588,15 @@ impl ::core::default::Default for PhysicalDeviceRayTracingMaintenance1FeaturesKH } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingMaintenance1FeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingMaintenance1FeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceRayTracingMaintenance1FeaturesKHR<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceRayTracingMaintenance1FeaturesKHR<'a> { } @@ -26505,10 +26642,10 @@ impl ::core::default::Default for DrmFormatModifierPropertiesListEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DrmFormatModifierPropertiesListEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DrmFormatModifierPropertiesListEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT; } -unsafe impl<'a> Extends> for DrmFormatModifierPropertiesListEXT<'a> {} +unsafe impl<'a> Extends<'a, FormatProperties2<'a>> for DrmFormatModifierPropertiesListEXT<'a> {} impl<'a> DrmFormatModifierPropertiesListEXT<'a> { #[inline] pub fn drm_format_modifier_properties( @@ -26580,11 +26717,11 @@ impl ::core::default::Default for PhysicalDeviceImageDrmFormatModifierInfoEXT<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceImageDrmFormatModifierInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageDrmFormatModifierInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceImageFormatInfo2<'a>> for PhysicalDeviceImageDrmFormatModifierInfoEXT<'a> { } @@ -26632,11 +26769,11 @@ impl ::core::default::Default for ImageDrmFormatModifierListCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageDrmFormatModifierListCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageDrmFormatModifierListCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> for ImageDrmFormatModifierListCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> for ImageDrmFormatModifierListCreateInfoEXT<'a> {} impl<'a> ImageDrmFormatModifierListCreateInfoEXT<'a> { #[inline] pub fn drm_format_modifiers(mut self, drm_format_modifiers: &'a [u64]) -> Self { @@ -26673,11 +26810,14 @@ impl ::core::default::Default for ImageDrmFormatModifierExplicitCreateInfoEXT<'_ } } } -unsafe impl<'a> TaggedStructure for ImageDrmFormatModifierExplicitCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageDrmFormatModifierExplicitCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> for ImageDrmFormatModifierExplicitCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> + for ImageDrmFormatModifierExplicitCreateInfoEXT<'a> +{ +} impl<'a> ImageDrmFormatModifierExplicitCreateInfoEXT<'a> { #[inline] pub fn drm_format_modifier(mut self, drm_format_modifier: u64) -> Self { @@ -26715,7 +26855,7 @@ impl ::core::default::Default for ImageDrmFormatModifierPropertiesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageDrmFormatModifierPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageDrmFormatModifierPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT; } impl<'a> ImageDrmFormatModifierPropertiesEXT<'a> { @@ -26749,11 +26889,14 @@ impl ::core::default::Default for ImageStencilUsageCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageStencilUsageCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageStencilUsageCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_STENCIL_USAGE_CREATE_INFO; } -unsafe impl<'a> Extends> for ImageStencilUsageCreateInfo<'a> {} -unsafe impl<'a> Extends> for ImageStencilUsageCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> for ImageStencilUsageCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceImageFormatInfo2<'a>> + for ImageStencilUsageCreateInfo<'a> +{ +} impl<'a> ImageStencilUsageCreateInfo<'a> { #[inline] pub fn stencil_usage(mut self, stencil_usage: ImageUsageFlags) -> Self { @@ -26785,11 +26928,11 @@ impl ::core::default::Default for DeviceMemoryOverallocationCreateInfoAMD<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceMemoryOverallocationCreateInfoAMD<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceMemoryOverallocationCreateInfoAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD; } -unsafe impl<'a> Extends> for DeviceMemoryOverallocationCreateInfoAMD<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for DeviceMemoryOverallocationCreateInfoAMD<'a> {} impl<'a> DeviceMemoryOverallocationCreateInfoAMD<'a> { #[inline] pub fn overallocation_behavior( @@ -26828,15 +26971,18 @@ impl ::core::default::Default for PhysicalDeviceFragmentDensityMapFeaturesEXT<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentDensityMapFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentDensityMapFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceFragmentDensityMapFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceFragmentDensityMapFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceFragmentDensityMapFeaturesEXT<'a> {} impl<'a> PhysicalDeviceFragmentDensityMapFeaturesEXT<'a> { #[inline] pub fn fragment_density_map(mut self, fragment_density_map: bool) -> Self { @@ -26882,15 +27028,18 @@ impl ::core::default::Default for PhysicalDeviceFragmentDensityMap2FeaturesEXT<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentDensityMap2FeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentDensityMap2FeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceFragmentDensityMap2FeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceFragmentDensityMap2FeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceFragmentDensityMap2FeaturesEXT<'a> {} impl<'a> PhysicalDeviceFragmentDensityMap2FeaturesEXT<'a> { #[inline] pub fn fragment_density_map_deferred(mut self, fragment_density_map_deferred: bool) -> Self { @@ -26922,15 +27071,15 @@ impl ::core::default::Default for PhysicalDeviceFragmentDensityMapOffsetFeatures } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'a> { } @@ -26969,11 +27118,11 @@ impl ::core::default::Default for PhysicalDeviceFragmentDensityMapPropertiesEXT< } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentDensityMapPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentDensityMapPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceFragmentDensityMapPropertiesEXT<'a> { } @@ -27030,11 +27179,11 @@ impl ::core::default::Default for PhysicalDeviceFragmentDensityMap2PropertiesEXT } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentDensityMap2PropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentDensityMap2PropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceFragmentDensityMap2PropertiesEXT<'a> { } @@ -27091,11 +27240,11 @@ impl ::core::default::Default for PhysicalDeviceFragmentDensityMapOffsetProperti } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM<'a> { } @@ -27133,15 +27282,15 @@ impl ::core::default::Default for RenderPassFragmentDensityMapCreateInfoEXT<'_> } } } -unsafe impl<'a> TaggedStructure for RenderPassFragmentDensityMapCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderPassFragmentDensityMapCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, RenderPassCreateInfo<'a>> for RenderPassFragmentDensityMapCreateInfoEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, RenderPassCreateInfo2<'a>> for RenderPassFragmentDensityMapCreateInfoEXT<'a> { } @@ -27181,11 +27330,11 @@ impl ::core::default::Default for SubpassFragmentDensityMapOffsetEndInfoQCOM<'_> } } } -unsafe impl<'a> TaggedStructure for SubpassFragmentDensityMapOffsetEndInfoQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for SubpassFragmentDensityMapOffsetEndInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM; } -unsafe impl<'a> Extends> for SubpassFragmentDensityMapOffsetEndInfoQCOM<'a> {} +unsafe impl<'a> Extends<'a, SubpassEndInfo<'a>> for SubpassFragmentDensityMapOffsetEndInfoQCOM<'a> {} impl<'a> SubpassFragmentDensityMapOffsetEndInfoQCOM<'a> { #[inline] pub fn fragment_density_offsets(mut self, fragment_density_offsets: &'a [Offset2D]) -> Self { @@ -27218,15 +27367,15 @@ impl ::core::default::Default for PhysicalDeviceScalarBlockLayoutFeatures<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceScalarBlockLayoutFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceScalarBlockLayoutFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceScalarBlockLayoutFeatures<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceScalarBlockLayoutFeatures<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceScalarBlockLayoutFeatures<'a> {} impl<'a> PhysicalDeviceScalarBlockLayoutFeatures<'a> { #[inline] pub fn scalar_block_layout(mut self, scalar_block_layout: bool) -> Self { @@ -27258,10 +27407,10 @@ impl ::core::default::Default for SurfaceProtectedCapabilitiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for SurfaceProtectedCapabilitiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for SurfaceProtectedCapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_PROTECTED_CAPABILITIES_KHR; } -unsafe impl<'a> Extends> for SurfaceProtectedCapabilitiesKHR<'a> {} +unsafe impl<'a> Extends<'a, SurfaceCapabilities2KHR<'a>> for SurfaceProtectedCapabilitiesKHR<'a> {} impl<'a> SurfaceProtectedCapabilitiesKHR<'a> { #[inline] pub fn supports_protected(mut self, supports_protected: bool) -> Self { @@ -27293,15 +27442,15 @@ impl ::core::default::Default for PhysicalDeviceUniformBufferStandardLayoutFeatu } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceUniformBufferStandardLayoutFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceUniformBufferStandardLayoutFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceUniformBufferStandardLayoutFeatures<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceUniformBufferStandardLayoutFeatures<'a> { } @@ -27336,15 +27485,15 @@ impl ::core::default::Default for PhysicalDeviceDepthClipEnableFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthClipEnableFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDepthClipEnableFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceDepthClipEnableFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceDepthClipEnableFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDepthClipEnableFeaturesEXT<'a> {} impl<'a> PhysicalDeviceDepthClipEnableFeaturesEXT<'a> { #[inline] pub fn depth_clip_enable(mut self, depth_clip_enable: bool) -> Self { @@ -27378,11 +27527,11 @@ impl ::core::default::Default for PipelineRasterizationDepthClipStateCreateInfoE } } } -unsafe impl<'a> TaggedStructure for PipelineRasterizationDepthClipStateCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineRasterizationDepthClipStateCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineRasterizationStateCreateInfo<'a>> for PipelineRasterizationDepthClipStateCreateInfoEXT<'a> { } @@ -27424,11 +27573,11 @@ impl ::core::default::Default for PhysicalDeviceMemoryBudgetPropertiesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMemoryBudgetPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMemoryBudgetPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceMemoryProperties2<'a>> for PhysicalDeviceMemoryBudgetPropertiesEXT<'a> { } @@ -27468,15 +27617,15 @@ impl ::core::default::Default for PhysicalDeviceMemoryPriorityFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMemoryPriorityFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMemoryPriorityFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceMemoryPriorityFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceMemoryPriorityFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceMemoryPriorityFeaturesEXT<'a> {} impl<'a> PhysicalDeviceMemoryPriorityFeaturesEXT<'a> { #[inline] pub fn memory_priority(mut self, memory_priority: bool) -> Self { @@ -27508,10 +27657,10 @@ impl ::core::default::Default for MemoryPriorityAllocateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryPriorityAllocateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryPriorityAllocateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_PRIORITY_ALLOCATE_INFO_EXT; } -unsafe impl<'a> Extends> for MemoryPriorityAllocateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> for MemoryPriorityAllocateInfoEXT<'a> {} impl<'a> MemoryPriorityAllocateInfoEXT<'a> { #[inline] pub fn priority(mut self, priority: f32) -> Self { @@ -27543,15 +27692,15 @@ impl ::core::default::Default for PhysicalDevicePageableDeviceLocalMemoryFeature } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT<'a> { } @@ -27590,15 +27739,18 @@ impl ::core::default::Default for PhysicalDeviceBufferDeviceAddressFeatures<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceBufferDeviceAddressFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceBufferDeviceAddressFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceBufferDeviceAddressFeatures<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceBufferDeviceAddressFeatures<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceBufferDeviceAddressFeatures<'a> {} impl<'a> PhysicalDeviceBufferDeviceAddressFeatures<'a> { #[inline] pub fn buffer_device_address(mut self, buffer_device_address: bool) -> Self { @@ -27650,15 +27802,18 @@ impl ::core::default::Default for PhysicalDeviceBufferDeviceAddressFeaturesEXT<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceBufferDeviceAddressFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceBufferDeviceAddressFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceBufferDeviceAddressFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceBufferDeviceAddressFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceBufferDeviceAddressFeaturesEXT<'a> {} impl<'a> PhysicalDeviceBufferDeviceAddressFeaturesEXT<'a> { #[inline] pub fn buffer_device_address(mut self, buffer_device_address: bool) -> Self { @@ -27706,7 +27861,7 @@ impl ::core::default::Default for BufferDeviceAddressInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for BufferDeviceAddressInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for BufferDeviceAddressInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_DEVICE_ADDRESS_INFO; } impl<'a> BufferDeviceAddressInfo<'a> { @@ -27740,10 +27895,10 @@ impl ::core::default::Default for BufferOpaqueCaptureAddressCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for BufferOpaqueCaptureAddressCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for BufferOpaqueCaptureAddressCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO; } -unsafe impl<'a> Extends> for BufferOpaqueCaptureAddressCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, BufferCreateInfo<'a>> for BufferOpaqueCaptureAddressCreateInfo<'a> {} impl<'a> BufferOpaqueCaptureAddressCreateInfo<'a> { #[inline] pub fn opaque_capture_address(mut self, opaque_capture_address: u64) -> Self { @@ -27775,10 +27930,10 @@ impl ::core::default::Default for BufferDeviceAddressCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for BufferDeviceAddressCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for BufferDeviceAddressCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> for BufferDeviceAddressCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, BufferCreateInfo<'a>> for BufferDeviceAddressCreateInfoEXT<'a> {} impl<'a> BufferDeviceAddressCreateInfoEXT<'a> { #[inline] pub fn device_address(mut self, device_address: DeviceAddress) -> Self { @@ -27810,11 +27965,11 @@ impl ::core::default::Default for PhysicalDeviceImageViewImageFormatInfoEXT<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceImageViewImageFormatInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageViewImageFormatInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceImageFormatInfo2<'a>> for PhysicalDeviceImageViewImageFormatInfoEXT<'a> { } @@ -27851,11 +28006,11 @@ impl ::core::default::Default for FilterCubicImageViewImageFormatPropertiesEXT<' } } } -unsafe impl<'a> TaggedStructure for FilterCubicImageViewImageFormatPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for FilterCubicImageViewImageFormatPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, ImageFormatProperties2<'a>> for FilterCubicImageViewImageFormatPropertiesEXT<'a> { } @@ -27895,15 +28050,18 @@ impl ::core::default::Default for PhysicalDeviceImagelessFramebufferFeatures<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceImagelessFramebufferFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImagelessFramebufferFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceImagelessFramebufferFeatures<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceImagelessFramebufferFeatures<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceImagelessFramebufferFeatures<'a> {} impl<'a> PhysicalDeviceImagelessFramebufferFeatures<'a> { #[inline] pub fn imageless_framebuffer(mut self, imageless_framebuffer: bool) -> Self { @@ -27937,10 +28095,10 @@ impl ::core::default::Default for FramebufferAttachmentsCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for FramebufferAttachmentsCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for FramebufferAttachmentsCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FRAMEBUFFER_ATTACHMENTS_CREATE_INFO; } -unsafe impl<'a> Extends> for FramebufferAttachmentsCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, FramebufferCreateInfo<'a>> for FramebufferAttachmentsCreateInfo<'a> {} impl<'a> FramebufferAttachmentsCreateInfo<'a> { #[inline] pub fn attachment_image_infos( @@ -27988,7 +28146,7 @@ impl ::core::default::Default for FramebufferAttachmentImageInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for FramebufferAttachmentImageInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for FramebufferAttachmentImageInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FRAMEBUFFER_ATTACHMENT_IMAGE_INFO; } impl<'a> FramebufferAttachmentImageInfo<'a> { @@ -28050,10 +28208,10 @@ impl ::core::default::Default for RenderPassAttachmentBeginInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for RenderPassAttachmentBeginInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderPassAttachmentBeginInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_ATTACHMENT_BEGIN_INFO; } -unsafe impl<'a> Extends> for RenderPassAttachmentBeginInfo<'a> {} +unsafe impl<'a> Extends<'a, RenderPassBeginInfo<'a>> for RenderPassAttachmentBeginInfo<'a> {} impl<'a> RenderPassAttachmentBeginInfo<'a> { #[inline] pub fn attachments(mut self, attachments: &'a [ImageView]) -> Self { @@ -28086,15 +28244,15 @@ impl ::core::default::Default for PhysicalDeviceTextureCompressionASTCHDRFeature } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceTextureCompressionASTCHDRFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceTextureCompressionASTCHDRFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceTextureCompressionASTCHDRFeatures<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceTextureCompressionASTCHDRFeatures<'a> { } @@ -28131,15 +28289,18 @@ impl ::core::default::Default for PhysicalDeviceCooperativeMatrixFeaturesNV<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceCooperativeMatrixFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCooperativeMatrixFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceCooperativeMatrixFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceCooperativeMatrixFeaturesNV<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceCooperativeMatrixFeaturesNV<'a> {} impl<'a> PhysicalDeviceCooperativeMatrixFeaturesNV<'a> { #[inline] pub fn cooperative_matrix(mut self, cooperative_matrix: bool) -> Self { @@ -28180,11 +28341,11 @@ impl ::core::default::Default for PhysicalDeviceCooperativeMatrixPropertiesNV<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceCooperativeMatrixPropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCooperativeMatrixPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceCooperativeMatrixPropertiesNV<'a> { } @@ -28236,7 +28397,7 @@ impl ::core::default::Default for CooperativeMatrixPropertiesNV<'_> { } } } -unsafe impl<'a> TaggedStructure for CooperativeMatrixPropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for CooperativeMatrixPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COOPERATIVE_MATRIX_PROPERTIES_NV; } impl<'a> CooperativeMatrixPropertiesNV<'a> { @@ -28305,15 +28466,18 @@ impl ::core::default::Default for PhysicalDeviceYcbcrImageArraysFeaturesEXT<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceYcbcrImageArraysFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceYcbcrImageArraysFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceYcbcrImageArraysFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceYcbcrImageArraysFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceYcbcrImageArraysFeaturesEXT<'a> {} impl<'a> PhysicalDeviceYcbcrImageArraysFeaturesEXT<'a> { #[inline] pub fn ycbcr_image_arrays(mut self, ycbcr_image_arrays: bool) -> Self { @@ -28349,7 +28513,7 @@ impl ::core::default::Default for ImageViewHandleInfoNVX<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageViewHandleInfoNVX<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageViewHandleInfoNVX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_HANDLE_INFO_NVX; } impl<'a> ImageViewHandleInfoNVX<'a> { @@ -28395,7 +28559,7 @@ impl ::core::default::Default for ImageViewAddressPropertiesNVX<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageViewAddressPropertiesNVX<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageViewAddressPropertiesNVX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_ADDRESS_PROPERTIES_NVX; } impl<'a> ImageViewAddressPropertiesNVX<'a> { @@ -28434,10 +28598,10 @@ impl ::core::default::Default for PresentFrameTokenGGP<'_> { } } } -unsafe impl<'a> TaggedStructure for PresentFrameTokenGGP<'a> { +unsafe impl<'a> TaggedStructure<'a> for PresentFrameTokenGGP<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PRESENT_FRAME_TOKEN_GGP; } -unsafe impl<'a> Extends> for PresentFrameTokenGGP<'a> {} +unsafe impl<'a> Extends<'a, PresentInfoKHR<'a>> for PresentFrameTokenGGP<'a> {} impl<'a> PresentFrameTokenGGP<'a> { #[inline] pub fn frame_token(mut self, frame_token: GgpFrameToken) -> Self { @@ -28494,20 +28658,26 @@ impl ::core::default::Default for PipelineCreationFeedbackCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineCreationFeedbackCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineCreationFeedbackCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_CREATION_FEEDBACK_CREATE_INFO; } -unsafe impl<'a> Extends> for PipelineCreationFeedbackCreateInfo<'a> {} -unsafe impl<'a> Extends> for PipelineCreationFeedbackCreateInfo<'a> {} -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, GraphicsPipelineCreateInfo<'a>> for PipelineCreationFeedbackCreateInfo<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, ComputePipelineCreateInfo<'a>> for PipelineCreationFeedbackCreateInfo<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, RayTracingPipelineCreateInfoNV<'a>> + for PipelineCreationFeedbackCreateInfo<'a> +{ +} +unsafe impl<'a> Extends<'a, RayTracingPipelineCreateInfoKHR<'a>> + for PipelineCreationFeedbackCreateInfo<'a> +{ +} +unsafe impl<'a> Extends<'a, ExecutionGraphPipelineCreateInfoAMDX<'a>> for PipelineCreationFeedbackCreateInfo<'a> { } @@ -28554,14 +28724,14 @@ impl ::core::default::Default for SurfaceFullScreenExclusiveInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for SurfaceFullScreenExclusiveInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SurfaceFullScreenExclusiveInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceSurfaceInfo2KHR<'a>> for SurfaceFullScreenExclusiveInfoEXT<'a> { } -unsafe impl<'a> Extends> for SurfaceFullScreenExclusiveInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, SwapchainCreateInfoKHR<'a>> for SurfaceFullScreenExclusiveInfoEXT<'a> {} impl<'a> SurfaceFullScreenExclusiveInfoEXT<'a> { #[inline] pub fn full_screen_exclusive(mut self, full_screen_exclusive: FullScreenExclusiveEXT) -> Self { @@ -28593,15 +28763,18 @@ impl ::core::default::Default for SurfaceFullScreenExclusiveWin32InfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for SurfaceFullScreenExclusiveWin32InfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SurfaceFullScreenExclusiveWin32InfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceSurfaceInfo2KHR<'a>> + for SurfaceFullScreenExclusiveWin32InfoEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, SwapchainCreateInfoKHR<'a>> for SurfaceFullScreenExclusiveWin32InfoEXT<'a> { } -unsafe impl<'a> Extends> for SurfaceFullScreenExclusiveWin32InfoEXT<'a> {} impl<'a> SurfaceFullScreenExclusiveWin32InfoEXT<'a> { #[inline] pub fn hmonitor(mut self, hmonitor: HMONITOR) -> Self { @@ -28633,11 +28806,11 @@ impl ::core::default::Default for SurfaceCapabilitiesFullScreenExclusiveEXT<'_> } } } -unsafe impl<'a> TaggedStructure for SurfaceCapabilitiesFullScreenExclusiveEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SurfaceCapabilitiesFullScreenExclusiveEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, SurfaceCapabilities2KHR<'a>> for SurfaceCapabilitiesFullScreenExclusiveEXT<'a> { } @@ -28675,15 +28848,15 @@ impl ::core::default::Default for PhysicalDevicePresentBarrierFeaturesNV<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePresentBarrierFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePresentBarrierFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDevicePresentBarrierFeaturesNV<'a> { } -unsafe impl<'a> Extends> for PhysicalDevicePresentBarrierFeaturesNV<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevicePresentBarrierFeaturesNV<'a> {} impl<'a> PhysicalDevicePresentBarrierFeaturesNV<'a> { #[inline] pub fn present_barrier(mut self, present_barrier: bool) -> Self { @@ -28715,10 +28888,13 @@ impl ::core::default::Default for SurfaceCapabilitiesPresentBarrierNV<'_> { } } } -unsafe impl<'a> TaggedStructure for SurfaceCapabilitiesPresentBarrierNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for SurfaceCapabilitiesPresentBarrierNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_PRESENT_BARRIER_NV; } -unsafe impl<'a> Extends> for SurfaceCapabilitiesPresentBarrierNV<'a> {} +unsafe impl<'a> Extends<'a, SurfaceCapabilities2KHR<'a>> + for SurfaceCapabilitiesPresentBarrierNV<'a> +{ +} impl<'a> SurfaceCapabilitiesPresentBarrierNV<'a> { #[inline] pub fn present_barrier_supported(mut self, present_barrier_supported: bool) -> Self { @@ -28750,10 +28926,13 @@ impl ::core::default::Default for SwapchainPresentBarrierCreateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for SwapchainPresentBarrierCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for SwapchainPresentBarrierCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV; } -unsafe impl<'a> Extends> for SwapchainPresentBarrierCreateInfoNV<'a> {} +unsafe impl<'a> Extends<'a, SwapchainCreateInfoKHR<'a>> + for SwapchainPresentBarrierCreateInfoNV<'a> +{ +} impl<'a> SwapchainPresentBarrierCreateInfoNV<'a> { #[inline] pub fn present_barrier_enable(mut self, present_barrier_enable: bool) -> Self { @@ -28787,15 +28966,18 @@ impl ::core::default::Default for PhysicalDevicePerformanceQueryFeaturesKHR<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePerformanceQueryFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePerformanceQueryFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDevicePerformanceQueryFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevicePerformanceQueryFeaturesKHR<'a> { } -unsafe impl<'a> Extends> for PhysicalDevicePerformanceQueryFeaturesKHR<'a> {} impl<'a> PhysicalDevicePerformanceQueryFeaturesKHR<'a> { #[inline] pub fn performance_counter_query_pools( @@ -28839,11 +29021,11 @@ impl ::core::default::Default for PhysicalDevicePerformanceQueryPropertiesKHR<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePerformanceQueryPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePerformanceQueryPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDevicePerformanceQueryPropertiesKHR<'a> { } @@ -28887,7 +29069,7 @@ impl ::core::default::Default for PerformanceCounterKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PerformanceCounterKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PerformanceCounterKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PERFORMANCE_COUNTER_KHR; } impl<'a> PerformanceCounterKHR<'a> { @@ -28954,7 +29136,7 @@ impl ::core::default::Default for PerformanceCounterDescriptionKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PerformanceCounterDescriptionKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PerformanceCounterDescriptionKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PERFORMANCE_COUNTER_DESCRIPTION_KHR; } impl<'a> PerformanceCounterDescriptionKHR<'a> { @@ -29022,10 +29204,10 @@ impl ::core::default::Default for QueryPoolPerformanceCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for QueryPoolPerformanceCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for QueryPoolPerformanceCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR; } -unsafe impl<'a> Extends> for QueryPoolPerformanceCreateInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, QueryPoolCreateInfo<'a>> for QueryPoolPerformanceCreateInfoKHR<'a> {} impl<'a> QueryPoolPerformanceCreateInfoKHR<'a> { #[inline] pub fn queue_family_index(mut self, queue_family_index: u32) -> Self { @@ -29082,7 +29264,7 @@ impl ::core::default::Default for AcquireProfilingLockInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for AcquireProfilingLockInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for AcquireProfilingLockInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACQUIRE_PROFILING_LOCK_INFO_KHR; } impl<'a> AcquireProfilingLockInfoKHR<'a> { @@ -29121,11 +29303,11 @@ impl ::core::default::Default for PerformanceQuerySubmitInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PerformanceQuerySubmitInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PerformanceQuerySubmitInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PERFORMANCE_QUERY_SUBMIT_INFO_KHR; } -unsafe impl<'a> Extends> for PerformanceQuerySubmitInfoKHR<'a> {} -unsafe impl<'a> Extends> for PerformanceQuerySubmitInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, SubmitInfo<'a>> for PerformanceQuerySubmitInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, SubmitInfo2<'a>> for PerformanceQuerySubmitInfoKHR<'a> {} impl<'a> PerformanceQuerySubmitInfoKHR<'a> { #[inline] pub fn counter_pass_index(mut self, counter_pass_index: u32) -> Self { @@ -29157,7 +29339,7 @@ impl ::core::default::Default for HeadlessSurfaceCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for HeadlessSurfaceCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for HeadlessSurfaceCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::HEADLESS_SURFACE_CREATE_INFO_EXT; } impl<'a> HeadlessSurfaceCreateInfoEXT<'a> { @@ -29191,15 +29373,15 @@ impl ::core::default::Default for PhysicalDeviceCoverageReductionModeFeaturesNV< } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceCoverageReductionModeFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCoverageReductionModeFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceCoverageReductionModeFeaturesNV<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceCoverageReductionModeFeaturesNV<'a> { } @@ -29236,11 +29418,11 @@ impl ::core::default::Default for PipelineCoverageReductionStateCreateInfoNV<'_> } } } -unsafe impl<'a> TaggedStructure for PipelineCoverageReductionStateCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineCoverageReductionStateCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineMultisampleStateCreateInfo<'a>> for PipelineCoverageReductionStateCreateInfoNV<'a> { } @@ -29289,7 +29471,7 @@ impl ::core::default::Default for FramebufferMixedSamplesCombinationNV<'_> { } } } -unsafe impl<'a> TaggedStructure for FramebufferMixedSamplesCombinationNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for FramebufferMixedSamplesCombinationNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV; } impl<'a> FramebufferMixedSamplesCombinationNV<'a> { @@ -29341,15 +29523,15 @@ impl ::core::default::Default for PhysicalDeviceShaderIntegerFunctions2FeaturesI } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL<'a> { } @@ -29429,7 +29611,7 @@ impl ::core::default::Default for InitializePerformanceApiInfoINTEL<'_> { } } } -unsafe impl<'a> TaggedStructure for InitializePerformanceApiInfoINTEL<'a> { +unsafe impl<'a> TaggedStructure<'a> for InitializePerformanceApiInfoINTEL<'a> { const STRUCTURE_TYPE: StructureType = StructureType::INITIALIZE_PERFORMANCE_API_INFO_INTEL; } impl<'a> InitializePerformanceApiInfoINTEL<'a> { @@ -29463,11 +29645,14 @@ impl ::core::default::Default for QueryPoolPerformanceQueryCreateInfoINTEL<'_> { } } } -unsafe impl<'a> TaggedStructure for QueryPoolPerformanceQueryCreateInfoINTEL<'a> { +unsafe impl<'a> TaggedStructure<'a> for QueryPoolPerformanceQueryCreateInfoINTEL<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL; } -unsafe impl<'a> Extends> for QueryPoolPerformanceQueryCreateInfoINTEL<'a> {} +unsafe impl<'a> Extends<'a, QueryPoolCreateInfo<'a>> + for QueryPoolPerformanceQueryCreateInfoINTEL<'a> +{ +} impl<'a> QueryPoolPerformanceQueryCreateInfoINTEL<'a> { #[inline] pub fn performance_counters_sampling( @@ -29502,7 +29687,7 @@ impl ::core::default::Default for PerformanceMarkerInfoINTEL<'_> { } } } -unsafe impl<'a> TaggedStructure for PerformanceMarkerInfoINTEL<'a> { +unsafe impl<'a> TaggedStructure<'a> for PerformanceMarkerInfoINTEL<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PERFORMANCE_MARKER_INFO_INTEL; } impl<'a> PerformanceMarkerInfoINTEL<'a> { @@ -29536,7 +29721,7 @@ impl ::core::default::Default for PerformanceStreamMarkerInfoINTEL<'_> { } } } -unsafe impl<'a> TaggedStructure for PerformanceStreamMarkerInfoINTEL<'a> { +unsafe impl<'a> TaggedStructure<'a> for PerformanceStreamMarkerInfoINTEL<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PERFORMANCE_STREAM_MARKER_INFO_INTEL; } impl<'a> PerformanceStreamMarkerInfoINTEL<'a> { @@ -29574,7 +29759,7 @@ impl ::core::default::Default for PerformanceOverrideInfoINTEL<'_> { } } } -unsafe impl<'a> TaggedStructure for PerformanceOverrideInfoINTEL<'a> { +unsafe impl<'a> TaggedStructure<'a> for PerformanceOverrideInfoINTEL<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PERFORMANCE_OVERRIDE_INFO_INTEL; } impl<'a> PerformanceOverrideInfoINTEL<'a> { @@ -29618,7 +29803,7 @@ impl ::core::default::Default for PerformanceConfigurationAcquireInfoINTEL<'_> { } } } -unsafe impl<'a> TaggedStructure for PerformanceConfigurationAcquireInfoINTEL<'a> { +unsafe impl<'a> TaggedStructure<'a> for PerformanceConfigurationAcquireInfoINTEL<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL; } @@ -29655,11 +29840,14 @@ impl ::core::default::Default for PhysicalDeviceShaderClockFeaturesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderClockFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderClockFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR; } -unsafe impl<'a> Extends> for PhysicalDeviceShaderClockFeaturesKHR<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceShaderClockFeaturesKHR<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceShaderClockFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderClockFeaturesKHR<'a> {} impl<'a> PhysicalDeviceShaderClockFeaturesKHR<'a> { #[inline] pub fn shader_subgroup_clock(mut self, shader_subgroup_clock: bool) -> Self { @@ -29696,15 +29884,15 @@ impl ::core::default::Default for PhysicalDeviceIndexTypeUint8FeaturesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceIndexTypeUint8FeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceIndexTypeUint8FeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceIndexTypeUint8FeaturesKHR<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceIndexTypeUint8FeaturesKHR<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceIndexTypeUint8FeaturesKHR<'a> {} impl<'a> PhysicalDeviceIndexTypeUint8FeaturesKHR<'a> { #[inline] pub fn index_type_uint8(mut self, index_type_uint8: bool) -> Self { @@ -29738,11 +29926,11 @@ impl ::core::default::Default for PhysicalDeviceShaderSMBuiltinsPropertiesNV<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderSMBuiltinsPropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderSMBuiltinsPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceShaderSMBuiltinsPropertiesNV<'a> { } @@ -29782,15 +29970,15 @@ impl ::core::default::Default for PhysicalDeviceShaderSMBuiltinsFeaturesNV<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderSMBuiltinsFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderSMBuiltinsFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderSMBuiltinsFeaturesNV<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceShaderSMBuiltinsFeaturesNV<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderSMBuiltinsFeaturesNV<'a> {} impl<'a> PhysicalDeviceShaderSMBuiltinsFeaturesNV<'a> { #[inline] pub fn shader_sm_builtins(mut self, shader_sm_builtins: bool) -> Self { @@ -29826,15 +30014,15 @@ impl ::core::default::Default for PhysicalDeviceFragmentShaderInterlockFeaturesE } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShaderInterlockFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentShaderInterlockFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceFragmentShaderInterlockFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceFragmentShaderInterlockFeaturesEXT<'a> { } @@ -29888,15 +30076,15 @@ impl ::core::default::Default for PhysicalDeviceSeparateDepthStencilLayoutsFeatu } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceSeparateDepthStencilLayoutsFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSeparateDepthStencilLayoutsFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceSeparateDepthStencilLayoutsFeatures<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceSeparateDepthStencilLayoutsFeatures<'a> { } @@ -29931,10 +30119,10 @@ impl ::core::default::Default for AttachmentReferenceStencilLayout<'_> { } } } -unsafe impl<'a> TaggedStructure for AttachmentReferenceStencilLayout<'a> { +unsafe impl<'a> TaggedStructure<'a> for AttachmentReferenceStencilLayout<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_REFERENCE_STENCIL_LAYOUT; } -unsafe impl<'a> Extends> for AttachmentReferenceStencilLayout<'a> {} +unsafe impl<'a> Extends<'a, AttachmentReference2<'a>> for AttachmentReferenceStencilLayout<'a> {} impl<'a> AttachmentReferenceStencilLayout<'a> { #[inline] pub fn stencil_layout(mut self, stencil_layout: ImageLayout) -> Self { @@ -29968,15 +30156,15 @@ impl ::core::default::Default for PhysicalDevicePrimitiveTopologyListRestartFeat } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT<'a> { } @@ -30024,10 +30212,10 @@ impl ::core::default::Default for AttachmentDescriptionStencilLayout<'_> { } } } -unsafe impl<'a> TaggedStructure for AttachmentDescriptionStencilLayout<'a> { +unsafe impl<'a> TaggedStructure<'a> for AttachmentDescriptionStencilLayout<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT; } -unsafe impl<'a> Extends> for AttachmentDescriptionStencilLayout<'a> {} +unsafe impl<'a> Extends<'a, AttachmentDescription2<'a>> for AttachmentDescriptionStencilLayout<'a> {} impl<'a> AttachmentDescriptionStencilLayout<'a> { #[inline] pub fn stencil_initial_layout(mut self, stencil_initial_layout: ImageLayout) -> Self { @@ -30064,15 +30252,15 @@ impl ::core::default::Default for PhysicalDevicePipelineExecutablePropertiesFeat } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR<'a> { } @@ -30107,7 +30295,7 @@ impl ::core::default::Default for PipelineInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_INFO_KHR; } impl<'a> PipelineInfoKHR<'a> { @@ -30159,7 +30347,7 @@ impl ::core::default::Default for PipelineExecutablePropertiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineExecutablePropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineExecutablePropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_EXECUTABLE_PROPERTIES_KHR; } impl<'a> PipelineExecutablePropertiesKHR<'a> { @@ -30219,7 +30407,7 @@ impl ::core::default::Default for PipelineExecutableInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineExecutableInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineExecutableInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_EXECUTABLE_INFO_KHR; } impl<'a> PipelineExecutableInfoKHR<'a> { @@ -30291,7 +30479,7 @@ impl ::core::default::Default for PipelineExecutableStatisticKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineExecutableStatisticKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineExecutableStatisticKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_EXECUTABLE_STATISTIC_KHR; } impl<'a> PipelineExecutableStatisticKHR<'a> { @@ -30370,7 +30558,7 @@ impl ::core::default::Default for PipelineExecutableInternalRepresentationKHR<'_ } } } -unsafe impl<'a> TaggedStructure for PipelineExecutableInternalRepresentationKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineExecutableInternalRepresentationKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR; } @@ -30430,15 +30618,15 @@ impl ::core::default::Default for PhysicalDeviceShaderDemoteToHelperInvocationFe } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderDemoteToHelperInvocationFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderDemoteToHelperInvocationFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderDemoteToHelperInvocationFeatures<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderDemoteToHelperInvocationFeatures<'a> { } @@ -30476,15 +30664,15 @@ impl ::core::default::Default for PhysicalDeviceTexelBufferAlignmentFeaturesEXT< } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceTexelBufferAlignmentFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceTexelBufferAlignmentFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceTexelBufferAlignmentFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceTexelBufferAlignmentFeaturesEXT<'a> { } @@ -30525,11 +30713,11 @@ impl ::core::default::Default for PhysicalDeviceTexelBufferAlignmentProperties<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceTexelBufferAlignmentProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceTexelBufferAlignmentProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceTexelBufferAlignmentProperties<'a> { } @@ -30597,15 +30785,18 @@ impl ::core::default::Default for PhysicalDeviceSubgroupSizeControlFeatures<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceSubgroupSizeControlFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSubgroupSizeControlFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceSubgroupSizeControlFeatures<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceSubgroupSizeControlFeatures<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceSubgroupSizeControlFeatures<'a> {} impl<'a> PhysicalDeviceSubgroupSizeControlFeatures<'a> { #[inline] pub fn subgroup_size_control(mut self, subgroup_size_control: bool) -> Self { @@ -30648,11 +30839,11 @@ impl ::core::default::Default for PhysicalDeviceSubgroupSizeControlProperties<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceSubgroupSizeControlProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSubgroupSizeControlProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceSubgroupSizeControlProperties<'a> { } @@ -30705,15 +30896,15 @@ impl ::core::default::Default for PipelineShaderStageRequiredSubgroupSizeCreateI } } } -unsafe impl<'a> TaggedStructure for PipelineShaderStageRequiredSubgroupSizeCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineShaderStageRequiredSubgroupSizeCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineShaderStageCreateInfo<'a>> for PipelineShaderStageRequiredSubgroupSizeCreateInfo<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, ShaderCreateInfoEXT<'a>> for PipelineShaderStageRequiredSubgroupSizeCreateInfo<'a> { } @@ -30750,11 +30941,11 @@ impl ::core::default::Default for SubpassShadingPipelineCreateInfoHUAWEI<'_> { } } } -unsafe impl<'a> TaggedStructure for SubpassShadingPipelineCreateInfoHUAWEI<'a> { +unsafe impl<'a> TaggedStructure<'a> for SubpassShadingPipelineCreateInfoHUAWEI<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, ComputePipelineCreateInfo<'a>> for SubpassShadingPipelineCreateInfoHUAWEI<'a> { } @@ -30794,11 +30985,11 @@ impl ::core::default::Default for PhysicalDeviceSubpassShadingPropertiesHUAWEI<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceSubpassShadingPropertiesHUAWEI<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSubpassShadingPropertiesHUAWEI<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceSubpassShadingPropertiesHUAWEI<'a> { } @@ -30843,11 +31034,11 @@ impl ::core::default::Default for PhysicalDeviceClusterCullingShaderPropertiesHU } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceClusterCullingShaderPropertiesHUAWEI<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceClusterCullingShaderPropertiesHUAWEI<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceClusterCullingShaderPropertiesHUAWEI<'a> { } @@ -30900,11 +31091,11 @@ impl ::core::default::Default for MemoryOpaqueCaptureAddressAllocateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryOpaqueCaptureAddressAllocateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryOpaqueCaptureAddressAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO; } -unsafe impl<'a> Extends> for MemoryOpaqueCaptureAddressAllocateInfo<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> for MemoryOpaqueCaptureAddressAllocateInfo<'a> {} impl<'a> MemoryOpaqueCaptureAddressAllocateInfo<'a> { #[inline] pub fn opaque_capture_address(mut self, opaque_capture_address: u64) -> Self { @@ -30936,7 +31127,7 @@ impl ::core::default::Default for DeviceMemoryOpaqueCaptureAddressInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceMemoryOpaqueCaptureAddressInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceMemoryOpaqueCaptureAddressInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO; } impl<'a> DeviceMemoryOpaqueCaptureAddressInfo<'a> { @@ -30980,15 +31171,18 @@ impl ::core::default::Default for PhysicalDeviceLineRasterizationFeaturesKHR<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceLineRasterizationFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceLineRasterizationFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceLineRasterizationFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceLineRasterizationFeaturesKHR<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceLineRasterizationFeaturesKHR<'a> {} impl<'a> PhysicalDeviceLineRasterizationFeaturesKHR<'a> { #[inline] pub fn rectangular_lines(mut self, rectangular_lines: bool) -> Self { @@ -31045,11 +31239,11 @@ impl ::core::default::Default for PhysicalDeviceLineRasterizationPropertiesKHR<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceLineRasterizationPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceLineRasterizationPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceLineRasterizationPropertiesKHR<'a> { } @@ -31090,11 +31284,11 @@ impl ::core::default::Default for PipelineRasterizationLineStateCreateInfoKHR<'_ } } } -unsafe impl<'a> TaggedStructure for PipelineRasterizationLineStateCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineRasterizationLineStateCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineRasterizationStateCreateInfo<'a>> for PipelineRasterizationLineStateCreateInfoKHR<'a> { } @@ -31147,15 +31341,15 @@ impl ::core::default::Default for PhysicalDevicePipelineCreationCacheControlFeat } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineCreationCacheControlFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineCreationCacheControlFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDevicePipelineCreationCacheControlFeatures<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevicePipelineCreationCacheControlFeatures<'a> { } @@ -31215,11 +31409,11 @@ impl ::core::default::Default for PhysicalDeviceVulkan11Features<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkan11Features<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVulkan11Features<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_1_FEATURES; } -unsafe impl<'a> Extends> for PhysicalDeviceVulkan11Features<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceVulkan11Features<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceVulkan11Features<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceVulkan11Features<'a> {} impl<'a> PhysicalDeviceVulkan11Features<'a> { #[inline] pub fn storage_buffer16_bit_access(mut self, storage_buffer16_bit_access: bool) -> Self { @@ -31341,10 +31535,13 @@ impl ::core::default::Default for PhysicalDeviceVulkan11Properties<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkan11Properties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVulkan11Properties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES; } -unsafe impl<'a> Extends> for PhysicalDeviceVulkan11Properties<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> + for PhysicalDeviceVulkan11Properties<'a> +{ +} impl<'a> PhysicalDeviceVulkan11Properties<'a> { #[inline] pub fn device_uuid(mut self, device_uuid: [u8; UUID_SIZE]) -> Self { @@ -31550,11 +31747,11 @@ impl ::core::default::Default for PhysicalDeviceVulkan12Features<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkan12Features<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVulkan12Features<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_2_FEATURES; } -unsafe impl<'a> Extends> for PhysicalDeviceVulkan12Features<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceVulkan12Features<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceVulkan12Features<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceVulkan12Features<'a> {} impl<'a> PhysicalDeviceVulkan12Features<'a> { #[inline] pub fn sampler_mirror_clamp_to_edge(mut self, sampler_mirror_clamp_to_edge: bool) -> Self { @@ -32207,10 +32404,13 @@ impl ::core::default::Default for PhysicalDeviceVulkan12Properties<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkan12Properties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVulkan12Properties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES; } -unsafe impl<'a> Extends> for PhysicalDeviceVulkan12Properties<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> + for PhysicalDeviceVulkan12Properties<'a> +{ +} impl<'a> PhysicalDeviceVulkan12Properties<'a> { #[inline] pub fn driver_id(mut self, driver_id: DriverId) -> Self { @@ -32686,11 +32886,11 @@ impl ::core::default::Default for PhysicalDeviceVulkan13Features<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkan13Features<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVulkan13Features<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_3_FEATURES; } -unsafe impl<'a> Extends> for PhysicalDeviceVulkan13Features<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceVulkan13Features<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceVulkan13Features<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceVulkan13Features<'a> {} impl<'a> PhysicalDeviceVulkan13Features<'a> { #[inline] pub fn robust_image_access(mut self, robust_image_access: bool) -> Self { @@ -32846,10 +33046,13 @@ impl ::core::default::Default for PhysicalDeviceVulkan13Properties<'_> { Self { s_type : Self :: STRUCTURE_TYPE , p_next : :: core :: ptr :: null_mut () , min_subgroup_size : u32 :: default () , max_subgroup_size : u32 :: default () , max_compute_workgroup_subgroups : u32 :: default () , required_subgroup_size_stages : ShaderStageFlags :: default () , max_inline_uniform_block_size : u32 :: default () , max_per_stage_descriptor_inline_uniform_blocks : u32 :: default () , max_per_stage_descriptor_update_after_bind_inline_uniform_blocks : u32 :: default () , max_descriptor_set_inline_uniform_blocks : u32 :: default () , max_descriptor_set_update_after_bind_inline_uniform_blocks : u32 :: default () , max_inline_uniform_total_size : u32 :: default () , integer_dot_product8_bit_unsigned_accelerated : Bool32 :: default () , integer_dot_product8_bit_signed_accelerated : Bool32 :: default () , integer_dot_product8_bit_mixed_signedness_accelerated : Bool32 :: default () , integer_dot_product4x8_bit_packed_unsigned_accelerated : Bool32 :: default () , integer_dot_product4x8_bit_packed_signed_accelerated : Bool32 :: default () , integer_dot_product4x8_bit_packed_mixed_signedness_accelerated : Bool32 :: default () , integer_dot_product16_bit_unsigned_accelerated : Bool32 :: default () , integer_dot_product16_bit_signed_accelerated : Bool32 :: default () , integer_dot_product16_bit_mixed_signedness_accelerated : Bool32 :: default () , integer_dot_product32_bit_unsigned_accelerated : Bool32 :: default () , integer_dot_product32_bit_signed_accelerated : Bool32 :: default () , integer_dot_product32_bit_mixed_signedness_accelerated : Bool32 :: default () , integer_dot_product64_bit_unsigned_accelerated : Bool32 :: default () , integer_dot_product64_bit_signed_accelerated : Bool32 :: default () , integer_dot_product64_bit_mixed_signedness_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating8_bit_signed_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating16_bit_signed_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating32_bit_signed_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating64_bit_signed_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated : Bool32 :: default () , storage_texel_buffer_offset_alignment_bytes : DeviceSize :: default () , storage_texel_buffer_offset_single_texel_alignment : Bool32 :: default () , uniform_texel_buffer_offset_alignment_bytes : DeviceSize :: default () , uniform_texel_buffer_offset_single_texel_alignment : Bool32 :: default () , max_buffer_size : DeviceSize :: default () , _marker : PhantomData , } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkan13Properties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVulkan13Properties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES; } -unsafe impl<'a> Extends> for PhysicalDeviceVulkan13Properties<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> + for PhysicalDeviceVulkan13Properties<'a> +{ +} impl<'a> PhysicalDeviceVulkan13Properties<'a> { #[inline] pub fn min_subgroup_size(mut self, min_subgroup_size: u32) -> Self { @@ -33254,18 +33457,18 @@ impl ::core::default::Default for PipelineCompilerControlCreateInfoAMD<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineCompilerControlCreateInfoAMD<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineCompilerControlCreateInfoAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, GraphicsPipelineCreateInfo<'a>> for PipelineCompilerControlCreateInfoAMD<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, ComputePipelineCreateInfo<'a>> for PipelineCompilerControlCreateInfoAMD<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, ExecutionGraphPipelineCreateInfoAMDX<'a>> for PipelineCompilerControlCreateInfoAMD<'a> { } @@ -33303,15 +33506,15 @@ impl ::core::default::Default for PhysicalDeviceCoherentMemoryFeaturesAMD<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceCoherentMemoryFeaturesAMD<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCoherentMemoryFeaturesAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceCoherentMemoryFeaturesAMD<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceCoherentMemoryFeaturesAMD<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceCoherentMemoryFeaturesAMD<'a> {} impl<'a> PhysicalDeviceCoherentMemoryFeaturesAMD<'a> { #[inline] pub fn device_coherent_memory(mut self, device_coherent_memory: bool) -> Self { @@ -33364,7 +33567,7 @@ impl ::core::default::Default for PhysicalDeviceToolProperties<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceToolProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceToolProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TOOL_PROPERTIES; } impl<'a> PhysicalDeviceToolProperties<'a> { @@ -33448,11 +33651,11 @@ impl ::core::default::Default for SamplerCustomBorderColorCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for SamplerCustomBorderColorCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SamplerCustomBorderColorCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> for SamplerCustomBorderColorCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, SamplerCreateInfo<'a>> for SamplerCustomBorderColorCreateInfoEXT<'a> {} impl<'a> SamplerCustomBorderColorCreateInfoEXT<'a> { #[inline] pub fn custom_border_color(mut self, custom_border_color: ClearColorValue) -> Self { @@ -33489,11 +33692,11 @@ impl ::core::default::Default for PhysicalDeviceCustomBorderColorPropertiesEXT<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceCustomBorderColorPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCustomBorderColorPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceCustomBorderColorPropertiesEXT<'a> { } @@ -33533,15 +33736,18 @@ impl ::core::default::Default for PhysicalDeviceCustomBorderColorFeaturesEXT<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceCustomBorderColorFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCustomBorderColorFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceCustomBorderColorFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceCustomBorderColorFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceCustomBorderColorFeaturesEXT<'a> {} impl<'a> PhysicalDeviceCustomBorderColorFeaturesEXT<'a> { #[inline] pub fn custom_border_colors(mut self, custom_border_colors: bool) -> Self { @@ -33583,11 +33789,11 @@ impl ::core::default::Default for SamplerBorderColorComponentMappingCreateInfoEX } } } -unsafe impl<'a> TaggedStructure for SamplerBorderColorComponentMappingCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SamplerBorderColorComponentMappingCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, SamplerCreateInfo<'a>> for SamplerBorderColorComponentMappingCreateInfoEXT<'a> { } @@ -33629,15 +33835,18 @@ impl ::core::default::Default for PhysicalDeviceBorderColorSwizzleFeaturesEXT<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceBorderColorSwizzleFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceBorderColorSwizzleFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceBorderColorSwizzleFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceBorderColorSwizzleFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceBorderColorSwizzleFeaturesEXT<'a> {} impl<'a> PhysicalDeviceBorderColorSwizzleFeaturesEXT<'a> { #[inline] pub fn border_color_swizzle(mut self, border_color_swizzle: bool) -> Self { @@ -33743,7 +33952,7 @@ impl ::core::default::Default for AccelerationStructureGeometryTrianglesDataKHR< } } } -unsafe impl<'a> TaggedStructure for AccelerationStructureGeometryTrianglesDataKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureGeometryTrianglesDataKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR; } @@ -33821,7 +34030,7 @@ impl ::core::default::Default for AccelerationStructureGeometryAabbsDataKHR<'_> } } } -unsafe impl<'a> TaggedStructure for AccelerationStructureGeometryAabbsDataKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureGeometryAabbsDataKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR; } @@ -33873,7 +34082,7 @@ impl ::core::default::Default for AccelerationStructureGeometryInstancesDataKHR< } } } -unsafe impl<'a> TaggedStructure for AccelerationStructureGeometryInstancesDataKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureGeometryInstancesDataKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR; } @@ -33942,7 +34151,7 @@ impl ::core::default::Default for AccelerationStructureGeometryKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for AccelerationStructureGeometryKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureGeometryKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_GEOMETRY_KHR; } impl<'a> AccelerationStructureGeometryKHR<'a> { @@ -34025,7 +34234,7 @@ impl ::core::default::Default for AccelerationStructureBuildGeometryInfoKHR<'_> } } } -unsafe impl<'a> TaggedStructure for AccelerationStructureBuildGeometryInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureBuildGeometryInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR; } @@ -34149,7 +34358,7 @@ impl ::core::default::Default for AccelerationStructureCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for AccelerationStructureCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for AccelerationStructureCreateInfoKHR<'a> {} @@ -34276,7 +34485,7 @@ impl ::core::default::Default for AccelerationStructureDeviceAddressInfoKHR<'_> } } } -unsafe impl<'a> TaggedStructure for AccelerationStructureDeviceAddressInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureDeviceAddressInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR; } @@ -34314,7 +34523,7 @@ impl ::core::default::Default for AccelerationStructureVersionInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for AccelerationStructureVersionInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureVersionInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_VERSION_INFO_KHR; } impl<'a> AccelerationStructureVersionInfoKHR<'a> { @@ -34352,7 +34561,7 @@ impl ::core::default::Default for CopyAccelerationStructureInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for CopyAccelerationStructureInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for CopyAccelerationStructureInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COPY_ACCELERATION_STRUCTURE_INFO_KHR; } impl<'a> CopyAccelerationStructureInfoKHR<'a> { @@ -34411,7 +34620,7 @@ impl ::core::default::Default for CopyAccelerationStructureToMemoryInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for CopyAccelerationStructureToMemoryInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for CopyAccelerationStructureToMemoryInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR; } @@ -34471,7 +34680,7 @@ impl ::core::default::Default for CopyMemoryToAccelerationStructureInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for CopyMemoryToAccelerationStructureInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for CopyMemoryToAccelerationStructureInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR; } @@ -34518,7 +34727,7 @@ impl ::core::default::Default for RayTracingPipelineInterfaceCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for RayTracingPipelineInterfaceCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for RayTracingPipelineInterfaceCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR; } @@ -34563,10 +34772,10 @@ impl ::core::default::Default for PipelineLibraryCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineLibraryCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineLibraryCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_LIBRARY_CREATE_INFO_KHR; } -unsafe impl<'a> Extends> for PipelineLibraryCreateInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, GraphicsPipelineCreateInfo<'a>> for PipelineLibraryCreateInfoKHR<'a> {} impl<'a> PipelineLibraryCreateInfoKHR<'a> { #[inline] pub fn libraries(mut self, libraries: &'a [Pipeline]) -> Self { @@ -34599,15 +34808,15 @@ impl ::core::default::Default for PhysicalDeviceExtendedDynamicStateFeaturesEXT< } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceExtendedDynamicStateFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExtendedDynamicStateFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceExtendedDynamicStateFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceExtendedDynamicStateFeaturesEXT<'a> { } @@ -34646,15 +34855,15 @@ impl ::core::default::Default for PhysicalDeviceExtendedDynamicState2FeaturesEXT } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceExtendedDynamicState2FeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExtendedDynamicState2FeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceExtendedDynamicState2FeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceExtendedDynamicState2FeaturesEXT<'a> { } @@ -34766,15 +34975,15 @@ impl ::core::default::Default for PhysicalDeviceExtendedDynamicState3FeaturesEXT } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceExtendedDynamicState3FeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExtendedDynamicState3FeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceExtendedDynamicState3FeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceExtendedDynamicState3FeaturesEXT<'a> { } @@ -35081,11 +35290,11 @@ impl ::core::default::Default for PhysicalDeviceExtendedDynamicState3PropertiesE } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceExtendedDynamicState3PropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExtendedDynamicState3PropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceExtendedDynamicState3PropertiesEXT<'a> { } @@ -35208,10 +35417,10 @@ impl ::core::default::Default for RenderPassTransformBeginInfoQCOM<'_> { } } } -unsafe impl<'a> TaggedStructure for RenderPassTransformBeginInfoQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderPassTransformBeginInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM; } -unsafe impl<'a> Extends> for RenderPassTransformBeginInfoQCOM<'a> {} +unsafe impl<'a> Extends<'a, RenderPassBeginInfo<'a>> for RenderPassTransformBeginInfoQCOM<'a> {} impl<'a> RenderPassTransformBeginInfoQCOM<'a> { #[inline] pub fn transform(mut self, transform: SurfaceTransformFlagsKHR) -> Self { @@ -35243,11 +35452,11 @@ impl ::core::default::Default for CopyCommandTransformInfoQCOM<'_> { } } } -unsafe impl<'a> TaggedStructure for CopyCommandTransformInfoQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for CopyCommandTransformInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COPY_COMMAND_TRANSFORM_INFO_QCOM; } -unsafe impl<'a> Extends> for CopyCommandTransformInfoQCOM<'a> {} -unsafe impl<'a> Extends> for CopyCommandTransformInfoQCOM<'a> {} +unsafe impl<'a> Extends<'a, BufferImageCopy2<'a>> for CopyCommandTransformInfoQCOM<'a> {} +unsafe impl<'a> Extends<'a, ImageBlit2<'a>> for CopyCommandTransformInfoQCOM<'a> {} impl<'a> CopyCommandTransformInfoQCOM<'a> { #[inline] pub fn transform(mut self, transform: SurfaceTransformFlagsKHR) -> Self { @@ -35281,11 +35490,11 @@ impl ::core::default::Default for CommandBufferInheritanceRenderPassTransformInf } } } -unsafe impl<'a> TaggedStructure for CommandBufferInheritanceRenderPassTransformInfoQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for CommandBufferInheritanceRenderPassTransformInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, CommandBufferInheritanceInfo<'a>> for CommandBufferInheritanceRenderPassTransformInfoQCOM<'a> { } @@ -35325,15 +35534,18 @@ impl ::core::default::Default for PhysicalDeviceDiagnosticsConfigFeaturesNV<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDiagnosticsConfigFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDiagnosticsConfigFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceDiagnosticsConfigFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDiagnosticsConfigFeaturesNV<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceDiagnosticsConfigFeaturesNV<'a> {} impl<'a> PhysicalDeviceDiagnosticsConfigFeaturesNV<'a> { #[inline] pub fn diagnostics_config(mut self, diagnostics_config: bool) -> Self { @@ -35365,10 +35577,10 @@ impl ::core::default::Default for DeviceDiagnosticsConfigCreateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceDiagnosticsConfigCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceDiagnosticsConfigCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV; } -unsafe impl<'a> Extends> for DeviceDiagnosticsConfigCreateInfoNV<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for DeviceDiagnosticsConfigCreateInfoNV<'a> {} impl<'a> DeviceDiagnosticsConfigCreateInfoNV<'a> { #[inline] pub fn flags(mut self, flags: DeviceDiagnosticsConfigFlagsNV) -> Self { @@ -35400,15 +35612,15 @@ impl ::core::default::Default for PhysicalDeviceZeroInitializeWorkgroupMemoryFea } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures<'a> { } @@ -35447,15 +35659,17 @@ impl ::core::default::Default for PhysicalDeviceShaderSubgroupUniformControlFlow } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> + for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR<'a> +{ const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR<'a> { } @@ -35497,11 +35711,14 @@ impl ::core::default::Default for PhysicalDeviceRobustness2FeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceRobustness2FeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRobustness2FeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT; } -unsafe impl<'a> Extends> for PhysicalDeviceRobustness2FeaturesEXT<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceRobustness2FeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceRobustness2FeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceRobustness2FeaturesEXT<'a> {} impl<'a> PhysicalDeviceRobustness2FeaturesEXT<'a> { #[inline] pub fn robust_buffer_access2(mut self, robust_buffer_access2: bool) -> Self { @@ -35545,11 +35762,11 @@ impl ::core::default::Default for PhysicalDeviceRobustness2PropertiesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceRobustness2PropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRobustness2PropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceRobustness2PropertiesEXT<'a> { } @@ -35597,11 +35814,14 @@ impl ::core::default::Default for PhysicalDeviceImageRobustnessFeatures<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceImageRobustnessFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageRobustnessFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES; } -unsafe impl<'a> Extends> for PhysicalDeviceImageRobustnessFeatures<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceImageRobustnessFeatures<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceImageRobustnessFeatures<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceImageRobustnessFeatures<'a> {} impl<'a> PhysicalDeviceImageRobustnessFeatures<'a> { #[inline] pub fn robust_image_access(mut self, robust_image_access: bool) -> Self { @@ -35639,15 +35859,15 @@ impl ::core::default::Default for PhysicalDeviceWorkgroupMemoryExplicitLayoutFea } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR<'a> { } @@ -35740,15 +35960,18 @@ impl ::core::default::Default for PhysicalDevicePortabilitySubsetFeaturesKHR<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePortabilitySubsetFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePortabilitySubsetFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDevicePortabilitySubsetFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevicePortabilitySubsetFeaturesKHR<'a> { } -unsafe impl<'a> Extends> for PhysicalDevicePortabilitySubsetFeaturesKHR<'a> {} impl<'a> PhysicalDevicePortabilitySubsetFeaturesKHR<'a> { #[inline] pub fn constant_alpha_color_blend_factors( @@ -35863,11 +36086,11 @@ impl ::core::default::Default for PhysicalDevicePortabilitySubsetPropertiesKHR<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePortabilitySubsetPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePortabilitySubsetPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDevicePortabilitySubsetPropertiesKHR<'a> { } @@ -35907,11 +36130,14 @@ impl ::core::default::Default for PhysicalDevice4444FormatsFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDevice4444FormatsFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevice4444FormatsFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT; } -unsafe impl<'a> Extends> for PhysicalDevice4444FormatsFeaturesEXT<'a> {} -unsafe impl<'a> Extends> for PhysicalDevice4444FormatsFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDevice4444FormatsFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevice4444FormatsFeaturesEXT<'a> {} impl<'a> PhysicalDevice4444FormatsFeaturesEXT<'a> { #[inline] pub fn format_a4r4g4b4(mut self, format_a4r4g4b4: bool) -> Self { @@ -35948,15 +36174,18 @@ impl ::core::default::Default for PhysicalDeviceSubpassShadingFeaturesHUAWEI<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceSubpassShadingFeaturesHUAWEI<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSubpassShadingFeaturesHUAWEI<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceSubpassShadingFeaturesHUAWEI<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceSubpassShadingFeaturesHUAWEI<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceSubpassShadingFeaturesHUAWEI<'a> {} impl<'a> PhysicalDeviceSubpassShadingFeaturesHUAWEI<'a> { #[inline] pub fn subpass_shading(mut self, subpass_shading: bool) -> Self { @@ -35990,15 +36219,15 @@ impl ::core::default::Default for PhysicalDeviceClusterCullingShaderFeaturesHUAW } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a> { } @@ -36042,11 +36271,11 @@ impl ::core::default::Default for PhysicalDeviceClusterCullingShaderVrsFeaturesH } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a>> for PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI<'a> { } @@ -36085,7 +36314,7 @@ impl ::core::default::Default for BufferCopy2<'_> { } } } -unsafe impl<'a> TaggedStructure for BufferCopy2<'a> { +unsafe impl<'a> TaggedStructure<'a> for BufferCopy2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_COPY_2; } impl<'a> BufferCopy2<'a> { @@ -36137,7 +36366,7 @@ impl ::core::default::Default for ImageCopy2<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageCopy2<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageCopy2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_COPY_2; } impl<'a> ImageCopy2<'a> { @@ -36197,7 +36426,7 @@ impl ::core::default::Default for ImageBlit2<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageBlit2<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageBlit2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_BLIT_2; } unsafe impl<'a> BaseTaggedStructure<'a> for ImageBlit2<'a> {} @@ -36257,7 +36486,7 @@ impl ::core::default::Default for BufferImageCopy2<'_> { } } } -unsafe impl<'a> TaggedStructure for BufferImageCopy2<'a> { +unsafe impl<'a> TaggedStructure<'a> for BufferImageCopy2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_IMAGE_COPY_2; } unsafe impl<'a> BaseTaggedStructure<'a> for BufferImageCopy2<'a> {} @@ -36325,7 +36554,7 @@ impl ::core::default::Default for ImageResolve2<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageResolve2<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageResolve2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_RESOLVE_2; } impl<'a> ImageResolve2<'a> { @@ -36385,7 +36614,7 @@ impl ::core::default::Default for CopyBufferInfo2<'_> { } } } -unsafe impl<'a> TaggedStructure for CopyBufferInfo2<'a> { +unsafe impl<'a> TaggedStructure<'a> for CopyBufferInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COPY_BUFFER_INFO_2; } impl<'a> CopyBufferInfo2<'a> { @@ -36440,7 +36669,7 @@ impl ::core::default::Default for CopyImageInfo2<'_> { } } } -unsafe impl<'a> TaggedStructure for CopyImageInfo2<'a> { +unsafe impl<'a> TaggedStructure<'a> for CopyImageInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COPY_IMAGE_INFO_2; } impl<'a> CopyImageInfo2<'a> { @@ -36507,7 +36736,7 @@ impl ::core::default::Default for BlitImageInfo2<'_> { } } } -unsafe impl<'a> TaggedStructure for BlitImageInfo2<'a> { +unsafe impl<'a> TaggedStructure<'a> for BlitImageInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BLIT_IMAGE_INFO_2; } unsafe impl<'a> BaseTaggedStructure<'a> for BlitImageInfo2<'a> {} @@ -36576,7 +36805,7 @@ impl ::core::default::Default for CopyBufferToImageInfo2<'_> { } } } -unsafe impl<'a> TaggedStructure for CopyBufferToImageInfo2<'a> { +unsafe impl<'a> TaggedStructure<'a> for CopyBufferToImageInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COPY_BUFFER_TO_IMAGE_INFO_2; } impl<'a> CopyBufferToImageInfo2<'a> { @@ -36634,7 +36863,7 @@ impl ::core::default::Default for CopyImageToBufferInfo2<'_> { } } } -unsafe impl<'a> TaggedStructure for CopyImageToBufferInfo2<'a> { +unsafe impl<'a> TaggedStructure<'a> for CopyImageToBufferInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COPY_IMAGE_TO_BUFFER_INFO_2; } impl<'a> CopyImageToBufferInfo2<'a> { @@ -36694,7 +36923,7 @@ impl ::core::default::Default for ResolveImageInfo2<'_> { } } } -unsafe impl<'a> TaggedStructure for ResolveImageInfo2<'a> { +unsafe impl<'a> TaggedStructure<'a> for ResolveImageInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RESOLVE_IMAGE_INFO_2; } impl<'a> ResolveImageInfo2<'a> { @@ -36751,15 +36980,15 @@ impl ::core::default::Default for PhysicalDeviceShaderImageAtomicInt64FeaturesEX } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT<'a> { } @@ -36801,10 +37030,10 @@ impl ::core::default::Default for FragmentShadingRateAttachmentInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for FragmentShadingRateAttachmentInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for FragmentShadingRateAttachmentInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR; } -unsafe impl<'a> Extends> for FragmentShadingRateAttachmentInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, SubpassDescription2<'a>> for FragmentShadingRateAttachmentInfoKHR<'a> {} impl<'a> FragmentShadingRateAttachmentInfoKHR<'a> { #[inline] pub fn fragment_shading_rate_attachment( @@ -36849,11 +37078,11 @@ impl ::core::default::Default for PipelineFragmentShadingRateStateCreateInfoKHR< } } } -unsafe impl<'a> TaggedStructure for PipelineFragmentShadingRateStateCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineFragmentShadingRateStateCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, GraphicsPipelineCreateInfo<'a>> for PipelineFragmentShadingRateStateCreateInfoKHR<'a> { } @@ -36897,15 +37126,18 @@ impl ::core::default::Default for PhysicalDeviceFragmentShadingRateFeaturesKHR<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShadingRateFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentShadingRateFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceFragmentShadingRateFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceFragmentShadingRateFeaturesKHR<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceFragmentShadingRateFeaturesKHR<'a> {} impl<'a> PhysicalDeviceFragmentShadingRateFeaturesKHR<'a> { #[inline] pub fn pipeline_fragment_shading_rate(mut self, pipeline_fragment_shading_rate: bool) -> Self { @@ -36985,11 +37217,11 @@ impl ::core::default::Default for PhysicalDeviceFragmentShadingRatePropertiesKHR } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShadingRatePropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentShadingRatePropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceFragmentShadingRatePropertiesKHR<'a> { } @@ -37164,7 +37396,7 @@ impl ::core::default::Default for PhysicalDeviceFragmentShadingRateKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShadingRateKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentShadingRateKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR; } impl<'a> PhysicalDeviceFragmentShadingRateKHR<'a> { @@ -37203,15 +37435,15 @@ impl ::core::default::Default for PhysicalDeviceShaderTerminateInvocationFeature } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderTerminateInvocationFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderTerminateInvocationFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderTerminateInvocationFeatures<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderTerminateInvocationFeatures<'a> { } @@ -37250,15 +37482,15 @@ impl ::core::default::Default for PhysicalDeviceFragmentShadingRateEnumsFeatures } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV<'a> { } @@ -37309,11 +37541,11 @@ impl ::core::default::Default for PhysicalDeviceFragmentShadingRateEnumsProperti } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShadingRateEnumsPropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentShadingRateEnumsPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceFragmentShadingRateEnumsPropertiesNV<'a> { } @@ -37356,11 +37588,11 @@ impl ::core::default::Default for PipelineFragmentShadingRateEnumStateCreateInfo } } } -unsafe impl<'a> TaggedStructure for PipelineFragmentShadingRateEnumStateCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineFragmentShadingRateEnumStateCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, GraphicsPipelineCreateInfo<'a>> for PipelineFragmentShadingRateEnumStateCreateInfoNV<'a> { } @@ -37409,7 +37641,7 @@ impl ::core::default::Default for AccelerationStructureBuildSizesInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for AccelerationStructureBuildSizesInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureBuildSizesInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR; } @@ -37456,15 +37688,15 @@ impl ::core::default::Default for PhysicalDeviceImage2DViewOf3DFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceImage2DViewOf3DFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImage2DViewOf3DFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceImage2DViewOf3DFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceImage2DViewOf3DFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceImage2DViewOf3DFeaturesEXT<'a> {} impl<'a> PhysicalDeviceImage2DViewOf3DFeaturesEXT<'a> { #[inline] pub fn image2_d_view_of3_d(mut self, image2_d_view_of3_d: bool) -> Self { @@ -37501,15 +37733,18 @@ impl ::core::default::Default for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'a> {} impl<'a> PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'a> { #[inline] pub fn image_sliced_view_of3_d(mut self, image_sliced_view_of3_d: bool) -> Self { @@ -37541,17 +37776,17 @@ impl ::core::default::Default for PhysicalDeviceAttachmentFeedbackLoopDynamicSta } } } -unsafe impl<'a> TaggedStructure +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT<'a> { } @@ -37589,15 +37824,15 @@ impl ::core::default::Default for PhysicalDeviceLegacyVertexAttributesFeaturesEX } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a> { } @@ -37632,11 +37867,11 @@ impl ::core::default::Default for PhysicalDeviceLegacyVertexAttributesProperties } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'a> { } @@ -37671,15 +37906,15 @@ impl ::core::default::Default for PhysicalDeviceMutableDescriptorTypeFeaturesEXT } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'a> { } @@ -37746,14 +37981,17 @@ impl ::core::default::Default for MutableDescriptorTypeCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for MutableDescriptorTypeCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for MutableDescriptorTypeCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DescriptorSetLayoutCreateInfo<'a>> + for MutableDescriptorTypeCreateInfoEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DescriptorPoolCreateInfo<'a>> for MutableDescriptorTypeCreateInfoEXT<'a> { } -unsafe impl<'a> Extends> for MutableDescriptorTypeCreateInfoEXT<'a> {} impl<'a> MutableDescriptorTypeCreateInfoEXT<'a> { #[inline] pub fn mutable_descriptor_type_lists( @@ -37789,15 +38027,18 @@ impl ::core::default::Default for PhysicalDeviceDepthClipControlFeaturesEXT<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthClipControlFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDepthClipControlFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceDepthClipControlFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDepthClipControlFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceDepthClipControlFeaturesEXT<'a> {} impl<'a> PhysicalDeviceDepthClipControlFeaturesEXT<'a> { #[inline] pub fn depth_clip_control(mut self, depth_clip_control: bool) -> Self { @@ -37831,15 +38072,15 @@ impl ::core::default::Default for PhysicalDeviceDeviceGeneratedCommandsFeaturesE } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> { } @@ -37904,11 +38145,11 @@ impl ::core::default::Default for PhysicalDeviceDeviceGeneratedCommandsPropertie } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'a> { } @@ -38032,11 +38273,11 @@ impl ::core::default::Default for GeneratedCommandsPipelineInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for GeneratedCommandsPipelineInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for GeneratedCommandsPipelineInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_PIPELINE_INFO_EXT; } -unsafe impl<'a> Extends> for GeneratedCommandsPipelineInfoEXT<'a> {} -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, GeneratedCommandsInfoEXT<'a>> for GeneratedCommandsPipelineInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, GeneratedCommandsMemoryRequirementsInfoEXT<'a>> for GeneratedCommandsPipelineInfoEXT<'a> { } @@ -38073,11 +38314,11 @@ impl ::core::default::Default for GeneratedCommandsShaderInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for GeneratedCommandsShaderInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for GeneratedCommandsShaderInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_SHADER_INFO_EXT; } -unsafe impl<'a> Extends> for GeneratedCommandsShaderInfoEXT<'a> {} -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, GeneratedCommandsInfoEXT<'a>> for GeneratedCommandsShaderInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, GeneratedCommandsMemoryRequirementsInfoEXT<'a>> for GeneratedCommandsShaderInfoEXT<'a> { } @@ -38119,7 +38360,7 @@ impl ::core::default::Default for GeneratedCommandsMemoryRequirementsInfoEXT<'_> } } } -unsafe impl<'a> TaggedStructure for GeneratedCommandsMemoryRequirementsInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for GeneratedCommandsMemoryRequirementsInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT; } @@ -38178,7 +38419,7 @@ impl ::core::default::Default for IndirectExecutionSetPipelineInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for IndirectExecutionSetPipelineInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for IndirectExecutionSetPipelineInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT; } impl<'a> IndirectExecutionSetPipelineInfoEXT<'a> { @@ -38219,7 +38460,7 @@ impl ::core::default::Default for IndirectExecutionSetShaderLayoutInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for IndirectExecutionSetShaderLayoutInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for IndirectExecutionSetShaderLayoutInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT; } @@ -38265,7 +38506,7 @@ impl ::core::default::Default for IndirectExecutionSetShaderInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for IndirectExecutionSetShaderInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for IndirectExecutionSetShaderInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_EXECUTION_SET_SHADER_INFO_EXT; } impl<'a> IndirectExecutionSetShaderInfoEXT<'a> { @@ -38345,7 +38586,7 @@ impl ::core::default::Default for IndirectExecutionSetCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for IndirectExecutionSetCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for IndirectExecutionSetCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_EXECUTION_SET_CREATE_INFO_EXT; } impl<'a> IndirectExecutionSetCreateInfoEXT<'a> { @@ -38402,7 +38643,7 @@ impl ::core::default::Default for GeneratedCommandsInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for GeneratedCommandsInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for GeneratedCommandsInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_INFO_EXT; } unsafe impl<'a> BaseTaggedStructure<'a> for GeneratedCommandsInfoEXT<'a> {} @@ -38490,7 +38731,7 @@ impl ::core::default::Default for WriteIndirectExecutionSetPipelineEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for WriteIndirectExecutionSetPipelineEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for WriteIndirectExecutionSetPipelineEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT; } impl<'a> WriteIndirectExecutionSetPipelineEXT<'a> { @@ -38531,7 +38772,7 @@ impl ::core::default::Default for WriteIndirectExecutionSetShaderEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for WriteIndirectExecutionSetShaderEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for WriteIndirectExecutionSetShaderEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT; } impl<'a> WriteIndirectExecutionSetShaderEXT<'a> { @@ -38580,7 +38821,7 @@ impl ::core::default::Default for IndirectCommandsLayoutCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for IndirectCommandsLayoutCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for IndirectCommandsLayoutCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT; } unsafe impl<'a> BaseTaggedStructure<'a> for IndirectCommandsLayoutCreateInfoEXT<'a> {} @@ -38651,7 +38892,7 @@ impl ::core::default::Default for IndirectCommandsLayoutTokenEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for IndirectCommandsLayoutTokenEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for IndirectCommandsLayoutTokenEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT; } impl<'a> IndirectCommandsLayoutTokenEXT<'a> { @@ -38857,11 +39098,11 @@ impl ::core::default::Default for PipelineViewportDepthClipControlCreateInfoEXT< } } } -unsafe impl<'a> TaggedStructure for PipelineViewportDepthClipControlCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineViewportDepthClipControlCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineViewportStateCreateInfo<'a>> for PipelineViewportDepthClipControlCreateInfoEXT<'a> { } @@ -38896,15 +39137,18 @@ impl ::core::default::Default for PhysicalDeviceDepthClampControlFeaturesEXT<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthClampControlFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDepthClampControlFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceDepthClampControlFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDepthClampControlFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceDepthClampControlFeaturesEXT<'a> {} impl<'a> PhysicalDeviceDepthClampControlFeaturesEXT<'a> { #[inline] pub fn depth_clamp_control(mut self, depth_clamp_control: bool) -> Self { @@ -38938,11 +39182,11 @@ impl ::core::default::Default for PipelineViewportDepthClampControlCreateInfoEXT } } } -unsafe impl<'a> TaggedStructure for PipelineViewportDepthClampControlCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineViewportDepthClampControlCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineViewportStateCreateInfo<'a>> for PipelineViewportDepthClampControlCreateInfoEXT<'a> { } @@ -38982,15 +39226,15 @@ impl ::core::default::Default for PhysicalDeviceVertexInputDynamicStateFeaturesE } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceVertexInputDynamicStateFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVertexInputDynamicStateFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceVertexInputDynamicStateFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceVertexInputDynamicStateFeaturesEXT<'a> { } @@ -39025,15 +39269,18 @@ impl ::core::default::Default for PhysicalDeviceExternalMemoryRDMAFeaturesNV<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalMemoryRDMAFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExternalMemoryRDMAFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceExternalMemoryRDMAFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceExternalMemoryRDMAFeaturesNV<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceExternalMemoryRDMAFeaturesNV<'a> {} impl<'a> PhysicalDeviceExternalMemoryRDMAFeaturesNV<'a> { #[inline] pub fn external_memory_rdma(mut self, external_memory_rdma: bool) -> Self { @@ -39065,15 +39312,17 @@ impl ::core::default::Default for PhysicalDeviceShaderRelaxedExtendedInstruction } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> + for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a> +{ const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a> { } @@ -39117,7 +39366,7 @@ impl ::core::default::Default for VertexInputBindingDescription2EXT<'_> { } } } -unsafe impl<'a> TaggedStructure for VertexInputBindingDescription2EXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for VertexInputBindingDescription2EXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT; } impl<'a> VertexInputBindingDescription2EXT<'a> { @@ -39172,7 +39421,7 @@ impl ::core::default::Default for VertexInputAttributeDescription2EXT<'_> { } } } -unsafe impl<'a> TaggedStructure for VertexInputAttributeDescription2EXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for VertexInputAttributeDescription2EXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT; } impl<'a> VertexInputAttributeDescription2EXT<'a> { @@ -39221,15 +39470,18 @@ impl ::core::default::Default for PhysicalDeviceColorWriteEnableFeaturesEXT<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceColorWriteEnableFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceColorWriteEnableFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceColorWriteEnableFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceColorWriteEnableFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceColorWriteEnableFeaturesEXT<'a> {} impl<'a> PhysicalDeviceColorWriteEnableFeaturesEXT<'a> { #[inline] pub fn color_write_enable(mut self, color_write_enable: bool) -> Self { @@ -39263,10 +39515,10 @@ impl ::core::default::Default for PipelineColorWriteCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineColorWriteCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineColorWriteCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COLOR_WRITE_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineColorBlendStateCreateInfo<'a>> for PipelineColorWriteCreateInfoEXT<'a> { } @@ -39308,10 +39560,10 @@ impl ::core::default::Default for MemoryBarrier2<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryBarrier2<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryBarrier2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_BARRIER_2; } -unsafe impl<'a> Extends> for MemoryBarrier2<'a> {} +unsafe impl<'a> Extends<'a, SubpassDependency2<'a>> for MemoryBarrier2<'a> {} impl<'a> MemoryBarrier2<'a> { #[inline] pub fn src_stage_mask(mut self, src_stage_mask: PipelineStageFlags2) -> Self { @@ -39376,7 +39628,7 @@ impl ::core::default::Default for ImageMemoryBarrier2<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageMemoryBarrier2<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageMemoryBarrier2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_MEMORY_BARRIER_2; } unsafe impl<'a> BaseTaggedStructure<'a> for ImageMemoryBarrier2<'a> {} @@ -39472,7 +39724,7 @@ impl ::core::default::Default for BufferMemoryBarrier2<'_> { } } } -unsafe impl<'a> TaggedStructure for BufferMemoryBarrier2<'a> { +unsafe impl<'a> TaggedStructure<'a> for BufferMemoryBarrier2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_MEMORY_BARRIER_2; } unsafe impl<'a> BaseTaggedStructure<'a> for BufferMemoryBarrier2<'a> {} @@ -39559,7 +39811,7 @@ impl ::core::default::Default for DependencyInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for DependencyInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for DependencyInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEPENDENCY_INFO; } impl<'a> DependencyInfo<'a> { @@ -39623,7 +39875,7 @@ impl ::core::default::Default for SemaphoreSubmitInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for SemaphoreSubmitInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for SemaphoreSubmitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SEMAPHORE_SUBMIT_INFO; } impl<'a> SemaphoreSubmitInfo<'a> { @@ -39674,7 +39926,7 @@ impl ::core::default::Default for CommandBufferSubmitInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for CommandBufferSubmitInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for CommandBufferSubmitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_SUBMIT_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for CommandBufferSubmitInfo<'a> {} @@ -39726,7 +39978,7 @@ impl ::core::default::Default for SubmitInfo2<'_> { } } } -unsafe impl<'a> TaggedStructure for SubmitInfo2<'a> { +unsafe impl<'a> TaggedStructure<'a> for SubmitInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBMIT_INFO_2; } unsafe impl<'a> BaseTaggedStructure<'a> for SubmitInfo2<'a> {} @@ -39788,10 +40040,10 @@ impl ::core::default::Default for QueueFamilyCheckpointProperties2NV<'_> { } } } -unsafe impl<'a> TaggedStructure for QueueFamilyCheckpointProperties2NV<'a> { +unsafe impl<'a> TaggedStructure<'a> for QueueFamilyCheckpointProperties2NV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV; } -unsafe impl<'a> Extends> for QueueFamilyCheckpointProperties2NV<'a> {} +unsafe impl<'a> Extends<'a, QueueFamilyProperties2<'a>> for QueueFamilyCheckpointProperties2NV<'a> {} impl<'a> QueueFamilyCheckpointProperties2NV<'a> { #[inline] pub fn checkpoint_execution_stage_mask( @@ -39828,7 +40080,7 @@ impl ::core::default::Default for CheckpointData2NV<'_> { } } } -unsafe impl<'a> TaggedStructure for CheckpointData2NV<'a> { +unsafe impl<'a> TaggedStructure<'a> for CheckpointData2NV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::CHECKPOINT_DATA_2_NV; } impl<'a> CheckpointData2NV<'a> { @@ -39867,14 +40119,14 @@ impl ::core::default::Default for PhysicalDeviceSynchronization2Features<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceSynchronization2Features<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSynchronization2Features<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceSynchronization2Features<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceSynchronization2Features<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceSynchronization2Features<'a> {} impl<'a> PhysicalDeviceSynchronization2Features<'a> { #[inline] pub fn synchronization2(mut self, synchronization2: bool) -> Self { @@ -39906,15 +40158,15 @@ impl ::core::default::Default for PhysicalDeviceHostImageCopyFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceHostImageCopyFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceHostImageCopyFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceHostImageCopyFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceHostImageCopyFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceHostImageCopyFeaturesEXT<'a> {} impl<'a> PhysicalDeviceHostImageCopyFeaturesEXT<'a> { #[inline] pub fn host_image_copy(mut self, host_image_copy: bool) -> Self { @@ -39956,11 +40208,11 @@ impl ::core::default::Default for PhysicalDeviceHostImageCopyPropertiesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceHostImageCopyPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceHostImageCopyPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceHostImageCopyPropertiesEXT<'a> { } @@ -40028,7 +40280,7 @@ impl ::core::default::Default for MemoryToImageCopyEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryToImageCopyEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryToImageCopyEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_TO_IMAGE_COPY_EXT; } impl<'a> MemoryToImageCopyEXT<'a> { @@ -40097,7 +40349,7 @@ impl ::core::default::Default for ImageToMemoryCopyEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageToMemoryCopyEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageToMemoryCopyEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_TO_MEMORY_COPY_EXT; } impl<'a> ImageToMemoryCopyEXT<'a> { @@ -40164,7 +40416,7 @@ impl ::core::default::Default for CopyMemoryToImageInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for CopyMemoryToImageInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for CopyMemoryToImageInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COPY_MEMORY_TO_IMAGE_INFO_EXT; } impl<'a> CopyMemoryToImageInfoEXT<'a> { @@ -40222,7 +40474,7 @@ impl ::core::default::Default for CopyImageToMemoryInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for CopyImageToMemoryInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for CopyImageToMemoryInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COPY_IMAGE_TO_MEMORY_INFO_EXT; } impl<'a> CopyImageToMemoryInfoEXT<'a> { @@ -40284,7 +40536,7 @@ impl ::core::default::Default for CopyImageToImageInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for CopyImageToImageInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for CopyImageToImageInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COPY_IMAGE_TO_IMAGE_INFO_EXT; } impl<'a> CopyImageToImageInfoEXT<'a> { @@ -40350,7 +40602,7 @@ impl ::core::default::Default for HostImageLayoutTransitionInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for HostImageLayoutTransitionInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for HostImageLayoutTransitionInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT; } impl<'a> HostImageLayoutTransitionInfoEXT<'a> { @@ -40399,10 +40651,10 @@ impl ::core::default::Default for SubresourceHostMemcpySizeEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for SubresourceHostMemcpySizeEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SubresourceHostMemcpySizeEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBRESOURCE_HOST_MEMCPY_SIZE_EXT; } -unsafe impl<'a> Extends> for SubresourceHostMemcpySizeEXT<'a> {} +unsafe impl<'a> Extends<'a, SubresourceLayout2KHR<'a>> for SubresourceHostMemcpySizeEXT<'a> {} impl<'a> SubresourceHostMemcpySizeEXT<'a> { #[inline] pub fn size(mut self, size: DeviceSize) -> Self { @@ -40436,11 +40688,14 @@ impl ::core::default::Default for HostImageCopyDevicePerformanceQueryEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for HostImageCopyDevicePerformanceQueryEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for HostImageCopyDevicePerformanceQueryEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT; } -unsafe impl<'a> Extends> for HostImageCopyDevicePerformanceQueryEXT<'a> {} +unsafe impl<'a> Extends<'a, ImageFormatProperties2<'a>> + for HostImageCopyDevicePerformanceQueryEXT<'a> +{ +} impl<'a> HostImageCopyDevicePerformanceQueryEXT<'a> { #[inline] pub fn optimal_device_access(mut self, optimal_device_access: bool) -> Self { @@ -40481,15 +40736,15 @@ impl ::core::default::Default for PhysicalDevicePrimitivesGeneratedQueryFeatures } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT<'a> { } @@ -40542,15 +40797,15 @@ impl ::core::default::Default for PhysicalDeviceLegacyDitheringFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceLegacyDitheringFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceLegacyDitheringFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceLegacyDitheringFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceLegacyDitheringFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceLegacyDitheringFeaturesEXT<'a> {} impl<'a> PhysicalDeviceLegacyDitheringFeaturesEXT<'a> { #[inline] pub fn legacy_dithering(mut self, legacy_dithering: bool) -> Self { @@ -40582,15 +40837,17 @@ impl ::core::default::Default for PhysicalDeviceMultisampledRenderToSingleSample } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> + for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT<'a> +{ const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT<'a> { } @@ -40628,10 +40885,10 @@ impl ::core::default::Default for SubpassResolvePerformanceQueryEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for SubpassResolvePerformanceQueryEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SubpassResolvePerformanceQueryEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT; } -unsafe impl<'a> Extends> for SubpassResolvePerformanceQueryEXT<'a> {} +unsafe impl<'a> Extends<'a, FormatProperties2<'a>> for SubpassResolvePerformanceQueryEXT<'a> {} impl<'a> SubpassResolvePerformanceQueryEXT<'a> { #[inline] pub fn optimal(mut self, optimal: bool) -> Self { @@ -40665,12 +40922,15 @@ impl ::core::default::Default for MultisampledRenderToSingleSampledInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for MultisampledRenderToSingleSampledInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for MultisampledRenderToSingleSampledInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT; } -unsafe impl<'a> Extends> for MultisampledRenderToSingleSampledInfoEXT<'a> {} -unsafe impl<'a> Extends> for MultisampledRenderToSingleSampledInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, SubpassDescription2<'a>> + for MultisampledRenderToSingleSampledInfoEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, RenderingInfo<'a>> for MultisampledRenderToSingleSampledInfoEXT<'a> {} impl<'a> MultisampledRenderToSingleSampledInfoEXT<'a> { #[inline] pub fn multisampled_render_to_single_sampled_enable( @@ -40711,15 +40971,15 @@ impl ::core::default::Default for PhysicalDevicePipelineProtectedAccessFeaturesE } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineProtectedAccessFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineProtectedAccessFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDevicePipelineProtectedAccessFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevicePipelineProtectedAccessFeaturesEXT<'a> { } @@ -40754,10 +41014,10 @@ impl ::core::default::Default for QueueFamilyVideoPropertiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for QueueFamilyVideoPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for QueueFamilyVideoPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_VIDEO_PROPERTIES_KHR; } -unsafe impl<'a> Extends> for QueueFamilyVideoPropertiesKHR<'a> {} +unsafe impl<'a> Extends<'a, QueueFamilyProperties2<'a>> for QueueFamilyVideoPropertiesKHR<'a> {} impl<'a> QueueFamilyVideoPropertiesKHR<'a> { #[inline] pub fn video_codec_operations( @@ -40792,11 +41052,11 @@ impl ::core::default::Default for QueueFamilyQueryResultStatusPropertiesKHR<'_> } } } -unsafe impl<'a> TaggedStructure for QueueFamilyQueryResultStatusPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for QueueFamilyQueryResultStatusPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, QueueFamilyProperties2<'a>> for QueueFamilyQueryResultStatusPropertiesKHR<'a> { } @@ -40833,13 +41093,13 @@ impl ::core::default::Default for VideoProfileListInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoProfileListInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoProfileListInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_PROFILE_LIST_INFO_KHR; } -unsafe impl<'a> Extends> for VideoProfileListInfoKHR<'a> {} -unsafe impl<'a> Extends> for VideoProfileListInfoKHR<'a> {} -unsafe impl<'a> Extends> for VideoProfileListInfoKHR<'a> {} -unsafe impl<'a> Extends> for VideoProfileListInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceImageFormatInfo2<'a>> for VideoProfileListInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceVideoFormatInfoKHR<'a>> for VideoProfileListInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> for VideoProfileListInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, BufferCreateInfo<'a>> for VideoProfileListInfoKHR<'a> {} impl<'a> VideoProfileListInfoKHR<'a> { #[inline] pub fn profiles(mut self, profiles: &'a [VideoProfileInfoKHR<'a>]) -> Self { @@ -40872,7 +41132,7 @@ impl ::core::default::Default for PhysicalDeviceVideoFormatInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceVideoFormatInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVideoFormatInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for PhysicalDeviceVideoFormatInfoKHR<'a> {} @@ -40917,7 +41177,7 @@ impl ::core::default::Default for VideoFormatPropertiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoFormatPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoFormatPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_FORMAT_PROPERTIES_KHR; } impl<'a> VideoFormatPropertiesKHR<'a> { @@ -40982,10 +41242,10 @@ impl ::core::default::Default for VideoProfileInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoProfileInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_PROFILE_INFO_KHR; } -unsafe impl<'a> Extends> for VideoProfileInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, QueryPoolCreateInfo<'a>> for VideoProfileInfoKHR<'a> {} unsafe impl<'a> BaseTaggedStructure<'a> for VideoProfileInfoKHR<'a> {} impl<'a> VideoProfileInfoKHR<'a> { #[inline] @@ -41055,7 +41315,7 @@ impl ::core::default::Default for VideoCapabilitiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoCapabilitiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoCapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_CAPABILITIES_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for VideoCapabilitiesKHR<'a> {} @@ -41138,7 +41398,7 @@ impl ::core::default::Default for VideoSessionMemoryRequirementsKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoSessionMemoryRequirementsKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoSessionMemoryRequirementsKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR; } impl<'a> VideoSessionMemoryRequirementsKHR<'a> { @@ -41183,7 +41443,7 @@ impl ::core::default::Default for BindVideoSessionMemoryInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for BindVideoSessionMemoryInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for BindVideoSessionMemoryInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_VIDEO_SESSION_MEMORY_INFO_KHR; } impl<'a> BindVideoSessionMemoryInfoKHR<'a> { @@ -41238,7 +41498,7 @@ impl ::core::default::Default for VideoPictureResourceInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoPictureResourceInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoPictureResourceInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_PICTURE_RESOURCE_INFO_KHR; } impl<'a> VideoPictureResourceInfoKHR<'a> { @@ -41289,7 +41549,7 @@ impl ::core::default::Default for VideoReferenceSlotInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoReferenceSlotInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoReferenceSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_REFERENCE_SLOT_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for VideoReferenceSlotInfoKHR<'a> {} @@ -41332,10 +41592,10 @@ impl ::core::default::Default for VideoDecodeCapabilitiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoDecodeCapabilitiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeCapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_CAPABILITIES_KHR; } -unsafe impl<'a> Extends> for VideoDecodeCapabilitiesKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoCapabilitiesKHR<'a>> for VideoDecodeCapabilitiesKHR<'a> {} impl<'a> VideoDecodeCapabilitiesKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoDecodeCapabilityFlagsKHR) -> Self { @@ -41367,11 +41627,11 @@ impl ::core::default::Default for VideoDecodeUsageInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoDecodeUsageInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeUsageInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_USAGE_INFO_KHR; } -unsafe impl<'a> Extends> for VideoDecodeUsageInfoKHR<'a> {} -unsafe impl<'a> Extends> for VideoDecodeUsageInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoProfileInfoKHR<'a>> for VideoDecodeUsageInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, QueryPoolCreateInfo<'a>> for VideoDecodeUsageInfoKHR<'a> {} impl<'a> VideoDecodeUsageInfoKHR<'a> { #[inline] pub fn video_usage_hints(mut self, video_usage_hints: VideoDecodeUsageFlagsKHR) -> Self { @@ -41417,7 +41677,7 @@ impl ::core::default::Default for VideoDecodeInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoDecodeInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for VideoDecodeInfoKHR<'a> {} @@ -41489,15 +41749,18 @@ impl ::core::default::Default for PhysicalDeviceVideoMaintenance1FeaturesKHR<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceVideoMaintenance1FeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVideoMaintenance1FeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceVideoMaintenance1FeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceVideoMaintenance1FeaturesKHR<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceVideoMaintenance1FeaturesKHR<'a> {} impl<'a> PhysicalDeviceVideoMaintenance1FeaturesKHR<'a> { #[inline] pub fn video_maintenance1(mut self, video_maintenance1: bool) -> Self { @@ -41533,11 +41796,11 @@ impl ::core::default::Default for VideoInlineQueryInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoInlineQueryInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoInlineQueryInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_INLINE_QUERY_INFO_KHR; } -unsafe impl<'a> Extends> for VideoInlineQueryInfoKHR<'a> {} -unsafe impl<'a> Extends> for VideoInlineQueryInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoDecodeInfoKHR<'a>> for VideoInlineQueryInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoEncodeInfoKHR<'a>> for VideoInlineQueryInfoKHR<'a> {} impl<'a> VideoInlineQueryInfoKHR<'a> { #[inline] pub fn query_pool(mut self, query_pool: QueryPool) -> Self { @@ -41581,11 +41844,11 @@ impl ::core::default::Default for VideoDecodeH264ProfileInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoDecodeH264ProfileInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeH264ProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H264_PROFILE_INFO_KHR; } -unsafe impl<'a> Extends> for VideoDecodeH264ProfileInfoKHR<'a> {} -unsafe impl<'a> Extends> for VideoDecodeH264ProfileInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoProfileInfoKHR<'a>> for VideoDecodeH264ProfileInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, QueryPoolCreateInfo<'a>> for VideoDecodeH264ProfileInfoKHR<'a> {} impl<'a> VideoDecodeH264ProfileInfoKHR<'a> { #[inline] pub fn std_profile_idc(mut self, std_profile_idc: StdVideoH264ProfileIdc) -> Self { @@ -41624,10 +41887,10 @@ impl ::core::default::Default for VideoDecodeH264CapabilitiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoDecodeH264CapabilitiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeH264CapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H264_CAPABILITIES_KHR; } -unsafe impl<'a> Extends> for VideoDecodeH264CapabilitiesKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoCapabilitiesKHR<'a>> for VideoDecodeH264CapabilitiesKHR<'a> {} impl<'a> VideoDecodeH264CapabilitiesKHR<'a> { #[inline] pub fn max_level_idc(mut self, max_level_idc: StdVideoH264LevelIdc) -> Self { @@ -41670,11 +41933,11 @@ impl ::core::default::Default for VideoDecodeH264SessionParametersAddInfoKHR<'_> } } } -unsafe impl<'a> TaggedStructure for VideoDecodeH264SessionParametersAddInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeH264SessionParametersAddInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoSessionParametersUpdateInfoKHR<'a>> for VideoDecodeH264SessionParametersAddInfoKHR<'a> { } @@ -41720,11 +41983,11 @@ impl ::core::default::Default for VideoDecodeH264SessionParametersCreateInfoKHR< } } } -unsafe impl<'a> TaggedStructure for VideoDecodeH264SessionParametersCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeH264SessionParametersCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoSessionParametersCreateInfoKHR<'a>> for VideoDecodeH264SessionParametersCreateInfoKHR<'a> { } @@ -41776,10 +42039,10 @@ impl ::core::default::Default for VideoDecodeH264PictureInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoDecodeH264PictureInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeH264PictureInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H264_PICTURE_INFO_KHR; } -unsafe impl<'a> Extends> for VideoDecodeH264PictureInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoDecodeInfoKHR<'a>> for VideoDecodeH264PictureInfoKHR<'a> {} impl<'a> VideoDecodeH264PictureInfoKHR<'a> { #[inline] pub fn std_picture_info(mut self, std_picture_info: &'a StdVideoDecodeH264PictureInfo) -> Self { @@ -41817,10 +42080,10 @@ impl ::core::default::Default for VideoDecodeH264DpbSlotInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoDecodeH264DpbSlotInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeH264DpbSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR; } -unsafe impl<'a> Extends> for VideoDecodeH264DpbSlotInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoReferenceSlotInfoKHR<'a>> for VideoDecodeH264DpbSlotInfoKHR<'a> {} impl<'a> VideoDecodeH264DpbSlotInfoKHR<'a> { #[inline] pub fn std_reference_info( @@ -41855,11 +42118,11 @@ impl ::core::default::Default for VideoDecodeH265ProfileInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoDecodeH265ProfileInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeH265ProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H265_PROFILE_INFO_KHR; } -unsafe impl<'a> Extends> for VideoDecodeH265ProfileInfoKHR<'a> {} -unsafe impl<'a> Extends> for VideoDecodeH265ProfileInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoProfileInfoKHR<'a>> for VideoDecodeH265ProfileInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, QueryPoolCreateInfo<'a>> for VideoDecodeH265ProfileInfoKHR<'a> {} impl<'a> VideoDecodeH265ProfileInfoKHR<'a> { #[inline] pub fn std_profile_idc(mut self, std_profile_idc: StdVideoH265ProfileIdc) -> Self { @@ -41891,10 +42154,10 @@ impl ::core::default::Default for VideoDecodeH265CapabilitiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoDecodeH265CapabilitiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeH265CapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H265_CAPABILITIES_KHR; } -unsafe impl<'a> Extends> for VideoDecodeH265CapabilitiesKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoCapabilitiesKHR<'a>> for VideoDecodeH265CapabilitiesKHR<'a> {} impl<'a> VideoDecodeH265CapabilitiesKHR<'a> { #[inline] pub fn max_level_idc(mut self, max_level_idc: StdVideoH265LevelIdc) -> Self { @@ -41936,11 +42199,11 @@ impl ::core::default::Default for VideoDecodeH265SessionParametersAddInfoKHR<'_> } } } -unsafe impl<'a> TaggedStructure for VideoDecodeH265SessionParametersAddInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeH265SessionParametersAddInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoSessionParametersUpdateInfoKHR<'a>> for VideoDecodeH265SessionParametersAddInfoKHR<'a> { } @@ -41994,11 +42257,11 @@ impl ::core::default::Default for VideoDecodeH265SessionParametersCreateInfoKHR< } } } -unsafe impl<'a> TaggedStructure for VideoDecodeH265SessionParametersCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeH265SessionParametersCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoSessionParametersCreateInfoKHR<'a>> for VideoDecodeH265SessionParametersCreateInfoKHR<'a> { } @@ -42055,10 +42318,10 @@ impl ::core::default::Default for VideoDecodeH265PictureInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoDecodeH265PictureInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeH265PictureInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H265_PICTURE_INFO_KHR; } -unsafe impl<'a> Extends> for VideoDecodeH265PictureInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoDecodeInfoKHR<'a>> for VideoDecodeH265PictureInfoKHR<'a> {} impl<'a> VideoDecodeH265PictureInfoKHR<'a> { #[inline] pub fn std_picture_info(mut self, std_picture_info: &'a StdVideoDecodeH265PictureInfo) -> Self { @@ -42096,10 +42359,10 @@ impl ::core::default::Default for VideoDecodeH265DpbSlotInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoDecodeH265DpbSlotInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeH265DpbSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR; } -unsafe impl<'a> Extends> for VideoDecodeH265DpbSlotInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoReferenceSlotInfoKHR<'a>> for VideoDecodeH265DpbSlotInfoKHR<'a> {} impl<'a> VideoDecodeH265DpbSlotInfoKHR<'a> { #[inline] pub fn std_reference_info( @@ -42136,11 +42399,11 @@ impl ::core::default::Default for VideoDecodeAV1ProfileInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoDecodeAV1ProfileInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeAV1ProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_PROFILE_INFO_KHR; } -unsafe impl<'a> Extends> for VideoDecodeAV1ProfileInfoKHR<'a> {} -unsafe impl<'a> Extends> for VideoDecodeAV1ProfileInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoProfileInfoKHR<'a>> for VideoDecodeAV1ProfileInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, QueryPoolCreateInfo<'a>> for VideoDecodeAV1ProfileInfoKHR<'a> {} impl<'a> VideoDecodeAV1ProfileInfoKHR<'a> { #[inline] pub fn std_profile(mut self, std_profile: StdVideoAV1Profile) -> Self { @@ -42177,10 +42440,10 @@ impl ::core::default::Default for VideoDecodeAV1CapabilitiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoDecodeAV1CapabilitiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeAV1CapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_CAPABILITIES_KHR; } -unsafe impl<'a> Extends> for VideoDecodeAV1CapabilitiesKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoCapabilitiesKHR<'a>> for VideoDecodeAV1CapabilitiesKHR<'a> {} impl<'a> VideoDecodeAV1CapabilitiesKHR<'a> { #[inline] pub fn max_level(mut self, max_level: StdVideoAV1Level) -> Self { @@ -42212,11 +42475,11 @@ impl ::core::default::Default for VideoDecodeAV1SessionParametersCreateInfoKHR<' } } } -unsafe impl<'a> TaggedStructure for VideoDecodeAV1SessionParametersCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeAV1SessionParametersCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoSessionParametersCreateInfoKHR<'a>> for VideoDecodeAV1SessionParametersCreateInfoKHR<'a> { } @@ -42264,10 +42527,10 @@ impl ::core::default::Default for VideoDecodeAV1PictureInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoDecodeAV1PictureInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeAV1PictureInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_PICTURE_INFO_KHR; } -unsafe impl<'a> Extends> for VideoDecodeAV1PictureInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoDecodeInfoKHR<'a>> for VideoDecodeAV1PictureInfoKHR<'a> {} impl<'a> VideoDecodeAV1PictureInfoKHR<'a> { #[inline] pub fn std_picture_info(mut self, std_picture_info: &'a StdVideoDecodeAV1PictureInfo) -> Self { @@ -42324,10 +42587,10 @@ impl ::core::default::Default for VideoDecodeAV1DpbSlotInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoDecodeAV1DpbSlotInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeAV1DpbSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR; } -unsafe impl<'a> Extends> for VideoDecodeAV1DpbSlotInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoReferenceSlotInfoKHR<'a>> for VideoDecodeAV1DpbSlotInfoKHR<'a> {} impl<'a> VideoDecodeAV1DpbSlotInfoKHR<'a> { #[inline] pub fn std_reference_info( @@ -42378,7 +42641,7 @@ impl ::core::default::Default for VideoSessionCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoSessionCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoSessionCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_SESSION_CREATE_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for VideoSessionCreateInfoKHR<'a> {} @@ -42457,7 +42720,7 @@ impl ::core::default::Default for VideoSessionParametersCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoSessionParametersCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoSessionParametersCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for VideoSessionParametersCreateInfoKHR<'a> {} @@ -42505,7 +42768,7 @@ impl ::core::default::Default for VideoSessionParametersUpdateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoSessionParametersUpdateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoSessionParametersUpdateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for VideoSessionParametersUpdateInfoKHR<'a> {} @@ -42540,7 +42803,7 @@ impl ::core::default::Default for VideoEncodeSessionParametersGetInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeSessionParametersGetInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeSessionParametersGetInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR; } @@ -42579,7 +42842,7 @@ impl ::core::default::Default for VideoEncodeSessionParametersFeedbackInfoKHR<'_ } } } -unsafe impl<'a> TaggedStructure for VideoEncodeSessionParametersFeedbackInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeSessionParametersFeedbackInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR; } @@ -42623,7 +42886,7 @@ impl ::core::default::Default for VideoBeginCodingInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoBeginCodingInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoBeginCodingInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_BEGIN_CODING_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for VideoBeginCodingInfoKHR<'a> {} @@ -42677,7 +42940,7 @@ impl ::core::default::Default for VideoEndCodingInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEndCodingInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEndCodingInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_END_CODING_INFO_KHR; } impl<'a> VideoEndCodingInfoKHR<'a> { @@ -42711,7 +42974,7 @@ impl ::core::default::Default for VideoCodingControlInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoCodingControlInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoCodingControlInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_CODING_CONTROL_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for VideoCodingControlInfoKHR<'a> {} @@ -42750,11 +43013,11 @@ impl ::core::default::Default for VideoEncodeUsageInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeUsageInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeUsageInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_USAGE_INFO_KHR; } -unsafe impl<'a> Extends> for VideoEncodeUsageInfoKHR<'a> {} -unsafe impl<'a> Extends> for VideoEncodeUsageInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoProfileInfoKHR<'a>> for VideoEncodeUsageInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, QueryPoolCreateInfo<'a>> for VideoEncodeUsageInfoKHR<'a> {} impl<'a> VideoEncodeUsageInfoKHR<'a> { #[inline] pub fn video_usage_hints(mut self, video_usage_hints: VideoEncodeUsageFlagsKHR) -> Self { @@ -42812,7 +43075,7 @@ impl ::core::default::Default for VideoEncodeInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for VideoEncodeInfoKHR<'a> {} @@ -42892,11 +43155,14 @@ impl ::core::default::Default for QueryPoolVideoEncodeFeedbackCreateInfoKHR<'_> } } } -unsafe impl<'a> TaggedStructure for QueryPoolVideoEncodeFeedbackCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for QueryPoolVideoEncodeFeedbackCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR; } -unsafe impl<'a> Extends> for QueryPoolVideoEncodeFeedbackCreateInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, QueryPoolCreateInfo<'a>> + for QueryPoolVideoEncodeFeedbackCreateInfoKHR<'a> +{ +} impl<'a> QueryPoolVideoEncodeFeedbackCreateInfoKHR<'a> { #[inline] pub fn encode_feedback_flags( @@ -42931,11 +43197,11 @@ impl ::core::default::Default for VideoEncodeQualityLevelInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeQualityLevelInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeQualityLevelInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR; } -unsafe impl<'a> Extends> for VideoEncodeQualityLevelInfoKHR<'a> {} -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoCodingControlInfoKHR<'a>> for VideoEncodeQualityLevelInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoSessionParametersCreateInfoKHR<'a>> for VideoEncodeQualityLevelInfoKHR<'a> { } @@ -42972,7 +43238,7 @@ impl ::core::default::Default for PhysicalDeviceVideoEncodeQualityLevelInfoKHR<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceVideoEncodeQualityLevelInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVideoEncodeQualityLevelInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR; } @@ -43014,7 +43280,7 @@ impl ::core::default::Default for VideoEncodeQualityLevelPropertiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeQualityLevelPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeQualityLevelPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for VideoEncodeQualityLevelPropertiesKHR<'a> {} @@ -43070,11 +43336,11 @@ impl ::core::default::Default for VideoEncodeRateControlInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeRateControlInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeRateControlInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_RATE_CONTROL_INFO_KHR; } -unsafe impl<'a> Extends> for VideoEncodeRateControlInfoKHR<'a> {} -unsafe impl<'a> Extends> for VideoEncodeRateControlInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoCodingControlInfoKHR<'a>> for VideoEncodeRateControlInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoBeginCodingInfoKHR<'a>> for VideoEncodeRateControlInfoKHR<'a> {} impl<'a> VideoEncodeRateControlInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeRateControlFlagsKHR) -> Self { @@ -43139,7 +43405,7 @@ impl ::core::default::Default for VideoEncodeRateControlLayerInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeRateControlLayerInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeRateControlLayerInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for VideoEncodeRateControlLayerInfoKHR<'a> {} @@ -43201,10 +43467,10 @@ impl ::core::default::Default for VideoEncodeCapabilitiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeCapabilitiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeCapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_CAPABILITIES_KHR; } -unsafe impl<'a> Extends> for VideoEncodeCapabilitiesKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoCapabilitiesKHR<'a>> for VideoEncodeCapabilitiesKHR<'a> {} impl<'a> VideoEncodeCapabilitiesKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeCapabilityFlagsKHR) -> Self { @@ -43299,10 +43565,10 @@ impl ::core::default::Default for VideoEncodeH264CapabilitiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH264CapabilitiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH264CapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_CAPABILITIES_KHR; } -unsafe impl<'a> Extends> for VideoEncodeH264CapabilitiesKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoCapabilitiesKHR<'a>> for VideoEncodeH264CapabilitiesKHR<'a> {} impl<'a> VideoEncodeH264CapabilitiesKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeH264CapabilityFlagsKHR) -> Self { @@ -43419,11 +43685,11 @@ impl ::core::default::Default for VideoEncodeH264QualityLevelPropertiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH264QualityLevelPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH264QualityLevelPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoEncodeQualityLevelPropertiesKHR<'a>> for VideoEncodeH264QualityLevelPropertiesKHR<'a> { } @@ -43515,10 +43781,13 @@ impl ::core::default::Default for VideoEncodeH264SessionCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH264SessionCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH264SessionCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR; } -unsafe impl<'a> Extends> for VideoEncodeH264SessionCreateInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoSessionCreateInfoKHR<'a>> + for VideoEncodeH264SessionCreateInfoKHR<'a> +{ +} impl<'a> VideoEncodeH264SessionCreateInfoKHR<'a> { #[inline] pub fn use_max_level_idc(mut self, use_max_level_idc: bool) -> Self { @@ -43561,11 +43830,11 @@ impl ::core::default::Default for VideoEncodeH264SessionParametersAddInfoKHR<'_> } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH264SessionParametersAddInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH264SessionParametersAddInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoSessionParametersUpdateInfoKHR<'a>> for VideoEncodeH264SessionParametersAddInfoKHR<'a> { } @@ -43611,11 +43880,11 @@ impl ::core::default::Default for VideoEncodeH264SessionParametersCreateInfoKHR< } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH264SessionParametersCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH264SessionParametersCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoSessionParametersCreateInfoKHR<'a>> for VideoEncodeH264SessionParametersCreateInfoKHR<'a> { } @@ -43669,11 +43938,11 @@ impl ::core::default::Default for VideoEncodeH264SessionParametersGetInfoKHR<'_> } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH264SessionParametersGetInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH264SessionParametersGetInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoEncodeSessionParametersGetInfoKHR<'a>> for VideoEncodeH264SessionParametersGetInfoKHR<'a> { } @@ -43725,11 +43994,11 @@ impl ::core::default::Default for VideoEncodeH264SessionParametersFeedbackInfoKH } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH264SessionParametersFeedbackInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH264SessionParametersFeedbackInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoEncodeSessionParametersFeedbackInfoKHR<'a>> for VideoEncodeH264SessionParametersFeedbackInfoKHR<'a> { } @@ -43769,10 +44038,10 @@ impl ::core::default::Default for VideoEncodeH264DpbSlotInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH264DpbSlotInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH264DpbSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR; } -unsafe impl<'a> Extends> for VideoEncodeH264DpbSlotInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoReferenceSlotInfoKHR<'a>> for VideoEncodeH264DpbSlotInfoKHR<'a> {} impl<'a> VideoEncodeH264DpbSlotInfoKHR<'a> { #[inline] pub fn std_reference_info( @@ -43813,10 +44082,10 @@ impl ::core::default::Default for VideoEncodeH264PictureInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH264PictureInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH264PictureInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_PICTURE_INFO_KHR; } -unsafe impl<'a> Extends> for VideoEncodeH264PictureInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoEncodeInfoKHR<'a>> for VideoEncodeH264PictureInfoKHR<'a> {} impl<'a> VideoEncodeH264PictureInfoKHR<'a> { #[inline] pub fn nalu_slice_entries( @@ -43862,11 +44131,11 @@ impl ::core::default::Default for VideoEncodeH264ProfileInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH264ProfileInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH264ProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_PROFILE_INFO_KHR; } -unsafe impl<'a> Extends> for VideoEncodeH264ProfileInfoKHR<'a> {} -unsafe impl<'a> Extends> for VideoEncodeH264ProfileInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoProfileInfoKHR<'a>> for VideoEncodeH264ProfileInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, QueryPoolCreateInfo<'a>> for VideoEncodeH264ProfileInfoKHR<'a> {} impl<'a> VideoEncodeH264ProfileInfoKHR<'a> { #[inline] pub fn std_profile_idc(mut self, std_profile_idc: StdVideoH264ProfileIdc) -> Self { @@ -43900,7 +44169,7 @@ impl ::core::default::Default for VideoEncodeH264NaluSliceInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH264NaluSliceInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH264NaluSliceInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR; } impl<'a> VideoEncodeH264NaluSliceInfoKHR<'a> { @@ -43947,11 +44216,14 @@ impl ::core::default::Default for VideoEncodeH264RateControlInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH264RateControlInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH264RateControlInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR; } -unsafe impl<'a> Extends> for VideoEncodeH264RateControlInfoKHR<'a> {} -unsafe impl<'a> Extends> for VideoEncodeH264RateControlInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoCodingControlInfoKHR<'a>> + for VideoEncodeH264RateControlInfoKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, VideoBeginCodingInfoKHR<'a>> for VideoEncodeH264RateControlInfoKHR<'a> {} impl<'a> VideoEncodeH264RateControlInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeH264RateControlFlagsKHR) -> Self { @@ -44063,11 +44335,11 @@ impl ::core::default::Default for VideoEncodeH264GopRemainingFrameInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH264GopRemainingFrameInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH264GopRemainingFrameInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoBeginCodingInfoKHR<'a>> for VideoEncodeH264GopRemainingFrameInfoKHR<'a> { } @@ -44127,11 +44399,11 @@ impl ::core::default::Default for VideoEncodeH264RateControlLayerInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH264RateControlLayerInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH264RateControlLayerInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoEncodeRateControlLayerInfoKHR<'a>> for VideoEncodeH264RateControlLayerInfoKHR<'a> { } @@ -44221,10 +44493,10 @@ impl ::core::default::Default for VideoEncodeH265CapabilitiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH265CapabilitiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH265CapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_CAPABILITIES_KHR; } -unsafe impl<'a> Extends> for VideoEncodeH265CapabilitiesKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoCapabilitiesKHR<'a>> for VideoEncodeH265CapabilitiesKHR<'a> {} impl<'a> VideoEncodeH265CapabilitiesKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeH265CapabilityFlagsKHR) -> Self { @@ -44358,11 +44630,11 @@ impl ::core::default::Default for VideoEncodeH265QualityLevelPropertiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH265QualityLevelPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH265QualityLevelPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoEncodeQualityLevelPropertiesKHR<'a>> for VideoEncodeH265QualityLevelPropertiesKHR<'a> { } @@ -44446,10 +44718,13 @@ impl ::core::default::Default for VideoEncodeH265SessionCreateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH265SessionCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH265SessionCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR; } -unsafe impl<'a> Extends> for VideoEncodeH265SessionCreateInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoSessionCreateInfoKHR<'a>> + for VideoEncodeH265SessionCreateInfoKHR<'a> +{ +} impl<'a> VideoEncodeH265SessionCreateInfoKHR<'a> { #[inline] pub fn use_max_level_idc(mut self, use_max_level_idc: bool) -> Self { @@ -44496,11 +44771,11 @@ impl ::core::default::Default for VideoEncodeH265SessionParametersAddInfoKHR<'_> } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH265SessionParametersAddInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH265SessionParametersAddInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoSessionParametersUpdateInfoKHR<'a>> for VideoEncodeH265SessionParametersAddInfoKHR<'a> { } @@ -44554,11 +44829,11 @@ impl ::core::default::Default for VideoEncodeH265SessionParametersCreateInfoKHR< } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH265SessionParametersCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH265SessionParametersCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoSessionParametersCreateInfoKHR<'a>> for VideoEncodeH265SessionParametersCreateInfoKHR<'a> { } @@ -44621,11 +44896,11 @@ impl ::core::default::Default for VideoEncodeH265SessionParametersGetInfoKHR<'_> } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH265SessionParametersGetInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH265SessionParametersGetInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoEncodeSessionParametersGetInfoKHR<'a>> for VideoEncodeH265SessionParametersGetInfoKHR<'a> { } @@ -44689,11 +44964,11 @@ impl ::core::default::Default for VideoEncodeH265SessionParametersFeedbackInfoKH } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH265SessionParametersFeedbackInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH265SessionParametersFeedbackInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoEncodeSessionParametersFeedbackInfoKHR<'a>> for VideoEncodeH265SessionParametersFeedbackInfoKHR<'a> { } @@ -44742,10 +45017,10 @@ impl ::core::default::Default for VideoEncodeH265PictureInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH265PictureInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH265PictureInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_PICTURE_INFO_KHR; } -unsafe impl<'a> Extends> for VideoEncodeH265PictureInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoEncodeInfoKHR<'a>> for VideoEncodeH265PictureInfoKHR<'a> {} impl<'a> VideoEncodeH265PictureInfoKHR<'a> { #[inline] pub fn nalu_slice_segment_entries( @@ -44788,7 +45063,7 @@ impl ::core::default::Default for VideoEncodeH265NaluSliceSegmentInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH265NaluSliceSegmentInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH265NaluSliceSegmentInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR; } @@ -44839,11 +45114,14 @@ impl ::core::default::Default for VideoEncodeH265RateControlInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH265RateControlInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH265RateControlInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR; } -unsafe impl<'a> Extends> for VideoEncodeH265RateControlInfoKHR<'a> {} -unsafe impl<'a> Extends> for VideoEncodeH265RateControlInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoCodingControlInfoKHR<'a>> + for VideoEncodeH265RateControlInfoKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, VideoBeginCodingInfoKHR<'a>> for VideoEncodeH265RateControlInfoKHR<'a> {} impl<'a> VideoEncodeH265RateControlInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeH265RateControlFlagsKHR) -> Self { @@ -44955,11 +45233,11 @@ impl ::core::default::Default for VideoEncodeH265GopRemainingFrameInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH265GopRemainingFrameInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH265GopRemainingFrameInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoBeginCodingInfoKHR<'a>> for VideoEncodeH265GopRemainingFrameInfoKHR<'a> { } @@ -45019,11 +45297,11 @@ impl ::core::default::Default for VideoEncodeH265RateControlLayerInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH265RateControlLayerInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH265RateControlLayerInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, VideoEncodeRateControlLayerInfoKHR<'a>> for VideoEncodeH265RateControlLayerInfoKHR<'a> { } @@ -45083,11 +45361,11 @@ impl ::core::default::Default for VideoEncodeH265ProfileInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH265ProfileInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH265ProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_PROFILE_INFO_KHR; } -unsafe impl<'a> Extends> for VideoEncodeH265ProfileInfoKHR<'a> {} -unsafe impl<'a> Extends> for VideoEncodeH265ProfileInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoProfileInfoKHR<'a>> for VideoEncodeH265ProfileInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, QueryPoolCreateInfo<'a>> for VideoEncodeH265ProfileInfoKHR<'a> {} impl<'a> VideoEncodeH265ProfileInfoKHR<'a> { #[inline] pub fn std_profile_idc(mut self, std_profile_idc: StdVideoH265ProfileIdc) -> Self { @@ -45119,10 +45397,10 @@ impl ::core::default::Default for VideoEncodeH265DpbSlotInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for VideoEncodeH265DpbSlotInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH265DpbSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR; } -unsafe impl<'a> Extends> for VideoEncodeH265DpbSlotInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, VideoReferenceSlotInfoKHR<'a>> for VideoEncodeH265DpbSlotInfoKHR<'a> {} impl<'a> VideoEncodeH265DpbSlotInfoKHR<'a> { #[inline] pub fn std_reference_info( @@ -45157,15 +45435,15 @@ impl ::core::default::Default for PhysicalDeviceInheritedViewportScissorFeatures } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceInheritedViewportScissorFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceInheritedViewportScissorFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceInheritedViewportScissorFeaturesNV<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceInheritedViewportScissorFeaturesNV<'a> { } @@ -45204,11 +45482,11 @@ impl ::core::default::Default for CommandBufferInheritanceViewportScissorInfoNV< } } } -unsafe impl<'a> TaggedStructure for CommandBufferInheritanceViewportScissorInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for CommandBufferInheritanceViewportScissorInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, CommandBufferInheritanceInfo<'a>> for CommandBufferInheritanceViewportScissorInfoNV<'a> { } @@ -45253,15 +45531,15 @@ impl ::core::default::Default for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'a> { } @@ -45298,15 +45576,15 @@ impl ::core::default::Default for PhysicalDeviceProvokingVertexFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceProvokingVertexFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceProvokingVertexFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceProvokingVertexFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceProvokingVertexFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceProvokingVertexFeaturesEXT<'a> {} impl<'a> PhysicalDeviceProvokingVertexFeaturesEXT<'a> { #[inline] pub fn provoking_vertex_last(mut self, provoking_vertex_last: bool) -> Self { @@ -45349,11 +45627,11 @@ impl ::core::default::Default for PhysicalDeviceProvokingVertexPropertiesEXT<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceProvokingVertexPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceProvokingVertexPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceProvokingVertexPropertiesEXT<'a> { } @@ -45400,11 +45678,11 @@ impl ::core::default::Default for PipelineRasterizationProvokingVertexStateCreat } } } -unsafe impl<'a> TaggedStructure for PipelineRasterizationProvokingVertexStateCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineRasterizationProvokingVertexStateCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineRasterizationStateCreateInfo<'a>> for PipelineRasterizationProvokingVertexStateCreateInfoEXT<'a> { } @@ -45441,7 +45719,7 @@ impl ::core::default::Default for CuModuleCreateInfoNVX<'_> { } } } -unsafe impl<'a> TaggedStructure for CuModuleCreateInfoNVX<'a> { +unsafe impl<'a> TaggedStructure<'a> for CuModuleCreateInfoNVX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::CU_MODULE_CREATE_INFO_NVX; } impl<'a> CuModuleCreateInfoNVX<'a> { @@ -45478,7 +45756,7 @@ impl ::core::default::Default for CuFunctionCreateInfoNVX<'_> { } } } -unsafe impl<'a> TaggedStructure for CuFunctionCreateInfoNVX<'a> { +unsafe impl<'a> TaggedStructure<'a> for CuFunctionCreateInfoNVX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::CU_FUNCTION_CREATE_INFO_NVX; } impl<'a> CuFunctionCreateInfoNVX<'a> { @@ -45547,7 +45825,7 @@ impl ::core::default::Default for CuLaunchInfoNVX<'_> { } } } -unsafe impl<'a> TaggedStructure for CuLaunchInfoNVX<'a> { +unsafe impl<'a> TaggedStructure<'a> for CuLaunchInfoNVX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::CU_LAUNCH_INFO_NVX; } impl<'a> CuLaunchInfoNVX<'a> { @@ -45634,15 +45912,18 @@ impl ::core::default::Default for PhysicalDeviceDescriptorBufferFeaturesEXT<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorBufferFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorBufferFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceDescriptorBufferFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDescriptorBufferFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceDescriptorBufferFeaturesEXT<'a> {} impl<'a> PhysicalDeviceDescriptorBufferFeaturesEXT<'a> { #[inline] pub fn descriptor_buffer(mut self, descriptor_buffer: bool) -> Self { @@ -45762,11 +46043,11 @@ impl ::core::default::Default for PhysicalDeviceDescriptorBufferPropertiesEXT<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorBufferPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorBufferPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceDescriptorBufferPropertiesEXT<'a> { } @@ -46046,11 +46327,11 @@ impl ::core::default::Default for PhysicalDeviceDescriptorBufferDensityMapProper } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'a> { } @@ -46093,7 +46374,7 @@ impl ::core::default::Default for DescriptorAddressInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DescriptorAddressInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DescriptorAddressInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_ADDRESS_INFO_EXT; } impl<'a> DescriptorAddressInfoEXT<'a> { @@ -46139,7 +46420,7 @@ impl ::core::default::Default for DescriptorBufferBindingInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DescriptorBufferBindingInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DescriptorBufferBindingInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_BUFFER_BINDING_INFO_EXT; } unsafe impl<'a> BaseTaggedStructure<'a> for DescriptorBufferBindingInfoEXT<'a> {} @@ -46179,11 +46460,11 @@ impl ::core::default::Default for DescriptorBufferBindingPushDescriptorBufferHan } } } -unsafe impl<'a> TaggedStructure for DescriptorBufferBindingPushDescriptorBufferHandleEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DescriptorBufferBindingPushDescriptorBufferHandleEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DescriptorBufferBindingInfoEXT<'a>> for DescriptorBufferBindingPushDescriptorBufferHandleEXT<'a> { } @@ -46251,7 +46532,7 @@ impl ::core::default::Default for DescriptorGetInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DescriptorGetInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DescriptorGetInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_GET_INFO_EXT; } impl<'a> DescriptorGetInfoEXT<'a> { @@ -46290,7 +46571,7 @@ impl ::core::default::Default for BufferCaptureDescriptorDataInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for BufferCaptureDescriptorDataInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for BufferCaptureDescriptorDataInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT; } impl<'a> BufferCaptureDescriptorDataInfoEXT<'a> { @@ -46324,7 +46605,7 @@ impl ::core::default::Default for ImageCaptureDescriptorDataInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageCaptureDescriptorDataInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageCaptureDescriptorDataInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT; } impl<'a> ImageCaptureDescriptorDataInfoEXT<'a> { @@ -46358,7 +46639,7 @@ impl ::core::default::Default for ImageViewCaptureDescriptorDataInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageViewCaptureDescriptorDataInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageViewCaptureDescriptorDataInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT; } @@ -46393,7 +46674,7 @@ impl ::core::default::Default for SamplerCaptureDescriptorDataInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for SamplerCaptureDescriptorDataInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SamplerCaptureDescriptorDataInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT; } impl<'a> SamplerCaptureDescriptorDataInfoEXT<'a> { @@ -46429,7 +46710,7 @@ impl ::core::default::Default for AccelerationStructureCaptureDescriptorDataInfo } } } -unsafe impl<'a> TaggedStructure for AccelerationStructureCaptureDescriptorDataInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureCaptureDescriptorDataInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT; } @@ -46475,19 +46756,25 @@ impl ::core::default::Default for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> {} -unsafe impl<'a> Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> {} -unsafe impl<'a> Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> {} -unsafe impl<'a> Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> {} -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, BufferCreateInfo<'a>> for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, ImageViewCreateInfo<'a>> + for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, SamplerCreateInfo<'a>> for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, AccelerationStructureCreateInfoKHR<'a>> + for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, AccelerationStructureCreateInfoNV<'a>> for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> { } @@ -46525,15 +46812,15 @@ impl ::core::default::Default for PhysicalDeviceShaderIntegerDotProductFeatures< } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderIntegerDotProductFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderIntegerDotProductFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderIntegerDotProductFeatures<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderIntegerDotProductFeatures<'a> { } @@ -46593,11 +46880,11 @@ impl ::core::default::Default for PhysicalDeviceShaderIntegerDotProductPropertie Self { s_type : Self :: STRUCTURE_TYPE , p_next : :: core :: ptr :: null_mut () , integer_dot_product8_bit_unsigned_accelerated : Bool32 :: default () , integer_dot_product8_bit_signed_accelerated : Bool32 :: default () , integer_dot_product8_bit_mixed_signedness_accelerated : Bool32 :: default () , integer_dot_product4x8_bit_packed_unsigned_accelerated : Bool32 :: default () , integer_dot_product4x8_bit_packed_signed_accelerated : Bool32 :: default () , integer_dot_product4x8_bit_packed_mixed_signedness_accelerated : Bool32 :: default () , integer_dot_product16_bit_unsigned_accelerated : Bool32 :: default () , integer_dot_product16_bit_signed_accelerated : Bool32 :: default () , integer_dot_product16_bit_mixed_signedness_accelerated : Bool32 :: default () , integer_dot_product32_bit_unsigned_accelerated : Bool32 :: default () , integer_dot_product32_bit_signed_accelerated : Bool32 :: default () , integer_dot_product32_bit_mixed_signedness_accelerated : Bool32 :: default () , integer_dot_product64_bit_unsigned_accelerated : Bool32 :: default () , integer_dot_product64_bit_signed_accelerated : Bool32 :: default () , integer_dot_product64_bit_mixed_signedness_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating8_bit_signed_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating16_bit_signed_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating32_bit_signed_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating64_bit_signed_accelerated : Bool32 :: default () , integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated : Bool32 :: default () , _marker : PhantomData , } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderIntegerDotProductProperties<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderIntegerDotProductProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceShaderIntegerDotProductProperties<'a> { } @@ -46906,10 +47193,10 @@ impl ::core::default::Default for PhysicalDeviceDrmPropertiesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDrmPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDrmPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DRM_PROPERTIES_EXT; } -unsafe impl<'a> Extends> for PhysicalDeviceDrmPropertiesEXT<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceDrmPropertiesEXT<'a> {} impl<'a> PhysicalDeviceDrmPropertiesEXT<'a> { #[inline] pub fn has_primary(mut self, has_primary: bool) -> Self { @@ -46966,15 +47253,15 @@ impl ::core::default::Default for PhysicalDeviceFragmentShaderBarycentricFeature } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a> { } @@ -47009,11 +47296,11 @@ impl ::core::default::Default for PhysicalDeviceFragmentShaderBarycentricPropert } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'a> { } @@ -47054,15 +47341,18 @@ impl ::core::default::Default for PhysicalDeviceRayTracingMotionBlurFeaturesNV<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a> {} impl<'a> PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a> { #[inline] pub fn ray_tracing_motion_blur(mut self, ray_tracing_motion_blur: bool) -> Self { @@ -47103,15 +47393,18 @@ impl ::core::default::Default for PhysicalDeviceRayTracingValidationFeaturesNV<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingValidationFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingValidationFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceRayTracingValidationFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceRayTracingValidationFeaturesNV<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceRayTracingValidationFeaturesNV<'a> {} impl<'a> PhysicalDeviceRayTracingValidationFeaturesNV<'a> { #[inline] pub fn ray_tracing_validation(mut self, ray_tracing_validation: bool) -> Self { @@ -47152,11 +47445,11 @@ impl ::core::default::Default for AccelerationStructureGeometryMotionTrianglesDa } } } -unsafe impl<'a> TaggedStructure for AccelerationStructureGeometryMotionTrianglesDataNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureGeometryMotionTrianglesDataNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, AccelerationStructureGeometryTrianglesDataKHR<'a>> for AccelerationStructureGeometryMotionTrianglesDataNV<'a> { } @@ -47193,10 +47486,10 @@ impl ::core::default::Default for AccelerationStructureMotionInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for AccelerationStructureMotionInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureMotionInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_MOTION_INFO_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, AccelerationStructureCreateInfoKHR<'a>> for AccelerationStructureMotionInfoNV<'a> { } @@ -47419,7 +47712,7 @@ impl ::core::default::Default for MemoryGetRemoteAddressInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryGetRemoteAddressInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryGetRemoteAddressInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_GET_REMOTE_ADDRESS_INFO_NV; } impl<'a> MemoryGetRemoteAddressInfoNV<'a> { @@ -47460,10 +47753,10 @@ impl ::core::default::Default for ImportMemoryBufferCollectionFUCHSIA<'_> { } } } -unsafe impl<'a> TaggedStructure for ImportMemoryBufferCollectionFUCHSIA<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImportMemoryBufferCollectionFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA; } -unsafe impl<'a> Extends> for ImportMemoryBufferCollectionFUCHSIA<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> for ImportMemoryBufferCollectionFUCHSIA<'a> {} impl<'a> ImportMemoryBufferCollectionFUCHSIA<'a> { #[inline] pub fn collection(mut self, collection: BufferCollectionFUCHSIA) -> Self { @@ -47502,11 +47795,11 @@ impl ::core::default::Default for BufferCollectionImageCreateInfoFUCHSIA<'_> { } } } -unsafe impl<'a> TaggedStructure for BufferCollectionImageCreateInfoFUCHSIA<'a> { +unsafe impl<'a> TaggedStructure<'a> for BufferCollectionImageCreateInfoFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA; } -unsafe impl<'a> Extends> for BufferCollectionImageCreateInfoFUCHSIA<'a> {} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> for BufferCollectionImageCreateInfoFUCHSIA<'a> {} impl<'a> BufferCollectionImageCreateInfoFUCHSIA<'a> { #[inline] pub fn collection(mut self, collection: BufferCollectionFUCHSIA) -> Self { @@ -47545,11 +47838,11 @@ impl ::core::default::Default for BufferCollectionBufferCreateInfoFUCHSIA<'_> { } } } -unsafe impl<'a> TaggedStructure for BufferCollectionBufferCreateInfoFUCHSIA<'a> { +unsafe impl<'a> TaggedStructure<'a> for BufferCollectionBufferCreateInfoFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA; } -unsafe impl<'a> Extends> for BufferCollectionBufferCreateInfoFUCHSIA<'a> {} +unsafe impl<'a> Extends<'a, BufferCreateInfo<'a>> for BufferCollectionBufferCreateInfoFUCHSIA<'a> {} impl<'a> BufferCollectionBufferCreateInfoFUCHSIA<'a> { #[inline] pub fn collection(mut self, collection: BufferCollectionFUCHSIA) -> Self { @@ -47586,7 +47879,7 @@ impl ::core::default::Default for BufferCollectionCreateInfoFUCHSIA<'_> { } } } -unsafe impl<'a> TaggedStructure for BufferCollectionCreateInfoFUCHSIA<'a> { +unsafe impl<'a> TaggedStructure<'a> for BufferCollectionCreateInfoFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_COLLECTION_CREATE_INFO_FUCHSIA; } impl<'a> BufferCollectionCreateInfoFUCHSIA<'a> { @@ -47640,7 +47933,7 @@ impl ::core::default::Default for BufferCollectionPropertiesFUCHSIA<'_> { } } } -unsafe impl<'a> TaggedStructure for BufferCollectionPropertiesFUCHSIA<'a> { +unsafe impl<'a> TaggedStructure<'a> for BufferCollectionPropertiesFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_COLLECTION_PROPERTIES_FUCHSIA; } impl<'a> BufferCollectionPropertiesFUCHSIA<'a> { @@ -47737,7 +48030,7 @@ impl ::core::default::Default for BufferConstraintsInfoFUCHSIA<'_> { } } } -unsafe impl<'a> TaggedStructure for BufferConstraintsInfoFUCHSIA<'a> { +unsafe impl<'a> TaggedStructure<'a> for BufferConstraintsInfoFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_CONSTRAINTS_INFO_FUCHSIA; } impl<'a> BufferConstraintsInfoFUCHSIA<'a> { @@ -47787,7 +48080,7 @@ impl ::core::default::Default for SysmemColorSpaceFUCHSIA<'_> { } } } -unsafe impl<'a> TaggedStructure for SysmemColorSpaceFUCHSIA<'a> { +unsafe impl<'a> TaggedStructure<'a> for SysmemColorSpaceFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SYSMEM_COLOR_SPACE_FUCHSIA; } impl<'a> SysmemColorSpaceFUCHSIA<'a> { @@ -47831,7 +48124,7 @@ impl ::core::default::Default for ImageFormatConstraintsInfoFUCHSIA<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageFormatConstraintsInfoFUCHSIA<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageFormatConstraintsInfoFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA; } impl<'a> ImageFormatConstraintsInfoFUCHSIA<'a> { @@ -47895,7 +48188,7 @@ impl ::core::default::Default for ImageConstraintsInfoFUCHSIA<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageConstraintsInfoFUCHSIA<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageConstraintsInfoFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_CONSTRAINTS_INFO_FUCHSIA; } impl<'a> ImageConstraintsInfoFUCHSIA<'a> { @@ -47954,7 +48247,7 @@ impl ::core::default::Default for BufferCollectionConstraintsInfoFUCHSIA<'_> { } } } -unsafe impl<'a> TaggedStructure for BufferCollectionConstraintsInfoFUCHSIA<'a> { +unsafe impl<'a> TaggedStructure<'a> for BufferCollectionConstraintsInfoFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA; } impl<'a> BufferCollectionConstraintsInfoFUCHSIA<'a> { @@ -48027,7 +48320,7 @@ impl ::core::default::Default for CudaModuleCreateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for CudaModuleCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for CudaModuleCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::CUDA_MODULE_CREATE_INFO_NV; } impl<'a> CudaModuleCreateInfoNV<'a> { @@ -48064,7 +48357,7 @@ impl ::core::default::Default for CudaFunctionCreateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for CudaFunctionCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for CudaFunctionCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::CUDA_FUNCTION_CREATE_INFO_NV; } impl<'a> CudaFunctionCreateInfoNV<'a> { @@ -48133,7 +48426,7 @@ impl ::core::default::Default for CudaLaunchInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for CudaLaunchInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for CudaLaunchInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::CUDA_LAUNCH_INFO_NV; } impl<'a> CudaLaunchInfoNV<'a> { @@ -48214,15 +48507,15 @@ impl ::core::default::Default for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a> {} impl<'a> PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a> { #[inline] pub fn format_rgba10x6_without_y_cb_cr_sampler( @@ -48262,10 +48555,10 @@ impl ::core::default::Default for FormatProperties3<'_> { } } } -unsafe impl<'a> TaggedStructure for FormatProperties3<'a> { +unsafe impl<'a> TaggedStructure<'a> for FormatProperties3<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FORMAT_PROPERTIES_3; } -unsafe impl<'a> Extends> for FormatProperties3<'a> {} +unsafe impl<'a> Extends<'a, FormatProperties2<'a>> for FormatProperties3<'a> {} impl<'a> FormatProperties3<'a> { #[inline] pub fn linear_tiling_features(mut self, linear_tiling_features: FormatFeatureFlags2) -> Self { @@ -48309,10 +48602,10 @@ impl ::core::default::Default for DrmFormatModifierPropertiesList2EXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DrmFormatModifierPropertiesList2EXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DrmFormatModifierPropertiesList2EXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT; } -unsafe impl<'a> Extends> for DrmFormatModifierPropertiesList2EXT<'a> {} +unsafe impl<'a> Extends<'a, FormatProperties2<'a>> for DrmFormatModifierPropertiesList2EXT<'a> {} impl<'a> DrmFormatModifierPropertiesList2EXT<'a> { #[inline] pub fn drm_format_modifier_properties( @@ -48392,11 +48685,11 @@ impl ::core::default::Default for AndroidHardwareBufferFormatProperties2ANDROID< } } } -unsafe impl<'a> TaggedStructure for AndroidHardwareBufferFormatProperties2ANDROID<'a> { +unsafe impl<'a> TaggedStructure<'a> for AndroidHardwareBufferFormatProperties2ANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, AndroidHardwareBufferPropertiesANDROID<'a>> for AndroidHardwareBufferFormatProperties2ANDROID<'a> { } @@ -48480,10 +48773,10 @@ impl ::core::default::Default for PipelineRenderingCreateInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineRenderingCreateInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineRenderingCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RENDERING_CREATE_INFO; } -unsafe impl<'a> Extends> for PipelineRenderingCreateInfo<'a> {} +unsafe impl<'a> Extends<'a, GraphicsPipelineCreateInfo<'a>> for PipelineRenderingCreateInfo<'a> {} impl<'a> PipelineRenderingCreateInfo<'a> { #[inline] pub fn view_mask(mut self, view_mask: u32) -> Self { @@ -48545,7 +48838,7 @@ impl ::core::default::Default for RenderingInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for RenderingInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderingInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_INFO; } unsafe impl<'a> BaseTaggedStructure<'a> for RenderingInfo<'a> {} @@ -48647,7 +48940,7 @@ impl ::core::default::Default for RenderingAttachmentInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for RenderingAttachmentInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderingAttachmentInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_ATTACHMENT_INFO; } impl<'a> RenderingAttachmentInfo<'a> { @@ -48720,11 +49013,14 @@ impl ::core::default::Default for RenderingFragmentShadingRateAttachmentInfoKHR< } } } -unsafe impl<'a> TaggedStructure for RenderingFragmentShadingRateAttachmentInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderingFragmentShadingRateAttachmentInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR; } -unsafe impl<'a> Extends> for RenderingFragmentShadingRateAttachmentInfoKHR<'a> {} +unsafe impl<'a> Extends<'a, RenderingInfo<'a>> + for RenderingFragmentShadingRateAttachmentInfoKHR<'a> +{ +} impl<'a> RenderingFragmentShadingRateAttachmentInfoKHR<'a> { #[inline] pub fn image_view(mut self, image_view: ImageView) -> Self { @@ -48771,11 +49067,14 @@ impl ::core::default::Default for RenderingFragmentDensityMapAttachmentInfoEXT<' } } } -unsafe impl<'a> TaggedStructure for RenderingFragmentDensityMapAttachmentInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderingFragmentDensityMapAttachmentInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT; } -unsafe impl<'a> Extends> for RenderingFragmentDensityMapAttachmentInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, RenderingInfo<'a>> + for RenderingFragmentDensityMapAttachmentInfoEXT<'a> +{ +} impl<'a> RenderingFragmentDensityMapAttachmentInfoEXT<'a> { #[inline] pub fn image_view(mut self, image_view: ImageView) -> Self { @@ -48812,14 +49111,14 @@ impl ::core::default::Default for PhysicalDeviceDynamicRenderingFeatures<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDynamicRenderingFeatures<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDynamicRenderingFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceDynamicRenderingFeatures<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceDynamicRenderingFeatures<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDynamicRenderingFeatures<'a> {} impl<'a> PhysicalDeviceDynamicRenderingFeatures<'a> { #[inline] pub fn dynamic_rendering(mut self, dynamic_rendering: bool) -> Self { @@ -48863,10 +49162,10 @@ impl ::core::default::Default for CommandBufferInheritanceRenderingInfo<'_> { } } } -unsafe impl<'a> TaggedStructure for CommandBufferInheritanceRenderingInfo<'a> { +unsafe impl<'a> TaggedStructure<'a> for CommandBufferInheritanceRenderingInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_RENDERING_INFO; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, CommandBufferInheritanceInfo<'a>> for CommandBufferInheritanceRenderingInfo<'a> { } @@ -48931,11 +49230,11 @@ impl ::core::default::Default for AttachmentSampleCountInfoAMD<'_> { } } } -unsafe impl<'a> TaggedStructure for AttachmentSampleCountInfoAMD<'a> { +unsafe impl<'a> TaggedStructure<'a> for AttachmentSampleCountInfoAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_SAMPLE_COUNT_INFO_AMD; } -unsafe impl<'a> Extends> for AttachmentSampleCountInfoAMD<'a> {} -unsafe impl<'a> Extends> for AttachmentSampleCountInfoAMD<'a> {} +unsafe impl<'a> Extends<'a, CommandBufferInheritanceInfo<'a>> for AttachmentSampleCountInfoAMD<'a> {} +unsafe impl<'a> Extends<'a, GraphicsPipelineCreateInfo<'a>> for AttachmentSampleCountInfoAMD<'a> {} impl<'a> AttachmentSampleCountInfoAMD<'a> { #[inline] pub fn color_attachment_samples( @@ -48981,15 +49280,18 @@ impl ::core::default::Default for MultiviewPerViewAttributesInfoNVX<'_> { } } } -unsafe impl<'a> TaggedStructure for MultiviewPerViewAttributesInfoNVX<'a> { +unsafe impl<'a> TaggedStructure<'a> for MultiviewPerViewAttributesInfoNVX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, CommandBufferInheritanceInfo<'a>> for MultiviewPerViewAttributesInfoNVX<'a> { } -unsafe impl<'a> Extends> for MultiviewPerViewAttributesInfoNVX<'a> {} -unsafe impl<'a> Extends> for MultiviewPerViewAttributesInfoNVX<'a> {} +unsafe impl<'a> Extends<'a, GraphicsPipelineCreateInfo<'a>> + for MultiviewPerViewAttributesInfoNVX<'a> +{ +} +unsafe impl<'a> Extends<'a, RenderingInfo<'a>> for MultiviewPerViewAttributesInfoNVX<'a> {} impl<'a> MultiviewPerViewAttributesInfoNVX<'a> { #[inline] pub fn per_view_attributes(mut self, per_view_attributes: bool) -> Self { @@ -49029,15 +49331,15 @@ impl ::core::default::Default for PhysicalDeviceImageViewMinLodFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceImageViewMinLodFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageViewMinLodFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceImageViewMinLodFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceImageViewMinLodFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceImageViewMinLodFeaturesEXT<'a> {} impl<'a> PhysicalDeviceImageViewMinLodFeaturesEXT<'a> { #[inline] pub fn min_lod(mut self, min_lod: bool) -> Self { @@ -49069,10 +49371,10 @@ impl ::core::default::Default for ImageViewMinLodCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageViewMinLodCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageViewMinLodCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> for ImageViewMinLodCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, ImageViewCreateInfo<'a>> for ImageViewMinLodCreateInfoEXT<'a> {} impl<'a> ImageViewMinLodCreateInfoEXT<'a> { #[inline] pub fn min_lod(mut self, min_lod: f32) -> Self { @@ -49108,17 +49410,17 @@ impl ::core::default::Default for PhysicalDeviceRasterizationOrderAttachmentAcce } } } -unsafe impl<'a> TaggedStructure +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'a> { } @@ -49175,15 +49477,15 @@ impl ::core::default::Default for PhysicalDeviceLinearColorAttachmentFeaturesNV< } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceLinearColorAttachmentFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceLinearColorAttachmentFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceLinearColorAttachmentFeaturesNV<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceLinearColorAttachmentFeaturesNV<'a> { } @@ -49218,15 +49520,15 @@ impl ::core::default::Default for PhysicalDeviceGraphicsPipelineLibraryFeaturesE } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a> { } @@ -49261,15 +49563,15 @@ impl ::core::default::Default for PhysicalDevicePipelineBinaryFeaturesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineBinaryFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineBinaryFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDevicePipelineBinaryFeaturesKHR<'a> { } -unsafe impl<'a> Extends> for PhysicalDevicePipelineBinaryFeaturesKHR<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevicePipelineBinaryFeaturesKHR<'a> {} impl<'a> PhysicalDevicePipelineBinaryFeaturesKHR<'a> { #[inline] pub fn pipeline_binaries(mut self, pipeline_binaries: bool) -> Self { @@ -49301,11 +49603,14 @@ impl ::core::default::Default for DevicePipelineBinaryInternalCacheControlKHR<'_ } } } -unsafe impl<'a> TaggedStructure for DevicePipelineBinaryInternalCacheControlKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for DevicePipelineBinaryInternalCacheControlKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR; } -unsafe impl<'a> Extends> for DevicePipelineBinaryInternalCacheControlKHR<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> + for DevicePipelineBinaryInternalCacheControlKHR<'a> +{ +} impl<'a> DevicePipelineBinaryInternalCacheControlKHR<'a> { #[inline] pub fn disable_internal_cache(mut self, disable_internal_cache: bool) -> Self { @@ -49345,11 +49650,11 @@ impl ::core::default::Default for PhysicalDevicePipelineBinaryPropertiesKHR<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineBinaryPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineBinaryPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDevicePipelineBinaryPropertiesKHR<'a> { } @@ -49419,11 +49724,11 @@ impl ::core::default::Default for PhysicalDeviceGraphicsPipelineLibraryPropertie } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'a> { } @@ -49470,10 +49775,10 @@ impl ::core::default::Default for GraphicsPipelineLibraryCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for GraphicsPipelineLibraryCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for GraphicsPipelineLibraryCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, GraphicsPipelineCreateInfo<'a>> for GraphicsPipelineLibraryCreateInfoEXT<'a> { } @@ -49508,15 +49813,15 @@ impl ::core::default::Default for PhysicalDeviceDescriptorSetHostMappingFeatures } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'a> { } @@ -49553,7 +49858,7 @@ impl ::core::default::Default for DescriptorSetBindingReferenceVALVE<'_> { } } } -unsafe impl<'a> TaggedStructure for DescriptorSetBindingReferenceVALVE<'a> { +unsafe impl<'a> TaggedStructure<'a> for DescriptorSetBindingReferenceVALVE<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_BINDING_REFERENCE_VALVE; } impl<'a> DescriptorSetBindingReferenceVALVE<'a> { @@ -49594,7 +49899,7 @@ impl ::core::default::Default for DescriptorSetLayoutHostMappingInfoVALVE<'_> { } } } -unsafe impl<'a> TaggedStructure for DescriptorSetLayoutHostMappingInfoVALVE<'a> { +unsafe impl<'a> TaggedStructure<'a> for DescriptorSetLayoutHostMappingInfoVALVE<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE; } @@ -49638,15 +49943,18 @@ impl ::core::default::Default for PhysicalDeviceNestedCommandBufferFeaturesEXT<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceNestedCommandBufferFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceNestedCommandBufferFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceNestedCommandBufferFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceNestedCommandBufferFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceNestedCommandBufferFeaturesEXT<'a> {} impl<'a> PhysicalDeviceNestedCommandBufferFeaturesEXT<'a> { #[inline] pub fn nested_command_buffer(mut self, nested_command_buffer: bool) -> Self { @@ -49694,11 +50002,11 @@ impl ::core::default::Default for PhysicalDeviceNestedCommandBufferPropertiesEXT } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceNestedCommandBufferPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceNestedCommandBufferPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceNestedCommandBufferPropertiesEXT<'a> { } @@ -49736,15 +50044,15 @@ impl ::core::default::Default for PhysicalDeviceShaderModuleIdentifierFeaturesEX } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'a> { } @@ -49779,11 +50087,11 @@ impl ::core::default::Default for PhysicalDeviceShaderModuleIdentifierProperties } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'a> { } @@ -49823,11 +50131,11 @@ impl ::core::default::Default for PipelineShaderStageModuleIdentifierCreateInfoE } } } -unsafe impl<'a> TaggedStructure for PipelineShaderStageModuleIdentifierCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineShaderStageModuleIdentifierCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineShaderStageCreateInfo<'a>> for PipelineShaderStageModuleIdentifierCreateInfoEXT<'a> { } @@ -49875,7 +50183,7 @@ impl ::core::default::Default for ShaderModuleIdentifierEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ShaderModuleIdentifierEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ShaderModuleIdentifierEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SHADER_MODULE_IDENTIFIER_EXT; } impl<'a> ShaderModuleIdentifierEXT<'a> { @@ -49918,12 +50226,12 @@ impl ::core::default::Default for ImageCompressionControlEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageCompressionControlEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageCompressionControlEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_COMPRESSION_CONTROL_EXT; } -unsafe impl<'a> Extends> for ImageCompressionControlEXT<'a> {} -unsafe impl<'a> Extends> for ImageCompressionControlEXT<'a> {} -unsafe impl<'a> Extends> for ImageCompressionControlEXT<'a> {} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> for ImageCompressionControlEXT<'a> {} +unsafe impl<'a> Extends<'a, SwapchainCreateInfoKHR<'a>> for ImageCompressionControlEXT<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceImageFormatInfo2<'a>> for ImageCompressionControlEXT<'a> {} impl<'a> ImageCompressionControlEXT<'a> { #[inline] pub fn flags(mut self, flags: ImageCompressionFlagsEXT) -> Self { @@ -49964,15 +50272,15 @@ impl ::core::default::Default for PhysicalDeviceImageCompressionControlFeaturesE } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceImageCompressionControlFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageCompressionControlFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceImageCompressionControlFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceImageCompressionControlFeaturesEXT<'a> { } @@ -50009,12 +50317,12 @@ impl ::core::default::Default for ImageCompressionPropertiesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageCompressionPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageCompressionPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_COMPRESSION_PROPERTIES_EXT; } -unsafe impl<'a> Extends> for ImageCompressionPropertiesEXT<'a> {} -unsafe impl<'a> Extends> for ImageCompressionPropertiesEXT<'a> {} -unsafe impl<'a> Extends> for ImageCompressionPropertiesEXT<'a> {} +unsafe impl<'a> Extends<'a, ImageFormatProperties2<'a>> for ImageCompressionPropertiesEXT<'a> {} +unsafe impl<'a> Extends<'a, SurfaceFormat2KHR<'a>> for ImageCompressionPropertiesEXT<'a> {} +unsafe impl<'a> Extends<'a, SubresourceLayout2KHR<'a>> for ImageCompressionPropertiesEXT<'a> {} impl<'a> ImageCompressionPropertiesEXT<'a> { #[inline] pub fn image_compression_flags( @@ -50057,15 +50365,17 @@ impl ::core::default::Default for PhysicalDeviceImageCompressionControlSwapchain } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> + for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'a> +{ const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'a> { } @@ -50103,7 +50413,7 @@ impl ::core::default::Default for ImageSubresource2KHR<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageSubresource2KHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageSubresource2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_SUBRESOURCE_2_KHR; } impl<'a> ImageSubresource2KHR<'a> { @@ -50137,7 +50447,7 @@ impl ::core::default::Default for SubresourceLayout2KHR<'_> { } } } -unsafe impl<'a> TaggedStructure for SubresourceLayout2KHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for SubresourceLayout2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBRESOURCE_LAYOUT_2_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for SubresourceLayout2KHR<'a> {} @@ -50172,11 +50482,11 @@ impl ::core::default::Default for RenderPassCreationControlEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for RenderPassCreationControlEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderPassCreationControlEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_CREATION_CONTROL_EXT; } -unsafe impl<'a> Extends> for RenderPassCreationControlEXT<'a> {} -unsafe impl<'a> Extends> for RenderPassCreationControlEXT<'a> {} +unsafe impl<'a> Extends<'a, RenderPassCreateInfo2<'a>> for RenderPassCreationControlEXT<'a> {} +unsafe impl<'a> Extends<'a, SubpassDescription2<'a>> for RenderPassCreationControlEXT<'a> {} impl<'a> RenderPassCreationControlEXT<'a> { #[inline] pub fn disallow_merging(mut self, disallow_merging: bool) -> Self { @@ -50223,11 +50533,14 @@ impl ::core::default::Default for RenderPassCreationFeedbackCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for RenderPassCreationFeedbackCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderPassCreationFeedbackCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> for RenderPassCreationFeedbackCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, RenderPassCreateInfo2<'a>> + for RenderPassCreationFeedbackCreateInfoEXT<'a> +{ +} impl<'a> RenderPassCreationFeedbackCreateInfoEXT<'a> { #[inline] pub fn render_pass_feedback( @@ -50314,11 +50627,14 @@ impl ::core::default::Default for RenderPassSubpassFeedbackCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for RenderPassSubpassFeedbackCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderPassSubpassFeedbackCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> for RenderPassSubpassFeedbackCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, SubpassDescription2<'a>> + for RenderPassSubpassFeedbackCreateInfoEXT<'a> +{ +} impl<'a> RenderPassSubpassFeedbackCreateInfoEXT<'a> { #[inline] pub fn subpass_feedback( @@ -50353,15 +50669,15 @@ impl ::core::default::Default for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT< } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'a> { } @@ -50435,7 +50751,7 @@ impl ::core::default::Default for MicromapBuildInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for MicromapBuildInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for MicromapBuildInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MICROMAP_BUILD_INFO_EXT; } impl<'a> MicromapBuildInfoEXT<'a> { @@ -50526,7 +50842,7 @@ impl ::core::default::Default for MicromapCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for MicromapCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for MicromapCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MICROMAP_CREATE_INFO_EXT; } impl<'a> MicromapCreateInfoEXT<'a> { @@ -50585,7 +50901,7 @@ impl ::core::default::Default for MicromapVersionInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for MicromapVersionInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for MicromapVersionInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MICROMAP_VERSION_INFO_EXT; } impl<'a> MicromapVersionInfoEXT<'a> { @@ -50623,7 +50939,7 @@ impl ::core::default::Default for CopyMicromapInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for CopyMicromapInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for CopyMicromapInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COPY_MICROMAP_INFO_EXT; } impl<'a> CopyMicromapInfoEXT<'a> { @@ -50682,7 +50998,7 @@ impl ::core::default::Default for CopyMicromapToMemoryInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for CopyMicromapToMemoryInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for CopyMicromapToMemoryInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COPY_MICROMAP_TO_MEMORY_INFO_EXT; } impl<'a> CopyMicromapToMemoryInfoEXT<'a> { @@ -50741,7 +51057,7 @@ impl ::core::default::Default for CopyMemoryToMicromapInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for CopyMemoryToMicromapInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for CopyMemoryToMicromapInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COPY_MEMORY_TO_MICROMAP_INFO_EXT; } impl<'a> CopyMemoryToMicromapInfoEXT<'a> { @@ -50789,7 +51105,7 @@ impl ::core::default::Default for MicromapBuildSizesInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for MicromapBuildSizesInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for MicromapBuildSizesInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MICROMAP_BUILD_SIZES_INFO_EXT; } impl<'a> MicromapBuildSizesInfoEXT<'a> { @@ -50891,15 +51207,15 @@ impl ::core::default::Default for PhysicalDeviceOpacityMicromapFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceOpacityMicromapFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceOpacityMicromapFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceOpacityMicromapFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceOpacityMicromapFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceOpacityMicromapFeaturesEXT<'a> {} impl<'a> PhysicalDeviceOpacityMicromapFeaturesEXT<'a> { #[inline] pub fn micromap(mut self, micromap: bool) -> Self { @@ -50943,11 +51259,11 @@ impl ::core::default::Default for PhysicalDeviceOpacityMicromapPropertiesEXT<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceOpacityMicromapPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceOpacityMicromapPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceOpacityMicromapPropertiesEXT<'a> { } @@ -51023,11 +51339,11 @@ impl ::core::default::Default for AccelerationStructureTrianglesOpacityMicromapE } } } -unsafe impl<'a> TaggedStructure for AccelerationStructureTrianglesOpacityMicromapEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureTrianglesOpacityMicromapEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, AccelerationStructureGeometryTrianglesDataKHR<'a>> for AccelerationStructureTrianglesOpacityMicromapEXT<'a> { } @@ -51094,15 +51410,18 @@ impl ::core::default::Default for PhysicalDeviceDisplacementMicromapFeaturesNV<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDisplacementMicromapFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDisplacementMicromapFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceDisplacementMicromapFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDisplacementMicromapFeaturesNV<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceDisplacementMicromapFeaturesNV<'a> {} impl<'a> PhysicalDeviceDisplacementMicromapFeaturesNV<'a> { #[inline] pub fn displacement_micromap(mut self, displacement_micromap: bool) -> Self { @@ -51134,11 +51453,11 @@ impl ::core::default::Default for PhysicalDeviceDisplacementMicromapPropertiesNV } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDisplacementMicromapPropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDisplacementMicromapPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceDisplacementMicromapPropertiesNV<'a> { } @@ -51246,11 +51565,11 @@ impl ::core::default::Default for AccelerationStructureTrianglesDisplacementMicr } } } -unsafe impl<'a> TaggedStructure for AccelerationStructureTrianglesDisplacementMicromapNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureTrianglesDisplacementMicromapNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, AccelerationStructureGeometryTrianglesDataKHR<'a>> for AccelerationStructureTrianglesDisplacementMicromapNV<'a> { } @@ -51375,7 +51694,7 @@ impl ::core::default::Default for PipelinePropertiesIdentifierEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelinePropertiesIdentifierEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelinePropertiesIdentifierEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_PROPERTIES_IDENTIFIER_EXT; } impl<'a> PipelinePropertiesIdentifierEXT<'a> { @@ -51409,15 +51728,18 @@ impl ::core::default::Default for PhysicalDevicePipelinePropertiesFeaturesEXT<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePipelinePropertiesFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelinePropertiesFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDevicePipelinePropertiesFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevicePipelinePropertiesFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDevicePipelinePropertiesFeaturesEXT<'a> {} impl<'a> PhysicalDevicePipelinePropertiesFeaturesEXT<'a> { #[inline] pub fn pipeline_properties_identifier(mut self, pipeline_properties_identifier: bool) -> Self { @@ -51449,15 +51771,17 @@ impl ::core::default::Default for PhysicalDeviceShaderEarlyAndLateFragmentTestsF } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'a> { +unsafe impl<'a> TaggedStructure<'a> + for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'a> +{ const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'a> { } @@ -51495,13 +51819,13 @@ impl ::core::default::Default for ExternalMemoryAcquireUnmodifiedEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ExternalMemoryAcquireUnmodifiedEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExternalMemoryAcquireUnmodifiedEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT; } -unsafe impl<'a> Extends> for ExternalMemoryAcquireUnmodifiedEXT<'a> {} -unsafe impl<'a> Extends> for ExternalMemoryAcquireUnmodifiedEXT<'a> {} -unsafe impl<'a> Extends> for ExternalMemoryAcquireUnmodifiedEXT<'a> {} -unsafe impl<'a> Extends> for ExternalMemoryAcquireUnmodifiedEXT<'a> {} +unsafe impl<'a> Extends<'a, BufferMemoryBarrier<'a>> for ExternalMemoryAcquireUnmodifiedEXT<'a> {} +unsafe impl<'a> Extends<'a, BufferMemoryBarrier2<'a>> for ExternalMemoryAcquireUnmodifiedEXT<'a> {} +unsafe impl<'a> Extends<'a, ImageMemoryBarrier<'a>> for ExternalMemoryAcquireUnmodifiedEXT<'a> {} +unsafe impl<'a> Extends<'a, ImageMemoryBarrier2<'a>> for ExternalMemoryAcquireUnmodifiedEXT<'a> {} impl<'a> ExternalMemoryAcquireUnmodifiedEXT<'a> { #[inline] pub fn acquire_unmodified_memory(mut self, acquire_unmodified_memory: bool) -> Self { @@ -51533,16 +51857,16 @@ impl ::core::default::Default for ExportMetalObjectCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ExportMetalObjectCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExportMetalObjectCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_OBJECT_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> for ExportMetalObjectCreateInfoEXT<'a> {} -unsafe impl<'a> Extends> for ExportMetalObjectCreateInfoEXT<'a> {} -unsafe impl<'a> Extends> for ExportMetalObjectCreateInfoEXT<'a> {} -unsafe impl<'a> Extends> for ExportMetalObjectCreateInfoEXT<'a> {} -unsafe impl<'a> Extends> for ExportMetalObjectCreateInfoEXT<'a> {} -unsafe impl<'a> Extends> for ExportMetalObjectCreateInfoEXT<'a> {} -unsafe impl<'a> Extends> for ExportMetalObjectCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, InstanceCreateInfo<'a>> for ExportMetalObjectCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> for ExportMetalObjectCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> for ExportMetalObjectCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, ImageViewCreateInfo<'a>> for ExportMetalObjectCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, BufferViewCreateInfo<'a>> for ExportMetalObjectCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, SemaphoreCreateInfo<'a>> for ExportMetalObjectCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, EventCreateInfo<'a>> for ExportMetalObjectCreateInfoEXT<'a> {} impl<'a> ExportMetalObjectCreateInfoEXT<'a> { #[inline] pub fn export_object_type(mut self, export_object_type: ExportMetalObjectTypeFlagsEXT) -> Self { @@ -51572,7 +51896,7 @@ impl ::core::default::Default for ExportMetalObjectsInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ExportMetalObjectsInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExportMetalObjectsInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_OBJECTS_INFO_EXT; } unsafe impl<'a> BaseTaggedStructure<'a> for ExportMetalObjectsInfoEXT<'a> {} @@ -51601,10 +51925,10 @@ impl ::core::default::Default for ExportMetalDeviceInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ExportMetalDeviceInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExportMetalDeviceInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_DEVICE_INFO_EXT; } -unsafe impl<'a> Extends> for ExportMetalDeviceInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, ExportMetalObjectsInfoEXT<'a>> for ExportMetalDeviceInfoEXT<'a> {} impl<'a> ExportMetalDeviceInfoEXT<'a> { #[inline] pub fn mtl_device(mut self, mtl_device: MTLDevice_id) -> Self { @@ -51638,10 +51962,10 @@ impl ::core::default::Default for ExportMetalCommandQueueInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ExportMetalCommandQueueInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExportMetalCommandQueueInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_COMMAND_QUEUE_INFO_EXT; } -unsafe impl<'a> Extends> for ExportMetalCommandQueueInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, ExportMetalObjectsInfoEXT<'a>> for ExportMetalCommandQueueInfoEXT<'a> {} impl<'a> ExportMetalCommandQueueInfoEXT<'a> { #[inline] pub fn queue(mut self, queue: Queue) -> Self { @@ -51680,10 +52004,10 @@ impl ::core::default::Default for ExportMetalBufferInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ExportMetalBufferInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExportMetalBufferInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_BUFFER_INFO_EXT; } -unsafe impl<'a> Extends> for ExportMetalBufferInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, ExportMetalObjectsInfoEXT<'a>> for ExportMetalBufferInfoEXT<'a> {} impl<'a> ExportMetalBufferInfoEXT<'a> { #[inline] pub fn memory(mut self, memory: DeviceMemory) -> Self { @@ -51720,10 +52044,10 @@ impl ::core::default::Default for ImportMetalBufferInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ImportMetalBufferInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImportMetalBufferInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_BUFFER_INFO_EXT; } -unsafe impl<'a> Extends> for ImportMetalBufferInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> for ImportMetalBufferInfoEXT<'a> {} impl<'a> ImportMetalBufferInfoEXT<'a> { #[inline] pub fn mtl_buffer(mut self, mtl_buffer: MTLBuffer_id) -> Self { @@ -51763,10 +52087,10 @@ impl ::core::default::Default for ExportMetalTextureInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ExportMetalTextureInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExportMetalTextureInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_TEXTURE_INFO_EXT; } -unsafe impl<'a> Extends> for ExportMetalTextureInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, ExportMetalObjectsInfoEXT<'a>> for ExportMetalTextureInfoEXT<'a> {} impl<'a> ExportMetalTextureInfoEXT<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { @@ -51820,10 +52144,10 @@ impl ::core::default::Default for ImportMetalTextureInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ImportMetalTextureInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImportMetalTextureInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_TEXTURE_INFO_EXT; } -unsafe impl<'a> Extends> for ImportMetalTextureInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> for ImportMetalTextureInfoEXT<'a> {} impl<'a> ImportMetalTextureInfoEXT<'a> { #[inline] pub fn plane(mut self, plane: ImageAspectFlags) -> Self { @@ -51862,10 +52186,10 @@ impl ::core::default::Default for ExportMetalIOSurfaceInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ExportMetalIOSurfaceInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExportMetalIOSurfaceInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_IO_SURFACE_INFO_EXT; } -unsafe impl<'a> Extends> for ExportMetalIOSurfaceInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, ExportMetalObjectsInfoEXT<'a>> for ExportMetalIOSurfaceInfoEXT<'a> {} impl<'a> ExportMetalIOSurfaceInfoEXT<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { @@ -51902,10 +52226,10 @@ impl ::core::default::Default for ImportMetalIOSurfaceInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ImportMetalIOSurfaceInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImportMetalIOSurfaceInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_IO_SURFACE_INFO_EXT; } -unsafe impl<'a> Extends> for ImportMetalIOSurfaceInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> for ImportMetalIOSurfaceInfoEXT<'a> {} impl<'a> ImportMetalIOSurfaceInfoEXT<'a> { #[inline] pub fn io_surface(mut self, io_surface: IOSurfaceRef) -> Self { @@ -51941,10 +52265,10 @@ impl ::core::default::Default for ExportMetalSharedEventInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ExportMetalSharedEventInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExportMetalSharedEventInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_SHARED_EVENT_INFO_EXT; } -unsafe impl<'a> Extends> for ExportMetalSharedEventInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, ExportMetalObjectsInfoEXT<'a>> for ExportMetalSharedEventInfoEXT<'a> {} impl<'a> ExportMetalSharedEventInfoEXT<'a> { #[inline] pub fn semaphore(mut self, semaphore: Semaphore) -> Self { @@ -51986,11 +52310,11 @@ impl ::core::default::Default for ImportMetalSharedEventInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ImportMetalSharedEventInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImportMetalSharedEventInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_SHARED_EVENT_INFO_EXT; } -unsafe impl<'a> Extends> for ImportMetalSharedEventInfoEXT<'a> {} -unsafe impl<'a> Extends> for ImportMetalSharedEventInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, SemaphoreCreateInfo<'a>> for ImportMetalSharedEventInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, EventCreateInfo<'a>> for ImportMetalSharedEventInfoEXT<'a> {} impl<'a> ImportMetalSharedEventInfoEXT<'a> { #[inline] pub fn mtl_shared_event(mut self, mtl_shared_event: MTLSharedEvent_id) -> Self { @@ -52022,15 +52346,18 @@ impl ::core::default::Default for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a> {} impl<'a> PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a> { #[inline] pub fn non_seamless_cube_map(mut self, non_seamless_cube_map: bool) -> Self { @@ -52062,15 +52389,18 @@ impl ::core::default::Default for PhysicalDevicePipelineRobustnessFeaturesEXT<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineRobustnessFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineRobustnessFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDevicePipelineRobustnessFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevicePipelineRobustnessFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDevicePipelineRobustnessFeaturesEXT<'a> {} impl<'a> PhysicalDevicePipelineRobustnessFeaturesEXT<'a> { #[inline] pub fn pipeline_robustness(mut self, pipeline_robustness: bool) -> Self { @@ -52108,13 +52438,19 @@ impl ::core::default::Default for PipelineRobustnessCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineRobustnessCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineRobustnessCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_ROBUSTNESS_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> for PipelineRobustnessCreateInfoEXT<'a> {} -unsafe impl<'a> Extends> for PipelineRobustnessCreateInfoEXT<'a> {} -unsafe impl<'a> Extends> for PipelineRobustnessCreateInfoEXT<'a> {} -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, GraphicsPipelineCreateInfo<'a>> + for PipelineRobustnessCreateInfoEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, ComputePipelineCreateInfo<'a>> for PipelineRobustnessCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, PipelineShaderStageCreateInfo<'a>> + for PipelineRobustnessCreateInfoEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, RayTracingPipelineCreateInfoKHR<'a>> for PipelineRobustnessCreateInfoEXT<'a> { } @@ -52170,11 +52506,11 @@ impl ::core::default::Default for PhysicalDevicePipelineRobustnessPropertiesEXT< } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineRobustnessPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineRobustnessPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDevicePipelineRobustnessPropertiesEXT<'a> { } @@ -52240,10 +52576,10 @@ impl ::core::default::Default for ImageViewSampleWeightCreateInfoQCOM<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageViewSampleWeightCreateInfoQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageViewSampleWeightCreateInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM; } -unsafe impl<'a> Extends> for ImageViewSampleWeightCreateInfoQCOM<'a> {} +unsafe impl<'a> Extends<'a, ImageViewCreateInfo<'a>> for ImageViewSampleWeightCreateInfoQCOM<'a> {} impl<'a> ImageViewSampleWeightCreateInfoQCOM<'a> { #[inline] pub fn filter_center(mut self, filter_center: Offset2D) -> Self { @@ -52289,15 +52625,18 @@ impl ::core::default::Default for PhysicalDeviceImageProcessingFeaturesQCOM<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceImageProcessingFeaturesQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageProcessingFeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceImageProcessingFeaturesQCOM<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceImageProcessingFeaturesQCOM<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceImageProcessingFeaturesQCOM<'a> {} impl<'a> PhysicalDeviceImageProcessingFeaturesQCOM<'a> { #[inline] pub fn texture_sample_weighted(mut self, texture_sample_weighted: bool) -> Self { @@ -52345,11 +52684,11 @@ impl ::core::default::Default for PhysicalDeviceImageProcessingPropertiesQCOM<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceImageProcessingPropertiesQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageProcessingPropertiesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceImageProcessingPropertiesQCOM<'a> { } @@ -52399,15 +52738,15 @@ impl ::core::default::Default for PhysicalDeviceTilePropertiesFeaturesQCOM<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceTilePropertiesFeaturesQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceTilePropertiesFeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceTilePropertiesFeaturesQCOM<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceTilePropertiesFeaturesQCOM<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceTilePropertiesFeaturesQCOM<'a> {} impl<'a> PhysicalDeviceTilePropertiesFeaturesQCOM<'a> { #[inline] pub fn tile_properties(mut self, tile_properties: bool) -> Self { @@ -52443,7 +52782,7 @@ impl ::core::default::Default for TilePropertiesQCOM<'_> { } } } -unsafe impl<'a> TaggedStructure for TilePropertiesQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for TilePropertiesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::TILE_PROPERTIES_QCOM; } impl<'a> TilePropertiesQCOM<'a> { @@ -52487,15 +52826,15 @@ impl ::core::default::Default for PhysicalDeviceAmigoProfilingFeaturesSEC<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceAmigoProfilingFeaturesSEC<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceAmigoProfilingFeaturesSEC<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceAmigoProfilingFeaturesSEC<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceAmigoProfilingFeaturesSEC<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceAmigoProfilingFeaturesSEC<'a> {} impl<'a> PhysicalDeviceAmigoProfilingFeaturesSEC<'a> { #[inline] pub fn amigo_profiling(mut self, amigo_profiling: bool) -> Self { @@ -52529,10 +52868,10 @@ impl ::core::default::Default for AmigoProfilingSubmitInfoSEC<'_> { } } } -unsafe impl<'a> TaggedStructure for AmigoProfilingSubmitInfoSEC<'a> { +unsafe impl<'a> TaggedStructure<'a> for AmigoProfilingSubmitInfoSEC<'a> { const STRUCTURE_TYPE: StructureType = StructureType::AMIGO_PROFILING_SUBMIT_INFO_SEC; } -unsafe impl<'a> Extends> for AmigoProfilingSubmitInfoSEC<'a> {} +unsafe impl<'a> Extends<'a, SubmitInfo<'a>> for AmigoProfilingSubmitInfoSEC<'a> {} impl<'a> AmigoProfilingSubmitInfoSEC<'a> { #[inline] pub fn first_draw_timestamp(mut self, first_draw_timestamp: u64) -> Self { @@ -52569,15 +52908,15 @@ impl ::core::default::Default for PhysicalDeviceAttachmentFeedbackLoopLayoutFeat } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'a> { } @@ -52615,15 +52954,18 @@ impl ::core::default::Default for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'a> {} impl<'a> PhysicalDeviceDepthClampZeroOneFeaturesEXT<'a> { #[inline] pub fn depth_clamp_zero_one(mut self, depth_clamp_zero_one: bool) -> Self { @@ -52655,15 +52997,15 @@ impl ::core::default::Default for PhysicalDeviceAddressBindingReportFeaturesEXT< } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceAddressBindingReportFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceAddressBindingReportFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceAddressBindingReportFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceAddressBindingReportFeaturesEXT<'a> { } @@ -52704,10 +53046,10 @@ impl ::core::default::Default for DeviceAddressBindingCallbackDataEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceAddressBindingCallbackDataEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceAddressBindingCallbackDataEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DebugUtilsMessengerCallbackDataEXT<'a>> for DeviceAddressBindingCallbackDataEXT<'a> { } @@ -52757,11 +53099,14 @@ impl ::core::default::Default for PhysicalDeviceOpticalFlowFeaturesNV<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceOpticalFlowFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceOpticalFlowFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV; } -unsafe impl<'a> Extends> for PhysicalDeviceOpticalFlowFeaturesNV<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceOpticalFlowFeaturesNV<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceOpticalFlowFeaturesNV<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceOpticalFlowFeaturesNV<'a> {} impl<'a> PhysicalDeviceOpticalFlowFeaturesNV<'a> { #[inline] pub fn optical_flow(mut self, optical_flow: bool) -> Self { @@ -52813,10 +53158,10 @@ impl ::core::default::Default for PhysicalDeviceOpticalFlowPropertiesNV<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceOpticalFlowPropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceOpticalFlowPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceOpticalFlowPropertiesNV<'a> { } @@ -52907,11 +53252,14 @@ impl ::core::default::Default for OpticalFlowImageFormatInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for OpticalFlowImageFormatInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for OpticalFlowImageFormatInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV; } -unsafe impl<'a> Extends> for OpticalFlowImageFormatInfoNV<'a> {} -unsafe impl<'a> Extends> for OpticalFlowImageFormatInfoNV<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceImageFormatInfo2<'a>> + for OpticalFlowImageFormatInfoNV<'a> +{ +} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> for OpticalFlowImageFormatInfoNV<'a> {} impl<'a> OpticalFlowImageFormatInfoNV<'a> { #[inline] pub fn usage(mut self, usage: OpticalFlowUsageFlagsNV) -> Self { @@ -52943,7 +53291,7 @@ impl ::core::default::Default for OpticalFlowImageFormatPropertiesNV<'_> { } } } -unsafe impl<'a> TaggedStructure for OpticalFlowImageFormatPropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for OpticalFlowImageFormatPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV; } impl<'a> OpticalFlowImageFormatPropertiesNV<'a> { @@ -52993,7 +53341,7 @@ impl ::core::default::Default for OpticalFlowSessionCreateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for OpticalFlowSessionCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for OpticalFlowSessionCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_SESSION_CREATE_INFO_NV; } unsafe impl<'a> BaseTaggedStructure<'a> for OpticalFlowSessionCreateInfoNV<'a> {} @@ -53072,11 +53420,11 @@ impl ::core::default::Default for OpticalFlowSessionCreatePrivateDataInfoNV<'_> } } } -unsafe impl<'a> TaggedStructure for OpticalFlowSessionCreatePrivateDataInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for OpticalFlowSessionCreatePrivateDataInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, OpticalFlowSessionCreateInfoNV<'a>> for OpticalFlowSessionCreatePrivateDataInfoNV<'a> { } @@ -53125,7 +53473,7 @@ impl ::core::default::Default for OpticalFlowExecuteInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for OpticalFlowExecuteInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for OpticalFlowExecuteInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_EXECUTE_INFO_NV; } impl<'a> OpticalFlowExecuteInfoNV<'a> { @@ -53167,11 +53515,11 @@ impl ::core::default::Default for PhysicalDeviceFaultFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceFaultFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFaultFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FAULT_FEATURES_EXT; } -unsafe impl<'a> Extends> for PhysicalDeviceFaultFeaturesEXT<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceFaultFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceFaultFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceFaultFeaturesEXT<'a> {} impl<'a> PhysicalDeviceFaultFeaturesEXT<'a> { #[inline] pub fn device_fault(mut self, device_fault: bool) -> Self { @@ -53291,7 +53639,7 @@ impl ::core::default::Default for DeviceFaultCountsEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceFaultCountsEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceFaultCountsEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_FAULT_COUNTS_EXT; } impl<'a> DeviceFaultCountsEXT<'a> { @@ -53353,7 +53701,7 @@ impl ::core::default::Default for DeviceFaultInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceFaultInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceFaultInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_FAULT_INFO_EXT; } impl<'a> DeviceFaultInfoEXT<'a> { @@ -53504,15 +53852,15 @@ impl ::core::default::Default for PhysicalDevicePipelineLibraryGroupHandlesFeatu } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'a> { } @@ -53551,7 +53899,7 @@ impl ::core::default::Default for DepthBiasInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DepthBiasInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DepthBiasInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEPTH_BIAS_INFO_EXT; } unsafe impl<'a> BaseTaggedStructure<'a> for DepthBiasInfoEXT<'a> {} @@ -53598,11 +53946,11 @@ impl ::core::default::Default for DepthBiasRepresentationInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for DepthBiasRepresentationInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for DepthBiasRepresentationInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEPTH_BIAS_REPRESENTATION_INFO_EXT; } -unsafe impl<'a> Extends> for DepthBiasRepresentationInfoEXT<'a> {} -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DepthBiasInfoEXT<'a>> for DepthBiasRepresentationInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, PipelineRasterizationStateCreateInfo<'a>> for DepthBiasRepresentationInfoEXT<'a> { } @@ -53691,11 +54039,11 @@ impl ::core::default::Default for PhysicalDeviceShaderCoreBuiltinsPropertiesARM< } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'a> { } @@ -53740,15 +54088,18 @@ impl ::core::default::Default for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a> {} impl<'a> PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a> { #[inline] pub fn shader_core_builtins(mut self, shader_core_builtins: bool) -> Self { @@ -53796,13 +54147,13 @@ impl ::core::default::Default for FrameBoundaryEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for FrameBoundaryEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for FrameBoundaryEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FRAME_BOUNDARY_EXT; } -unsafe impl<'a> Extends> for FrameBoundaryEXT<'a> {} -unsafe impl<'a> Extends> for FrameBoundaryEXT<'a> {} -unsafe impl<'a> Extends> for FrameBoundaryEXT<'a> {} -unsafe impl<'a> Extends> for FrameBoundaryEXT<'a> {} +unsafe impl<'a> Extends<'a, SubmitInfo<'a>> for FrameBoundaryEXT<'a> {} +unsafe impl<'a> Extends<'a, SubmitInfo2<'a>> for FrameBoundaryEXT<'a> {} +unsafe impl<'a> Extends<'a, PresentInfoKHR<'a>> for FrameBoundaryEXT<'a> {} +unsafe impl<'a> Extends<'a, BindSparseInfo<'a>> for FrameBoundaryEXT<'a> {} impl<'a> FrameBoundaryEXT<'a> { #[inline] pub fn flags(mut self, flags: FrameBoundaryFlagsEXT) -> Self { @@ -53862,15 +54213,15 @@ impl ::core::default::Default for PhysicalDeviceFrameBoundaryFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceFrameBoundaryFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFrameBoundaryFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceFrameBoundaryFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceFrameBoundaryFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceFrameBoundaryFeaturesEXT<'a> {} impl<'a> PhysicalDeviceFrameBoundaryFeaturesEXT<'a> { #[inline] pub fn frame_boundary(mut self, frame_boundary: bool) -> Self { @@ -53902,15 +54253,17 @@ impl ::core::default::Default for PhysicalDeviceDynamicRenderingUnusedAttachment } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> + for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'a> +{ const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'a> { } @@ -53948,10 +54301,10 @@ impl ::core::default::Default for SurfacePresentModeEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for SurfacePresentModeEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SurfacePresentModeEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_PRESENT_MODE_EXT; } -unsafe impl<'a> Extends> for SurfacePresentModeEXT<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceSurfaceInfo2KHR<'a>> for SurfacePresentModeEXT<'a> {} impl<'a> SurfacePresentModeEXT<'a> { #[inline] pub fn present_mode(mut self, present_mode: PresentModeKHR) -> Self { @@ -53991,10 +54344,13 @@ impl ::core::default::Default for SurfacePresentScalingCapabilitiesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for SurfacePresentScalingCapabilitiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SurfacePresentScalingCapabilitiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_PRESENT_SCALING_CAPABILITIES_EXT; } -unsafe impl<'a> Extends> for SurfacePresentScalingCapabilitiesEXT<'a> {} +unsafe impl<'a> Extends<'a, SurfaceCapabilities2KHR<'a>> + for SurfacePresentScalingCapabilitiesEXT<'a> +{ +} impl<'a> SurfacePresentScalingCapabilitiesEXT<'a> { #[inline] pub fn supported_present_scaling( @@ -54057,10 +54413,13 @@ impl ::core::default::Default for SurfacePresentModeCompatibilityEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for SurfacePresentModeCompatibilityEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SurfacePresentModeCompatibilityEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_PRESENT_MODE_COMPATIBILITY_EXT; } -unsafe impl<'a> Extends> for SurfacePresentModeCompatibilityEXT<'a> {} +unsafe impl<'a> Extends<'a, SurfaceCapabilities2KHR<'a>> + for SurfacePresentModeCompatibilityEXT<'a> +{ +} impl<'a> SurfacePresentModeCompatibilityEXT<'a> { #[inline] pub fn present_modes(mut self, present_modes: &'a mut [PresentModeKHR]) -> Self { @@ -54093,15 +54452,15 @@ impl ::core::default::Default for PhysicalDeviceSwapchainMaintenance1FeaturesEXT } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'a> { } @@ -54138,10 +54497,10 @@ impl ::core::default::Default for SwapchainPresentFenceInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for SwapchainPresentFenceInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SwapchainPresentFenceInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_FENCE_INFO_EXT; } -unsafe impl<'a> Extends> for SwapchainPresentFenceInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, PresentInfoKHR<'a>> for SwapchainPresentFenceInfoEXT<'a> {} impl<'a> SwapchainPresentFenceInfoEXT<'a> { #[inline] pub fn fences(mut self, fences: &'a [Fence]) -> Self { @@ -54176,10 +54535,10 @@ impl ::core::default::Default for SwapchainPresentModesCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for SwapchainPresentModesCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SwapchainPresentModesCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> for SwapchainPresentModesCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, SwapchainCreateInfoKHR<'a>> for SwapchainPresentModesCreateInfoEXT<'a> {} impl<'a> SwapchainPresentModesCreateInfoEXT<'a> { #[inline] pub fn present_modes(mut self, present_modes: &'a [PresentModeKHR]) -> Self { @@ -54214,10 +54573,10 @@ impl ::core::default::Default for SwapchainPresentModeInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for SwapchainPresentModeInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SwapchainPresentModeInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_MODE_INFO_EXT; } -unsafe impl<'a> Extends> for SwapchainPresentModeInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, PresentInfoKHR<'a>> for SwapchainPresentModeInfoEXT<'a> {} impl<'a> SwapchainPresentModeInfoEXT<'a> { #[inline] pub fn present_modes(mut self, present_modes: &'a [PresentModeKHR]) -> Self { @@ -54254,10 +54613,13 @@ impl ::core::default::Default for SwapchainPresentScalingCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for SwapchainPresentScalingCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SwapchainPresentScalingCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT; } -unsafe impl<'a> Extends> for SwapchainPresentScalingCreateInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, SwapchainCreateInfoKHR<'a>> + for SwapchainPresentScalingCreateInfoEXT<'a> +{ +} impl<'a> SwapchainPresentScalingCreateInfoEXT<'a> { #[inline] pub fn scaling_behavior(mut self, scaling_behavior: PresentScalingFlagsEXT) -> Self { @@ -54303,7 +54665,7 @@ impl ::core::default::Default for ReleaseSwapchainImagesInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ReleaseSwapchainImagesInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ReleaseSwapchainImagesInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RELEASE_SWAPCHAIN_IMAGES_INFO_EXT; } impl<'a> ReleaseSwapchainImagesInfoEXT<'a> { @@ -54349,15 +54711,18 @@ impl ::core::default::Default for PhysicalDeviceDepthBiasControlFeaturesEXT<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthBiasControlFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDepthBiasControlFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceDepthBiasControlFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDepthBiasControlFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceDepthBiasControlFeaturesEXT<'a> {} impl<'a> PhysicalDeviceDepthBiasControlFeaturesEXT<'a> { #[inline] pub fn depth_bias_control(mut self, depth_bias_control: bool) -> Self { @@ -54408,15 +54773,15 @@ impl ::core::default::Default for PhysicalDeviceRayTracingInvocationReorderFeatu } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'a> { } @@ -54452,11 +54817,11 @@ impl ::core::default::Default for PhysicalDeviceRayTracingInvocationReorderPrope } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'a> { } @@ -54495,15 +54860,15 @@ impl ::core::default::Default for PhysicalDeviceExtendedSparseAddressSpaceFeatur } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'a> { } @@ -54542,11 +54907,11 @@ impl ::core::default::Default for PhysicalDeviceExtendedSparseAddressSpaceProper } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'a> { } @@ -54615,7 +54980,7 @@ impl ::core::default::Default for DirectDriverLoadingInfoLUNARG<'_> { } } } -unsafe impl<'a> TaggedStructure for DirectDriverLoadingInfoLUNARG<'a> { +unsafe impl<'a> TaggedStructure<'a> for DirectDriverLoadingInfoLUNARG<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DIRECT_DRIVER_LOADING_INFO_LUNARG; } impl<'a> DirectDriverLoadingInfoLUNARG<'a> { @@ -54661,10 +55026,10 @@ impl ::core::default::Default for DirectDriverLoadingListLUNARG<'_> { } } } -unsafe impl<'a> TaggedStructure for DirectDriverLoadingListLUNARG<'a> { +unsafe impl<'a> TaggedStructure<'a> for DirectDriverLoadingListLUNARG<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DIRECT_DRIVER_LOADING_LIST_LUNARG; } -unsafe impl<'a> Extends> for DirectDriverLoadingListLUNARG<'a> {} +unsafe impl<'a> Extends<'a, InstanceCreateInfo<'a>> for DirectDriverLoadingListLUNARG<'a> {} impl<'a> DirectDriverLoadingListLUNARG<'a> { #[inline] pub fn mode(mut self, mode: DirectDriverLoadingModeLUNARG) -> Self { @@ -54702,15 +55067,15 @@ impl ::core::default::Default for PhysicalDeviceMultiviewPerViewViewportsFeature } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'a> { } @@ -54745,15 +55110,15 @@ impl ::core::default::Default for PhysicalDeviceRayTracingPositionFetchFeaturesK } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'a> { } @@ -54790,7 +55155,7 @@ impl ::core::default::Default for DeviceImageSubresourceInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for DeviceImageSubresourceInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceImageSubresourceInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_IMAGE_SUBRESOURCE_INFO_KHR; } impl<'a> DeviceImageSubresourceInfoKHR<'a> { @@ -54833,10 +55198,10 @@ impl ::core::default::Default for PhysicalDeviceShaderCorePropertiesARM<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderCorePropertiesARM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderCorePropertiesARM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceShaderCorePropertiesARM<'a> { } @@ -54881,15 +55246,15 @@ impl ::core::default::Default for PhysicalDeviceMultiviewPerViewRenderAreasFeatu } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'a> { } @@ -54929,15 +55294,15 @@ impl ::core::default::Default for MultiviewPerViewRenderAreasRenderPassBeginInfo } } } -unsafe impl<'a> TaggedStructure for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, RenderPassBeginInfo<'a>> for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, RenderingInfo<'a>> for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'a> { } @@ -54973,10 +55338,10 @@ impl ::core::default::Default for QueryLowLatencySupportNV<'_> { } } } -unsafe impl<'a> TaggedStructure for QueryLowLatencySupportNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for QueryLowLatencySupportNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUERY_LOW_LATENCY_SUPPORT_NV; } -unsafe impl<'a> Extends> for QueryLowLatencySupportNV<'a> {} +unsafe impl<'a> Extends<'a, SemaphoreCreateInfo<'a>> for QueryLowLatencySupportNV<'a> {} impl<'a> QueryLowLatencySupportNV<'a> { #[inline] pub fn queried_low_latency_data(mut self, queried_low_latency_data: *mut c_void) -> Self { @@ -55014,7 +55379,7 @@ impl ::core::default::Default for MemoryMapInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryMapInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryMapInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_MAP_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for MemoryMapInfoKHR<'a> {} @@ -55066,7 +55431,7 @@ impl ::core::default::Default for MemoryUnmapInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryUnmapInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryUnmapInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_UNMAP_INFO_KHR; } impl<'a> MemoryUnmapInfoKHR<'a> { @@ -55105,11 +55470,14 @@ impl ::core::default::Default for PhysicalDeviceShaderObjectFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderObjectFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderObjectFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT; } -unsafe impl<'a> Extends> for PhysicalDeviceShaderObjectFeaturesEXT<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceShaderObjectFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceShaderObjectFeaturesEXT<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderObjectFeaturesEXT<'a> {} impl<'a> PhysicalDeviceShaderObjectFeaturesEXT<'a> { #[inline] pub fn shader_object(mut self, shader_object: bool) -> Self { @@ -55143,11 +55511,11 @@ impl ::core::default::Default for PhysicalDeviceShaderObjectPropertiesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderObjectPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderObjectPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceShaderObjectPropertiesEXT<'a> { } @@ -55209,7 +55577,7 @@ impl ::core::default::Default for ShaderCreateInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for ShaderCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for ShaderCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SHADER_CREATE_INFO_EXT; } unsafe impl<'a> BaseTaggedStructure<'a> for ShaderCreateInfoEXT<'a> {} @@ -55299,15 +55667,15 @@ impl ::core::default::Default for PhysicalDeviceShaderTileImageFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderTileImageFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderTileImageFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderTileImageFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceShaderTileImageFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderTileImageFeaturesEXT<'a> {} impl<'a> PhysicalDeviceShaderTileImageFeaturesEXT<'a> { #[inline] pub fn shader_tile_image_color_read_access( @@ -55362,11 +55730,11 @@ impl ::core::default::Default for PhysicalDeviceShaderTileImagePropertiesEXT<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderTileImagePropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderTileImagePropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceShaderTileImagePropertiesEXT<'a> { } @@ -55423,10 +55791,10 @@ impl ::core::default::Default for ImportScreenBufferInfoQNX<'_> { } } } -unsafe impl<'a> TaggedStructure for ImportScreenBufferInfoQNX<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImportScreenBufferInfoQNX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_SCREEN_BUFFER_INFO_QNX; } -unsafe impl<'a> Extends> for ImportScreenBufferInfoQNX<'a> {} +unsafe impl<'a> Extends<'a, MemoryAllocateInfo<'a>> for ImportScreenBufferInfoQNX<'a> {} impl<'a> ImportScreenBufferInfoQNX<'a> { #[inline] pub fn buffer(mut self, buffer: &'a mut _screen_buffer) -> Self { @@ -55460,7 +55828,7 @@ impl ::core::default::Default for ScreenBufferPropertiesQNX<'_> { } } } -unsafe impl<'a> TaggedStructure for ScreenBufferPropertiesQNX<'a> { +unsafe impl<'a> TaggedStructure<'a> for ScreenBufferPropertiesQNX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SCREEN_BUFFER_PROPERTIES_QNX; } unsafe impl<'a> BaseTaggedStructure<'a> for ScreenBufferPropertiesQNX<'a> {} @@ -55516,10 +55884,10 @@ impl ::core::default::Default for ScreenBufferFormatPropertiesQNX<'_> { } } } -unsafe impl<'a> TaggedStructure for ScreenBufferFormatPropertiesQNX<'a> { +unsafe impl<'a> TaggedStructure<'a> for ScreenBufferFormatPropertiesQNX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SCREEN_BUFFER_FORMAT_PROPERTIES_QNX; } -unsafe impl<'a> Extends> for ScreenBufferFormatPropertiesQNX<'a> {} +unsafe impl<'a> Extends<'a, ScreenBufferPropertiesQNX<'a>> for ScreenBufferFormatPropertiesQNX<'a> {} impl<'a> ScreenBufferFormatPropertiesQNX<'a> { #[inline] pub fn format(mut self, format: Format) -> Self { @@ -55597,11 +55965,11 @@ impl ::core::default::Default for ExternalFormatQNX<'_> { } } } -unsafe impl<'a> TaggedStructure for ExternalFormatQNX<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExternalFormatQNX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_FORMAT_QNX; } -unsafe impl<'a> Extends> for ExternalFormatQNX<'a> {} -unsafe impl<'a> Extends> for ExternalFormatQNX<'a> {} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> for ExternalFormatQNX<'a> {} +unsafe impl<'a> Extends<'a, SamplerYcbcrConversionCreateInfo<'a>> for ExternalFormatQNX<'a> {} impl<'a> ExternalFormatQNX<'a> { #[inline] pub fn external_format(mut self, external_format: u64) -> Self { @@ -55633,15 +56001,15 @@ impl ::core::default::Default for PhysicalDeviceExternalMemoryScreenBufferFeatur } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'a> { } @@ -55678,15 +56046,18 @@ impl ::core::default::Default for PhysicalDeviceCooperativeMatrixFeaturesKHR<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceCooperativeMatrixFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCooperativeMatrixFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceCooperativeMatrixFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceCooperativeMatrixFeaturesKHR<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceCooperativeMatrixFeaturesKHR<'a> {} impl<'a> PhysicalDeviceCooperativeMatrixFeaturesKHR<'a> { #[inline] pub fn cooperative_matrix(mut self, cooperative_matrix: bool) -> Self { @@ -55743,7 +56114,7 @@ impl ::core::default::Default for CooperativeMatrixPropertiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for CooperativeMatrixPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for CooperativeMatrixPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COOPERATIVE_MATRIX_PROPERTIES_KHR; } impl<'a> CooperativeMatrixPropertiesKHR<'a> { @@ -55817,11 +56188,11 @@ impl ::core::default::Default for PhysicalDeviceCooperativeMatrixPropertiesKHR<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceCooperativeMatrixPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCooperativeMatrixPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceCooperativeMatrixPropertiesKHR<'a> { } @@ -55867,11 +56238,11 @@ impl ::core::default::Default for PhysicalDeviceShaderEnqueuePropertiesAMDX<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderEnqueuePropertiesAMDX<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderEnqueuePropertiesAMDX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceShaderEnqueuePropertiesAMDX<'a> { } @@ -55939,15 +56310,15 @@ impl ::core::default::Default for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> {} impl<'a> PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> { #[inline] pub fn shader_enqueue(mut self, shader_enqueue: bool) -> Self { @@ -55991,7 +56362,7 @@ impl ::core::default::Default for ExecutionGraphPipelineCreateInfoAMDX<'_> { } } } -unsafe impl<'a> TaggedStructure for ExecutionGraphPipelineCreateInfoAMDX<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExecutionGraphPipelineCreateInfoAMDX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX; } unsafe impl<'a> BaseTaggedStructure<'a> for ExecutionGraphPipelineCreateInfoAMDX<'a> {} @@ -56054,11 +56425,11 @@ impl ::core::default::Default for PipelineShaderStageNodeCreateInfoAMDX<'_> { } } } -unsafe impl<'a> TaggedStructure for PipelineShaderStageNodeCreateInfoAMDX<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineShaderStageNodeCreateInfoAMDX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PipelineShaderStageCreateInfo<'a>> for PipelineShaderStageNodeCreateInfoAMDX<'a> { } @@ -56106,7 +56477,7 @@ impl ::core::default::Default for ExecutionGraphPipelineScratchSizeAMDX<'_> { } } } -unsafe impl<'a> TaggedStructure for ExecutionGraphPipelineScratchSizeAMDX<'a> { +unsafe impl<'a> TaggedStructure<'a> for ExecutionGraphPipelineScratchSizeAMDX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX; } impl<'a> ExecutionGraphPipelineScratchSizeAMDX<'a> { @@ -56219,11 +56590,11 @@ impl ::core::default::Default for PhysicalDeviceAntiLagFeaturesAMD<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceAntiLagFeaturesAMD<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceAntiLagFeaturesAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD; } -unsafe impl<'a> Extends> for PhysicalDeviceAntiLagFeaturesAMD<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceAntiLagFeaturesAMD<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceAntiLagFeaturesAMD<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceAntiLagFeaturesAMD<'a> {} impl<'a> PhysicalDeviceAntiLagFeaturesAMD<'a> { #[inline] pub fn anti_lag(mut self, anti_lag: bool) -> Self { @@ -56259,7 +56630,7 @@ impl ::core::default::Default for AntiLagDataAMD<'_> { } } } -unsafe impl<'a> TaggedStructure for AntiLagDataAMD<'a> { +unsafe impl<'a> TaggedStructure<'a> for AntiLagDataAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ANTI_LAG_DATA_AMD; } impl<'a> AntiLagDataAMD<'a> { @@ -56308,7 +56679,7 @@ impl ::core::default::Default for AntiLagPresentationInfoAMD<'_> { } } } -unsafe impl<'a> TaggedStructure for AntiLagPresentationInfoAMD<'a> { +unsafe impl<'a> TaggedStructure<'a> for AntiLagPresentationInfoAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ANTI_LAG_PRESENTATION_INFO_AMD; } impl<'a> AntiLagPresentationInfoAMD<'a> { @@ -56347,11 +56718,11 @@ impl ::core::default::Default for BindMemoryStatusKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for BindMemoryStatusKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for BindMemoryStatusKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_MEMORY_STATUS_KHR; } -unsafe impl<'a> Extends> for BindMemoryStatusKHR<'a> {} -unsafe impl<'a> Extends> for BindMemoryStatusKHR<'a> {} +unsafe impl<'a> Extends<'a, BindBufferMemoryInfo<'a>> for BindMemoryStatusKHR<'a> {} +unsafe impl<'a> Extends<'a, BindImageMemoryInfo<'a>> for BindMemoryStatusKHR<'a> {} impl<'a> BindMemoryStatusKHR<'a> { #[inline] pub fn result(mut self, result: &'a mut Result) -> Self { @@ -56395,7 +56766,7 @@ impl ::core::default::Default for BindDescriptorSetsInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for BindDescriptorSetsInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for BindDescriptorSetsInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_DESCRIPTOR_SETS_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for BindDescriptorSetsInfoKHR<'a> {} @@ -56460,7 +56831,7 @@ impl ::core::default::Default for PushConstantsInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PushConstantsInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PushConstantsInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PUSH_CONSTANTS_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for PushConstantsInfoKHR<'a> {} @@ -56519,7 +56890,7 @@ impl ::core::default::Default for PushDescriptorSetInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PushDescriptorSetInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PushDescriptorSetInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PUSH_DESCRIPTOR_SET_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for PushDescriptorSetInfoKHR<'a> {} @@ -56576,7 +56947,7 @@ impl ::core::default::Default for PushDescriptorSetWithTemplateInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for PushDescriptorSetWithTemplateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PushDescriptorSetWithTemplateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR; } unsafe impl<'a> BaseTaggedStructure<'a> for PushDescriptorSetWithTemplateInfoKHR<'a> {} @@ -56639,7 +57010,7 @@ impl ::core::default::Default for SetDescriptorBufferOffsetsInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for SetDescriptorBufferOffsetsInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SetDescriptorBufferOffsetsInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT; } unsafe impl<'a> BaseTaggedStructure<'a> for SetDescriptorBufferOffsetsInfoEXT<'a> {} @@ -56700,7 +57071,7 @@ impl ::core::default::Default for BindDescriptorBufferEmbeddedSamplersInfoEXT<'_ } } } -unsafe impl<'a> TaggedStructure for BindDescriptorBufferEmbeddedSamplersInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for BindDescriptorBufferEmbeddedSamplersInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT; } @@ -56746,11 +57117,14 @@ impl ::core::default::Default for PhysicalDeviceCubicClampFeaturesQCOM<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceCubicClampFeaturesQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCubicClampFeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM; } -unsafe impl<'a> Extends> for PhysicalDeviceCubicClampFeaturesQCOM<'a> {} -unsafe impl<'a> Extends> for PhysicalDeviceCubicClampFeaturesQCOM<'a> {} +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceCubicClampFeaturesQCOM<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceCubicClampFeaturesQCOM<'a> {} impl<'a> PhysicalDeviceCubicClampFeaturesQCOM<'a> { #[inline] pub fn cubic_range_clamp(mut self, cubic_range_clamp: bool) -> Self { @@ -56782,15 +57156,15 @@ impl ::core::default::Default for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> {} impl<'a> PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> { #[inline] pub fn ycbcr_degamma(mut self, ycbcr_degamma: bool) -> Self { @@ -56824,11 +57198,11 @@ impl ::core::default::Default for SamplerYcbcrConversionYcbcrDegammaCreateInfoQC } } } -unsafe impl<'a> TaggedStructure for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, SamplerYcbcrConversionCreateInfo<'a>> for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'a> { } @@ -56868,15 +57242,15 @@ impl ::core::default::Default for PhysicalDeviceCubicWeightsFeaturesQCOM<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceCubicWeightsFeaturesQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCubicWeightsFeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceCubicWeightsFeaturesQCOM<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceCubicWeightsFeaturesQCOM<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceCubicWeightsFeaturesQCOM<'a> {} impl<'a> PhysicalDeviceCubicWeightsFeaturesQCOM<'a> { #[inline] pub fn selectable_cubic_weights(mut self, selectable_cubic_weights: bool) -> Self { @@ -56908,10 +57282,10 @@ impl ::core::default::Default for SamplerCubicWeightsCreateInfoQCOM<'_> { } } } -unsafe impl<'a> TaggedStructure for SamplerCubicWeightsCreateInfoQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for SamplerCubicWeightsCreateInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM; } -unsafe impl<'a> Extends> for SamplerCubicWeightsCreateInfoQCOM<'a> {} +unsafe impl<'a> Extends<'a, SamplerCreateInfo<'a>> for SamplerCubicWeightsCreateInfoQCOM<'a> {} impl<'a> SamplerCubicWeightsCreateInfoQCOM<'a> { #[inline] pub fn cubic_weights(mut self, cubic_weights: CubicFilterWeightsQCOM) -> Self { @@ -56943,10 +57317,10 @@ impl ::core::default::Default for BlitImageCubicWeightsInfoQCOM<'_> { } } } -unsafe impl<'a> TaggedStructure for BlitImageCubicWeightsInfoQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for BlitImageCubicWeightsInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM; } -unsafe impl<'a> Extends> for BlitImageCubicWeightsInfoQCOM<'a> {} +unsafe impl<'a> Extends<'a, BlitImageInfo2<'a>> for BlitImageCubicWeightsInfoQCOM<'a> {} impl<'a> BlitImageCubicWeightsInfoQCOM<'a> { #[inline] pub fn cubic_weights(mut self, cubic_weights: CubicFilterWeightsQCOM) -> Self { @@ -56978,15 +57352,18 @@ impl ::core::default::Default for PhysicalDeviceImageProcessing2FeaturesQCOM<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceImageProcessing2FeaturesQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageProcessing2FeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceImageProcessing2FeaturesQCOM<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceImageProcessing2FeaturesQCOM<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceImageProcessing2FeaturesQCOM<'a> {} impl<'a> PhysicalDeviceImageProcessing2FeaturesQCOM<'a> { #[inline] pub fn texture_block_match2(mut self, texture_block_match2: bool) -> Self { @@ -57018,11 +57395,11 @@ impl ::core::default::Default for PhysicalDeviceImageProcessing2PropertiesQCOM<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceImageProcessing2PropertiesQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageProcessing2PropertiesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceImageProcessing2PropertiesQCOM<'a> { } @@ -57059,11 +57436,11 @@ impl ::core::default::Default for SamplerBlockMatchWindowCreateInfoQCOM<'_> { } } } -unsafe impl<'a> TaggedStructure for SamplerBlockMatchWindowCreateInfoQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for SamplerBlockMatchWindowCreateInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM; } -unsafe impl<'a> Extends> for SamplerBlockMatchWindowCreateInfoQCOM<'a> {} +unsafe impl<'a> Extends<'a, SamplerCreateInfo<'a>> for SamplerBlockMatchWindowCreateInfoQCOM<'a> {} impl<'a> SamplerBlockMatchWindowCreateInfoQCOM<'a> { #[inline] pub fn window_extent(mut self, window_extent: Extent2D) -> Self { @@ -57103,15 +57480,15 @@ impl ::core::default::Default for PhysicalDeviceDescriptorPoolOverallocationFeat } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'a> { } @@ -57146,11 +57523,11 @@ impl ::core::default::Default for PhysicalDeviceLayeredDriverPropertiesMSFT<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceLayeredDriverPropertiesMSFT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceLayeredDriverPropertiesMSFT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceLayeredDriverPropertiesMSFT<'a> { } @@ -57187,15 +57564,15 @@ impl ::core::default::Default for PhysicalDevicePerStageDescriptorSetFeaturesNV< } } } -unsafe impl<'a> TaggedStructure for PhysicalDevicePerStageDescriptorSetFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePerStageDescriptorSetFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDevicePerStageDescriptorSetFeaturesNV<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDevicePerStageDescriptorSetFeaturesNV<'a> { } @@ -57235,15 +57612,15 @@ impl ::core::default::Default for PhysicalDeviceExternalFormatResolveFeaturesAND } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'a> { } @@ -57282,11 +57659,11 @@ impl ::core::default::Default for PhysicalDeviceExternalFormatResolvePropertiesA } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalFormatResolvePropertiesANDROID<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExternalFormatResolvePropertiesANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceExternalFormatResolvePropertiesANDROID<'a> { } @@ -57341,11 +57718,11 @@ impl ::core::default::Default for AndroidHardwareBufferFormatResolvePropertiesAN } } } -unsafe impl<'a> TaggedStructure for AndroidHardwareBufferFormatResolvePropertiesANDROID<'a> { +unsafe impl<'a> TaggedStructure<'a> for AndroidHardwareBufferFormatResolvePropertiesANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, AndroidHardwareBufferPropertiesANDROID<'a>> for AndroidHardwareBufferFormatResolvePropertiesANDROID<'a> { } @@ -57384,7 +57761,7 @@ impl ::core::default::Default for LatencySleepModeInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for LatencySleepModeInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for LatencySleepModeInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_SLEEP_MODE_INFO_NV; } impl<'a> LatencySleepModeInfoNV<'a> { @@ -57430,7 +57807,7 @@ impl ::core::default::Default for LatencySleepInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for LatencySleepInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for LatencySleepInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_SLEEP_INFO_NV; } impl<'a> LatencySleepInfoNV<'a> { @@ -57471,7 +57848,7 @@ impl ::core::default::Default for SetLatencyMarkerInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for SetLatencyMarkerInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for SetLatencyMarkerInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SET_LATENCY_MARKER_INFO_NV; } impl<'a> SetLatencyMarkerInfoNV<'a> { @@ -57512,7 +57889,7 @@ impl ::core::default::Default for GetLatencyMarkerInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for GetLatencyMarkerInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for GetLatencyMarkerInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GET_LATENCY_MARKER_INFO_NV; } impl<'a> GetLatencyMarkerInfoNV<'a> { @@ -57573,7 +57950,7 @@ impl ::core::default::Default for LatencyTimingsFrameReportNV<'_> { } } } -unsafe impl<'a> TaggedStructure for LatencyTimingsFrameReportNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for LatencyTimingsFrameReportNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_TIMINGS_FRAME_REPORT_NV; } impl<'a> LatencyTimingsFrameReportNV<'a> { @@ -57672,7 +58049,7 @@ impl ::core::default::Default for OutOfBandQueueTypeInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for OutOfBandQueueTypeInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for OutOfBandQueueTypeInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::OUT_OF_BAND_QUEUE_TYPE_INFO_NV; } impl<'a> OutOfBandQueueTypeInfoNV<'a> { @@ -57706,11 +58083,11 @@ impl ::core::default::Default for LatencySubmissionPresentIdNV<'_> { } } } -unsafe impl<'a> TaggedStructure for LatencySubmissionPresentIdNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for LatencySubmissionPresentIdNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_SUBMISSION_PRESENT_ID_NV; } -unsafe impl<'a> Extends> for LatencySubmissionPresentIdNV<'a> {} -unsafe impl<'a> Extends> for LatencySubmissionPresentIdNV<'a> {} +unsafe impl<'a> Extends<'a, SubmitInfo<'a>> for LatencySubmissionPresentIdNV<'a> {} +unsafe impl<'a> Extends<'a, SubmitInfo2<'a>> for LatencySubmissionPresentIdNV<'a> {} impl<'a> LatencySubmissionPresentIdNV<'a> { #[inline] pub fn present_id(mut self, present_id: u64) -> Self { @@ -57742,10 +58119,10 @@ impl ::core::default::Default for SwapchainLatencyCreateInfoNV<'_> { } } } -unsafe impl<'a> TaggedStructure for SwapchainLatencyCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for SwapchainLatencyCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_LATENCY_CREATE_INFO_NV; } -unsafe impl<'a> Extends> for SwapchainLatencyCreateInfoNV<'a> {} +unsafe impl<'a> Extends<'a, SwapchainCreateInfoKHR<'a>> for SwapchainLatencyCreateInfoNV<'a> {} impl<'a> SwapchainLatencyCreateInfoNV<'a> { #[inline] pub fn latency_mode_enable(mut self, latency_mode_enable: bool) -> Self { @@ -57779,10 +58156,10 @@ impl ::core::default::Default for LatencySurfaceCapabilitiesNV<'_> { } } } -unsafe impl<'a> TaggedStructure for LatencySurfaceCapabilitiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for LatencySurfaceCapabilitiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_SURFACE_CAPABILITIES_NV; } -unsafe impl<'a> Extends> for LatencySurfaceCapabilitiesNV<'a> {} +unsafe impl<'a> Extends<'a, SurfaceCapabilities2KHR<'a>> for LatencySurfaceCapabilitiesNV<'a> {} impl<'a> LatencySurfaceCapabilitiesNV<'a> { #[inline] pub fn present_modes(mut self, present_modes: &'a mut [PresentModeKHR]) -> Self { @@ -57815,15 +58192,15 @@ impl ::core::default::Default for PhysicalDeviceCudaKernelLaunchFeaturesNV<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceCudaKernelLaunchFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCudaKernelLaunchFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceCudaKernelLaunchFeaturesNV<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceCudaKernelLaunchFeaturesNV<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceCudaKernelLaunchFeaturesNV<'a> {} impl<'a> PhysicalDeviceCudaKernelLaunchFeaturesNV<'a> { #[inline] pub fn cuda_kernel_launch_features(mut self, cuda_kernel_launch_features: bool) -> Self { @@ -57857,11 +58234,11 @@ impl ::core::default::Default for PhysicalDeviceCudaKernelLaunchPropertiesNV<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceCudaKernelLaunchPropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCudaKernelLaunchPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceCudaKernelLaunchPropertiesNV<'a> { } @@ -57901,15 +58278,18 @@ impl ::core::default::Default for DeviceQueueShaderCoreControlCreateInfoARM<'_> } } } -unsafe impl<'a> TaggedStructure for DeviceQueueShaderCoreControlCreateInfoARM<'a> { +unsafe impl<'a> TaggedStructure<'a> for DeviceQueueShaderCoreControlCreateInfoARM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceQueueCreateInfo<'a>> + for DeviceQueueShaderCoreControlCreateInfoARM<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for DeviceQueueShaderCoreControlCreateInfoARM<'a> { } -unsafe impl<'a> Extends> for DeviceQueueShaderCoreControlCreateInfoARM<'a> {} impl<'a> DeviceQueueShaderCoreControlCreateInfoARM<'a> { #[inline] pub fn shader_core_count(mut self, shader_core_count: u32) -> Self { @@ -57941,15 +58321,18 @@ impl ::core::default::Default for PhysicalDeviceSchedulingControlsFeaturesARM<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceSchedulingControlsFeaturesARM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSchedulingControlsFeaturesARM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceSchedulingControlsFeaturesARM<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceSchedulingControlsFeaturesARM<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceSchedulingControlsFeaturesARM<'a> {} impl<'a> PhysicalDeviceSchedulingControlsFeaturesARM<'a> { #[inline] pub fn scheduling_controls(mut self, scheduling_controls: bool) -> Self { @@ -57981,11 +58364,11 @@ impl ::core::default::Default for PhysicalDeviceSchedulingControlsPropertiesARM< } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceSchedulingControlsPropertiesARM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSchedulingControlsPropertiesARM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceSchedulingControlsPropertiesARM<'a> { } @@ -58023,15 +58406,15 @@ impl ::core::default::Default for PhysicalDeviceRelaxedLineRasterizationFeatures } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'a> { } @@ -58066,15 +58449,18 @@ impl ::core::default::Default for PhysicalDeviceRenderPassStripedFeaturesARM<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceRenderPassStripedFeaturesARM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRenderPassStripedFeaturesARM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceRenderPassStripedFeaturesARM<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceRenderPassStripedFeaturesARM<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceRenderPassStripedFeaturesARM<'a> {} impl<'a> PhysicalDeviceRenderPassStripedFeaturesARM<'a> { #[inline] pub fn render_pass_striped(mut self, render_pass_striped: bool) -> Self { @@ -58108,11 +58494,11 @@ impl ::core::default::Default for PhysicalDeviceRenderPassStripedPropertiesARM<' } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceRenderPassStripedPropertiesARM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRenderPassStripedPropertiesARM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceRenderPassStripedPropertiesARM<'a> { } @@ -58155,7 +58541,7 @@ impl ::core::default::Default for RenderPassStripeInfoARM<'_> { } } } -unsafe impl<'a> TaggedStructure for RenderPassStripeInfoARM<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderPassStripeInfoARM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_INFO_ARM; } impl<'a> RenderPassStripeInfoARM<'a> { @@ -58191,11 +58577,11 @@ impl ::core::default::Default for RenderPassStripeBeginInfoARM<'_> { } } } -unsafe impl<'a> TaggedStructure for RenderPassStripeBeginInfoARM<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderPassStripeBeginInfoARM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_BEGIN_INFO_ARM; } -unsafe impl<'a> Extends> for RenderPassStripeBeginInfoARM<'a> {} -unsafe impl<'a> Extends> for RenderPassStripeBeginInfoARM<'a> {} +unsafe impl<'a> Extends<'a, RenderingInfo<'a>> for RenderPassStripeBeginInfoARM<'a> {} +unsafe impl<'a> Extends<'a, RenderPassBeginInfo<'a>> for RenderPassStripeBeginInfoARM<'a> {} impl<'a> RenderPassStripeBeginInfoARM<'a> { #[inline] pub fn stripe_infos(mut self, stripe_infos: &'a [RenderPassStripeInfoARM<'a>]) -> Self { @@ -58230,10 +58616,10 @@ impl ::core::default::Default for RenderPassStripeSubmitInfoARM<'_> { } } } -unsafe impl<'a> TaggedStructure for RenderPassStripeSubmitInfoARM<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderPassStripeSubmitInfoARM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_SUBMIT_INFO_ARM; } -unsafe impl<'a> Extends> for RenderPassStripeSubmitInfoARM<'a> {} +unsafe impl<'a> Extends<'a, CommandBufferSubmitInfo<'a>> for RenderPassStripeSubmitInfoARM<'a> {} impl<'a> RenderPassStripeSubmitInfoARM<'a> { #[inline] pub fn stripe_semaphore_infos( @@ -58269,15 +58655,15 @@ impl ::core::default::Default for PhysicalDeviceShaderMaximalReconvergenceFeatur } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'a> { } @@ -58314,15 +58700,15 @@ impl ::core::default::Default for PhysicalDeviceShaderSubgroupRotateFeaturesKHR< } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'a> { } @@ -58365,15 +58751,18 @@ impl ::core::default::Default for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'_ } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'a> {} impl<'a> PhysicalDeviceShaderExpectAssumeFeaturesKHR<'a> { #[inline] pub fn shader_expect_assume(mut self, shader_expect_assume: bool) -> Self { @@ -58405,15 +58794,15 @@ impl ::core::default::Default for PhysicalDeviceShaderFloatControls2FeaturesKHR< } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderFloatControls2FeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderFloatControls2FeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderFloatControls2FeaturesKHR<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderFloatControls2FeaturesKHR<'a> { } @@ -58448,15 +58837,15 @@ impl ::core::default::Default for PhysicalDeviceDynamicRenderingLocalReadFeature } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'a> { } @@ -58493,11 +58882,14 @@ impl ::core::default::Default for RenderingAttachmentLocationInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for RenderingAttachmentLocationInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderingAttachmentLocationInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_ATTACHMENT_LOCATION_INFO_KHR; } -unsafe impl<'a> Extends> for RenderingAttachmentLocationInfoKHR<'a> {} -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, GraphicsPipelineCreateInfo<'a>> + for RenderingAttachmentLocationInfoKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, CommandBufferInheritanceInfo<'a>> for RenderingAttachmentLocationInfoKHR<'a> { } @@ -58539,14 +58931,14 @@ impl ::core::default::Default for RenderingInputAttachmentIndexInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure for RenderingInputAttachmentIndexInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderingInputAttachmentIndexInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, GraphicsPipelineCreateInfo<'a>> for RenderingInputAttachmentIndexInfoKHR<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, CommandBufferInheritanceInfo<'a>> for RenderingInputAttachmentIndexInfoKHR<'a> { } @@ -58598,15 +58990,18 @@ impl ::core::default::Default for PhysicalDeviceShaderQuadControlFeaturesKHR<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderQuadControlFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderQuadControlFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> + for PhysicalDeviceShaderQuadControlFeaturesKHR<'a> +{ +} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderQuadControlFeaturesKHR<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceShaderQuadControlFeaturesKHR<'a> {} impl<'a> PhysicalDeviceShaderQuadControlFeaturesKHR<'a> { #[inline] pub fn shader_quad_control(mut self, shader_quad_control: bool) -> Self { @@ -58638,15 +59033,15 @@ impl ::core::default::Default for PhysicalDeviceShaderAtomicFloat16VectorFeature } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'a> { } @@ -58685,15 +59080,15 @@ impl ::core::default::Default for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a> {} impl<'a> PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a> { #[inline] pub fn memory_map_placed(mut self, memory_map_placed: bool) -> Self { @@ -58735,11 +59130,11 @@ impl ::core::default::Default for PhysicalDeviceMapMemoryPlacedPropertiesEXT<'_> } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceMapMemoryPlacedPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMapMemoryPlacedPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceMapMemoryPlacedPropertiesEXT<'a> { } @@ -58777,10 +59172,10 @@ impl ::core::default::Default for MemoryMapPlacedInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure for MemoryMapPlacedInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for MemoryMapPlacedInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_MAP_PLACED_INFO_EXT; } -unsafe impl<'a> Extends> for MemoryMapPlacedInfoEXT<'a> {} +unsafe impl<'a> Extends<'a, MemoryMapInfoKHR<'a>> for MemoryMapPlacedInfoEXT<'a> {} impl<'a> MemoryMapPlacedInfoEXT<'a> { #[inline] pub fn placed_address(mut self, placed_address: *mut c_void) -> Self { @@ -58812,15 +59207,15 @@ impl ::core::default::Default for PhysicalDeviceRawAccessChainsFeaturesNV<'_> { } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceRawAccessChainsFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRawAccessChainsFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceRawAccessChainsFeaturesNV<'a> { } -unsafe impl<'a> Extends> for PhysicalDeviceRawAccessChainsFeaturesNV<'a> {} +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceRawAccessChainsFeaturesNV<'a> {} impl<'a> PhysicalDeviceRawAccessChainsFeaturesNV<'a> { #[inline] pub fn shader_raw_access_chains(mut self, shader_raw_access_chains: bool) -> Self { @@ -58852,15 +59247,15 @@ impl ::core::default::Default for PhysicalDeviceCommandBufferInheritanceFeatures } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { } @@ -58895,15 +59290,15 @@ impl ::core::default::Default for PhysicalDeviceImageAlignmentControlFeaturesMES } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> { } @@ -58938,11 +59333,11 @@ impl ::core::default::Default for PhysicalDeviceImageAlignmentControlPropertiesM } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceProperties2<'a>> for PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> { } @@ -58977,10 +59372,10 @@ impl ::core::default::Default for ImageAlignmentControlCreateInfoMESA<'_> { } } } -unsafe impl<'a> TaggedStructure for ImageAlignmentControlCreateInfoMESA<'a> { +unsafe impl<'a> TaggedStructure<'a> for ImageAlignmentControlCreateInfoMESA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA; } -unsafe impl<'a> Extends> for ImageAlignmentControlCreateInfoMESA<'a> {} +unsafe impl<'a> Extends<'a, ImageCreateInfo<'a>> for ImageAlignmentControlCreateInfoMESA<'a> {} impl<'a> ImageAlignmentControlCreateInfoMESA<'a> { #[inline] pub fn maximum_requested_alignment(mut self, maximum_requested_alignment: u32) -> Self { @@ -59012,15 +59407,15 @@ impl ::core::default::Default for PhysicalDeviceShaderReplicatedCompositesFeatur } } } -unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT; } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, PhysicalDeviceFeatures2<'a>> for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> { } -unsafe impl<'a> Extends> +unsafe impl<'a> Extends<'a, DeviceCreateInfo<'a>> for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> { } diff --git a/ash/src/vk/native.rs b/ash/src/vk/native.rs index a44e9b7c8..9abd8ae4a 100644 --- a/ash/src/vk/native.rs +++ b/ash/src/vk/native.rs @@ -90,7 +90,7 @@ pub const StdVideoH264ChromaFormatIdc_STD_VIDEO_H264_CHROMA_FORMAT_IDC_444: StdVideoH264ChromaFormatIdc = 3; pub const StdVideoH264ChromaFormatIdc_STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID: StdVideoH264ChromaFormatIdc = 2147483647; -pub type StdVideoH264ChromaFormatIdc = ::core::ffi::c_uint; +pub type StdVideoH264ChromaFormatIdc = ::core::ffi::c_int; pub const StdVideoH264ProfileIdc_STD_VIDEO_H264_PROFILE_IDC_BASELINE: StdVideoH264ProfileIdc = 66; pub const StdVideoH264ProfileIdc_STD_VIDEO_H264_PROFILE_IDC_MAIN: StdVideoH264ProfileIdc = 77; pub const StdVideoH264ProfileIdc_STD_VIDEO_H264_PROFILE_IDC_HIGH: StdVideoH264ProfileIdc = 100; @@ -98,7 +98,7 @@ pub const StdVideoH264ProfileIdc_STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE: StdVideoH264ProfileIdc = 244; pub const StdVideoH264ProfileIdc_STD_VIDEO_H264_PROFILE_IDC_INVALID: StdVideoH264ProfileIdc = 2147483647; -pub type StdVideoH264ProfileIdc = ::core::ffi::c_uint; +pub type StdVideoH264ProfileIdc = ::core::ffi::c_int; pub const StdVideoH264LevelIdc_STD_VIDEO_H264_LEVEL_IDC_1_0: StdVideoH264LevelIdc = 0; pub const StdVideoH264LevelIdc_STD_VIDEO_H264_LEVEL_IDC_1_1: StdVideoH264LevelIdc = 1; pub const StdVideoH264LevelIdc_STD_VIDEO_H264_LEVEL_IDC_1_2: StdVideoH264LevelIdc = 2; @@ -119,12 +119,12 @@ pub const StdVideoH264LevelIdc_STD_VIDEO_H264_LEVEL_IDC_6_0: StdVideoH264LevelId pub const StdVideoH264LevelIdc_STD_VIDEO_H264_LEVEL_IDC_6_1: StdVideoH264LevelIdc = 17; pub const StdVideoH264LevelIdc_STD_VIDEO_H264_LEVEL_IDC_6_2: StdVideoH264LevelIdc = 18; pub const StdVideoH264LevelIdc_STD_VIDEO_H264_LEVEL_IDC_INVALID: StdVideoH264LevelIdc = 2147483647; -pub type StdVideoH264LevelIdc = ::core::ffi::c_uint; +pub type StdVideoH264LevelIdc = ::core::ffi::c_int; pub const StdVideoH264PocType_STD_VIDEO_H264_POC_TYPE_0: StdVideoH264PocType = 0; pub const StdVideoH264PocType_STD_VIDEO_H264_POC_TYPE_1: StdVideoH264PocType = 1; pub const StdVideoH264PocType_STD_VIDEO_H264_POC_TYPE_2: StdVideoH264PocType = 2; pub const StdVideoH264PocType_STD_VIDEO_H264_POC_TYPE_INVALID: StdVideoH264PocType = 2147483647; -pub type StdVideoH264PocType = ::core::ffi::c_uint; +pub type StdVideoH264PocType = ::core::ffi::c_int; pub const StdVideoH264AspectRatioIdc_STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED: StdVideoH264AspectRatioIdc = 0; pub const StdVideoH264AspectRatioIdc_STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE: @@ -163,7 +163,7 @@ pub const StdVideoH264AspectRatioIdc_STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SA StdVideoH264AspectRatioIdc = 255; pub const StdVideoH264AspectRatioIdc_STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID: StdVideoH264AspectRatioIdc = 2147483647; -pub type StdVideoH264AspectRatioIdc = ::core::ffi::c_uint; +pub type StdVideoH264AspectRatioIdc = ::core::ffi::c_int; pub const StdVideoH264WeightedBipredIdc_STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT: StdVideoH264WeightedBipredIdc = 0; pub const StdVideoH264WeightedBipredIdc_STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT: @@ -172,14 +172,14 @@ pub const StdVideoH264WeightedBipredIdc_STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLI StdVideoH264WeightedBipredIdc = 2; pub const StdVideoH264WeightedBipredIdc_STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID: StdVideoH264WeightedBipredIdc = 2147483647; -pub type StdVideoH264WeightedBipredIdc = ::core::ffi::c_uint; +pub type StdVideoH264WeightedBipredIdc = ::core::ffi::c_int; pub const StdVideoH264ModificationOfPicNumsIdc_STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT : StdVideoH264ModificationOfPicNumsIdc = 0 ; pub const StdVideoH264ModificationOfPicNumsIdc_STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD : StdVideoH264ModificationOfPicNumsIdc = 1 ; pub const StdVideoH264ModificationOfPicNumsIdc_STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM : StdVideoH264ModificationOfPicNumsIdc = 2 ; pub const StdVideoH264ModificationOfPicNumsIdc_STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END: StdVideoH264ModificationOfPicNumsIdc = 3; pub const StdVideoH264ModificationOfPicNumsIdc_STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID : StdVideoH264ModificationOfPicNumsIdc = 2147483647 ; -pub type StdVideoH264ModificationOfPicNumsIdc = ::core::ffi::c_uint; +pub type StdVideoH264ModificationOfPicNumsIdc = ::core::ffi::c_int; pub const StdVideoH264MemMgmtControlOp_STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END: StdVideoH264MemMgmtControlOp = 0; pub const StdVideoH264MemMgmtControlOp_STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM: @@ -194,31 +194,31 @@ pub const StdVideoH264MemMgmtControlOp_STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK pub const StdVideoH264MemMgmtControlOp_STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM : StdVideoH264MemMgmtControlOp = 6 ; pub const StdVideoH264MemMgmtControlOp_STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID: StdVideoH264MemMgmtControlOp = 2147483647; -pub type StdVideoH264MemMgmtControlOp = ::core::ffi::c_uint; +pub type StdVideoH264MemMgmtControlOp = ::core::ffi::c_int; pub const StdVideoH264CabacInitIdc_STD_VIDEO_H264_CABAC_INIT_IDC_0: StdVideoH264CabacInitIdc = 0; pub const StdVideoH264CabacInitIdc_STD_VIDEO_H264_CABAC_INIT_IDC_1: StdVideoH264CabacInitIdc = 1; pub const StdVideoH264CabacInitIdc_STD_VIDEO_H264_CABAC_INIT_IDC_2: StdVideoH264CabacInitIdc = 2; pub const StdVideoH264CabacInitIdc_STD_VIDEO_H264_CABAC_INIT_IDC_INVALID: StdVideoH264CabacInitIdc = 2147483647; -pub type StdVideoH264CabacInitIdc = ::core::ffi::c_uint; +pub type StdVideoH264CabacInitIdc = ::core::ffi::c_int; pub const StdVideoH264DisableDeblockingFilterIdc_STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED : StdVideoH264DisableDeblockingFilterIdc = 0 ; pub const StdVideoH264DisableDeblockingFilterIdc_STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED : StdVideoH264DisableDeblockingFilterIdc = 1 ; pub const StdVideoH264DisableDeblockingFilterIdc_STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL : StdVideoH264DisableDeblockingFilterIdc = 2 ; pub const StdVideoH264DisableDeblockingFilterIdc_STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID : StdVideoH264DisableDeblockingFilterIdc = 2147483647 ; -pub type StdVideoH264DisableDeblockingFilterIdc = ::core::ffi::c_uint; +pub type StdVideoH264DisableDeblockingFilterIdc = ::core::ffi::c_int; pub const StdVideoH264SliceType_STD_VIDEO_H264_SLICE_TYPE_P: StdVideoH264SliceType = 0; pub const StdVideoH264SliceType_STD_VIDEO_H264_SLICE_TYPE_B: StdVideoH264SliceType = 1; pub const StdVideoH264SliceType_STD_VIDEO_H264_SLICE_TYPE_I: StdVideoH264SliceType = 2; pub const StdVideoH264SliceType_STD_VIDEO_H264_SLICE_TYPE_INVALID: StdVideoH264SliceType = 2147483647; -pub type StdVideoH264SliceType = ::core::ffi::c_uint; +pub type StdVideoH264SliceType = ::core::ffi::c_int; pub const StdVideoH264PictureType_STD_VIDEO_H264_PICTURE_TYPE_P: StdVideoH264PictureType = 0; pub const StdVideoH264PictureType_STD_VIDEO_H264_PICTURE_TYPE_B: StdVideoH264PictureType = 1; pub const StdVideoH264PictureType_STD_VIDEO_H264_PICTURE_TYPE_I: StdVideoH264PictureType = 2; pub const StdVideoH264PictureType_STD_VIDEO_H264_PICTURE_TYPE_IDR: StdVideoH264PictureType = 5; pub const StdVideoH264PictureType_STD_VIDEO_H264_PICTURE_TYPE_INVALID: StdVideoH264PictureType = 2147483647; -pub type StdVideoH264PictureType = ::core::ffi::c_uint; +pub type StdVideoH264PictureType = ::core::ffi::c_int; #[repr(C)] #[repr(align(4))] #[derive(Debug, Copy, Clone)] @@ -2194,7 +2194,7 @@ pub const StdVideoH265ChromaFormatIdc_STD_VIDEO_H265_CHROMA_FORMAT_IDC_444: StdVideoH265ChromaFormatIdc = 3; pub const StdVideoH265ChromaFormatIdc_STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID: StdVideoH265ChromaFormatIdc = 2147483647; -pub type StdVideoH265ChromaFormatIdc = ::core::ffi::c_uint; +pub type StdVideoH265ChromaFormatIdc = ::core::ffi::c_int; pub const StdVideoH265ProfileIdc_STD_VIDEO_H265_PROFILE_IDC_MAIN: StdVideoH265ProfileIdc = 1; pub const StdVideoH265ProfileIdc_STD_VIDEO_H265_PROFILE_IDC_MAIN_10: StdVideoH265ProfileIdc = 2; pub const StdVideoH265ProfileIdc_STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE: @@ -2205,7 +2205,7 @@ pub const StdVideoH265ProfileIdc_STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS: StdV 9; pub const StdVideoH265ProfileIdc_STD_VIDEO_H265_PROFILE_IDC_INVALID: StdVideoH265ProfileIdc = 2147483647; -pub type StdVideoH265ProfileIdc = ::core::ffi::c_uint; +pub type StdVideoH265ProfileIdc = ::core::ffi::c_int; pub const StdVideoH265LevelIdc_STD_VIDEO_H265_LEVEL_IDC_1_0: StdVideoH265LevelIdc = 0; pub const StdVideoH265LevelIdc_STD_VIDEO_H265_LEVEL_IDC_2_0: StdVideoH265LevelIdc = 1; pub const StdVideoH265LevelIdc_STD_VIDEO_H265_LEVEL_IDC_2_1: StdVideoH265LevelIdc = 2; @@ -2220,20 +2220,20 @@ pub const StdVideoH265LevelIdc_STD_VIDEO_H265_LEVEL_IDC_6_0: StdVideoH265LevelId pub const StdVideoH265LevelIdc_STD_VIDEO_H265_LEVEL_IDC_6_1: StdVideoH265LevelIdc = 11; pub const StdVideoH265LevelIdc_STD_VIDEO_H265_LEVEL_IDC_6_2: StdVideoH265LevelIdc = 12; pub const StdVideoH265LevelIdc_STD_VIDEO_H265_LEVEL_IDC_INVALID: StdVideoH265LevelIdc = 2147483647; -pub type StdVideoH265LevelIdc = ::core::ffi::c_uint; +pub type StdVideoH265LevelIdc = ::core::ffi::c_int; pub const StdVideoH265SliceType_STD_VIDEO_H265_SLICE_TYPE_B: StdVideoH265SliceType = 0; pub const StdVideoH265SliceType_STD_VIDEO_H265_SLICE_TYPE_P: StdVideoH265SliceType = 1; pub const StdVideoH265SliceType_STD_VIDEO_H265_SLICE_TYPE_I: StdVideoH265SliceType = 2; pub const StdVideoH265SliceType_STD_VIDEO_H265_SLICE_TYPE_INVALID: StdVideoH265SliceType = 2147483647; -pub type StdVideoH265SliceType = ::core::ffi::c_uint; +pub type StdVideoH265SliceType = ::core::ffi::c_int; pub const StdVideoH265PictureType_STD_VIDEO_H265_PICTURE_TYPE_P: StdVideoH265PictureType = 0; pub const StdVideoH265PictureType_STD_VIDEO_H265_PICTURE_TYPE_B: StdVideoH265PictureType = 1; pub const StdVideoH265PictureType_STD_VIDEO_H265_PICTURE_TYPE_I: StdVideoH265PictureType = 2; pub const StdVideoH265PictureType_STD_VIDEO_H265_PICTURE_TYPE_IDR: StdVideoH265PictureType = 3; pub const StdVideoH265PictureType_STD_VIDEO_H265_PICTURE_TYPE_INVALID: StdVideoH265PictureType = 2147483647; -pub type StdVideoH265PictureType = ::core::ffi::c_uint; +pub type StdVideoH265PictureType = ::core::ffi::c_int; pub const StdVideoH265AspectRatioIdc_STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED: StdVideoH265AspectRatioIdc = 0; pub const StdVideoH265AspectRatioIdc_STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE: @@ -2272,7 +2272,7 @@ pub const StdVideoH265AspectRatioIdc_STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SA StdVideoH265AspectRatioIdc = 255; pub const StdVideoH265AspectRatioIdc_STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID: StdVideoH265AspectRatioIdc = 2147483647; -pub type StdVideoH265AspectRatioIdc = ::core::ffi::c_uint; +pub type StdVideoH265AspectRatioIdc = ::core::ffi::c_int; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct StdVideoH265DecPicBufMgr { @@ -6605,7 +6605,7 @@ pub const StdVideoAV1Profile_STD_VIDEO_AV1_PROFILE_MAIN: StdVideoAV1Profile = 0; pub const StdVideoAV1Profile_STD_VIDEO_AV1_PROFILE_HIGH: StdVideoAV1Profile = 1; pub const StdVideoAV1Profile_STD_VIDEO_AV1_PROFILE_PROFESSIONAL: StdVideoAV1Profile = 2; pub const StdVideoAV1Profile_STD_VIDEO_AV1_PROFILE_INVALID: StdVideoAV1Profile = 2147483647; -pub type StdVideoAV1Profile = ::core::ffi::c_uint; +pub type StdVideoAV1Profile = ::core::ffi::c_int; pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_2_0: StdVideoAV1Level = 0; pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_2_1: StdVideoAV1Level = 1; pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_2_2: StdVideoAV1Level = 2; @@ -6631,13 +6631,13 @@ pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_7_1: StdVideoAV1Level = 21; pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_7_2: StdVideoAV1Level = 22; pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_7_3: StdVideoAV1Level = 23; pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_INVALID: StdVideoAV1Level = 2147483647; -pub type StdVideoAV1Level = ::core::ffi::c_uint; +pub type StdVideoAV1Level = ::core::ffi::c_int; pub const StdVideoAV1FrameType_STD_VIDEO_AV1_FRAME_TYPE_KEY: StdVideoAV1FrameType = 0; pub const StdVideoAV1FrameType_STD_VIDEO_AV1_FRAME_TYPE_INTER: StdVideoAV1FrameType = 1; pub const StdVideoAV1FrameType_STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY: StdVideoAV1FrameType = 2; pub const StdVideoAV1FrameType_STD_VIDEO_AV1_FRAME_TYPE_SWITCH: StdVideoAV1FrameType = 3; pub const StdVideoAV1FrameType_STD_VIDEO_AV1_FRAME_TYPE_INVALID: StdVideoAV1FrameType = 2147483647; -pub type StdVideoAV1FrameType = ::core::ffi::c_uint; +pub type StdVideoAV1FrameType = ::core::ffi::c_int; pub const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP: StdVideoAV1InterpolationFilter = 0; pub const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH: @@ -6650,12 +6650,12 @@ pub const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_SWIT StdVideoAV1InterpolationFilter = 4; pub const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID: StdVideoAV1InterpolationFilter = 2147483647; -pub type StdVideoAV1InterpolationFilter = ::core::ffi::c_uint; +pub type StdVideoAV1InterpolationFilter = ::core::ffi::c_int; pub const StdVideoAV1TxMode_STD_VIDEO_AV1_TX_MODE_ONLY_4X4: StdVideoAV1TxMode = 0; pub const StdVideoAV1TxMode_STD_VIDEO_AV1_TX_MODE_LARGEST: StdVideoAV1TxMode = 1; pub const StdVideoAV1TxMode_STD_VIDEO_AV1_TX_MODE_SELECT: StdVideoAV1TxMode = 2; pub const StdVideoAV1TxMode_STD_VIDEO_AV1_TX_MODE_INVALID: StdVideoAV1TxMode = 2147483647; -pub type StdVideoAV1TxMode = ::core::ffi::c_uint; +pub type StdVideoAV1TxMode = ::core::ffi::c_int; pub const StdVideoAV1FrameRestorationType_STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE: StdVideoAV1FrameRestorationType = 0; pub const StdVideoAV1FrameRestorationType_STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER: @@ -6666,7 +6666,7 @@ pub const StdVideoAV1FrameRestorationType_STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_S StdVideoAV1FrameRestorationType = 3; pub const StdVideoAV1FrameRestorationType_STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID: StdVideoAV1FrameRestorationType = 2147483647; -pub type StdVideoAV1FrameRestorationType = ::core::ffi::c_uint; +pub type StdVideoAV1FrameRestorationType = ::core::ffi::c_int; pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709: StdVideoAV1ColorPrimaries = 1; pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED: @@ -6693,7 +6693,7 @@ pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213: StdVideoAV1ColorPrimaries = 22; pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID: StdVideoAV1ColorPrimaries = 2147483647; -pub type StdVideoAV1ColorPrimaries = ::core::ffi::c_uint; +pub type StdVideoAV1ColorPrimaries = ::core::ffi::c_int; pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_0: StdVideoAV1TransferCharacteristics = 0; pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_709: @@ -6731,7 +6731,7 @@ pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERIST StdVideoAV1TransferCharacteristics = 18; pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID: StdVideoAV1TransferCharacteristics = 2147483647; -pub type StdVideoAV1TransferCharacteristics = ::core::ffi::c_uint; +pub type StdVideoAV1TransferCharacteristics = ::core::ffi::c_int; pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_IDENTITY: StdVideoAV1MatrixCoefficients = 0; pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_709: @@ -6764,7 +6764,7 @@ pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_ICTCP: StdVideoAV1MatrixCoefficients = 14; pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_INVALID: StdVideoAV1MatrixCoefficients = 2147483647; -pub type StdVideoAV1MatrixCoefficients = ::core::ffi::c_uint; +pub type StdVideoAV1MatrixCoefficients = ::core::ffi::c_int; pub const StdVideoAV1ChromaSamplePosition_STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN: StdVideoAV1ChromaSamplePosition = 0; pub const StdVideoAV1ChromaSamplePosition_STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL: @@ -6775,7 +6775,7 @@ pub const StdVideoAV1ChromaSamplePosition_STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_R StdVideoAV1ChromaSamplePosition = 3; pub const StdVideoAV1ChromaSamplePosition_STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID: StdVideoAV1ChromaSamplePosition = 2147483647; -pub type StdVideoAV1ChromaSamplePosition = ::core::ffi::c_uint; +pub type StdVideoAV1ChromaSamplePosition = ::core::ffi::c_int; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct StdVideoAV1ColorConfigFlags { diff --git a/ash/src/vk/prelude.rs b/ash/src/vk/prelude.rs index 3a662594e..a3739ba15 100644 --- a/ash/src/vk/prelude.rs +++ b/ash/src/vk/prelude.rs @@ -60,8 +60,14 @@ impl From for vk::Rect2D { /// Structures implementing this trait are layout-compatible with [`vk::BaseInStructure`] and /// [`vk::BaseOutStructure`]. Such structures have an `s_type` field indicating its type, which /// must always match the value of [`TaggedStructure::STRUCTURE_TYPE`]. -pub unsafe trait TaggedStructure { +pub unsafe trait TaggedStructure<'a> { const STRUCTURE_TYPE: vk::StructureType; + fn as_base_mut(&mut self) -> &mut vk::BaseOutStructure<'a> { + unsafe { &mut *(<*mut Self>::cast(self) as *mut vk::BaseOutStructure<'a>) } + } + fn as_base(&self) -> &vk::BaseInStructure<'a> { + unsafe { &*(<*const Self>::cast(self) as *const vk::BaseInStructure<'a>) } + } } #[inline] diff --git a/generator/src/lib.rs b/generator/src/lib.rs index b2c0e884d..346a7f2a9 100644 --- a/generator/src/lib.rs +++ b/generator/src/lib.rs @@ -2333,9 +2333,10 @@ fn derive_getters_and_setters( .iter() .flat_map(|extends| extends.split(',')) .map(|extends| { + assert!(lifetime.is_some()); let extends = name_to_tokens(extends); // Extension structs always have a pNext, and therefore always have a lifetime. - quote!(unsafe impl<'a> Extends<#extends<'a>> for #name<'a> {}) + quote!(unsafe impl<'a> Extends<'a, #extends<'a>> for #name<'a> {}) }); let impl_structure_type_trait = structure_type_field.map(|member| { @@ -2348,8 +2349,9 @@ fn derive_getters_and_setters( assert!(!value.contains(',')); let value = variant_ident("VkStructureType", value); + assert!(lifetime.is_some()); quote! { - unsafe impl #lifetime TaggedStructure for #name #lifetime { + unsafe impl<'a> TaggedStructure <'a> for #name <'a> { const STRUCTURE_TYPE: StructureType = StructureType::#value; } } From 12a512c0307fe5911467306fef66eb27d9715f3e Mon Sep 17 00:00:00 2001 From: Zhixing Zhang Date: Wed, 16 Oct 2024 04:02:31 -0700 Subject: [PATCH 5/7] Simplify --- ash/src/util.rs | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/ash/src/util.rs b/ash/src/util.rs index 10d4c5baa..30f8b7ffc 100644 --- a/ash/src/util.rs +++ b/ash/src/util.rs @@ -311,12 +311,6 @@ impl<'a> TaggedObject<'a> { pub unsafe fn from_raw_mut(obj: *mut vk::BaseOutStructure<'a>) -> &'a mut Self { &mut *(obj as *mut Self) } - pub fn base_structure(&self) -> &vk::BaseInStructure<'a> { - unsafe { &self.input } - } - pub fn base_structure_mut(&mut self) -> &mut vk::BaseOutStructure<'a> { - unsafe { &mut self.output } - } pub fn from_ref + ?Sized>(obj: &T) -> &Self { unsafe { &*(<*const T>::cast(obj)) } @@ -326,7 +320,7 @@ impl<'a> TaggedObject<'a> { unsafe { &mut *(<*mut T>::cast(obj)) } } pub fn tag(&self) -> vk::StructureType { - self.base_structure().s_type + self.as_base().s_type } pub fn downcast_ref>(&self) -> Option<&T> { unsafe { From da17384ff412d87ba298d68382ada9b597eb2ece Mon Sep 17 00:00:00 2001 From: Zhixing Zhang Date: Fri, 18 Oct 2024 13:11:43 -0700 Subject: [PATCH 6/7] Bump to 1.75.0 --- .github/workflows/ci.yml | 2 +- ash-rewrite/Cargo.toml | 2 +- ash-window/Cargo.toml | 2 +- ash/Cargo.toml | 2 +- ash/src/util.rs | 22 +++++++++++++++++++--- ash/src/vk/prelude.rs | 11 +++++++---- 6 files changed, 30 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8b8cd2937..420a3f8f5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@1.69.0 + - uses: dtolnay/rust-toolchain@1.75.0 - name: Check ash, ash-window and ash-rewrite run: cargo check -p ash -p ash-rewrite -p ash-window --all-features - name: Check ash with no_std diff --git a/ash-rewrite/Cargo.toml b/ash-rewrite/Cargo.toml index 77cdc05e4..852659e7a 100644 --- a/ash-rewrite/Cargo.toml +++ b/ash-rewrite/Cargo.toml @@ -18,7 +18,7 @@ categories = [ documentation = "https://docs.rs/ash" edition = "2021" # TODO: reevaluate, then update in ci.yml -rust-version = "1.69.0" +rust-version = "1.75.0" [dependencies] libloading = { version = "0.8", optional = true } diff --git a/ash-window/Cargo.toml b/ash-window/Cargo.toml index fc04e14a1..d57733d67 100644 --- a/ash-window/Cargo.toml +++ b/ash-window/Cargo.toml @@ -16,7 +16,7 @@ categories = [ "rendering::graphics-api" ] edition = "2021" -rust-version = "1.69.0" +rust-version = "1.75.0" [dependencies] ash = { path = "../ash", version = "0.38", default-features = false, features = ["std"] } diff --git a/ash/Cargo.toml b/ash/Cargo.toml index f0400b0a7..73e018662 100644 --- a/ash/Cargo.toml +++ b/ash/Cargo.toml @@ -19,7 +19,7 @@ categories = [ "rendering::graphics-api" ] edition = "2021" -rust-version = "1.69.0" +rust-version = "1.75.0" [dependencies] libloading = { version = "0.8", optional = true } diff --git a/ash/src/util.rs b/ash/src/util.rs index 30f8b7ffc..b84f40674 100644 --- a/ash/src/util.rs +++ b/ash/src/util.rs @@ -185,8 +185,8 @@ pub trait NextChainExt<'a>: TaggedStructure<'a> { self } /// Returns a mutable iterator over the entire extension chain attached to `Self` - fn iter_next_chain_mut(&'a mut self) -> impl Iterator> + 'a { - (0..).scan(self.as_base_mut().p_next, |p_ptr, _| unsafe { + fn iter_next_chain_mut(&mut self) -> impl Iterator> { + (0..).scan(self.as_base_mut().p_next, move |p_ptr, _| unsafe { if p_ptr.is_null() { return None; } @@ -197,7 +197,7 @@ pub trait NextChainExt<'a>: TaggedStructure<'a> { }) } /// Returns an iterator over the entire extension chain attached to `Self` - fn iter_next_chain(&'a self) -> impl Iterator> + 'a { + fn iter_next_chain(&self) -> impl Iterator> { (0..).scan(self.as_base().p_next, |p_ptr, _| unsafe { if p_ptr.is_null() { return None; @@ -319,6 +319,22 @@ impl<'a> TaggedObject<'a> { pub fn from_mut + ?Sized>(obj: &mut T) -> &mut Self { unsafe { &mut *(<*mut T>::cast(obj)) } } + pub fn next(&self) -> Option<&Self> { + unsafe { + if self.as_base().p_next.is_null() { + return None; + } + Some(TaggedObject::from_raw(self.as_base().p_next)) + } + } + pub fn next_mut(&mut self) -> Option<&mut Self> { + unsafe { + if self.as_base().p_next.is_null() { + return None; + } + Some(TaggedObject::from_raw_mut(self.as_base_mut().p_next)) + } + } pub fn tag(&self) -> vk::StructureType { self.as_base().s_type } diff --git a/ash/src/vk/prelude.rs b/ash/src/vk/prelude.rs index a3739ba15..e60f02495 100644 --- a/ash/src/vk/prelude.rs +++ b/ash/src/vk/prelude.rs @@ -57,16 +57,19 @@ impl From for vk::Rect2D { } } +/// Marker trait for tagged vulkan structures. +/// /// Structures implementing this trait are layout-compatible with [`vk::BaseInStructure`] and -/// [`vk::BaseOutStructure`]. Such structures have an `s_type` field indicating its type, which -/// must always match the value of [`TaggedStructure::STRUCTURE_TYPE`]. +/// [`vk::BaseOutStructure`]. Types implementing this trait have an `s_type` field indicating +/// its type, which must always match the value of [`TaggedStructure::STRUCTURE_TYPE`], unless +/// it is a [`crate::util::TaggedObject`]. pub unsafe trait TaggedStructure<'a> { const STRUCTURE_TYPE: vk::StructureType; fn as_base_mut(&mut self) -> &mut vk::BaseOutStructure<'a> { - unsafe { &mut *(<*mut Self>::cast(self) as *mut vk::BaseOutStructure<'a>) } + unsafe { &mut *(<*mut Self>::cast(self)) } } fn as_base(&self) -> &vk::BaseInStructure<'a> { - unsafe { &*(<*const Self>::cast(self) as *const vk::BaseInStructure<'a>) } + unsafe { &*(<*const Self>::cast(self)) } } } From b72490c724672c282b09d381ae8fc259ba30d5c1 Mon Sep 17 00:00:00 2001 From: Zhixing Zhang Date: Fri, 18 Oct 2024 13:30:19 -0700 Subject: [PATCH 7/7] fix --- ash/src/util.rs | 2 +- ash/src/vk/native.rs | 56 ++++++++++++++++++++++---------------------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/ash/src/util.rs b/ash/src/util.rs index b84f40674..e31886ba3 100644 --- a/ash/src/util.rs +++ b/ash/src/util.rs @@ -249,7 +249,7 @@ pub union TaggedObject<'a> { input: vk::BaseInStructure<'a>, } impl vk::StructureType { - const ASH_DYNAMIC: Self = Self(-1); + pub const ASH_DYNAMIC: Self = Self(-1); } /// [`TaggedObject`]s are layout-compatible with [`vk::BaseInStructure`] and diff --git a/ash/src/vk/native.rs b/ash/src/vk/native.rs index 9abd8ae4a..a44e9b7c8 100644 --- a/ash/src/vk/native.rs +++ b/ash/src/vk/native.rs @@ -90,7 +90,7 @@ pub const StdVideoH264ChromaFormatIdc_STD_VIDEO_H264_CHROMA_FORMAT_IDC_444: StdVideoH264ChromaFormatIdc = 3; pub const StdVideoH264ChromaFormatIdc_STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID: StdVideoH264ChromaFormatIdc = 2147483647; -pub type StdVideoH264ChromaFormatIdc = ::core::ffi::c_int; +pub type StdVideoH264ChromaFormatIdc = ::core::ffi::c_uint; pub const StdVideoH264ProfileIdc_STD_VIDEO_H264_PROFILE_IDC_BASELINE: StdVideoH264ProfileIdc = 66; pub const StdVideoH264ProfileIdc_STD_VIDEO_H264_PROFILE_IDC_MAIN: StdVideoH264ProfileIdc = 77; pub const StdVideoH264ProfileIdc_STD_VIDEO_H264_PROFILE_IDC_HIGH: StdVideoH264ProfileIdc = 100; @@ -98,7 +98,7 @@ pub const StdVideoH264ProfileIdc_STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE: StdVideoH264ProfileIdc = 244; pub const StdVideoH264ProfileIdc_STD_VIDEO_H264_PROFILE_IDC_INVALID: StdVideoH264ProfileIdc = 2147483647; -pub type StdVideoH264ProfileIdc = ::core::ffi::c_int; +pub type StdVideoH264ProfileIdc = ::core::ffi::c_uint; pub const StdVideoH264LevelIdc_STD_VIDEO_H264_LEVEL_IDC_1_0: StdVideoH264LevelIdc = 0; pub const StdVideoH264LevelIdc_STD_VIDEO_H264_LEVEL_IDC_1_1: StdVideoH264LevelIdc = 1; pub const StdVideoH264LevelIdc_STD_VIDEO_H264_LEVEL_IDC_1_2: StdVideoH264LevelIdc = 2; @@ -119,12 +119,12 @@ pub const StdVideoH264LevelIdc_STD_VIDEO_H264_LEVEL_IDC_6_0: StdVideoH264LevelId pub const StdVideoH264LevelIdc_STD_VIDEO_H264_LEVEL_IDC_6_1: StdVideoH264LevelIdc = 17; pub const StdVideoH264LevelIdc_STD_VIDEO_H264_LEVEL_IDC_6_2: StdVideoH264LevelIdc = 18; pub const StdVideoH264LevelIdc_STD_VIDEO_H264_LEVEL_IDC_INVALID: StdVideoH264LevelIdc = 2147483647; -pub type StdVideoH264LevelIdc = ::core::ffi::c_int; +pub type StdVideoH264LevelIdc = ::core::ffi::c_uint; pub const StdVideoH264PocType_STD_VIDEO_H264_POC_TYPE_0: StdVideoH264PocType = 0; pub const StdVideoH264PocType_STD_VIDEO_H264_POC_TYPE_1: StdVideoH264PocType = 1; pub const StdVideoH264PocType_STD_VIDEO_H264_POC_TYPE_2: StdVideoH264PocType = 2; pub const StdVideoH264PocType_STD_VIDEO_H264_POC_TYPE_INVALID: StdVideoH264PocType = 2147483647; -pub type StdVideoH264PocType = ::core::ffi::c_int; +pub type StdVideoH264PocType = ::core::ffi::c_uint; pub const StdVideoH264AspectRatioIdc_STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED: StdVideoH264AspectRatioIdc = 0; pub const StdVideoH264AspectRatioIdc_STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE: @@ -163,7 +163,7 @@ pub const StdVideoH264AspectRatioIdc_STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SA StdVideoH264AspectRatioIdc = 255; pub const StdVideoH264AspectRatioIdc_STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID: StdVideoH264AspectRatioIdc = 2147483647; -pub type StdVideoH264AspectRatioIdc = ::core::ffi::c_int; +pub type StdVideoH264AspectRatioIdc = ::core::ffi::c_uint; pub const StdVideoH264WeightedBipredIdc_STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT: StdVideoH264WeightedBipredIdc = 0; pub const StdVideoH264WeightedBipredIdc_STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT: @@ -172,14 +172,14 @@ pub const StdVideoH264WeightedBipredIdc_STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLI StdVideoH264WeightedBipredIdc = 2; pub const StdVideoH264WeightedBipredIdc_STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID: StdVideoH264WeightedBipredIdc = 2147483647; -pub type StdVideoH264WeightedBipredIdc = ::core::ffi::c_int; +pub type StdVideoH264WeightedBipredIdc = ::core::ffi::c_uint; pub const StdVideoH264ModificationOfPicNumsIdc_STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT : StdVideoH264ModificationOfPicNumsIdc = 0 ; pub const StdVideoH264ModificationOfPicNumsIdc_STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD : StdVideoH264ModificationOfPicNumsIdc = 1 ; pub const StdVideoH264ModificationOfPicNumsIdc_STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM : StdVideoH264ModificationOfPicNumsIdc = 2 ; pub const StdVideoH264ModificationOfPicNumsIdc_STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END: StdVideoH264ModificationOfPicNumsIdc = 3; pub const StdVideoH264ModificationOfPicNumsIdc_STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID : StdVideoH264ModificationOfPicNumsIdc = 2147483647 ; -pub type StdVideoH264ModificationOfPicNumsIdc = ::core::ffi::c_int; +pub type StdVideoH264ModificationOfPicNumsIdc = ::core::ffi::c_uint; pub const StdVideoH264MemMgmtControlOp_STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END: StdVideoH264MemMgmtControlOp = 0; pub const StdVideoH264MemMgmtControlOp_STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM: @@ -194,31 +194,31 @@ pub const StdVideoH264MemMgmtControlOp_STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK pub const StdVideoH264MemMgmtControlOp_STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM : StdVideoH264MemMgmtControlOp = 6 ; pub const StdVideoH264MemMgmtControlOp_STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID: StdVideoH264MemMgmtControlOp = 2147483647; -pub type StdVideoH264MemMgmtControlOp = ::core::ffi::c_int; +pub type StdVideoH264MemMgmtControlOp = ::core::ffi::c_uint; pub const StdVideoH264CabacInitIdc_STD_VIDEO_H264_CABAC_INIT_IDC_0: StdVideoH264CabacInitIdc = 0; pub const StdVideoH264CabacInitIdc_STD_VIDEO_H264_CABAC_INIT_IDC_1: StdVideoH264CabacInitIdc = 1; pub const StdVideoH264CabacInitIdc_STD_VIDEO_H264_CABAC_INIT_IDC_2: StdVideoH264CabacInitIdc = 2; pub const StdVideoH264CabacInitIdc_STD_VIDEO_H264_CABAC_INIT_IDC_INVALID: StdVideoH264CabacInitIdc = 2147483647; -pub type StdVideoH264CabacInitIdc = ::core::ffi::c_int; +pub type StdVideoH264CabacInitIdc = ::core::ffi::c_uint; pub const StdVideoH264DisableDeblockingFilterIdc_STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED : StdVideoH264DisableDeblockingFilterIdc = 0 ; pub const StdVideoH264DisableDeblockingFilterIdc_STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED : StdVideoH264DisableDeblockingFilterIdc = 1 ; pub const StdVideoH264DisableDeblockingFilterIdc_STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL : StdVideoH264DisableDeblockingFilterIdc = 2 ; pub const StdVideoH264DisableDeblockingFilterIdc_STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID : StdVideoH264DisableDeblockingFilterIdc = 2147483647 ; -pub type StdVideoH264DisableDeblockingFilterIdc = ::core::ffi::c_int; +pub type StdVideoH264DisableDeblockingFilterIdc = ::core::ffi::c_uint; pub const StdVideoH264SliceType_STD_VIDEO_H264_SLICE_TYPE_P: StdVideoH264SliceType = 0; pub const StdVideoH264SliceType_STD_VIDEO_H264_SLICE_TYPE_B: StdVideoH264SliceType = 1; pub const StdVideoH264SliceType_STD_VIDEO_H264_SLICE_TYPE_I: StdVideoH264SliceType = 2; pub const StdVideoH264SliceType_STD_VIDEO_H264_SLICE_TYPE_INVALID: StdVideoH264SliceType = 2147483647; -pub type StdVideoH264SliceType = ::core::ffi::c_int; +pub type StdVideoH264SliceType = ::core::ffi::c_uint; pub const StdVideoH264PictureType_STD_VIDEO_H264_PICTURE_TYPE_P: StdVideoH264PictureType = 0; pub const StdVideoH264PictureType_STD_VIDEO_H264_PICTURE_TYPE_B: StdVideoH264PictureType = 1; pub const StdVideoH264PictureType_STD_VIDEO_H264_PICTURE_TYPE_I: StdVideoH264PictureType = 2; pub const StdVideoH264PictureType_STD_VIDEO_H264_PICTURE_TYPE_IDR: StdVideoH264PictureType = 5; pub const StdVideoH264PictureType_STD_VIDEO_H264_PICTURE_TYPE_INVALID: StdVideoH264PictureType = 2147483647; -pub type StdVideoH264PictureType = ::core::ffi::c_int; +pub type StdVideoH264PictureType = ::core::ffi::c_uint; #[repr(C)] #[repr(align(4))] #[derive(Debug, Copy, Clone)] @@ -2194,7 +2194,7 @@ pub const StdVideoH265ChromaFormatIdc_STD_VIDEO_H265_CHROMA_FORMAT_IDC_444: StdVideoH265ChromaFormatIdc = 3; pub const StdVideoH265ChromaFormatIdc_STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID: StdVideoH265ChromaFormatIdc = 2147483647; -pub type StdVideoH265ChromaFormatIdc = ::core::ffi::c_int; +pub type StdVideoH265ChromaFormatIdc = ::core::ffi::c_uint; pub const StdVideoH265ProfileIdc_STD_VIDEO_H265_PROFILE_IDC_MAIN: StdVideoH265ProfileIdc = 1; pub const StdVideoH265ProfileIdc_STD_VIDEO_H265_PROFILE_IDC_MAIN_10: StdVideoH265ProfileIdc = 2; pub const StdVideoH265ProfileIdc_STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE: @@ -2205,7 +2205,7 @@ pub const StdVideoH265ProfileIdc_STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS: StdV 9; pub const StdVideoH265ProfileIdc_STD_VIDEO_H265_PROFILE_IDC_INVALID: StdVideoH265ProfileIdc = 2147483647; -pub type StdVideoH265ProfileIdc = ::core::ffi::c_int; +pub type StdVideoH265ProfileIdc = ::core::ffi::c_uint; pub const StdVideoH265LevelIdc_STD_VIDEO_H265_LEVEL_IDC_1_0: StdVideoH265LevelIdc = 0; pub const StdVideoH265LevelIdc_STD_VIDEO_H265_LEVEL_IDC_2_0: StdVideoH265LevelIdc = 1; pub const StdVideoH265LevelIdc_STD_VIDEO_H265_LEVEL_IDC_2_1: StdVideoH265LevelIdc = 2; @@ -2220,20 +2220,20 @@ pub const StdVideoH265LevelIdc_STD_VIDEO_H265_LEVEL_IDC_6_0: StdVideoH265LevelId pub const StdVideoH265LevelIdc_STD_VIDEO_H265_LEVEL_IDC_6_1: StdVideoH265LevelIdc = 11; pub const StdVideoH265LevelIdc_STD_VIDEO_H265_LEVEL_IDC_6_2: StdVideoH265LevelIdc = 12; pub const StdVideoH265LevelIdc_STD_VIDEO_H265_LEVEL_IDC_INVALID: StdVideoH265LevelIdc = 2147483647; -pub type StdVideoH265LevelIdc = ::core::ffi::c_int; +pub type StdVideoH265LevelIdc = ::core::ffi::c_uint; pub const StdVideoH265SliceType_STD_VIDEO_H265_SLICE_TYPE_B: StdVideoH265SliceType = 0; pub const StdVideoH265SliceType_STD_VIDEO_H265_SLICE_TYPE_P: StdVideoH265SliceType = 1; pub const StdVideoH265SliceType_STD_VIDEO_H265_SLICE_TYPE_I: StdVideoH265SliceType = 2; pub const StdVideoH265SliceType_STD_VIDEO_H265_SLICE_TYPE_INVALID: StdVideoH265SliceType = 2147483647; -pub type StdVideoH265SliceType = ::core::ffi::c_int; +pub type StdVideoH265SliceType = ::core::ffi::c_uint; pub const StdVideoH265PictureType_STD_VIDEO_H265_PICTURE_TYPE_P: StdVideoH265PictureType = 0; pub const StdVideoH265PictureType_STD_VIDEO_H265_PICTURE_TYPE_B: StdVideoH265PictureType = 1; pub const StdVideoH265PictureType_STD_VIDEO_H265_PICTURE_TYPE_I: StdVideoH265PictureType = 2; pub const StdVideoH265PictureType_STD_VIDEO_H265_PICTURE_TYPE_IDR: StdVideoH265PictureType = 3; pub const StdVideoH265PictureType_STD_VIDEO_H265_PICTURE_TYPE_INVALID: StdVideoH265PictureType = 2147483647; -pub type StdVideoH265PictureType = ::core::ffi::c_int; +pub type StdVideoH265PictureType = ::core::ffi::c_uint; pub const StdVideoH265AspectRatioIdc_STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED: StdVideoH265AspectRatioIdc = 0; pub const StdVideoH265AspectRatioIdc_STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE: @@ -2272,7 +2272,7 @@ pub const StdVideoH265AspectRatioIdc_STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SA StdVideoH265AspectRatioIdc = 255; pub const StdVideoH265AspectRatioIdc_STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID: StdVideoH265AspectRatioIdc = 2147483647; -pub type StdVideoH265AspectRatioIdc = ::core::ffi::c_int; +pub type StdVideoH265AspectRatioIdc = ::core::ffi::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct StdVideoH265DecPicBufMgr { @@ -6605,7 +6605,7 @@ pub const StdVideoAV1Profile_STD_VIDEO_AV1_PROFILE_MAIN: StdVideoAV1Profile = 0; pub const StdVideoAV1Profile_STD_VIDEO_AV1_PROFILE_HIGH: StdVideoAV1Profile = 1; pub const StdVideoAV1Profile_STD_VIDEO_AV1_PROFILE_PROFESSIONAL: StdVideoAV1Profile = 2; pub const StdVideoAV1Profile_STD_VIDEO_AV1_PROFILE_INVALID: StdVideoAV1Profile = 2147483647; -pub type StdVideoAV1Profile = ::core::ffi::c_int; +pub type StdVideoAV1Profile = ::core::ffi::c_uint; pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_2_0: StdVideoAV1Level = 0; pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_2_1: StdVideoAV1Level = 1; pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_2_2: StdVideoAV1Level = 2; @@ -6631,13 +6631,13 @@ pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_7_1: StdVideoAV1Level = 21; pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_7_2: StdVideoAV1Level = 22; pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_7_3: StdVideoAV1Level = 23; pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_INVALID: StdVideoAV1Level = 2147483647; -pub type StdVideoAV1Level = ::core::ffi::c_int; +pub type StdVideoAV1Level = ::core::ffi::c_uint; pub const StdVideoAV1FrameType_STD_VIDEO_AV1_FRAME_TYPE_KEY: StdVideoAV1FrameType = 0; pub const StdVideoAV1FrameType_STD_VIDEO_AV1_FRAME_TYPE_INTER: StdVideoAV1FrameType = 1; pub const StdVideoAV1FrameType_STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY: StdVideoAV1FrameType = 2; pub const StdVideoAV1FrameType_STD_VIDEO_AV1_FRAME_TYPE_SWITCH: StdVideoAV1FrameType = 3; pub const StdVideoAV1FrameType_STD_VIDEO_AV1_FRAME_TYPE_INVALID: StdVideoAV1FrameType = 2147483647; -pub type StdVideoAV1FrameType = ::core::ffi::c_int; +pub type StdVideoAV1FrameType = ::core::ffi::c_uint; pub const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP: StdVideoAV1InterpolationFilter = 0; pub const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH: @@ -6650,12 +6650,12 @@ pub const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_SWIT StdVideoAV1InterpolationFilter = 4; pub const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID: StdVideoAV1InterpolationFilter = 2147483647; -pub type StdVideoAV1InterpolationFilter = ::core::ffi::c_int; +pub type StdVideoAV1InterpolationFilter = ::core::ffi::c_uint; pub const StdVideoAV1TxMode_STD_VIDEO_AV1_TX_MODE_ONLY_4X4: StdVideoAV1TxMode = 0; pub const StdVideoAV1TxMode_STD_VIDEO_AV1_TX_MODE_LARGEST: StdVideoAV1TxMode = 1; pub const StdVideoAV1TxMode_STD_VIDEO_AV1_TX_MODE_SELECT: StdVideoAV1TxMode = 2; pub const StdVideoAV1TxMode_STD_VIDEO_AV1_TX_MODE_INVALID: StdVideoAV1TxMode = 2147483647; -pub type StdVideoAV1TxMode = ::core::ffi::c_int; +pub type StdVideoAV1TxMode = ::core::ffi::c_uint; pub const StdVideoAV1FrameRestorationType_STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE: StdVideoAV1FrameRestorationType = 0; pub const StdVideoAV1FrameRestorationType_STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER: @@ -6666,7 +6666,7 @@ pub const StdVideoAV1FrameRestorationType_STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_S StdVideoAV1FrameRestorationType = 3; pub const StdVideoAV1FrameRestorationType_STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID: StdVideoAV1FrameRestorationType = 2147483647; -pub type StdVideoAV1FrameRestorationType = ::core::ffi::c_int; +pub type StdVideoAV1FrameRestorationType = ::core::ffi::c_uint; pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709: StdVideoAV1ColorPrimaries = 1; pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED: @@ -6693,7 +6693,7 @@ pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213: StdVideoAV1ColorPrimaries = 22; pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID: StdVideoAV1ColorPrimaries = 2147483647; -pub type StdVideoAV1ColorPrimaries = ::core::ffi::c_int; +pub type StdVideoAV1ColorPrimaries = ::core::ffi::c_uint; pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_0: StdVideoAV1TransferCharacteristics = 0; pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_709: @@ -6731,7 +6731,7 @@ pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERIST StdVideoAV1TransferCharacteristics = 18; pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID: StdVideoAV1TransferCharacteristics = 2147483647; -pub type StdVideoAV1TransferCharacteristics = ::core::ffi::c_int; +pub type StdVideoAV1TransferCharacteristics = ::core::ffi::c_uint; pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_IDENTITY: StdVideoAV1MatrixCoefficients = 0; pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_709: @@ -6764,7 +6764,7 @@ pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_ICTCP: StdVideoAV1MatrixCoefficients = 14; pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_INVALID: StdVideoAV1MatrixCoefficients = 2147483647; -pub type StdVideoAV1MatrixCoefficients = ::core::ffi::c_int; +pub type StdVideoAV1MatrixCoefficients = ::core::ffi::c_uint; pub const StdVideoAV1ChromaSamplePosition_STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN: StdVideoAV1ChromaSamplePosition = 0; pub const StdVideoAV1ChromaSamplePosition_STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL: @@ -6775,7 +6775,7 @@ pub const StdVideoAV1ChromaSamplePosition_STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_R StdVideoAV1ChromaSamplePosition = 3; pub const StdVideoAV1ChromaSamplePosition_STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID: StdVideoAV1ChromaSamplePosition = 2147483647; -pub type StdVideoAV1ChromaSamplePosition = ::core::ffi::c_int; +pub type StdVideoAV1ChromaSamplePosition = ::core::ffi::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct StdVideoAV1ColorConfigFlags {