@@ -58,7 +58,7 @@ pub const API_VERSION_1_2: u32 = make_api_version(0, 1, 2, 0);
5858#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_API_VERSION_1_3.html>"]
5959pub const API_VERSION_1_3: u32 = make_api_version(0, 1, 3, 0);
6060#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_HEADER_VERSION.html>"]
61- pub const HEADER_VERSION: u32 = 299 ;
61+ pub const HEADER_VERSION: u32 = 300 ;
6262#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_HEADER_VERSION_COMPLETE.html>"]
6363pub const HEADER_VERSION_COMPLETE: u32 = make_api_version(0, 1, 3, HEADER_VERSION);
6464#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSampleMask.html>"]
@@ -59986,3 +59986,255 @@ impl DepthClampRangeEXT {
5998659986 self
5998759987 }
5998859988}
59989+ #[repr(C)]
59990+ #[cfg_attr(feature = "debug", derive(Debug))]
59991+ #[derive(Copy, Clone)]
59992+ #[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceCooperativeMatrix2FeaturesNV.html>"]
59993+ #[must_use]
59994+ pub struct PhysicalDeviceCooperativeMatrix2FeaturesNV<'a> {
59995+ pub s_type: StructureType,
59996+ pub p_next: *mut c_void,
59997+ pub cooperative_matrix_workgroup_scope: Bool32,
59998+ pub cooperative_matrix_flexible_dimensions: Bool32,
59999+ pub cooperative_matrix_reductions: Bool32,
60000+ pub cooperative_matrix_conversions: Bool32,
60001+ pub cooperative_matrix_per_element_operations: Bool32,
60002+ pub cooperative_matrix_tensor_addressing: Bool32,
60003+ pub cooperative_matrix_block_loads: Bool32,
60004+ pub _marker: PhantomData<&'a ()>,
60005+ }
60006+ unsafe impl Send for PhysicalDeviceCooperativeMatrix2FeaturesNV<'_> {}
60007+ unsafe impl Sync for PhysicalDeviceCooperativeMatrix2FeaturesNV<'_> {}
60008+ impl ::core::default::Default for PhysicalDeviceCooperativeMatrix2FeaturesNV<'_> {
60009+ #[inline]
60010+ fn default() -> Self {
60011+ Self {
60012+ s_type: Self::STRUCTURE_TYPE,
60013+ p_next: ::core::ptr::null_mut(),
60014+ cooperative_matrix_workgroup_scope: Bool32::default(),
60015+ cooperative_matrix_flexible_dimensions: Bool32::default(),
60016+ cooperative_matrix_reductions: Bool32::default(),
60017+ cooperative_matrix_conversions: Bool32::default(),
60018+ cooperative_matrix_per_element_operations: Bool32::default(),
60019+ cooperative_matrix_tensor_addressing: Bool32::default(),
60020+ cooperative_matrix_block_loads: Bool32::default(),
60021+ _marker: PhantomData,
60022+ }
60023+ }
60024+ }
60025+ unsafe impl<'a> TaggedStructure for PhysicalDeviceCooperativeMatrix2FeaturesNV<'a> {
60026+ const STRUCTURE_TYPE: StructureType =
60027+ StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV;
60028+ }
60029+ unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCooperativeMatrix2FeaturesNV<'_> {}
60030+ unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCooperativeMatrix2FeaturesNV<'_> {}
60031+ impl<'a> PhysicalDeviceCooperativeMatrix2FeaturesNV<'a> {
60032+ #[inline]
60033+ pub fn cooperative_matrix_workgroup_scope(
60034+ mut self,
60035+ cooperative_matrix_workgroup_scope: bool,
60036+ ) -> Self {
60037+ self.cooperative_matrix_workgroup_scope = cooperative_matrix_workgroup_scope.into();
60038+ self
60039+ }
60040+ #[inline]
60041+ pub fn cooperative_matrix_flexible_dimensions(
60042+ mut self,
60043+ cooperative_matrix_flexible_dimensions: bool,
60044+ ) -> Self {
60045+ self.cooperative_matrix_flexible_dimensions = cooperative_matrix_flexible_dimensions.into();
60046+ self
60047+ }
60048+ #[inline]
60049+ pub fn cooperative_matrix_reductions(mut self, cooperative_matrix_reductions: bool) -> Self {
60050+ self.cooperative_matrix_reductions = cooperative_matrix_reductions.into();
60051+ self
60052+ }
60053+ #[inline]
60054+ pub fn cooperative_matrix_conversions(mut self, cooperative_matrix_conversions: bool) -> Self {
60055+ self.cooperative_matrix_conversions = cooperative_matrix_conversions.into();
60056+ self
60057+ }
60058+ #[inline]
60059+ pub fn cooperative_matrix_per_element_operations(
60060+ mut self,
60061+ cooperative_matrix_per_element_operations: bool,
60062+ ) -> Self {
60063+ self.cooperative_matrix_per_element_operations =
60064+ cooperative_matrix_per_element_operations.into();
60065+ self
60066+ }
60067+ #[inline]
60068+ pub fn cooperative_matrix_tensor_addressing(
60069+ mut self,
60070+ cooperative_matrix_tensor_addressing: bool,
60071+ ) -> Self {
60072+ self.cooperative_matrix_tensor_addressing = cooperative_matrix_tensor_addressing.into();
60073+ self
60074+ }
60075+ #[inline]
60076+ pub fn cooperative_matrix_block_loads(mut self, cooperative_matrix_block_loads: bool) -> Self {
60077+ self.cooperative_matrix_block_loads = cooperative_matrix_block_loads.into();
60078+ self
60079+ }
60080+ }
60081+ #[repr(C)]
60082+ #[cfg_attr(feature = "debug", derive(Debug))]
60083+ #[derive(Copy, Clone)]
60084+ #[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceCooperativeMatrix2PropertiesNV.html>"]
60085+ #[must_use]
60086+ pub struct PhysicalDeviceCooperativeMatrix2PropertiesNV<'a> {
60087+ pub s_type: StructureType,
60088+ pub p_next: *mut c_void,
60089+ pub cooperative_matrix_workgroup_scope_max_workgroup_size: u32,
60090+ pub cooperative_matrix_flexible_dimensions_max_dimension: u32,
60091+ pub cooperative_matrix_workgroup_scope_reserved_shared_memory: u32,
60092+ pub _marker: PhantomData<&'a ()>,
60093+ }
60094+ unsafe impl Send for PhysicalDeviceCooperativeMatrix2PropertiesNV<'_> {}
60095+ unsafe impl Sync for PhysicalDeviceCooperativeMatrix2PropertiesNV<'_> {}
60096+ impl ::core::default::Default for PhysicalDeviceCooperativeMatrix2PropertiesNV<'_> {
60097+ #[inline]
60098+ fn default() -> Self {
60099+ Self {
60100+ s_type: Self::STRUCTURE_TYPE,
60101+ p_next: ::core::ptr::null_mut(),
60102+ cooperative_matrix_workgroup_scope_max_workgroup_size: u32::default(),
60103+ cooperative_matrix_flexible_dimensions_max_dimension: u32::default(),
60104+ cooperative_matrix_workgroup_scope_reserved_shared_memory: u32::default(),
60105+ _marker: PhantomData,
60106+ }
60107+ }
60108+ }
60109+ unsafe impl<'a> TaggedStructure for PhysicalDeviceCooperativeMatrix2PropertiesNV<'a> {
60110+ const STRUCTURE_TYPE: StructureType =
60111+ StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV;
60112+ }
60113+ unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceCooperativeMatrix2PropertiesNV<'_> {}
60114+ impl<'a> PhysicalDeviceCooperativeMatrix2PropertiesNV<'a> {
60115+ #[inline]
60116+ pub fn cooperative_matrix_workgroup_scope_max_workgroup_size(
60117+ mut self,
60118+ cooperative_matrix_workgroup_scope_max_workgroup_size: u32,
60119+ ) -> Self {
60120+ self.cooperative_matrix_workgroup_scope_max_workgroup_size =
60121+ cooperative_matrix_workgroup_scope_max_workgroup_size;
60122+ self
60123+ }
60124+ #[inline]
60125+ pub fn cooperative_matrix_flexible_dimensions_max_dimension(
60126+ mut self,
60127+ cooperative_matrix_flexible_dimensions_max_dimension: u32,
60128+ ) -> Self {
60129+ self.cooperative_matrix_flexible_dimensions_max_dimension =
60130+ cooperative_matrix_flexible_dimensions_max_dimension;
60131+ self
60132+ }
60133+ #[inline]
60134+ pub fn cooperative_matrix_workgroup_scope_reserved_shared_memory(
60135+ mut self,
60136+ cooperative_matrix_workgroup_scope_reserved_shared_memory: u32,
60137+ ) -> Self {
60138+ self.cooperative_matrix_workgroup_scope_reserved_shared_memory =
60139+ cooperative_matrix_workgroup_scope_reserved_shared_memory;
60140+ self
60141+ }
60142+ }
60143+ #[repr(C)]
60144+ #[cfg_attr(feature = "debug", derive(Debug))]
60145+ #[derive(Copy, Clone)]
60146+ #[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCooperativeMatrixFlexibleDimensionsPropertiesNV.html>"]
60147+ #[must_use]
60148+ pub struct CooperativeMatrixFlexibleDimensionsPropertiesNV<'a> {
60149+ pub s_type: StructureType,
60150+ pub p_next: *mut c_void,
60151+ pub m_granularity: u32,
60152+ pub n_granularity: u32,
60153+ pub k_granularity: u32,
60154+ pub a_type: ComponentTypeKHR,
60155+ pub b_type: ComponentTypeKHR,
60156+ pub c_type: ComponentTypeKHR,
60157+ pub result_type: ComponentTypeKHR,
60158+ pub saturating_accumulation: Bool32,
60159+ pub scope: ScopeKHR,
60160+ pub workgroup_invocations: u32,
60161+ pub _marker: PhantomData<&'a ()>,
60162+ }
60163+ unsafe impl Send for CooperativeMatrixFlexibleDimensionsPropertiesNV<'_> {}
60164+ unsafe impl Sync for CooperativeMatrixFlexibleDimensionsPropertiesNV<'_> {}
60165+ impl ::core::default::Default for CooperativeMatrixFlexibleDimensionsPropertiesNV<'_> {
60166+ #[inline]
60167+ fn default() -> Self {
60168+ Self {
60169+ s_type: Self::STRUCTURE_TYPE,
60170+ p_next: ::core::ptr::null_mut(),
60171+ m_granularity: u32::default(),
60172+ n_granularity: u32::default(),
60173+ k_granularity: u32::default(),
60174+ a_type: ComponentTypeKHR::default(),
60175+ b_type: ComponentTypeKHR::default(),
60176+ c_type: ComponentTypeKHR::default(),
60177+ result_type: ComponentTypeKHR::default(),
60178+ saturating_accumulation: Bool32::default(),
60179+ scope: ScopeKHR::default(),
60180+ workgroup_invocations: u32::default(),
60181+ _marker: PhantomData,
60182+ }
60183+ }
60184+ }
60185+ unsafe impl<'a> TaggedStructure for CooperativeMatrixFlexibleDimensionsPropertiesNV<'a> {
60186+ const STRUCTURE_TYPE: StructureType =
60187+ StructureType::COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV;
60188+ }
60189+ impl<'a> CooperativeMatrixFlexibleDimensionsPropertiesNV<'a> {
60190+ #[inline]
60191+ pub fn m_granularity(mut self, m_granularity: u32) -> Self {
60192+ self.m_granularity = m_granularity;
60193+ self
60194+ }
60195+ #[inline]
60196+ pub fn n_granularity(mut self, n_granularity: u32) -> Self {
60197+ self.n_granularity = n_granularity;
60198+ self
60199+ }
60200+ #[inline]
60201+ pub fn k_granularity(mut self, k_granularity: u32) -> Self {
60202+ self.k_granularity = k_granularity;
60203+ self
60204+ }
60205+ #[inline]
60206+ pub fn a_type(mut self, a_type: ComponentTypeKHR) -> Self {
60207+ self.a_type = a_type;
60208+ self
60209+ }
60210+ #[inline]
60211+ pub fn b_type(mut self, b_type: ComponentTypeKHR) -> Self {
60212+ self.b_type = b_type;
60213+ self
60214+ }
60215+ #[inline]
60216+ pub fn c_type(mut self, c_type: ComponentTypeKHR) -> Self {
60217+ self.c_type = c_type;
60218+ self
60219+ }
60220+ #[inline]
60221+ pub fn result_type(mut self, result_type: ComponentTypeKHR) -> Self {
60222+ self.result_type = result_type;
60223+ self
60224+ }
60225+ #[inline]
60226+ pub fn saturating_accumulation(mut self, saturating_accumulation: bool) -> Self {
60227+ self.saturating_accumulation = saturating_accumulation.into();
60228+ self
60229+ }
60230+ #[inline]
60231+ pub fn scope(mut self, scope: ScopeKHR) -> Self {
60232+ self.scope = scope;
60233+ self
60234+ }
60235+ #[inline]
60236+ pub fn workgroup_invocations(mut self, workgroup_invocations: u32) -> Self {
60237+ self.workgroup_invocations = workgroup_invocations;
60238+ self
60239+ }
60240+ }
0 commit comments