diff --git a/Cargo.toml b/Cargo.toml index 17b22f707..c7ca91827 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,3 +9,7 @@ members = [ "generator", "generator-rewrite", ] + +# [patch.crates-io] +# # https://github.com/krolli/vk-parse/pull/36 +# vk-parse = { git = "https://github.com/krolli/vk-parse", rev = "dfe8863" } diff --git a/Changelog.md b/Changelog.md index f165cdc83..9e9655e1e 100644 --- a/Changelog.md +++ b/Changelog.md @@ -10,7 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Added `push()` method to all root structs to insert a single extension-struct in the pointer chain. (#909) -- Update Vulkan-Headers to 1.3.296 (#910) +- Update Vulkan-Headers to 1.4.329 (#910, #951) - Added `VK_KHR_get_display_properties2` instance extension (#932) - Added `VK_EXT_metal_objects` device extension (#942) - Added `VK_AMD_anti_lag` device extension (#943) diff --git a/ash/Cargo.toml b/ash/Cargo.toml index 53c64c45a..55f4d6475 100644 --- a/ash/Cargo.toml +++ b/ash/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ash" -version = "0.38.0+1.3.296" +version = "0.38.0+1.4.329" authors = [ "Maik Klein ", "Benjamin Saunders ", diff --git a/ash/src/extensions/amd/buffer_marker.rs b/ash/src/extensions/amd/buffer_marker.rs index f01190e44..9a8db71c4 100644 --- a/ash/src/extensions/amd/buffer_marker.rs +++ b/ash/src/extensions/amd/buffer_marker.rs @@ -21,4 +21,23 @@ impl crate::amd::buffer_marker::Device { marker, ) } + + /// + #[inline] + pub unsafe fn cmd_write_buffer_marker2( + &self, + command_buffer: vk::CommandBuffer, + stage: vk::PipelineStageFlags2, + dst_buffer: vk::Buffer, + dst_offset: vk::DeviceSize, + marker: u32, + ) { + (self.fp.cmd_write_buffer_marker2_amd)( + command_buffer, + stage, + dst_buffer, + dst_offset, + marker, + ) + } } diff --git a/ash/src/extensions/amdx/shader_enqueue.rs b/ash/src/extensions/amdx/shader_enqueue.rs index 1d50358a1..ee13006b6 100644 --- a/ash/src/extensions/amdx/shader_enqueue.rs +++ b/ash/src/extensions/amdx/shader_enqueue.rs @@ -72,9 +72,16 @@ impl crate::amdx::shader_enqueue::Device { pub unsafe fn cmd_initialize_graph_scratch_memory( &self, command_buffer: vk::CommandBuffer, + execution_graph: vk::Pipeline, scratch: vk::DeviceAddress, + scratch_size: vk::DeviceSize, ) { - (self.fp.cmd_initialize_graph_scratch_memory_amdx)(command_buffer, scratch) + (self.fp.cmd_initialize_graph_scratch_memory_amdx)( + command_buffer, + execution_graph, + scratch, + scratch_size, + ) } /// @@ -83,9 +90,10 @@ impl crate::amdx::shader_enqueue::Device { &self, command_buffer: vk::CommandBuffer, scratch: vk::DeviceAddress, + scratch_size: vk::DeviceSize, count_info: &vk::DispatchGraphCountInfoAMDX, ) { - (self.fp.cmd_dispatch_graph_amdx)(command_buffer, scratch, count_info) + (self.fp.cmd_dispatch_graph_amdx)(command_buffer, scratch, scratch_size, count_info) } /// @@ -94,9 +102,15 @@ impl crate::amdx::shader_enqueue::Device { &self, command_buffer: vk::CommandBuffer, scratch: vk::DeviceAddress, + scratch_size: vk::DeviceSize, count_info: &vk::DispatchGraphCountInfoAMDX, ) { - (self.fp.cmd_dispatch_graph_indirect_amdx)(command_buffer, scratch, count_info) + (self.fp.cmd_dispatch_graph_indirect_amdx)( + command_buffer, + scratch, + scratch_size, + count_info, + ) } /// @@ -105,8 +119,14 @@ impl crate::amdx::shader_enqueue::Device { &self, command_buffer: vk::CommandBuffer, scratch: vk::DeviceAddress, + scratch_size: vk::DeviceSize, count_info: vk::DeviceAddress, ) { - (self.fp.cmd_dispatch_graph_indirect_count_amdx)(command_buffer, scratch, count_info) + (self.fp.cmd_dispatch_graph_indirect_count_amdx)( + command_buffer, + scratch, + scratch_size, + count_info, + ) } } diff --git a/ash/src/extensions/nv/device_diagnostic_checkpoints.rs b/ash/src/extensions/nv/device_diagnostic_checkpoints.rs index cee80c71f..2978d55f3 100644 --- a/ash/src/extensions/nv/device_diagnostic_checkpoints.rs +++ b/ash/src/extensions/nv/device_diagnostic_checkpoints.rs @@ -38,4 +38,27 @@ impl crate::nv::device_diagnostic_checkpoints::Device { (self.fp.get_queue_checkpoint_data_nv)(queue, &mut count, out.as_mut_ptr()); assert_eq!(count as usize, out.len()); } + + /// Retrieve the number of elements to pass to [`get_queue_checkpoint_data()`][Self::get_queue_checkpoint_data2()] + #[inline] + pub unsafe fn get_queue_checkpoint_data2_len(&self, queue: vk::Queue) -> usize { + let mut count = mem::MaybeUninit::uninit(); + (self.fp.get_queue_checkpoint_data2_nv)(queue, count.as_mut_ptr(), ptr::null_mut()); + count.assume_init() as usize + } + + /// + /// + /// Call [`get_queue_checkpoint_data2_len()`][Self::get_queue_checkpoint_data2_len()] to query the number of elements to pass to `out`. + /// Be sure to [`Default::default()`]-initialize these elements and optionally set their `p_next` pointer. + #[inline] + pub unsafe fn get_queue_checkpoint_data2( + &self, + queue: vk::Queue, + out: &mut [vk::CheckpointData2NV<'_>], + ) { + let mut count = out.len() as u32; + (self.fp.get_queue_checkpoint_data2_nv)(queue, &mut count, out.as_mut_ptr()); + assert_eq!(count as usize, out.len()); + } } diff --git a/ash/src/extensions_generated.rs b/ash/src/extensions_generated.rs index 431fc8623..8463e1217 100644 --- a/ash/src/extensions_generated.rs +++ b/ash/src/extensions_generated.rs @@ -284,6 +284,7 @@ pub mod amd { #[doc = "Raw VK_AMD_buffer_marker device-level function pointers"] pub struct DeviceFn { pub cmd_write_buffer_marker_amd: PFN_vkCmdWriteBufferMarkerAMD, + pub cmd_write_buffer_marker2_amd: PFN_vkCmdWriteBufferMarker2AMD, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -315,6 +316,28 @@ pub mod amd { ::core::mem::transmute(val) } }, + cmd_write_buffer_marker2_amd: unsafe { + unsafe extern "system" fn cmd_write_buffer_marker2_amd( + _command_buffer: CommandBuffer, + _stage: PipelineStageFlags2, + _dst_buffer: Buffer, + _dst_offset: DeviceSize, + _marker: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_write_buffer_marker2_amd) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteBufferMarker2AMD\0"); + let val = _f(cname); + if val.is_null() { + cmd_write_buffer_marker2_amd + } else { + ::core::mem::transmute(val) + } + }, } } } @@ -616,7 +639,9 @@ pub mod amdx { cmd_initialize_graph_scratch_memory_amdx: unsafe { unsafe extern "system" fn cmd_initialize_graph_scratch_memory_amdx( _command_buffer: CommandBuffer, + _execution_graph: Pipeline, _scratch: DeviceAddress, + _scratch_size: DeviceSize, ) { panic!(concat!( "Unable to load ", @@ -637,6 +662,7 @@ pub mod amdx { unsafe extern "system" fn cmd_dispatch_graph_amdx( _command_buffer: CommandBuffer, _scratch: DeviceAddress, + _scratch_size: DeviceSize, _p_count_info: *const DispatchGraphCountInfoAMDX, ) { panic!(concat!( @@ -657,6 +683,7 @@ pub mod amdx { unsafe extern "system" fn cmd_dispatch_graph_indirect_amdx( _command_buffer: CommandBuffer, _scratch: DeviceAddress, + _scratch_size: DeviceSize, _p_count_info: *const DispatchGraphCountInfoAMDX, ) { panic!(concat!( @@ -678,6 +705,7 @@ pub mod amdx { unsafe extern "system" fn cmd_dispatch_graph_indirect_count_amdx( _command_buffer: CommandBuffer, _scratch: DeviceAddress, + _scratch_size: DeviceSize, _count_info: DeviceAddress, ) { panic!(concat!( @@ -699,6 +727,13 @@ pub mod amdx { } } } + #[doc = "VK_AMDX_dense_geometry_format"] + pub mod dense_geometry_format { + pub use { + crate::vk::AMDX_DENSE_GEOMETRY_FORMAT_NAME as NAME, + crate::vk::AMDX_DENSE_GEOMETRY_FORMAT_SPEC_VERSION as SPEC_VERSION, + }; + } } #[doc = "Extensions tagged ANDROID"] pub mod android { @@ -974,25 +1009,15 @@ pub mod arm { crate::vk::ARM_RENDER_PASS_STRIPED_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_ARM_shader_core_builtins"] - pub mod shader_core_builtins { - pub use { - crate::vk::ARM_SHADER_CORE_BUILTINS_NAME as NAME, - crate::vk::ARM_SHADER_CORE_BUILTINS_SPEC_VERSION as SPEC_VERSION, - }; - } -} -#[doc = "Extensions tagged EXT"] -pub mod ext { - #[doc = "VK_EXT_debug_report"] - pub mod debug_report { + #[doc = "VK_ARM_tensors"] + pub mod tensors { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::EXT_DEBUG_REPORT_NAME as NAME, - crate::vk::EXT_DEBUG_REPORT_SPEC_VERSION as SPEC_VERSION, + crate::vk::ARM_TENSORS_NAME as NAME, + crate::vk::ARM_TENSORS_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_EXT_debug_report instance-level functions"] + #[doc = "VK_ARM_tensors instance-level functions"] #[derive(Clone)] pub struct Instance { pub(crate) fp: InstanceFn, @@ -1016,11 +1041,10 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_debug_report instance-level function pointers"] + #[doc = "Raw VK_ARM_tensors instance-level function pointers"] pub struct InstanceFn { - pub create_debug_report_callback_ext: PFN_vkCreateDebugReportCallbackEXT, - pub destroy_debug_report_callback_ext: PFN_vkDestroyDebugReportCallbackEXT, - pub debug_report_message_ext: PFN_vkDebugReportMessageEXT, + pub get_physical_device_external_tensor_properties_arm: + PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM, } unsafe impl Send for InstanceFn {} unsafe impl Sync for InstanceFn {} @@ -1030,70 +1054,23 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - create_debug_report_callback_ext: unsafe { - unsafe extern "system" fn create_debug_report_callback_ext( - _instance: crate::vk::Instance, - _p_create_info: *const DebugReportCallbackCreateInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks, - _p_callback: *mut DebugReportCallbackEXT, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_debug_report_callback_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateDebugReportCallbackEXT\0", - ); - let val = _f(cname); - if val.is_null() { - create_debug_report_callback_ext - } else { - ::core::mem::transmute(val) - } - }, - destroy_debug_report_callback_ext: unsafe { - unsafe extern "system" fn destroy_debug_report_callback_ext( - _instance: crate::vk::Instance, - _callback: DebugReportCallbackEXT, - _p_allocator: *const AllocationCallbacks, + get_physical_device_external_tensor_properties_arm: unsafe { + unsafe extern "system" fn get_physical_device_external_tensor_properties_arm( + _physical_device: PhysicalDevice, + _p_external_tensor_info: *const PhysicalDeviceExternalTensorInfoARM<'_>, + _p_external_tensor_properties: *mut ExternalTensorPropertiesARM<'_>, ) { panic!(concat!( "Unable to load ", - stringify!(destroy_debug_report_callback_ext) + stringify!(get_physical_device_external_tensor_properties_arm) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkDestroyDebugReportCallbackEXT\0", + b"vkGetPhysicalDeviceExternalTensorPropertiesARM\0", ); let val = _f(cname); if val.is_null() { - destroy_debug_report_callback_ext - } else { - ::core::mem::transmute(val) - } - }, - debug_report_message_ext: unsafe { - unsafe extern "system" fn debug_report_message_ext( - _instance: crate::vk::Instance, - _flags: DebugReportFlagsEXT, - _object_type: DebugReportObjectTypeEXT, - _object: u64, - _location: usize, - _message_code: i32, - _p_layer_prefix: *const c_char, - _p_message: *const c_char, - ) { - panic!(concat!( - "Unable to load ", - stringify!(debug_report_message_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDebugReportMessageEXT\0"); - let val = _f(cname); - if val.is_null() { - debug_report_message_ext + get_physical_device_external_tensor_properties_arm } else { ::core::mem::transmute(val) } @@ -1101,23 +1078,7 @@ pub mod ext { } } } - } - #[doc = "VK_EXT_depth_range_unrestricted"] - pub mod depth_range_unrestricted { - pub use { - crate::vk::EXT_DEPTH_RANGE_UNRESTRICTED_NAME as NAME, - crate::vk::EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_debug_marker"] - pub mod debug_marker { - use crate::vk::*; - use core::ffi::*; - pub use { - crate::vk::EXT_DEBUG_MARKER_NAME as NAME, - crate::vk::EXT_DEBUG_MARKER_SPEC_VERSION as SPEC_VERSION, - }; - #[doc = "VK_EXT_debug_marker device-level functions"] + #[doc = "VK_ARM_tensors device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -1141,13 +1102,21 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_debug_marker device-level function pointers"] + #[doc = "Raw VK_ARM_tensors device-level function pointers"] pub struct DeviceFn { - pub debug_marker_set_object_tag_ext: PFN_vkDebugMarkerSetObjectTagEXT, - pub debug_marker_set_object_name_ext: PFN_vkDebugMarkerSetObjectNameEXT, - pub cmd_debug_marker_begin_ext: PFN_vkCmdDebugMarkerBeginEXT, - pub cmd_debug_marker_end_ext: PFN_vkCmdDebugMarkerEndEXT, - pub cmd_debug_marker_insert_ext: PFN_vkCmdDebugMarkerInsertEXT, + pub create_tensor_arm: PFN_vkCreateTensorARM, + pub destroy_tensor_arm: PFN_vkDestroyTensorARM, + pub create_tensor_view_arm: PFN_vkCreateTensorViewARM, + pub destroy_tensor_view_arm: PFN_vkDestroyTensorViewARM, + pub get_tensor_memory_requirements_arm: PFN_vkGetTensorMemoryRequirementsARM, + pub bind_tensor_memory_arm: PFN_vkBindTensorMemoryARM, + pub get_device_tensor_memory_requirements_arm: + PFN_vkGetDeviceTensorMemoryRequirementsARM, + pub cmd_copy_tensor_arm: PFN_vkCmdCopyTensorARM, + pub get_tensor_opaque_capture_descriptor_data_arm: + PFN_vkGetTensorOpaqueCaptureDescriptorDataARM, + pub get_tensor_view_opaque_capture_descriptor_data_arm: + PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -1157,285 +1126,291 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - debug_marker_set_object_tag_ext: unsafe { - unsafe extern "system" fn debug_marker_set_object_tag_ext( + create_tensor_arm: unsafe { + unsafe extern "system" fn create_tensor_arm( _device: crate::vk::Device, - _p_tag_info: *const DebugMarkerObjectTagInfoEXT<'_>, + _p_create_info: *const TensorCreateInfoARM<'_>, + _p_allocator: *const AllocationCallbacks, + _p_tensor: *mut TensorARM, ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(debug_marker_set_object_tag_ext) - )) + panic!(concat!("Unable to load ", stringify!(create_tensor_arm))) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDebugMarkerSetObjectTagEXT\0"); + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateTensorARM\0"); let val = _f(cname); if val.is_null() { - debug_marker_set_object_tag_ext + create_tensor_arm } else { ::core::mem::transmute(val) } }, - debug_marker_set_object_name_ext: unsafe { - unsafe extern "system" fn debug_marker_set_object_name_ext( + destroy_tensor_arm: unsafe { + unsafe extern "system" fn destroy_tensor_arm( _device: crate::vk::Device, - _p_name_info: *const DebugMarkerObjectNameInfoEXT<'_>, + _tensor: TensorARM, + _p_allocator: *const AllocationCallbacks, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_tensor_arm))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyTensorARM\0"); + let val = _f(cname); + if val.is_null() { + destroy_tensor_arm + } else { + ::core::mem::transmute(val) + } + }, + create_tensor_view_arm: unsafe { + unsafe extern "system" fn create_tensor_view_arm( + _device: crate::vk::Device, + _p_create_info: *const TensorViewCreateInfoARM<'_>, + _p_allocator: *const AllocationCallbacks, + _p_view: *mut TensorViewARM, ) -> Result { panic!(concat!( "Unable to load ", - stringify!(debug_marker_set_object_name_ext) + stringify!(create_tensor_view_arm) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDebugMarkerSetObjectNameEXT\0"); + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateTensorViewARM\0"); let val = _f(cname); if val.is_null() { - debug_marker_set_object_name_ext + create_tensor_view_arm } else { ::core::mem::transmute(val) } }, - cmd_debug_marker_begin_ext: unsafe { - unsafe extern "system" fn cmd_debug_marker_begin_ext( - _command_buffer: CommandBuffer, - _p_marker_info: *const DebugMarkerMarkerInfoEXT<'_>, + destroy_tensor_view_arm: unsafe { + unsafe extern "system" fn destroy_tensor_view_arm( + _device: crate::vk::Device, + _tensor_view: TensorViewARM, + _p_allocator: *const AllocationCallbacks, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_debug_marker_begin_ext) + stringify!(destroy_tensor_view_arm) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerBeginEXT\0"); + CStr::from_bytes_with_nul_unchecked(b"vkDestroyTensorViewARM\0"); let val = _f(cname); if val.is_null() { - cmd_debug_marker_begin_ext + destroy_tensor_view_arm } else { ::core::mem::transmute(val) } }, - cmd_debug_marker_end_ext: unsafe { - unsafe extern "system" fn cmd_debug_marker_end_ext( - _command_buffer: CommandBuffer, + get_tensor_memory_requirements_arm: unsafe { + unsafe extern "system" fn get_tensor_memory_requirements_arm( + _device: crate::vk::Device, + _p_info: *const TensorMemoryRequirementsInfoARM<'_>, + _p_memory_requirements: *mut MemoryRequirements2<'_>, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_debug_marker_end_ext) + stringify!(get_tensor_memory_requirements_arm) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerEndEXT\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetTensorMemoryRequirementsARM\0", + ); let val = _f(cname); if val.is_null() { - cmd_debug_marker_end_ext + get_tensor_memory_requirements_arm } else { ::core::mem::transmute(val) } }, - cmd_debug_marker_insert_ext: unsafe { - unsafe extern "system" fn cmd_debug_marker_insert_ext( - _command_buffer: CommandBuffer, - _p_marker_info: *const DebugMarkerMarkerInfoEXT<'_>, - ) { + bind_tensor_memory_arm: unsafe { + unsafe extern "system" fn bind_tensor_memory_arm( + _device: crate::vk::Device, + _bind_info_count: u32, + _p_bind_infos: *const BindTensorMemoryInfoARM<'_>, + ) -> Result { panic!(concat!( "Unable to load ", - stringify!(cmd_debug_marker_insert_ext) + stringify!(bind_tensor_memory_arm) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerInsertEXT\0"); + let cname = CStr::from_bytes_with_nul_unchecked(b"vkBindTensorMemoryARM\0"); let val = _f(cname); if val.is_null() { - cmd_debug_marker_insert_ext + bind_tensor_memory_arm } else { ::core::mem::transmute(val) } }, - } - } - } - } - #[doc = "VK_EXT_transform_feedback"] - pub mod transform_feedback { - use crate::vk::*; - use core::ffi::*; - pub use { - crate::vk::EXT_TRANSFORM_FEEDBACK_NAME as NAME, - crate::vk::EXT_TRANSFORM_FEEDBACK_SPEC_VERSION as SPEC_VERSION, - }; - #[doc = "VK_EXT_transform_feedback device-level functions"] - #[derive(Clone)] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn load(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_transform_feedback device-level function pointers"] - pub struct DeviceFn { - pub cmd_bind_transform_feedback_buffers_ext: PFN_vkCmdBindTransformFeedbackBuffersEXT, - pub cmd_begin_transform_feedback_ext: PFN_vkCmdBeginTransformFeedbackEXT, - pub cmd_end_transform_feedback_ext: PFN_vkCmdEndTransformFeedbackEXT, - pub cmd_begin_query_indexed_ext: PFN_vkCmdBeginQueryIndexedEXT, - pub cmd_end_query_indexed_ext: PFN_vkCmdEndQueryIndexedEXT, - pub cmd_draw_indirect_byte_count_ext: PFN_vkCmdDrawIndirectByteCountEXT, - } - 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_bind_transform_feedback_buffers_ext: unsafe { - unsafe extern "system" fn cmd_bind_transform_feedback_buffers_ext( - _command_buffer: CommandBuffer, - _first_binding: u32, - _binding_count: u32, - _p_buffers: *const Buffer, - _p_offsets: *const DeviceSize, - _p_sizes: *const DeviceSize, + get_device_tensor_memory_requirements_arm: unsafe { + unsafe extern "system" fn get_device_tensor_memory_requirements_arm( + _device: crate::vk::Device, + _p_info: *const DeviceTensorMemoryRequirementsARM<'_>, + _p_memory_requirements: *mut MemoryRequirements2<'_>, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_bind_transform_feedback_buffers_ext) + stringify!(get_device_tensor_memory_requirements_arm) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdBindTransformFeedbackBuffersEXT\0", + b"vkGetDeviceTensorMemoryRequirementsARM\0", ); let val = _f(cname); if val.is_null() { - cmd_bind_transform_feedback_buffers_ext + get_device_tensor_memory_requirements_arm } else { ::core::mem::transmute(val) } }, - cmd_begin_transform_feedback_ext: unsafe { - unsafe extern "system" fn cmd_begin_transform_feedback_ext( + cmd_copy_tensor_arm: unsafe { + unsafe extern "system" fn cmd_copy_tensor_arm( _command_buffer: CommandBuffer, - _first_counter_buffer: u32, - _counter_buffer_count: u32, - _p_counter_buffers: *const Buffer, - _p_counter_buffer_offsets: *const DeviceSize, + _p_copy_tensor_info: *const CopyTensorInfoARM<'_>, ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_begin_transform_feedback_ext) - )) + panic!(concat!("Unable to load ", stringify!(cmd_copy_tensor_arm))) } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdBeginTransformFeedbackEXT\0", - ); + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyTensorARM\0"); let val = _f(cname); if val.is_null() { - cmd_begin_transform_feedback_ext + cmd_copy_tensor_arm } else { ::core::mem::transmute(val) } }, - cmd_end_transform_feedback_ext: unsafe { - unsafe extern "system" fn cmd_end_transform_feedback_ext( - _command_buffer: CommandBuffer, - _first_counter_buffer: u32, - _counter_buffer_count: u32, - _p_counter_buffers: *const Buffer, - _p_counter_buffer_offsets: *const DeviceSize, - ) { + get_tensor_opaque_capture_descriptor_data_arm: unsafe { + unsafe extern "system" fn get_tensor_opaque_capture_descriptor_data_arm( + _device: crate::vk::Device, + _p_info: *const TensorCaptureDescriptorDataInfoARM<'_>, + _p_data: *mut c_void, + ) -> Result { panic!(concat!( "Unable to load ", - stringify!(cmd_end_transform_feedback_ext) + stringify!(get_tensor_opaque_capture_descriptor_data_arm) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdEndTransformFeedbackEXT\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetTensorOpaqueCaptureDescriptorDataARM\0", + ); let val = _f(cname); if val.is_null() { - cmd_end_transform_feedback_ext + get_tensor_opaque_capture_descriptor_data_arm } else { ::core::mem::transmute(val) } }, - cmd_begin_query_indexed_ext: unsafe { - unsafe extern "system" fn cmd_begin_query_indexed_ext( - _command_buffer: CommandBuffer, - _query_pool: QueryPool, - _query: u32, - _flags: QueryControlFlags, - _index: u32, - ) { + get_tensor_view_opaque_capture_descriptor_data_arm: unsafe { + unsafe extern "system" fn get_tensor_view_opaque_capture_descriptor_data_arm( + _device: crate::vk::Device, + _p_info: *const TensorViewCaptureDescriptorDataInfoARM<'_>, + _p_data: *mut c_void, + ) -> Result { panic!(concat!( "Unable to load ", - stringify!(cmd_begin_query_indexed_ext) + stringify!(get_tensor_view_opaque_capture_descriptor_data_arm) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginQueryIndexedEXT\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetTensorViewOpaqueCaptureDescriptorDataARM\0", + ); let val = _f(cname); if val.is_null() { - cmd_begin_query_indexed_ext + get_tensor_view_opaque_capture_descriptor_data_arm } else { ::core::mem::transmute(val) } }, - cmd_end_query_indexed_ext: unsafe { - unsafe extern "system" fn cmd_end_query_indexed_ext( - _command_buffer: CommandBuffer, - _query_pool: QueryPool, - _query: u32, - _index: u32, - ) { + } + } + } + } + #[doc = "VK_ARM_shader_core_builtins"] + pub mod shader_core_builtins { + pub use { + crate::vk::ARM_SHADER_CORE_BUILTINS_NAME as NAME, + crate::vk::ARM_SHADER_CORE_BUILTINS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_ARM_data_graph"] + pub mod data_graph { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::ARM_DATA_GRAPH_NAME as NAME, + crate::vk::ARM_DATA_GRAPH_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_ARM_data_graph instance-level functions"] + #[derive(Clone)] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn load(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle; + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_ARM_data_graph instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_queue_family_data_graph_properties_arm: + PFN_vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM, + pub get_physical_device_queue_family_data_graph_processing_engine_properties_arm: + PFN_vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + 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_physical_device_queue_family_data_graph_properties_arm: unsafe { + unsafe extern "system" fn get_physical_device_queue_family_data_graph_properties_arm( + _physical_device: PhysicalDevice, + _queue_family_index: u32, + _p_queue_family_data_graph_property_count: *mut u32, + _p_queue_family_data_graph_properties : * mut QueueFamilyDataGraphPropertiesARM < '_ >, + ) -> Result { panic!(concat!( "Unable to load ", - stringify!(cmd_end_query_indexed_ext) + stringify!( + get_physical_device_queue_family_data_graph_properties_arm + ) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdEndQueryIndexedEXT\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM\0", + ); let val = _f(cname); if val.is_null() { - cmd_end_query_indexed_ext + get_physical_device_queue_family_data_graph_properties_arm } else { ::core::mem::transmute(val) } }, - cmd_draw_indirect_byte_count_ext: unsafe { - unsafe extern "system" fn cmd_draw_indirect_byte_count_ext( - _command_buffer: CommandBuffer, - _instance_count: u32, - _first_instance: u32, - _counter_buffer: Buffer, - _counter_buffer_offset: DeviceSize, - _counter_offset: u32, - _vertex_stride: u32, + get_physical_device_queue_family_data_graph_processing_engine_properties_arm: unsafe { + unsafe extern "system" fn get_physical_device_queue_family_data_graph_processing_engine_properties_arm( + _physical_device: PhysicalDevice, + _p_queue_family_data_graph_processing_engine_info : * const PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM < '_ >, + _p_queue_family_data_graph_processing_engine_properties : * mut QueueFamilyDataGraphProcessingEnginePropertiesARM < '_ >, ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_draw_indirect_byte_count_ext) - )) + panic ! (concat ! ("Unable to load " , stringify ! (get_physical_device_queue_family_data_graph_processing_engine_properties_arm))) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirectByteCountEXT\0"); + let cname = CStr :: from_bytes_with_nul_unchecked (b"vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM\0") ; let val = _f(cname); if val.is_null() { - cmd_draw_indirect_byte_count_ext + get_physical_device_queue_family_data_graph_processing_engine_properties_arm } else { ::core::mem::transmute(val) } @@ -1443,58 +1418,7 @@ pub mod ext { } } } - } - #[doc = "VK_EXT_validation_flags"] - pub mod validation_flags { - pub use { - crate::vk::EXT_VALIDATION_FLAGS_NAME as NAME, - crate::vk::EXT_VALIDATION_FLAGS_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_shader_subgroup_ballot"] - pub mod shader_subgroup_ballot { - pub use { - crate::vk::EXT_SHADER_SUBGROUP_BALLOT_NAME as NAME, - crate::vk::EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_shader_subgroup_vote"] - pub mod shader_subgroup_vote { - pub use { - crate::vk::EXT_SHADER_SUBGROUP_VOTE_NAME as NAME, - crate::vk::EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_texture_compression_astc_hdr"] - pub mod texture_compression_astc_hdr { - pub use { - crate::vk::EXT_TEXTURE_COMPRESSION_ASTC_HDR_NAME as NAME, - crate::vk::EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_astc_decode_mode"] - pub mod astc_decode_mode { - pub use { - crate::vk::EXT_ASTC_DECODE_MODE_NAME as NAME, - crate::vk::EXT_ASTC_DECODE_MODE_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_pipeline_robustness"] - pub mod pipeline_robustness { - pub use { - crate::vk::EXT_PIPELINE_ROBUSTNESS_NAME as NAME, - crate::vk::EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_conditional_rendering"] - pub mod conditional_rendering { - use crate::vk::*; - use core::ffi::*; - pub use { - crate::vk::EXT_CONDITIONAL_RENDERING_NAME as NAME, - crate::vk::EXT_CONDITIONAL_RENDERING_SPEC_VERSION as SPEC_VERSION, - }; - #[doc = "VK_EXT_conditional_rendering device-level functions"] + #[doc = "VK_ARM_data_graph device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -1518,10 +1442,21 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_conditional_rendering device-level function pointers"] + #[doc = "Raw VK_ARM_data_graph device-level function pointers"] pub struct DeviceFn { - pub cmd_begin_conditional_rendering_ext: PFN_vkCmdBeginConditionalRenderingEXT, - pub cmd_end_conditional_rendering_ext: PFN_vkCmdEndConditionalRenderingEXT, + pub create_data_graph_pipelines_arm: PFN_vkCreateDataGraphPipelinesARM, + pub create_data_graph_pipeline_session_arm: PFN_vkCreateDataGraphPipelineSessionARM, + pub get_data_graph_pipeline_session_bind_point_requirements_arm: + PFN_vkGetDataGraphPipelineSessionBindPointRequirementsARM, + pub get_data_graph_pipeline_session_memory_requirements_arm: + PFN_vkGetDataGraphPipelineSessionMemoryRequirementsARM, + pub bind_data_graph_pipeline_session_memory_arm: + PFN_vkBindDataGraphPipelineSessionMemoryARM, + pub destroy_data_graph_pipeline_session_arm: PFN_vkDestroyDataGraphPipelineSessionARM, + pub cmd_dispatch_data_graph_arm: PFN_vkCmdDispatchDataGraphARM, + pub get_data_graph_pipeline_available_properties_arm: + PFN_vkGetDataGraphPipelineAvailablePropertiesARM, + pub get_data_graph_pipeline_properties_arm: PFN_vkGetDataGraphPipelinePropertiesARM, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -1531,196 +1466,201 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - cmd_begin_conditional_rendering_ext: unsafe { - unsafe extern "system" fn cmd_begin_conditional_rendering_ext( - _command_buffer: CommandBuffer, - _p_conditional_rendering_begin: *const ConditionalRenderingBeginInfoEXT< + create_data_graph_pipelines_arm: unsafe { + unsafe extern "system" fn create_data_graph_pipelines_arm( + _device: crate::vk::Device, + _deferred_operation: DeferredOperationKHR, + _pipeline_cache: PipelineCache, + _create_info_count: u32, + _p_create_infos: *const DataGraphPipelineCreateInfoARM<'_>, + _p_allocator: *const AllocationCallbacks, + _p_pipelines: *mut Pipeline, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_data_graph_pipelines_arm) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateDataGraphPipelinesARM\0"); + let val = _f(cname); + if val.is_null() { + create_data_graph_pipelines_arm + } else { + ::core::mem::transmute(val) + } + }, + create_data_graph_pipeline_session_arm: unsafe { + unsafe extern "system" fn create_data_graph_pipeline_session_arm( + _device: crate::vk::Device, + _p_create_info: *const DataGraphPipelineSessionCreateInfoARM<'_>, + _p_allocator: *const AllocationCallbacks, + _p_session: *mut DataGraphPipelineSessionARM, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_data_graph_pipeline_session_arm) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateDataGraphPipelineSessionARM\0", + ); + let val = _f(cname); + if val.is_null() { + create_data_graph_pipeline_session_arm + } else { + ::core::mem::transmute(val) + } + }, + get_data_graph_pipeline_session_bind_point_requirements_arm: unsafe { + unsafe extern "system" fn get_data_graph_pipeline_session_bind_point_requirements_arm( + _device: crate::vk::Device, + _p_info: *const DataGraphPipelineSessionBindPointRequirementsInfoARM< '_, >, - ) { + _p_bind_point_requirement_count: *mut u32, + _p_bind_point_requirements : * mut DataGraphPipelineSessionBindPointRequirementARM < '_ >, + ) -> Result { panic!(concat!( "Unable to load ", - stringify!(cmd_begin_conditional_rendering_ext) + stringify!( + get_data_graph_pipeline_session_bind_point_requirements_arm + ) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdBeginConditionalRenderingEXT\0", + b"vkGetDataGraphPipelineSessionBindPointRequirementsARM\0", ); let val = _f(cname); if val.is_null() { - cmd_begin_conditional_rendering_ext + get_data_graph_pipeline_session_bind_point_requirements_arm } else { ::core::mem::transmute(val) } }, - cmd_end_conditional_rendering_ext: unsafe { - unsafe extern "system" fn cmd_end_conditional_rendering_ext( - _command_buffer: CommandBuffer, + get_data_graph_pipeline_session_memory_requirements_arm: unsafe { + unsafe extern "system" fn get_data_graph_pipeline_session_memory_requirements_arm( + _device: crate::vk::Device, + _p_info: *const DataGraphPipelineSessionMemoryRequirementsInfoARM<'_>, + _p_memory_requirements: *mut MemoryRequirements2<'_>, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_end_conditional_rendering_ext) + stringify!(get_data_graph_pipeline_session_memory_requirements_arm) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdEndConditionalRenderingEXT\0", + b"vkGetDataGraphPipelineSessionMemoryRequirementsARM\0", ); let val = _f(cname); if val.is_null() { - cmd_end_conditional_rendering_ext + get_data_graph_pipeline_session_memory_requirements_arm } else { ::core::mem::transmute(val) } }, - } - } - } - } - #[doc = "VK_EXT_direct_mode_display"] - pub mod direct_mode_display { - use crate::vk::*; - use core::ffi::*; - pub use { - crate::vk::EXT_DIRECT_MODE_DISPLAY_NAME as NAME, - crate::vk::EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION as SPEC_VERSION, - }; - #[doc = "VK_EXT_direct_mode_display instance-level functions"] - #[derive(Clone)] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn load(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle; - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - #[derive(Clone)] - #[doc = "Raw VK_EXT_direct_mode_display instance-level function pointers"] - pub struct InstanceFn { - pub release_display_ext: PFN_vkReleaseDisplayEXT, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - 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 { - release_display_ext: unsafe { - unsafe extern "system" fn release_display_ext( - _physical_device: PhysicalDevice, - _display: DisplayKHR, + bind_data_graph_pipeline_session_memory_arm: unsafe { + unsafe extern "system" fn bind_data_graph_pipeline_session_memory_arm( + _device: crate::vk::Device, + _bind_info_count: u32, + _p_bind_infos: *const BindDataGraphPipelineSessionMemoryInfoARM<'_>, ) -> Result { - panic!(concat!("Unable to load ", stringify!(release_display_ext))) + panic!(concat!( + "Unable to load ", + stringify!(bind_data_graph_pipeline_session_memory_arm) + )) } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkReleaseDisplayEXT\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkBindDataGraphPipelineSessionMemoryARM\0", + ); let val = _f(cname); if val.is_null() { - release_display_ext + bind_data_graph_pipeline_session_memory_arm } else { ::core::mem::transmute(val) } }, - } - } - } - } - #[doc = "VK_EXT_acquire_xlib_display"] - pub mod acquire_xlib_display { - use crate::vk::*; - use core::ffi::*; - pub use { - crate::vk::EXT_ACQUIRE_XLIB_DISPLAY_NAME as NAME, - crate::vk::EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION as SPEC_VERSION, - }; - #[doc = "VK_EXT_acquire_xlib_display instance-level functions"] - #[derive(Clone)] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn load(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle; - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - #[derive(Clone)] - #[doc = "Raw VK_EXT_acquire_xlib_display instance-level function pointers"] - pub struct InstanceFn { - pub acquire_xlib_display_ext: PFN_vkAcquireXlibDisplayEXT, - pub get_rand_r_output_display_ext: PFN_vkGetRandROutputDisplayEXT, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - 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 { - acquire_xlib_display_ext: unsafe { - unsafe extern "system" fn acquire_xlib_display_ext( - _physical_device: PhysicalDevice, - _dpy: *mut Display, - _display: DisplayKHR, - ) -> Result { + destroy_data_graph_pipeline_session_arm: unsafe { + unsafe extern "system" fn destroy_data_graph_pipeline_session_arm( + _device: crate::vk::Device, + _session: DataGraphPipelineSessionARM, + _p_allocator: *const AllocationCallbacks, + ) { panic!(concat!( "Unable to load ", - stringify!(acquire_xlib_display_ext) + stringify!(destroy_data_graph_pipeline_session_arm) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkDestroyDataGraphPipelineSessionARM\0", + ); + let val = _f(cname); + if val.is_null() { + destroy_data_graph_pipeline_session_arm + } else { + ::core::mem::transmute(val) + } + }, + cmd_dispatch_data_graph_arm: unsafe { + unsafe extern "system" fn cmd_dispatch_data_graph_arm( + _command_buffer: CommandBuffer, + _session: DataGraphPipelineSessionARM, + _p_info: *const DataGraphPipelineDispatchInfoARM<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_dispatch_data_graph_arm) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkAcquireXlibDisplayEXT\0"); + CStr::from_bytes_with_nul_unchecked(b"vkCmdDispatchDataGraphARM\0"); let val = _f(cname); if val.is_null() { - acquire_xlib_display_ext + cmd_dispatch_data_graph_arm } else { ::core::mem::transmute(val) } }, - get_rand_r_output_display_ext: unsafe { - unsafe extern "system" fn get_rand_r_output_display_ext( - _physical_device: PhysicalDevice, - _dpy: *mut Display, - _rr_output: RROutput, - _p_display: *mut DisplayKHR, + get_data_graph_pipeline_available_properties_arm: unsafe { + unsafe extern "system" fn get_data_graph_pipeline_available_properties_arm( + _device: crate::vk::Device, + _p_pipeline_info: *const DataGraphPipelineInfoARM<'_>, + _p_properties_count: *mut u32, + _p_properties: *mut DataGraphPipelinePropertyARM, ) -> Result { panic!(concat!( "Unable to load ", - stringify!(get_rand_r_output_display_ext) + stringify!(get_data_graph_pipeline_available_properties_arm) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetRandROutputDisplayEXT\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDataGraphPipelineAvailablePropertiesARM\0", + ); let val = _f(cname); if val.is_null() { - get_rand_r_output_display_ext + get_data_graph_pipeline_available_properties_arm + } else { + ::core::mem::transmute(val) + } + }, + get_data_graph_pipeline_properties_arm: unsafe { + unsafe extern "system" fn get_data_graph_pipeline_properties_arm( + _device: crate::vk::Device, + _p_pipeline_info: *const DataGraphPipelineInfoARM<'_>, + _properties_count: u32, + _p_properties: *mut DataGraphPipelinePropertyQueryResultARM<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_data_graph_pipeline_properties_arm) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDataGraphPipelinePropertiesARM\0", + ); + let val = _f(cname); + if val.is_null() { + get_data_graph_pipeline_properties_arm } else { ::core::mem::transmute(val) } @@ -1729,15 +1669,32 @@ pub mod ext { } } } - #[doc = "VK_EXT_display_surface_counter"] - pub mod display_surface_counter { + #[doc = "VK_ARM_pipeline_opacity_micromap"] + pub mod pipeline_opacity_micromap { + pub use { + crate::vk::ARM_PIPELINE_OPACITY_MICROMAP_NAME as NAME, + crate::vk::ARM_PIPELINE_OPACITY_MICROMAP_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_ARM_format_pack"] + pub mod format_pack { + pub use { + crate::vk::ARM_FORMAT_PACK_NAME as NAME, + crate::vk::ARM_FORMAT_PACK_SPEC_VERSION as SPEC_VERSION, + }; + } +} +#[doc = "Extensions tagged EXT"] +pub mod ext { + #[doc = "VK_EXT_debug_report"] + pub mod debug_report { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::EXT_DISPLAY_SURFACE_COUNTER_NAME as NAME, - crate::vk::EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_DEBUG_REPORT_NAME as NAME, + crate::vk::EXT_DEBUG_REPORT_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_EXT_display_surface_counter instance-level functions"] + #[doc = "VK_EXT_debug_report instance-level functions"] #[derive(Clone)] pub struct Instance { pub(crate) fp: InstanceFn, @@ -1761,10 +1718,11 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_display_surface_counter instance-level function pointers"] + #[doc = "Raw VK_EXT_debug_report instance-level function pointers"] pub struct InstanceFn { - pub get_physical_device_surface_capabilities2_ext: - PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT, + pub create_debug_report_callback_ext: PFN_vkCreateDebugReportCallbackEXT, + pub destroy_debug_report_callback_ext: PFN_vkDestroyDebugReportCallbackEXT, + pub debug_report_message_ext: PFN_vkDebugReportMessageEXT, } unsafe impl Send for InstanceFn {} unsafe impl Sync for InstanceFn {} @@ -1774,23 +1732,70 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - get_physical_device_surface_capabilities2_ext: unsafe { - unsafe extern "system" fn get_physical_device_surface_capabilities2_ext( - _physical_device: PhysicalDevice, - _surface: SurfaceKHR, - _p_surface_capabilities: *mut SurfaceCapabilities2EXT<'_>, + create_debug_report_callback_ext: unsafe { + unsafe extern "system" fn create_debug_report_callback_ext( + _instance: crate::vk::Instance, + _p_create_info: *const DebugReportCallbackCreateInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks, + _p_callback: *mut DebugReportCallbackEXT, ) -> Result { panic!(concat!( "Unable to load ", - stringify!(get_physical_device_surface_capabilities2_ext) + stringify!(create_debug_report_callback_ext) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceSurfaceCapabilities2EXT\0", + b"vkCreateDebugReportCallbackEXT\0", ); let val = _f(cname); if val.is_null() { - get_physical_device_surface_capabilities2_ext + create_debug_report_callback_ext + } else { + ::core::mem::transmute(val) + } + }, + destroy_debug_report_callback_ext: unsafe { + unsafe extern "system" fn destroy_debug_report_callback_ext( + _instance: crate::vk::Instance, + _callback: DebugReportCallbackEXT, + _p_allocator: *const AllocationCallbacks, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_debug_report_callback_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkDestroyDebugReportCallbackEXT\0", + ); + let val = _f(cname); + if val.is_null() { + destroy_debug_report_callback_ext + } else { + ::core::mem::transmute(val) + } + }, + debug_report_message_ext: unsafe { + unsafe extern "system" fn debug_report_message_ext( + _instance: crate::vk::Instance, + _flags: DebugReportFlagsEXT, + _object_type: DebugReportObjectTypeEXT, + _object: u64, + _location: usize, + _message_code: i32, + _p_layer_prefix: *const c_char, + _p_message: *const c_char, + ) { + panic!(concat!( + "Unable to load ", + stringify!(debug_report_message_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkDebugReportMessageEXT\0"); + let val = _f(cname); + if val.is_null() { + debug_report_message_ext } else { ::core::mem::transmute(val) } @@ -1799,15 +1804,22 @@ pub mod ext { } } } - #[doc = "VK_EXT_display_control"] - pub mod display_control { + #[doc = "VK_EXT_depth_range_unrestricted"] + pub mod depth_range_unrestricted { + pub use { + crate::vk::EXT_DEPTH_RANGE_UNRESTRICTED_NAME as NAME, + crate::vk::EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_debug_marker"] + pub mod debug_marker { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::EXT_DISPLAY_CONTROL_NAME as NAME, - crate::vk::EXT_DISPLAY_CONTROL_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_DEBUG_MARKER_NAME as NAME, + crate::vk::EXT_DEBUG_MARKER_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_EXT_display_control device-level functions"] + #[doc = "VK_EXT_debug_marker device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -1831,12 +1843,13 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_display_control device-level function pointers"] + #[doc = "Raw VK_EXT_debug_marker device-level function pointers"] pub struct DeviceFn { - pub display_power_control_ext: PFN_vkDisplayPowerControlEXT, - pub register_device_event_ext: PFN_vkRegisterDeviceEventEXT, - pub register_display_event_ext: PFN_vkRegisterDisplayEventEXT, - pub get_swapchain_counter_ext: PFN_vkGetSwapchainCounterEXT, + pub debug_marker_set_object_tag_ext: PFN_vkDebugMarkerSetObjectTagEXT, + pub debug_marker_set_object_name_ext: PFN_vkDebugMarkerSetObjectNameEXT, + pub cmd_debug_marker_begin_ext: PFN_vkCmdDebugMarkerBeginEXT, + pub cmd_debug_marker_end_ext: PFN_vkCmdDebugMarkerEndEXT, + pub cmd_debug_marker_insert_ext: PFN_vkCmdDebugMarkerInsertEXT, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -1846,86 +1859,96 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - display_power_control_ext: unsafe { - unsafe extern "system" fn display_power_control_ext( + debug_marker_set_object_tag_ext: unsafe { + unsafe extern "system" fn debug_marker_set_object_tag_ext( _device: crate::vk::Device, - _display: DisplayKHR, - _p_display_power_info: *const DisplayPowerInfoEXT<'_>, + _p_tag_info: *const DebugMarkerObjectTagInfoEXT<'_>, ) -> Result { panic!(concat!( "Unable to load ", - stringify!(display_power_control_ext) + stringify!(debug_marker_set_object_tag_ext) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDisplayPowerControlEXT\0"); + CStr::from_bytes_with_nul_unchecked(b"vkDebugMarkerSetObjectTagEXT\0"); let val = _f(cname); if val.is_null() { - display_power_control_ext + debug_marker_set_object_tag_ext } else { ::core::mem::transmute(val) } }, - register_device_event_ext: unsafe { - unsafe extern "system" fn register_device_event_ext( + debug_marker_set_object_name_ext: unsafe { + unsafe extern "system" fn debug_marker_set_object_name_ext( _device: crate::vk::Device, - _p_device_event_info: *const DeviceEventInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks, - _p_fence: *mut Fence, + _p_name_info: *const DebugMarkerObjectNameInfoEXT<'_>, ) -> Result { panic!(concat!( "Unable to load ", - stringify!(register_device_event_ext) + stringify!(debug_marker_set_object_name_ext) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkRegisterDeviceEventEXT\0"); + CStr::from_bytes_with_nul_unchecked(b"vkDebugMarkerSetObjectNameEXT\0"); let val = _f(cname); if val.is_null() { - register_device_event_ext + debug_marker_set_object_name_ext } else { ::core::mem::transmute(val) } }, - register_display_event_ext: unsafe { - unsafe extern "system" fn register_display_event_ext( - _device: crate::vk::Device, - _display: DisplayKHR, - _p_display_event_info: *const DisplayEventInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks, - _p_fence: *mut Fence, - ) -> Result { + cmd_debug_marker_begin_ext: unsafe { + unsafe extern "system" fn cmd_debug_marker_begin_ext( + _command_buffer: CommandBuffer, + _p_marker_info: *const DebugMarkerMarkerInfoEXT<'_>, + ) { panic!(concat!( "Unable to load ", - stringify!(register_display_event_ext) + stringify!(cmd_debug_marker_begin_ext) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkRegisterDisplayEventEXT\0"); + CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerBeginEXT\0"); let val = _f(cname); if val.is_null() { - register_display_event_ext + cmd_debug_marker_begin_ext } else { ::core::mem::transmute(val) } }, - get_swapchain_counter_ext: unsafe { - unsafe extern "system" fn get_swapchain_counter_ext( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - _counter: SurfaceCounterFlagsEXT, - _p_counter_value: *mut u64, - ) -> Result { + cmd_debug_marker_end_ext: unsafe { + unsafe extern "system" fn cmd_debug_marker_end_ext( + _command_buffer: CommandBuffer, + ) { panic!(concat!( "Unable to load ", - stringify!(get_swapchain_counter_ext) + stringify!(cmd_debug_marker_end_ext) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainCounterEXT\0"); + CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerEndEXT\0"); let val = _f(cname); if val.is_null() { - get_swapchain_counter_ext + cmd_debug_marker_end_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_debug_marker_insert_ext: unsafe { + unsafe extern "system" fn cmd_debug_marker_insert_ext( + _command_buffer: CommandBuffer, + _p_marker_info: *const DebugMarkerMarkerInfoEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_debug_marker_insert_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerInsertEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_debug_marker_insert_ext } else { ::core::mem::transmute(val) } @@ -1934,15 +1957,15 @@ pub mod ext { } } } - #[doc = "VK_EXT_discard_rectangles"] - pub mod discard_rectangles { + #[doc = "VK_EXT_transform_feedback"] + pub mod transform_feedback { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::EXT_DISCARD_RECTANGLES_NAME as NAME, - crate::vk::EXT_DISCARD_RECTANGLES_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_TRANSFORM_FEEDBACK_NAME as NAME, + crate::vk::EXT_TRANSFORM_FEEDBACK_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_EXT_discard_rectangles device-level functions"] + #[doc = "VK_EXT_transform_feedback device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -1966,11 +1989,14 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_discard_rectangles device-level function pointers"] + #[doc = "Raw VK_EXT_transform_feedback device-level function pointers"] pub struct DeviceFn { - pub cmd_set_discard_rectangle_ext: PFN_vkCmdSetDiscardRectangleEXT, - pub cmd_set_discard_rectangle_enable_ext: PFN_vkCmdSetDiscardRectangleEnableEXT, - pub cmd_set_discard_rectangle_mode_ext: PFN_vkCmdSetDiscardRectangleModeEXT, + pub cmd_bind_transform_feedback_buffers_ext: PFN_vkCmdBindTransformFeedbackBuffersEXT, + pub cmd_begin_transform_feedback_ext: PFN_vkCmdBeginTransformFeedbackEXT, + pub cmd_end_transform_feedback_ext: PFN_vkCmdEndTransformFeedbackEXT, + pub cmd_begin_query_indexed_ext: PFN_vkCmdBeginQueryIndexedEXT, + pub cmd_end_query_indexed_ext: PFN_vkCmdEndQueryIndexedEXT, + pub cmd_draw_indirect_byte_count_ext: PFN_vkCmdDrawIndirectByteCountEXT, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -1980,63 +2006,138 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - cmd_set_discard_rectangle_ext: unsafe { - unsafe extern "system" fn cmd_set_discard_rectangle_ext( + cmd_bind_transform_feedback_buffers_ext: unsafe { + unsafe extern "system" fn cmd_bind_transform_feedback_buffers_ext( _command_buffer: CommandBuffer, - _first_discard_rectangle: u32, - _discard_rectangle_count: u32, - _p_discard_rectangles: *const Rect2D, + _first_binding: u32, + _binding_count: u32, + _p_buffers: *const Buffer, + _p_offsets: *const DeviceSize, + _p_sizes: *const DeviceSize, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_set_discard_rectangle_ext) + stringify!(cmd_bind_transform_feedback_buffers_ext) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDiscardRectangleEXT\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdBindTransformFeedbackBuffersEXT\0", + ); let val = _f(cname); if val.is_null() { - cmd_set_discard_rectangle_ext + cmd_bind_transform_feedback_buffers_ext } else { ::core::mem::transmute(val) } }, - cmd_set_discard_rectangle_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_discard_rectangle_enable_ext( + cmd_begin_transform_feedback_ext: unsafe { + unsafe extern "system" fn cmd_begin_transform_feedback_ext( _command_buffer: CommandBuffer, - _discard_rectangle_enable: Bool32, + _first_counter_buffer: u32, + _counter_buffer_count: u32, + _p_counter_buffers: *const Buffer, + _p_counter_buffer_offsets: *const DeviceSize, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_set_discard_rectangle_enable_ext) + stringify!(cmd_begin_transform_feedback_ext) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetDiscardRectangleEnableEXT\0", + b"vkCmdBeginTransformFeedbackEXT\0", ); let val = _f(cname); if val.is_null() { - cmd_set_discard_rectangle_enable_ext + cmd_begin_transform_feedback_ext } else { ::core::mem::transmute(val) } }, - cmd_set_discard_rectangle_mode_ext: unsafe { - unsafe extern "system" fn cmd_set_discard_rectangle_mode_ext( + cmd_end_transform_feedback_ext: unsafe { + unsafe extern "system" fn cmd_end_transform_feedback_ext( _command_buffer: CommandBuffer, - _discard_rectangle_mode: DiscardRectangleModeEXT, + _first_counter_buffer: u32, + _counter_buffer_count: u32, + _p_counter_buffers: *const Buffer, + _p_counter_buffer_offsets: *const DeviceSize, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_set_discard_rectangle_mode_ext) + stringify!(cmd_end_transform_feedback_ext) )) } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetDiscardRectangleModeEXT\0", - ); + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdEndTransformFeedbackEXT\0"); let val = _f(cname); if val.is_null() { - cmd_set_discard_rectangle_mode_ext + cmd_end_transform_feedback_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_begin_query_indexed_ext: unsafe { + unsafe extern "system" fn cmd_begin_query_indexed_ext( + _command_buffer: CommandBuffer, + _query_pool: QueryPool, + _query: u32, + _flags: QueryControlFlags, + _index: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_begin_query_indexed_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginQueryIndexedEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_begin_query_indexed_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_end_query_indexed_ext: unsafe { + unsafe extern "system" fn cmd_end_query_indexed_ext( + _command_buffer: CommandBuffer, + _query_pool: QueryPool, + _query: u32, + _index: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_end_query_indexed_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdEndQueryIndexedEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_end_query_indexed_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_draw_indirect_byte_count_ext: unsafe { + unsafe extern "system" fn cmd_draw_indirect_byte_count_ext( + _command_buffer: CommandBuffer, + _instance_count: u32, + _first_instance: u32, + _counter_buffer: Buffer, + _counter_buffer_offset: DeviceSize, + _counter_offset: u32, + _vertex_stride: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_draw_indirect_byte_count_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirectByteCountEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_draw_indirect_byte_count_ext } else { ::core::mem::transmute(val) } @@ -2045,36 +2146,57 @@ pub mod ext { } } } - #[doc = "VK_EXT_conservative_rasterization"] - pub mod conservative_rasterization { + #[doc = "VK_EXT_validation_flags"] + pub mod validation_flags { pub use { - crate::vk::EXT_CONSERVATIVE_RASTERIZATION_NAME as NAME, - crate::vk::EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_VALIDATION_FLAGS_NAME as NAME, + crate::vk::EXT_VALIDATION_FLAGS_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_EXT_depth_clip_enable"] - pub mod depth_clip_enable { + #[doc = "VK_EXT_shader_subgroup_ballot"] + pub mod shader_subgroup_ballot { pub use { - crate::vk::EXT_DEPTH_CLIP_ENABLE_NAME as NAME, - crate::vk::EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_SHADER_SUBGROUP_BALLOT_NAME as NAME, + crate::vk::EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_EXT_swapchain_colorspace"] - pub mod swapchain_colorspace { + #[doc = "VK_EXT_shader_subgroup_vote"] + pub mod shader_subgroup_vote { pub use { - crate::vk::EXT_SWAPCHAIN_COLORSPACE_NAME as NAME, - crate::vk::EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_SHADER_SUBGROUP_VOTE_NAME as NAME, + crate::vk::EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_EXT_hdr_metadata"] - pub mod hdr_metadata { - use crate::vk::*; + #[doc = "VK_EXT_texture_compression_astc_hdr"] + pub mod texture_compression_astc_hdr { + pub use { + crate::vk::EXT_TEXTURE_COMPRESSION_ASTC_HDR_NAME as NAME, + crate::vk::EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_astc_decode_mode"] + pub mod astc_decode_mode { + pub use { + crate::vk::EXT_ASTC_DECODE_MODE_NAME as NAME, + crate::vk::EXT_ASTC_DECODE_MODE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_pipeline_robustness"] + pub mod pipeline_robustness { + pub use { + crate::vk::EXT_PIPELINE_ROBUSTNESS_NAME as NAME, + crate::vk::EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_conditional_rendering"] + pub mod conditional_rendering { + use crate::vk::*; use core::ffi::*; pub use { - crate::vk::EXT_HDR_METADATA_NAME as NAME, - crate::vk::EXT_HDR_METADATA_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_CONDITIONAL_RENDERING_NAME as NAME, + crate::vk::EXT_CONDITIONAL_RENDERING_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_EXT_hdr_metadata device-level functions"] + #[doc = "VK_EXT_conditional_rendering device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -2098,9 +2220,10 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_hdr_metadata device-level function pointers"] + #[doc = "Raw VK_EXT_conditional_rendering device-level function pointers"] pub struct DeviceFn { - pub set_hdr_metadata_ext: PFN_vkSetHdrMetadataEXT, + pub cmd_begin_conditional_rendering_ext: PFN_vkCmdBeginConditionalRenderingEXT, + pub cmd_end_conditional_rendering_ext: PFN_vkCmdEndConditionalRenderingEXT, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -2110,19 +2233,43 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - set_hdr_metadata_ext: unsafe { - unsafe extern "system" fn set_hdr_metadata_ext( - _device: crate::vk::Device, - _swapchain_count: u32, - _p_swapchains: *const SwapchainKHR, - _p_metadata: *const HdrMetadataEXT<'_>, + cmd_begin_conditional_rendering_ext: unsafe { + unsafe extern "system" fn cmd_begin_conditional_rendering_ext( + _command_buffer: CommandBuffer, + _p_conditional_rendering_begin: *const ConditionalRenderingBeginInfoEXT< + '_, + >, ) { - panic!(concat!("Unable to load ", stringify!(set_hdr_metadata_ext))) + panic!(concat!( + "Unable to load ", + stringify!(cmd_begin_conditional_rendering_ext) + )) } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetHdrMetadataEXT\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdBeginConditionalRenderingEXT\0", + ); let val = _f(cname); if val.is_null() { - set_hdr_metadata_ext + cmd_begin_conditional_rendering_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_end_conditional_rendering_ext: unsafe { + unsafe extern "system" fn cmd_end_conditional_rendering_ext( + _command_buffer: CommandBuffer, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_end_conditional_rendering_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdEndConditionalRenderingEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_end_conditional_rendering_ext } else { ::core::mem::transmute(val) } @@ -2131,29 +2278,15 @@ pub mod ext { } } } - #[doc = "VK_EXT_external_memory_dma_buf"] - pub mod external_memory_dma_buf { - pub use { - crate::vk::EXT_EXTERNAL_MEMORY_DMA_BUF_NAME as NAME, - crate::vk::EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_queue_family_foreign"] - pub mod queue_family_foreign { - pub use { - crate::vk::EXT_QUEUE_FAMILY_FOREIGN_NAME as NAME, - crate::vk::EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_debug_utils"] - pub mod debug_utils { + #[doc = "VK_EXT_direct_mode_display"] + pub mod direct_mode_display { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::EXT_DEBUG_UTILS_NAME as NAME, - crate::vk::EXT_DEBUG_UTILS_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_DIRECT_MODE_DISPLAY_NAME as NAME, + crate::vk::EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_EXT_debug_utils instance-level functions"] + #[doc = "VK_EXT_direct_mode_display instance-level functions"] #[derive(Clone)] pub struct Instance { pub(crate) fp: InstanceFn, @@ -2177,11 +2310,9 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_debug_utils instance-level function pointers"] + #[doc = "Raw VK_EXT_direct_mode_display instance-level function pointers"] pub struct InstanceFn { - pub create_debug_utils_messenger_ext: PFN_vkCreateDebugUtilsMessengerEXT, - pub destroy_debug_utils_messenger_ext: PFN_vkDestroyDebugUtilsMessengerEXT, - pub submit_debug_utils_message_ext: PFN_vkSubmitDebugUtilsMessageEXT, + pub release_display_ext: PFN_vkReleaseDisplayEXT, } unsafe impl Send for InstanceFn {} unsafe impl Sync for InstanceFn {} @@ -2191,66 +2322,17 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - create_debug_utils_messenger_ext: unsafe { - unsafe extern "system" fn create_debug_utils_messenger_ext( - _instance: crate::vk::Instance, - _p_create_info: *const DebugUtilsMessengerCreateInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks, - _p_messenger: *mut DebugUtilsMessengerEXT, + release_display_ext: unsafe { + unsafe extern "system" fn release_display_ext( + _physical_device: PhysicalDevice, + _display: DisplayKHR, ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_debug_utils_messenger_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateDebugUtilsMessengerEXT\0", - ); - let val = _f(cname); - if val.is_null() { - create_debug_utils_messenger_ext - } else { - ::core::mem::transmute(val) - } - }, - destroy_debug_utils_messenger_ext: unsafe { - unsafe extern "system" fn destroy_debug_utils_messenger_ext( - _instance: crate::vk::Instance, - _messenger: DebugUtilsMessengerEXT, - _p_allocator: *const AllocationCallbacks, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_debug_utils_messenger_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkDestroyDebugUtilsMessengerEXT\0", - ); - let val = _f(cname); - if val.is_null() { - destroy_debug_utils_messenger_ext - } else { - ::core::mem::transmute(val) - } - }, - submit_debug_utils_message_ext: unsafe { - unsafe extern "system" fn submit_debug_utils_message_ext( - _instance: crate::vk::Instance, - _message_severity: DebugUtilsMessageSeverityFlagsEXT, - _message_types: DebugUtilsMessageTypeFlagsEXT, - _p_callback_data: *const DebugUtilsMessengerCallbackDataEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(submit_debug_utils_message_ext) - )) + panic!(concat!("Unable to load ", stringify!(release_display_ext))) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkSubmitDebugUtilsMessageEXT\0"); + let cname = CStr::from_bytes_with_nul_unchecked(b"vkReleaseDisplayEXT\0"); let val = _f(cname); if val.is_null() { - submit_debug_utils_message_ext + release_display_ext } else { ::core::mem::transmute(val) } @@ -2258,195 +2340,89 @@ pub mod ext { } } } - #[doc = "VK_EXT_debug_utils device-level functions"] + } + #[doc = "VK_EXT_acquire_xlib_display"] + pub mod acquire_xlib_display { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::EXT_ACQUIRE_XLIB_DISPLAY_NAME as NAME, + crate::vk::EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_acquire_xlib_display instance-level functions"] #[derive(Clone)] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, } - impl Device { - pub fn load(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())) + impl Instance { + pub fn load(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle; + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) }); Self { handle, fp } } #[inline] - pub fn fp(&self) -> &DeviceFn { + pub fn fp(&self) -> &InstanceFn { &self.fp } #[inline] - pub fn device(&self) -> crate::vk::Device { + pub fn instance(&self) -> crate::vk::Instance { self.handle } } #[derive(Clone)] - #[doc = "Raw VK_EXT_debug_utils device-level function pointers"] - pub struct DeviceFn { - pub set_debug_utils_object_name_ext: PFN_vkSetDebugUtilsObjectNameEXT, - pub set_debug_utils_object_tag_ext: PFN_vkSetDebugUtilsObjectTagEXT, - pub queue_begin_debug_utils_label_ext: PFN_vkQueueBeginDebugUtilsLabelEXT, - pub queue_end_debug_utils_label_ext: PFN_vkQueueEndDebugUtilsLabelEXT, - pub queue_insert_debug_utils_label_ext: PFN_vkQueueInsertDebugUtilsLabelEXT, - pub cmd_begin_debug_utils_label_ext: PFN_vkCmdBeginDebugUtilsLabelEXT, - pub cmd_end_debug_utils_label_ext: PFN_vkCmdEndDebugUtilsLabelEXT, - pub cmd_insert_debug_utils_label_ext: PFN_vkCmdInsertDebugUtilsLabelEXT, + #[doc = "Raw VK_EXT_acquire_xlib_display instance-level function pointers"] + pub struct InstanceFn { + pub acquire_xlib_display_ext: PFN_vkAcquireXlibDisplayEXT, + pub get_rand_r_output_display_ext: PFN_vkGetRandROutputDisplayEXT, } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { 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 { - set_debug_utils_object_name_ext: unsafe { - unsafe extern "system" fn set_debug_utils_object_name_ext( - _device: crate::vk::Device, - _p_name_info: *const DebugUtilsObjectNameInfoEXT<'_>, + acquire_xlib_display_ext: unsafe { + unsafe extern "system" fn acquire_xlib_display_ext( + _physical_device: PhysicalDevice, + _dpy: *mut Display, + _display: DisplayKHR, ) -> Result { panic!(concat!( "Unable to load ", - stringify!(set_debug_utils_object_name_ext) + stringify!(acquire_xlib_display_ext) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkSetDebugUtilsObjectNameEXT\0"); + CStr::from_bytes_with_nul_unchecked(b"vkAcquireXlibDisplayEXT\0"); let val = _f(cname); if val.is_null() { - set_debug_utils_object_name_ext + acquire_xlib_display_ext } else { ::core::mem::transmute(val) } }, - set_debug_utils_object_tag_ext: unsafe { - unsafe extern "system" fn set_debug_utils_object_tag_ext( - _device: crate::vk::Device, - _p_tag_info: *const DebugUtilsObjectTagInfoEXT<'_>, + get_rand_r_output_display_ext: unsafe { + unsafe extern "system" fn get_rand_r_output_display_ext( + _physical_device: PhysicalDevice, + _dpy: *mut Display, + _rr_output: RROutput, + _p_display: *mut DisplayKHR, ) -> Result { panic!(concat!( "Unable to load ", - stringify!(set_debug_utils_object_tag_ext) + stringify!(get_rand_r_output_display_ext) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkSetDebugUtilsObjectTagEXT\0"); + CStr::from_bytes_with_nul_unchecked(b"vkGetRandROutputDisplayEXT\0"); let val = _f(cname); if val.is_null() { - set_debug_utils_object_tag_ext - } else { - ::core::mem::transmute(val) - } - }, - queue_begin_debug_utils_label_ext: unsafe { - unsafe extern "system" fn queue_begin_debug_utils_label_ext( - _queue: Queue, - _p_label_info: *const DebugUtilsLabelEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(queue_begin_debug_utils_label_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkQueueBeginDebugUtilsLabelEXT\0", - ); - let val = _f(cname); - if val.is_null() { - queue_begin_debug_utils_label_ext - } else { - ::core::mem::transmute(val) - } - }, - queue_end_debug_utils_label_ext: unsafe { - unsafe extern "system" fn queue_end_debug_utils_label_ext(_queue: Queue) { - panic!(concat!( - "Unable to load ", - stringify!(queue_end_debug_utils_label_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkQueueEndDebugUtilsLabelEXT\0"); - let val = _f(cname); - if val.is_null() { - queue_end_debug_utils_label_ext - } else { - ::core::mem::transmute(val) - } - }, - queue_insert_debug_utils_label_ext: unsafe { - unsafe extern "system" fn queue_insert_debug_utils_label_ext( - _queue: Queue, - _p_label_info: *const DebugUtilsLabelEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(queue_insert_debug_utils_label_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkQueueInsertDebugUtilsLabelEXT\0", - ); - let val = _f(cname); - if val.is_null() { - queue_insert_debug_utils_label_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_begin_debug_utils_label_ext: unsafe { - unsafe extern "system" fn cmd_begin_debug_utils_label_ext( - _command_buffer: CommandBuffer, - _p_label_info: *const DebugUtilsLabelEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_begin_debug_utils_label_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginDebugUtilsLabelEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_begin_debug_utils_label_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_end_debug_utils_label_ext: unsafe { - unsafe extern "system" fn cmd_end_debug_utils_label_ext( - _command_buffer: CommandBuffer, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_end_debug_utils_label_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdEndDebugUtilsLabelEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_end_debug_utils_label_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_insert_debug_utils_label_ext: unsafe { - unsafe extern "system" fn cmd_insert_debug_utils_label_ext( - _command_buffer: CommandBuffer, - _p_label_info: *const DebugUtilsLabelEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_insert_debug_utils_label_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdInsertDebugUtilsLabelEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_insert_debug_utils_label_ext + get_rand_r_output_display_ext } else { ::core::mem::transmute(val) } @@ -2455,36 +2431,15 @@ pub mod ext { } } } - #[doc = "VK_EXT_sampler_filter_minmax"] - pub mod sampler_filter_minmax { - pub use { - crate::vk::EXT_SAMPLER_FILTER_MINMAX_NAME as NAME, - crate::vk::EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_inline_uniform_block"] - pub mod inline_uniform_block { - pub use { - crate::vk::EXT_INLINE_UNIFORM_BLOCK_NAME as NAME, - crate::vk::EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_shader_stencil_export"] - pub mod shader_stencil_export { - pub use { - crate::vk::EXT_SHADER_STENCIL_EXPORT_NAME as NAME, - crate::vk::EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_sample_locations"] - pub mod sample_locations { + #[doc = "VK_EXT_display_surface_counter"] + pub mod display_surface_counter { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::EXT_SAMPLE_LOCATIONS_NAME as NAME, - crate::vk::EXT_SAMPLE_LOCATIONS_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_DISPLAY_SURFACE_COUNTER_NAME as NAME, + crate::vk::EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_EXT_sample_locations instance-level functions"] + #[doc = "VK_EXT_display_surface_counter instance-level functions"] #[derive(Clone)] pub struct Instance { pub(crate) fp: InstanceFn, @@ -2508,10 +2463,10 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_sample_locations instance-level function pointers"] + #[doc = "Raw VK_EXT_display_surface_counter instance-level function pointers"] pub struct InstanceFn { - pub get_physical_device_multisample_properties_ext: - PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT, + pub get_physical_device_surface_capabilities2_ext: + PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT, } unsafe impl Send for InstanceFn {} unsafe impl Sync for InstanceFn {} @@ -2521,23 +2476,23 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - get_physical_device_multisample_properties_ext: unsafe { - unsafe extern "system" fn get_physical_device_multisample_properties_ext( + get_physical_device_surface_capabilities2_ext: unsafe { + unsafe extern "system" fn get_physical_device_surface_capabilities2_ext( _physical_device: PhysicalDevice, - _samples: SampleCountFlags, - _p_multisample_properties: *mut MultisamplePropertiesEXT<'_>, - ) { + _surface: SurfaceKHR, + _p_surface_capabilities: *mut SurfaceCapabilities2EXT<'_>, + ) -> Result { panic!(concat!( "Unable to load ", - stringify!(get_physical_device_multisample_properties_ext) + stringify!(get_physical_device_surface_capabilities2_ext) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceMultisamplePropertiesEXT\0", + b"vkGetPhysicalDeviceSurfaceCapabilities2EXT\0", ); let val = _f(cname); if val.is_null() { - get_physical_device_multisample_properties_ext + get_physical_device_surface_capabilities2_ext } else { ::core::mem::transmute(val) } @@ -2545,7 +2500,16 @@ pub mod ext { } } } - #[doc = "VK_EXT_sample_locations device-level functions"] + } + #[doc = "VK_EXT_display_control"] + pub mod display_control { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::EXT_DISPLAY_CONTROL_NAME as NAME, + crate::vk::EXT_DISPLAY_CONTROL_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_display_control device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -2569,9 +2533,12 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_sample_locations device-level function pointers"] + #[doc = "Raw VK_EXT_display_control device-level function pointers"] pub struct DeviceFn { - pub cmd_set_sample_locations_ext: PFN_vkCmdSetSampleLocationsEXT, + pub display_power_control_ext: PFN_vkDisplayPowerControlEXT, + pub register_device_event_ext: PFN_vkRegisterDeviceEventEXT, + pub register_display_event_ext: PFN_vkRegisterDisplayEventEXT, + pub get_swapchain_counter_ext: PFN_vkGetSwapchainCounterEXT, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -2581,105 +2548,86 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - cmd_set_sample_locations_ext: unsafe { - unsafe extern "system" fn cmd_set_sample_locations_ext( - _command_buffer: CommandBuffer, - _p_sample_locations_info: *const SampleLocationsInfoEXT<'_>, - ) { + display_power_control_ext: unsafe { + unsafe extern "system" fn display_power_control_ext( + _device: crate::vk::Device, + _display: DisplayKHR, + _p_display_power_info: *const DisplayPowerInfoEXT<'_>, + ) -> Result { panic!(concat!( "Unable to load ", - stringify!(cmd_set_sample_locations_ext) + stringify!(display_power_control_ext) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetSampleLocationsEXT\0"); + CStr::from_bytes_with_nul_unchecked(b"vkDisplayPowerControlEXT\0"); let val = _f(cname); if val.is_null() { - cmd_set_sample_locations_ext + display_power_control_ext } else { ::core::mem::transmute(val) } }, - } - } - } - } - #[doc = "VK_EXT_blend_operation_advanced"] - pub mod blend_operation_advanced { - pub use { - crate::vk::EXT_BLEND_OPERATION_ADVANCED_NAME as NAME, - crate::vk::EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_post_depth_coverage"] - pub mod post_depth_coverage { - pub use { - crate::vk::EXT_POST_DEPTH_COVERAGE_NAME as NAME, - crate::vk::EXT_POST_DEPTH_COVERAGE_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_image_drm_format_modifier"] - pub mod image_drm_format_modifier { - use crate::vk::*; - use core::ffi::*; - pub use { - crate::vk::EXT_IMAGE_DRM_FORMAT_MODIFIER_NAME as NAME, - crate::vk::EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION as SPEC_VERSION, - }; - #[doc = "VK_EXT_image_drm_format_modifier device-level functions"] - #[derive(Clone)] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn load(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_image_drm_format_modifier device-level function pointers"] - pub struct DeviceFn { - pub get_image_drm_format_modifier_properties_ext: - PFN_vkGetImageDrmFormatModifierPropertiesEXT, - } - 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_image_drm_format_modifier_properties_ext: unsafe { - unsafe extern "system" fn get_image_drm_format_modifier_properties_ext( + register_device_event_ext: unsafe { + unsafe extern "system" fn register_device_event_ext( _device: crate::vk::Device, - _image: Image, - _p_properties: *mut ImageDrmFormatModifierPropertiesEXT<'_>, + _p_device_event_info: *const DeviceEventInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks, + _p_fence: *mut Fence, ) -> Result { panic!(concat!( "Unable to load ", - stringify!(get_image_drm_format_modifier_properties_ext) + stringify!(register_device_event_ext) )) } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetImageDrmFormatModifierPropertiesEXT\0", - ); + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkRegisterDeviceEventEXT\0"); let val = _f(cname); if val.is_null() { - get_image_drm_format_modifier_properties_ext + register_device_event_ext + } else { + ::core::mem::transmute(val) + } + }, + register_display_event_ext: unsafe { + unsafe extern "system" fn register_display_event_ext( + _device: crate::vk::Device, + _display: DisplayKHR, + _p_display_event_info: *const DisplayEventInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks, + _p_fence: *mut Fence, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(register_display_event_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkRegisterDisplayEventEXT\0"); + let val = _f(cname); + if val.is_null() { + register_display_event_ext + } else { + ::core::mem::transmute(val) + } + }, + get_swapchain_counter_ext: unsafe { + unsafe extern "system" fn get_swapchain_counter_ext( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + _counter: SurfaceCounterFlagsEXT, + _p_counter_value: *mut u64, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_swapchain_counter_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainCounterEXT\0"); + let val = _f(cname); + if val.is_null() { + get_swapchain_counter_ext } else { ::core::mem::transmute(val) } @@ -2688,15 +2636,15 @@ pub mod ext { } } } - #[doc = "VK_EXT_validation_cache"] - pub mod validation_cache { + #[doc = "VK_EXT_discard_rectangles"] + pub mod discard_rectangles { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::EXT_VALIDATION_CACHE_NAME as NAME, - crate::vk::EXT_VALIDATION_CACHE_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_DISCARD_RECTANGLES_NAME as NAME, + crate::vk::EXT_DISCARD_RECTANGLES_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_EXT_validation_cache device-level functions"] + #[doc = "VK_EXT_discard_rectangles device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -2720,12 +2668,11 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_validation_cache device-level function pointers"] + #[doc = "Raw VK_EXT_discard_rectangles device-level function pointers"] pub struct DeviceFn { - pub create_validation_cache_ext: PFN_vkCreateValidationCacheEXT, - pub destroy_validation_cache_ext: PFN_vkDestroyValidationCacheEXT, - pub merge_validation_caches_ext: PFN_vkMergeValidationCachesEXT, - pub get_validation_cache_data_ext: PFN_vkGetValidationCacheDataEXT, + pub cmd_set_discard_rectangle_ext: PFN_vkCmdSetDiscardRectangleEXT, + pub cmd_set_discard_rectangle_enable_ext: PFN_vkCmdSetDiscardRectangleEnableEXT, + pub cmd_set_discard_rectangle_mode_ext: PFN_vkCmdSetDiscardRectangleModeEXT, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -2735,85 +2682,63 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - create_validation_cache_ext: unsafe { - unsafe extern "system" fn create_validation_cache_ext( - _device: crate::vk::Device, - _p_create_info: *const ValidationCacheCreateInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks, - _p_validation_cache: *mut ValidationCacheEXT, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_validation_cache_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateValidationCacheEXT\0"); - let val = _f(cname); - if val.is_null() { - create_validation_cache_ext - } else { - ::core::mem::transmute(val) - } - }, - destroy_validation_cache_ext: unsafe { - unsafe extern "system" fn destroy_validation_cache_ext( - _device: crate::vk::Device, - _validation_cache: ValidationCacheEXT, - _p_allocator: *const AllocationCallbacks, + cmd_set_discard_rectangle_ext: unsafe { + unsafe extern "system" fn cmd_set_discard_rectangle_ext( + _command_buffer: CommandBuffer, + _first_discard_rectangle: u32, + _discard_rectangle_count: u32, + _p_discard_rectangles: *const Rect2D, ) { panic!(concat!( "Unable to load ", - stringify!(destroy_validation_cache_ext) + stringify!(cmd_set_discard_rectangle_ext) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDestroyValidationCacheEXT\0"); + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDiscardRectangleEXT\0"); let val = _f(cname); if val.is_null() { - destroy_validation_cache_ext + cmd_set_discard_rectangle_ext } else { ::core::mem::transmute(val) } }, - merge_validation_caches_ext: unsafe { - unsafe extern "system" fn merge_validation_caches_ext( - _device: crate::vk::Device, - _dst_cache: ValidationCacheEXT, - _src_cache_count: u32, - _p_src_caches: *const ValidationCacheEXT, - ) -> Result { + cmd_set_discard_rectangle_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_discard_rectangle_enable_ext( + _command_buffer: CommandBuffer, + _discard_rectangle_enable: Bool32, + ) { panic!(concat!( "Unable to load ", - stringify!(merge_validation_caches_ext) + stringify!(cmd_set_discard_rectangle_enable_ext) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkMergeValidationCachesEXT\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetDiscardRectangleEnableEXT\0", + ); let val = _f(cname); if val.is_null() { - merge_validation_caches_ext + cmd_set_discard_rectangle_enable_ext } else { ::core::mem::transmute(val) } }, - get_validation_cache_data_ext: unsafe { - unsafe extern "system" fn get_validation_cache_data_ext( - _device: crate::vk::Device, - _validation_cache: ValidationCacheEXT, - _p_data_size: *mut usize, - _p_data: *mut c_void, - ) -> Result { + cmd_set_discard_rectangle_mode_ext: unsafe { + unsafe extern "system" fn cmd_set_discard_rectangle_mode_ext( + _command_buffer: CommandBuffer, + _discard_rectangle_mode: DiscardRectangleModeEXT, + ) { panic!(concat!( "Unable to load ", - stringify!(get_validation_cache_data_ext) + stringify!(cmd_set_discard_rectangle_mode_ext) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetValidationCacheDataEXT\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetDiscardRectangleModeEXT\0", + ); let val = _f(cname); if val.is_null() { - get_validation_cache_data_ext + cmd_set_discard_rectangle_mode_ext } else { ::core::mem::transmute(val) } @@ -2822,43 +2747,36 @@ pub mod ext { } } } - #[doc = "VK_EXT_descriptor_indexing"] - pub mod descriptor_indexing { - pub use { - crate::vk::EXT_DESCRIPTOR_INDEXING_NAME as NAME, - crate::vk::EXT_DESCRIPTOR_INDEXING_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_shader_viewport_index_layer"] - pub mod shader_viewport_index_layer { + #[doc = "VK_EXT_conservative_rasterization"] + pub mod conservative_rasterization { pub use { - crate::vk::EXT_SHADER_VIEWPORT_INDEX_LAYER_NAME as NAME, - crate::vk::EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_CONSERVATIVE_RASTERIZATION_NAME as NAME, + crate::vk::EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_EXT_filter_cubic"] - pub mod filter_cubic { + #[doc = "VK_EXT_depth_clip_enable"] + pub mod depth_clip_enable { pub use { - crate::vk::EXT_FILTER_CUBIC_NAME as NAME, - crate::vk::EXT_FILTER_CUBIC_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_DEPTH_CLIP_ENABLE_NAME as NAME, + crate::vk::EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_EXT_global_priority"] - pub mod global_priority { + #[doc = "VK_EXT_swapchain_colorspace"] + pub mod swapchain_colorspace { pub use { - crate::vk::EXT_GLOBAL_PRIORITY_NAME as NAME, - crate::vk::EXT_GLOBAL_PRIORITY_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_SWAPCHAIN_COLORSPACE_NAME as NAME, + crate::vk::EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_EXT_external_memory_host"] - pub mod external_memory_host { + #[doc = "VK_EXT_hdr_metadata"] + pub mod hdr_metadata { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::EXT_EXTERNAL_MEMORY_HOST_NAME as NAME, - crate::vk::EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_HDR_METADATA_NAME as NAME, + crate::vk::EXT_HDR_METADATA_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_EXT_external_memory_host device-level functions"] + #[doc = "VK_EXT_hdr_metadata device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -2882,9 +2800,9 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_external_memory_host device-level function pointers"] + #[doc = "Raw VK_EXT_hdr_metadata device-level function pointers"] pub struct DeviceFn { - pub get_memory_host_pointer_properties_ext: PFN_vkGetMemoryHostPointerPropertiesEXT, + pub set_hdr_metadata_ext: PFN_vkSetHdrMetadataEXT, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -2894,26 +2812,19 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - get_memory_host_pointer_properties_ext: unsafe { - unsafe extern "system" fn get_memory_host_pointer_properties_ext( + set_hdr_metadata_ext: unsafe { + unsafe extern "system" fn set_hdr_metadata_ext( _device: crate::vk::Device, - _handle_type: ExternalMemoryHandleTypeFlags, - _p_host_pointer: *const c_void, - _p_memory_host_pointer_properties: *mut MemoryHostPointerPropertiesEXT< - '_, - >, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_memory_host_pointer_properties_ext) - )) + _swapchain_count: u32, + _p_swapchains: *const SwapchainKHR, + _p_metadata: *const HdrMetadataEXT<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(set_hdr_metadata_ext))) } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetMemoryHostPointerPropertiesEXT\0", - ); + let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetHdrMetadataEXT\0"); let val = _f(cname); if val.is_null() { - get_memory_host_pointer_properties_ext + set_hdr_metadata_ext } else { ::core::mem::transmute(val) } @@ -2922,15 +2833,29 @@ pub mod ext { } } } - #[doc = "VK_EXT_calibrated_timestamps"] - pub mod calibrated_timestamps { + #[doc = "VK_EXT_external_memory_dma_buf"] + pub mod external_memory_dma_buf { + pub use { + crate::vk::EXT_EXTERNAL_MEMORY_DMA_BUF_NAME as NAME, + crate::vk::EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_queue_family_foreign"] + pub mod queue_family_foreign { + pub use { + crate::vk::EXT_QUEUE_FAMILY_FOREIGN_NAME as NAME, + crate::vk::EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_debug_utils"] + pub mod debug_utils { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::EXT_CALIBRATED_TIMESTAMPS_NAME as NAME, - crate::vk::EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_DEBUG_UTILS_NAME as NAME, + crate::vk::EXT_DEBUG_UTILS_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_EXT_calibrated_timestamps instance-level functions"] + #[doc = "VK_EXT_debug_utils instance-level functions"] #[derive(Clone)] pub struct Instance { pub(crate) fp: InstanceFn, @@ -2954,10 +2879,11 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_calibrated_timestamps instance-level function pointers"] + #[doc = "Raw VK_EXT_debug_utils instance-level function pointers"] pub struct InstanceFn { - pub get_physical_device_calibrateable_time_domains_ext: - PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR, + pub create_debug_utils_messenger_ext: PFN_vkCreateDebugUtilsMessengerEXT, + pub destroy_debug_utils_messenger_ext: PFN_vkDestroyDebugUtilsMessengerEXT, + pub submit_debug_utils_message_ext: PFN_vkSubmitDebugUtilsMessageEXT, } unsafe impl Send for InstanceFn {} unsafe impl Sync for InstanceFn {} @@ -2967,174 +2893,66 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - get_physical_device_calibrateable_time_domains_ext: unsafe { - unsafe extern "system" fn get_physical_device_calibrateable_time_domains_ext( - _physical_device: PhysicalDevice, - _p_time_domain_count: *mut u32, - _p_time_domains: *mut TimeDomainKHR, + create_debug_utils_messenger_ext: unsafe { + unsafe extern "system" fn create_debug_utils_messenger_ext( + _instance: crate::vk::Instance, + _p_create_info: *const DebugUtilsMessengerCreateInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks, + _p_messenger: *mut DebugUtilsMessengerEXT, ) -> Result { panic!(concat!( "Unable to load ", - stringify!(get_physical_device_calibrateable_time_domains_ext) + stringify!(create_debug_utils_messenger_ext) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceCalibrateableTimeDomainsEXT\0", + b"vkCreateDebugUtilsMessengerEXT\0", ); let val = _f(cname); if val.is_null() { - get_physical_device_calibrateable_time_domains_ext + create_debug_utils_messenger_ext } else { ::core::mem::transmute(val) } }, - } - } - } - #[doc = "VK_EXT_calibrated_timestamps device-level functions"] - #[derive(Clone)] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn load(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_calibrated_timestamps device-level function pointers"] - pub struct DeviceFn { - pub get_calibrated_timestamps_ext: PFN_vkGetCalibratedTimestampsKHR, - } - 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_calibrated_timestamps_ext: unsafe { - unsafe extern "system" fn get_calibrated_timestamps_ext( - _device: crate::vk::Device, - _timestamp_count: u32, - _p_timestamp_infos: *const CalibratedTimestampInfoKHR<'_>, - _p_timestamps: *mut u64, - _p_max_deviation: *mut u64, - ) -> Result { + destroy_debug_utils_messenger_ext: unsafe { + unsafe extern "system" fn destroy_debug_utils_messenger_ext( + _instance: crate::vk::Instance, + _messenger: DebugUtilsMessengerEXT, + _p_allocator: *const AllocationCallbacks, + ) { panic!(concat!( "Unable to load ", - stringify!(get_calibrated_timestamps_ext) + stringify!(destroy_debug_utils_messenger_ext) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetCalibratedTimestampsEXT\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkDestroyDebugUtilsMessengerEXT\0", + ); let val = _f(cname); if val.is_null() { - get_calibrated_timestamps_ext + destroy_debug_utils_messenger_ext } else { ::core::mem::transmute(val) } }, - } - } - } - } - #[doc = "VK_EXT_vertex_attribute_divisor"] - pub mod vertex_attribute_divisor { - pub use { - crate::vk::EXT_VERTEX_ATTRIBUTE_DIVISOR_NAME as NAME, - crate::vk::EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_pipeline_creation_feedback"] - pub mod pipeline_creation_feedback { - pub use { - crate::vk::EXT_PIPELINE_CREATION_FEEDBACK_NAME as NAME, - crate::vk::EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_pci_bus_info"] - pub mod pci_bus_info { - pub use { - crate::vk::EXT_PCI_BUS_INFO_NAME as NAME, - crate::vk::EXT_PCI_BUS_INFO_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_metal_surface"] - pub mod metal_surface { - use crate::vk::*; - use core::ffi::*; - pub use { - crate::vk::EXT_METAL_SURFACE_NAME as NAME, - crate::vk::EXT_METAL_SURFACE_SPEC_VERSION as SPEC_VERSION, - }; - #[doc = "VK_EXT_metal_surface instance-level functions"] - #[derive(Clone)] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn load(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle; - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - #[derive(Clone)] - #[doc = "Raw VK_EXT_metal_surface instance-level function pointers"] - pub struct InstanceFn { - pub create_metal_surface_ext: PFN_vkCreateMetalSurfaceEXT, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - 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_metal_surface_ext: unsafe { - unsafe extern "system" fn create_metal_surface_ext( + submit_debug_utils_message_ext: unsafe { + unsafe extern "system" fn submit_debug_utils_message_ext( _instance: crate::vk::Instance, - _p_create_info: *const MetalSurfaceCreateInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks, - _p_surface: *mut SurfaceKHR, - ) -> Result { + _message_severity: DebugUtilsMessageSeverityFlagsEXT, + _message_types: DebugUtilsMessageTypeFlagsEXT, + _p_callback_data: *const DebugUtilsMessengerCallbackDataEXT<'_>, + ) { panic!(concat!( "Unable to load ", - stringify!(create_metal_surface_ext) + stringify!(submit_debug_utils_message_ext) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateMetalSurfaceEXT\0"); + CStr::from_bytes_with_nul_unchecked(b"vkSubmitDebugUtilsMessageEXT\0"); let val = _f(cname); if val.is_null() { - create_metal_surface_ext + submit_debug_utils_message_ext } else { ::core::mem::transmute(val) } @@ -3142,58 +2960,7 @@ pub mod ext { } } } - } - #[doc = "VK_EXT_fragment_density_map"] - pub mod fragment_density_map { - pub use { - crate::vk::EXT_FRAGMENT_DENSITY_MAP_NAME as NAME, - crate::vk::EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_scalar_block_layout"] - pub mod scalar_block_layout { - pub use { - crate::vk::EXT_SCALAR_BLOCK_LAYOUT_NAME as NAME, - crate::vk::EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_subgroup_size_control"] - pub mod subgroup_size_control { - pub use { - crate::vk::EXT_SUBGROUP_SIZE_CONTROL_NAME as NAME, - crate::vk::EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_shader_image_atomic_int64"] - pub mod shader_image_atomic_int64 { - pub use { - crate::vk::EXT_SHADER_IMAGE_ATOMIC_INT64_NAME as NAME, - crate::vk::EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_memory_budget"] - pub mod memory_budget { - pub use { - crate::vk::EXT_MEMORY_BUDGET_NAME as NAME, - crate::vk::EXT_MEMORY_BUDGET_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_memory_priority"] - pub mod memory_priority { - pub use { - crate::vk::EXT_MEMORY_PRIORITY_NAME as NAME, - crate::vk::EXT_MEMORY_PRIORITY_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_buffer_device_address"] - pub mod buffer_device_address { - use crate::vk::*; - use core::ffi::*; - pub use { - crate::vk::EXT_BUFFER_DEVICE_ADDRESS_NAME as NAME, - crate::vk::EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION as SPEC_VERSION, - }; - #[doc = "VK_EXT_buffer_device_address device-level functions"] + #[doc = "VK_EXT_debug_utils device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -3217,9 +2984,16 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_buffer_device_address device-level function pointers"] + #[doc = "Raw VK_EXT_debug_utils device-level function pointers"] pub struct DeviceFn { - pub get_buffer_device_address_ext: PFN_vkGetBufferDeviceAddress, + pub set_debug_utils_object_name_ext: PFN_vkSetDebugUtilsObjectNameEXT, + pub set_debug_utils_object_tag_ext: PFN_vkSetDebugUtilsObjectTagEXT, + pub queue_begin_debug_utils_label_ext: PFN_vkQueueBeginDebugUtilsLabelEXT, + pub queue_end_debug_utils_label_ext: PFN_vkQueueEndDebugUtilsLabelEXT, + pub queue_insert_debug_utils_label_ext: PFN_vkQueueInsertDebugUtilsLabelEXT, + pub cmd_begin_debug_utils_label_ext: PFN_vkCmdBeginDebugUtilsLabelEXT, + pub cmd_end_debug_utils_label_ext: PFN_vkCmdEndDebugUtilsLabelEXT, + pub cmd_insert_debug_utils_label_ext: PFN_vkCmdInsertDebugUtilsLabelEXT, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -3229,90 +3003,152 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - get_buffer_device_address_ext: unsafe { - unsafe extern "system" fn get_buffer_device_address_ext( + set_debug_utils_object_name_ext: unsafe { + unsafe extern "system" fn set_debug_utils_object_name_ext( _device: crate::vk::Device, - _p_info: *const BufferDeviceAddressInfo<'_>, - ) -> DeviceAddress { + _p_name_info: *const DebugUtilsObjectNameInfoEXT<'_>, + ) -> Result { panic!(concat!( "Unable to load ", - stringify!(get_buffer_device_address_ext) + stringify!(set_debug_utils_object_name_ext) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetBufferDeviceAddressEXT\0"); + CStr::from_bytes_with_nul_unchecked(b"vkSetDebugUtilsObjectNameEXT\0"); let val = _f(cname); if val.is_null() { - get_buffer_device_address_ext + set_debug_utils_object_name_ext } else { ::core::mem::transmute(val) } }, - } - } - } - } - #[doc = "VK_EXT_tooling_info"] - pub mod tooling_info { - use crate::vk::*; - use core::ffi::*; - pub use { - crate::vk::EXT_TOOLING_INFO_NAME as NAME, - crate::vk::EXT_TOOLING_INFO_SPEC_VERSION as SPEC_VERSION, - }; - #[doc = "VK_EXT_tooling_info instance-level functions"] - #[derive(Clone)] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn load(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle; - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - #[derive(Clone)] - #[doc = "Raw VK_EXT_tooling_info instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_tool_properties_ext: PFN_vkGetPhysicalDeviceToolProperties, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - 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_physical_device_tool_properties_ext: unsafe { - unsafe extern "system" fn get_physical_device_tool_properties_ext( - _physical_device: PhysicalDevice, - _p_tool_count: *mut u32, - _p_tool_properties: *mut PhysicalDeviceToolProperties<'_>, + set_debug_utils_object_tag_ext: unsafe { + unsafe extern "system" fn set_debug_utils_object_tag_ext( + _device: crate::vk::Device, + _p_tag_info: *const DebugUtilsObjectTagInfoEXT<'_>, ) -> Result { panic!(concat!( "Unable to load ", - stringify!(get_physical_device_tool_properties_ext) + stringify!(set_debug_utils_object_tag_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkSetDebugUtilsObjectTagEXT\0"); + let val = _f(cname); + if val.is_null() { + set_debug_utils_object_tag_ext + } else { + ::core::mem::transmute(val) + } + }, + queue_begin_debug_utils_label_ext: unsafe { + unsafe extern "system" fn queue_begin_debug_utils_label_ext( + _queue: Queue, + _p_label_info: *const DebugUtilsLabelEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(queue_begin_debug_utils_label_ext) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceToolPropertiesEXT\0", + b"vkQueueBeginDebugUtilsLabelEXT\0", ); let val = _f(cname); if val.is_null() { - get_physical_device_tool_properties_ext + queue_begin_debug_utils_label_ext + } else { + ::core::mem::transmute(val) + } + }, + queue_end_debug_utils_label_ext: unsafe { + unsafe extern "system" fn queue_end_debug_utils_label_ext(_queue: Queue) { + panic!(concat!( + "Unable to load ", + stringify!(queue_end_debug_utils_label_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkQueueEndDebugUtilsLabelEXT\0"); + let val = _f(cname); + if val.is_null() { + queue_end_debug_utils_label_ext + } else { + ::core::mem::transmute(val) + } + }, + queue_insert_debug_utils_label_ext: unsafe { + unsafe extern "system" fn queue_insert_debug_utils_label_ext( + _queue: Queue, + _p_label_info: *const DebugUtilsLabelEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(queue_insert_debug_utils_label_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkQueueInsertDebugUtilsLabelEXT\0", + ); + let val = _f(cname); + if val.is_null() { + queue_insert_debug_utils_label_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_begin_debug_utils_label_ext: unsafe { + unsafe extern "system" fn cmd_begin_debug_utils_label_ext( + _command_buffer: CommandBuffer, + _p_label_info: *const DebugUtilsLabelEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_begin_debug_utils_label_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginDebugUtilsLabelEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_begin_debug_utils_label_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_end_debug_utils_label_ext: unsafe { + unsafe extern "system" fn cmd_end_debug_utils_label_ext( + _command_buffer: CommandBuffer, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_end_debug_utils_label_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdEndDebugUtilsLabelEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_end_debug_utils_label_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_insert_debug_utils_label_ext: unsafe { + unsafe extern "system" fn cmd_insert_debug_utils_label_ext( + _command_buffer: CommandBuffer, + _p_label_info: *const DebugUtilsLabelEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_insert_debug_utils_label_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdInsertDebugUtilsLabelEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_insert_debug_utils_label_ext } else { ::core::mem::transmute(val) } @@ -3321,50 +3157,36 @@ pub mod ext { } } } - #[doc = "VK_EXT_separate_stencil_usage"] - pub mod separate_stencil_usage { - pub use { - crate::vk::EXT_SEPARATE_STENCIL_USAGE_NAME as NAME, - crate::vk::EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_validation_features"] - pub mod validation_features { - pub use { - crate::vk::EXT_VALIDATION_FEATURES_NAME as NAME, - crate::vk::EXT_VALIDATION_FEATURES_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_fragment_shader_interlock"] - pub mod fragment_shader_interlock { + #[doc = "VK_EXT_sampler_filter_minmax"] + pub mod sampler_filter_minmax { pub use { - crate::vk::EXT_FRAGMENT_SHADER_INTERLOCK_NAME as NAME, - crate::vk::EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_SAMPLER_FILTER_MINMAX_NAME as NAME, + crate::vk::EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_EXT_ycbcr_image_arrays"] - pub mod ycbcr_image_arrays { + #[doc = "VK_EXT_inline_uniform_block"] + pub mod inline_uniform_block { pub use { - crate::vk::EXT_YCBCR_IMAGE_ARRAYS_NAME as NAME, - crate::vk::EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_INLINE_UNIFORM_BLOCK_NAME as NAME, + crate::vk::EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_EXT_provoking_vertex"] - pub mod provoking_vertex { + #[doc = "VK_EXT_shader_stencil_export"] + pub mod shader_stencil_export { pub use { - crate::vk::EXT_PROVOKING_VERTEX_NAME as NAME, - crate::vk::EXT_PROVOKING_VERTEX_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_SHADER_STENCIL_EXPORT_NAME as NAME, + crate::vk::EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_EXT_full_screen_exclusive"] - pub mod full_screen_exclusive { + #[doc = "VK_EXT_sample_locations"] + pub mod sample_locations { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::EXT_FULL_SCREEN_EXCLUSIVE_NAME as NAME, - crate::vk::EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_SAMPLE_LOCATIONS_NAME as NAME, + crate::vk::EXT_SAMPLE_LOCATIONS_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_EXT_full_screen_exclusive instance-level functions"] + #[doc = "VK_EXT_sample_locations instance-level functions"] #[derive(Clone)] pub struct Instance { pub(crate) fp: InstanceFn, @@ -3388,10 +3210,10 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_full_screen_exclusive instance-level function pointers"] + #[doc = "Raw VK_EXT_sample_locations instance-level function pointers"] pub struct InstanceFn { - pub get_physical_device_surface_present_modes2_ext: - PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT, + pub get_physical_device_multisample_properties_ext: + PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT, } unsafe impl Send for InstanceFn {} unsafe impl Sync for InstanceFn {} @@ -3401,24 +3223,23 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - get_physical_device_surface_present_modes2_ext: unsafe { - unsafe extern "system" fn get_physical_device_surface_present_modes2_ext( + get_physical_device_multisample_properties_ext: unsafe { + unsafe extern "system" fn get_physical_device_multisample_properties_ext( _physical_device: PhysicalDevice, - _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, - _p_present_mode_count: *mut u32, - _p_present_modes: *mut PresentModeKHR, - ) -> Result { + _samples: SampleCountFlags, + _p_multisample_properties: *mut MultisamplePropertiesEXT<'_>, + ) { panic!(concat!( "Unable to load ", - stringify!(get_physical_device_surface_present_modes2_ext) + stringify!(get_physical_device_multisample_properties_ext) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceSurfacePresentModes2EXT\0", + b"vkGetPhysicalDeviceMultisamplePropertiesEXT\0", ); let val = _f(cname); if val.is_null() { - get_physical_device_surface_present_modes2_ext + get_physical_device_multisample_properties_ext } else { ::core::mem::transmute(val) } @@ -3426,7 +3247,7 @@ pub mod ext { } } } - #[doc = "VK_EXT_full_screen_exclusive device-level functions"] + #[doc = "VK_EXT_sample_locations device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -3450,12 +3271,9 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_full_screen_exclusive device-level function pointers"] + #[doc = "Raw VK_EXT_sample_locations device-level function pointers"] pub struct DeviceFn { - pub acquire_full_screen_exclusive_mode_ext: PFN_vkAcquireFullScreenExclusiveModeEXT, - pub release_full_screen_exclusive_mode_ext: PFN_vkReleaseFullScreenExclusiveModeEXT, - pub get_device_group_surface_present_modes2_ext: - PFN_vkGetDeviceGroupSurfacePresentModes2EXT, + pub cmd_set_sample_locations_ext: PFN_vkCmdSetSampleLocationsEXT, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -3465,63 +3283,21 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - acquire_full_screen_exclusive_mode_ext: unsafe { - unsafe extern "system" fn acquire_full_screen_exclusive_mode_ext( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(acquire_full_screen_exclusive_mode_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkAcquireFullScreenExclusiveModeEXT\0", - ); - let val = _f(cname); - if val.is_null() { - acquire_full_screen_exclusive_mode_ext - } else { - ::core::mem::transmute(val) - } - }, - release_full_screen_exclusive_mode_ext: unsafe { - unsafe extern "system" fn release_full_screen_exclusive_mode_ext( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(release_full_screen_exclusive_mode_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkReleaseFullScreenExclusiveModeEXT\0", - ); - let val = _f(cname); - if val.is_null() { - release_full_screen_exclusive_mode_ext - } else { - ::core::mem::transmute(val) - } - }, - get_device_group_surface_present_modes2_ext: unsafe { - unsafe extern "system" fn get_device_group_surface_present_modes2_ext( - _device: crate::vk::Device, - _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, - _p_modes: *mut DeviceGroupPresentModeFlagsKHR, - ) -> Result { + cmd_set_sample_locations_ext: unsafe { + unsafe extern "system" fn cmd_set_sample_locations_ext( + _command_buffer: CommandBuffer, + _p_sample_locations_info: *const SampleLocationsInfoEXT<'_>, + ) { panic!(concat!( "Unable to load ", - stringify!(get_device_group_surface_present_modes2_ext) + stringify!(cmd_set_sample_locations_ext) )) } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDeviceGroupSurfacePresentModes2EXT\0", - ); + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetSampleLocationsEXT\0"); let val = _f(cname); if val.is_null() { - get_device_group_surface_present_modes2_ext + cmd_set_sample_locations_ext } else { ::core::mem::transmute(val) } @@ -3530,84 +3306,29 @@ pub mod ext { } } } - #[doc = "VK_EXT_headless_surface"] - pub mod headless_surface { - use crate::vk::*; - use core::ffi::*; + #[doc = "VK_EXT_blend_operation_advanced"] + pub mod blend_operation_advanced { pub use { - crate::vk::EXT_HEADLESS_SURFACE_NAME as NAME, - crate::vk::EXT_HEADLESS_SURFACE_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_BLEND_OPERATION_ADVANCED_NAME as NAME, + crate::vk::EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_EXT_headless_surface instance-level functions"] - #[derive(Clone)] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn load(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle; - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - #[derive(Clone)] - #[doc = "Raw VK_EXT_headless_surface instance-level function pointers"] - pub struct InstanceFn { - pub create_headless_surface_ext: PFN_vkCreateHeadlessSurfaceEXT, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - 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_headless_surface_ext: unsafe { - unsafe extern "system" fn create_headless_surface_ext( - _instance: crate::vk::Instance, - _p_create_info: *const HeadlessSurfaceCreateInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks, - _p_surface: *mut SurfaceKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_headless_surface_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateHeadlessSurfaceEXT\0"); - let val = _f(cname); - if val.is_null() { - create_headless_surface_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } } - #[doc = "VK_EXT_line_rasterization"] - pub mod line_rasterization { + #[doc = "VK_EXT_post_depth_coverage"] + pub mod post_depth_coverage { + pub use { + crate::vk::EXT_POST_DEPTH_COVERAGE_NAME as NAME, + crate::vk::EXT_POST_DEPTH_COVERAGE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_image_drm_format_modifier"] + pub mod image_drm_format_modifier { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::EXT_LINE_RASTERIZATION_NAME as NAME, - crate::vk::EXT_LINE_RASTERIZATION_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_IMAGE_DRM_FORMAT_MODIFIER_NAME as NAME, + crate::vk::EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_EXT_line_rasterization device-level functions"] + #[doc = "VK_EXT_image_drm_format_modifier device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -3631,9 +3352,10 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_line_rasterization device-level function pointers"] + #[doc = "Raw VK_EXT_image_drm_format_modifier device-level function pointers"] pub struct DeviceFn { - pub cmd_set_line_stipple_ext: PFN_vkCmdSetLineStippleKHR, + pub get_image_drm_format_modifier_properties_ext: + PFN_vkGetImageDrmFormatModifierPropertiesEXT, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -3643,22 +3365,23 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - cmd_set_line_stipple_ext: unsafe { - unsafe extern "system" fn cmd_set_line_stipple_ext( - _command_buffer: CommandBuffer, - _line_stipple_factor: u32, - _line_stipple_pattern: u16, - ) { + get_image_drm_format_modifier_properties_ext: unsafe { + unsafe extern "system" fn get_image_drm_format_modifier_properties_ext( + _device: crate::vk::Device, + _image: Image, + _p_properties: *mut ImageDrmFormatModifierPropertiesEXT<'_>, + ) -> Result { panic!(concat!( "Unable to load ", - stringify!(cmd_set_line_stipple_ext) + stringify!(get_image_drm_format_modifier_properties_ext) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineStippleEXT\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetImageDrmFormatModifierPropertiesEXT\0", + ); let val = _f(cname); if val.is_null() { - cmd_set_line_stipple_ext + get_image_drm_format_modifier_properties_ext } else { ::core::mem::transmute(val) } @@ -3667,22 +3390,15 @@ pub mod ext { } } } - #[doc = "VK_EXT_shader_atomic_float"] - pub mod shader_atomic_float { - pub use { - crate::vk::EXT_SHADER_ATOMIC_FLOAT_NAME as NAME, - crate::vk::EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_host_query_reset"] - pub mod host_query_reset { + #[doc = "VK_EXT_validation_cache"] + pub mod validation_cache { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::EXT_HOST_QUERY_RESET_NAME as NAME, - crate::vk::EXT_HOST_QUERY_RESET_SPEC_VERSION as SPEC_VERSION, + crate::vk::EXT_VALIDATION_CACHE_NAME as NAME, + crate::vk::EXT_VALIDATION_CACHE_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_EXT_host_query_reset device-level functions"] + #[doc = "VK_EXT_validation_cache device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -3706,9 +3422,12 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_host_query_reset device-level function pointers"] + #[doc = "Raw VK_EXT_validation_cache device-level function pointers"] pub struct DeviceFn { - pub reset_query_pool_ext: PFN_vkResetQueryPool, + pub create_validation_cache_ext: PFN_vkCreateValidationCacheEXT, + pub destroy_validation_cache_ext: PFN_vkDestroyValidationCacheEXT, + pub merge_validation_caches_ext: PFN_vkMergeValidationCachesEXT, + pub get_validation_cache_data_ext: PFN_vkGetValidationCacheDataEXT, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -3718,49 +3437,136 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - reset_query_pool_ext: unsafe { - unsafe extern "system" fn reset_query_pool_ext( + create_validation_cache_ext: unsafe { + unsafe extern "system" fn create_validation_cache_ext( _device: crate::vk::Device, - _query_pool: QueryPool, - _first_query: u32, - _query_count: u32, + _p_create_info: *const ValidationCacheCreateInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks, + _p_validation_cache: *mut ValidationCacheEXT, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_validation_cache_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateValidationCacheEXT\0"); + let val = _f(cname); + if val.is_null() { + create_validation_cache_ext + } else { + ::core::mem::transmute(val) + } + }, + destroy_validation_cache_ext: unsafe { + unsafe extern "system" fn destroy_validation_cache_ext( + _device: crate::vk::Device, + _validation_cache: ValidationCacheEXT, + _p_allocator: *const AllocationCallbacks, ) { - panic!(concat!("Unable to load ", stringify!(reset_query_pool_ext))) + panic!(concat!( + "Unable to load ", + stringify!(destroy_validation_cache_ext) + )) } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkResetQueryPoolEXT\0"); + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkDestroyValidationCacheEXT\0"); let val = _f(cname); if val.is_null() { - reset_query_pool_ext + destroy_validation_cache_ext } else { ::core::mem::transmute(val) } }, - } - } - } - } - #[doc = "VK_EXT_index_type_uint8"] - pub mod index_type_uint8 { - pub use { - crate::vk::EXT_INDEX_TYPE_UINT8_NAME as NAME, - crate::vk::EXT_INDEX_TYPE_UINT8_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_EXT_extended_dynamic_state"] - pub mod extended_dynamic_state { - use crate::vk::*; - use core::ffi::*; - pub use { - crate::vk::EXT_EXTENDED_DYNAMIC_STATE_NAME as NAME, - crate::vk::EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION as SPEC_VERSION, - }; - #[doc = "VK_EXT_extended_dynamic_state device-level functions"] - #[derive(Clone)] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { + merge_validation_caches_ext: unsafe { + unsafe extern "system" fn merge_validation_caches_ext( + _device: crate::vk::Device, + _dst_cache: ValidationCacheEXT, + _src_cache_count: u32, + _p_src_caches: *const ValidationCacheEXT, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(merge_validation_caches_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkMergeValidationCachesEXT\0"); + let val = _f(cname); + if val.is_null() { + merge_validation_caches_ext + } else { + ::core::mem::transmute(val) + } + }, + get_validation_cache_data_ext: unsafe { + unsafe extern "system" fn get_validation_cache_data_ext( + _device: crate::vk::Device, + _validation_cache: ValidationCacheEXT, + _p_data_size: *mut usize, + _p_data: *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_validation_cache_data_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetValidationCacheDataEXT\0"); + let val = _f(cname); + if val.is_null() { + get_validation_cache_data_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_descriptor_indexing"] + pub mod descriptor_indexing { + pub use { + crate::vk::EXT_DESCRIPTOR_INDEXING_NAME as NAME, + crate::vk::EXT_DESCRIPTOR_INDEXING_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_shader_viewport_index_layer"] + pub mod shader_viewport_index_layer { + pub use { + crate::vk::EXT_SHADER_VIEWPORT_INDEX_LAYER_NAME as NAME, + crate::vk::EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_filter_cubic"] + pub mod filter_cubic { + pub use { + crate::vk::EXT_FILTER_CUBIC_NAME as NAME, + crate::vk::EXT_FILTER_CUBIC_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_global_priority"] + pub mod global_priority { + pub use { + crate::vk::EXT_GLOBAL_PRIORITY_NAME as NAME, + crate::vk::EXT_GLOBAL_PRIORITY_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_external_memory_host"] + pub mod external_memory_host { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::EXT_EXTERNAL_MEMORY_HOST_NAME as NAME, + crate::vk::EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_external_memory_host device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { pub fn load(instance: &crate::Instance, device: &crate::Device) -> Self { let handle = device.handle; let fp = DeviceFn::load(|name| unsafe { @@ -3778,20 +3584,9 @@ pub mod ext { } } #[derive(Clone)] - #[doc = "Raw VK_EXT_extended_dynamic_state device-level function pointers"] + #[doc = "Raw VK_EXT_external_memory_host device-level function pointers"] pub struct DeviceFn { - pub cmd_set_cull_mode_ext: PFN_vkCmdSetCullMode, - pub cmd_set_front_face_ext: PFN_vkCmdSetFrontFace, - pub cmd_set_primitive_topology_ext: PFN_vkCmdSetPrimitiveTopology, - pub cmd_set_viewport_with_count_ext: PFN_vkCmdSetViewportWithCount, - pub cmd_set_scissor_with_count_ext: PFN_vkCmdSetScissorWithCount, - pub cmd_bind_vertex_buffers2_ext: PFN_vkCmdBindVertexBuffers2, - pub cmd_set_depth_test_enable_ext: PFN_vkCmdSetDepthTestEnable, - pub cmd_set_depth_write_enable_ext: PFN_vkCmdSetDepthWriteEnable, - pub cmd_set_depth_compare_op_ext: PFN_vkCmdSetDepthCompareOp, - pub cmd_set_depth_bounds_test_enable_ext: PFN_vkCmdSetDepthBoundsTestEnable, - pub cmd_set_stencil_test_enable_ext: PFN_vkCmdSetStencilTestEnable, - pub cmd_set_stencil_op_ext: PFN_vkCmdSetStencilOp, + pub get_memory_host_pointer_properties_ext: PFN_vkGetMemoryHostPointerPropertiesEXT, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -3801,65 +3596,972 @@ pub mod ext { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - cmd_set_cull_mode_ext: unsafe { - unsafe extern "system" fn cmd_set_cull_mode_ext( - _command_buffer: CommandBuffer, - _cull_mode: CullModeFlags, - ) { + get_memory_host_pointer_properties_ext: unsafe { + unsafe extern "system" fn get_memory_host_pointer_properties_ext( + _device: crate::vk::Device, + _handle_type: ExternalMemoryHandleTypeFlags, + _p_host_pointer: *const c_void, + _p_memory_host_pointer_properties: *mut MemoryHostPointerPropertiesEXT< + '_, + >, + ) -> Result { panic!(concat!( "Unable to load ", - stringify!(cmd_set_cull_mode_ext) + stringify!(get_memory_host_pointer_properties_ext) )) } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCullModeEXT\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetMemoryHostPointerPropertiesEXT\0", + ); let val = _f(cname); if val.is_null() { - cmd_set_cull_mode_ext + get_memory_host_pointer_properties_ext } else { ::core::mem::transmute(val) } }, - cmd_set_front_face_ext: unsafe { - unsafe extern "system" fn cmd_set_front_face_ext( - _command_buffer: CommandBuffer, - _front_face: FrontFace, - ) { + } + } + } + } + #[doc = "VK_EXT_calibrated_timestamps"] + pub mod calibrated_timestamps { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::EXT_CALIBRATED_TIMESTAMPS_NAME as NAME, + crate::vk::EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_calibrated_timestamps instance-level functions"] + #[derive(Clone)] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn load(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle; + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_calibrated_timestamps instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_calibrateable_time_domains_ext: + PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + 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_physical_device_calibrateable_time_domains_ext: unsafe { + unsafe extern "system" fn get_physical_device_calibrateable_time_domains_ext( + _physical_device: PhysicalDevice, + _p_time_domain_count: *mut u32, + _p_time_domains: *mut TimeDomainKHR, + ) -> Result { panic!(concat!( "Unable to load ", - stringify!(cmd_set_front_face_ext) + stringify!(get_physical_device_calibrateable_time_domains_ext) )) } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetFrontFaceEXT\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceCalibrateableTimeDomainsEXT\0", + ); let val = _f(cname); if val.is_null() { - cmd_set_front_face_ext + get_physical_device_calibrateable_time_domains_ext } else { ::core::mem::transmute(val) } }, - cmd_set_primitive_topology_ext: unsafe { - unsafe extern "system" fn cmd_set_primitive_topology_ext( - _command_buffer: CommandBuffer, - _primitive_topology: PrimitiveTopology, - ) { + } + } + } + #[doc = "VK_EXT_calibrated_timestamps device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_calibrated_timestamps device-level function pointers"] + pub struct DeviceFn { + pub get_calibrated_timestamps_ext: PFN_vkGetCalibratedTimestampsKHR, + } + 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_calibrated_timestamps_ext: unsafe { + unsafe extern "system" fn get_calibrated_timestamps_ext( + _device: crate::vk::Device, + _timestamp_count: u32, + _p_timestamp_infos: *const CalibratedTimestampInfoKHR<'_>, + _p_timestamps: *mut u64, + _p_max_deviation: *mut u64, + ) -> Result { panic!(concat!( "Unable to load ", - stringify!(cmd_set_primitive_topology_ext) + stringify!(get_calibrated_timestamps_ext) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPrimitiveTopologyEXT\0"); + CStr::from_bytes_with_nul_unchecked(b"vkGetCalibratedTimestampsEXT\0"); let val = _f(cname); if val.is_null() { - cmd_set_primitive_topology_ext + get_calibrated_timestamps_ext } else { ::core::mem::transmute(val) } }, - cmd_set_viewport_with_count_ext: unsafe { - unsafe extern "system" fn cmd_set_viewport_with_count_ext( - _command_buffer: CommandBuffer, - _viewport_count: u32, + } + } + } + } + #[doc = "VK_EXT_vertex_attribute_divisor"] + pub mod vertex_attribute_divisor { + pub use { + crate::vk::EXT_VERTEX_ATTRIBUTE_DIVISOR_NAME as NAME, + crate::vk::EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_pipeline_creation_feedback"] + pub mod pipeline_creation_feedback { + pub use { + crate::vk::EXT_PIPELINE_CREATION_FEEDBACK_NAME as NAME, + crate::vk::EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_pci_bus_info"] + pub mod pci_bus_info { + pub use { + crate::vk::EXT_PCI_BUS_INFO_NAME as NAME, + crate::vk::EXT_PCI_BUS_INFO_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_metal_surface"] + pub mod metal_surface { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::EXT_METAL_SURFACE_NAME as NAME, + crate::vk::EXT_METAL_SURFACE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_metal_surface instance-level functions"] + #[derive(Clone)] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn load(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle; + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_metal_surface instance-level function pointers"] + pub struct InstanceFn { + pub create_metal_surface_ext: PFN_vkCreateMetalSurfaceEXT, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + 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_metal_surface_ext: unsafe { + unsafe extern "system" fn create_metal_surface_ext( + _instance: crate::vk::Instance, + _p_create_info: *const MetalSurfaceCreateInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks, + _p_surface: *mut SurfaceKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_metal_surface_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateMetalSurfaceEXT\0"); + let val = _f(cname); + if val.is_null() { + create_metal_surface_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_fragment_density_map"] + pub mod fragment_density_map { + pub use { + crate::vk::EXT_FRAGMENT_DENSITY_MAP_NAME as NAME, + crate::vk::EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_scalar_block_layout"] + pub mod scalar_block_layout { + pub use { + crate::vk::EXT_SCALAR_BLOCK_LAYOUT_NAME as NAME, + crate::vk::EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_subgroup_size_control"] + pub mod subgroup_size_control { + pub use { + crate::vk::EXT_SUBGROUP_SIZE_CONTROL_NAME as NAME, + crate::vk::EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_shader_image_atomic_int64"] + pub mod shader_image_atomic_int64 { + pub use { + crate::vk::EXT_SHADER_IMAGE_ATOMIC_INT64_NAME as NAME, + crate::vk::EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_memory_budget"] + pub mod memory_budget { + pub use { + crate::vk::EXT_MEMORY_BUDGET_NAME as NAME, + crate::vk::EXT_MEMORY_BUDGET_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_memory_priority"] + pub mod memory_priority { + pub use { + crate::vk::EXT_MEMORY_PRIORITY_NAME as NAME, + crate::vk::EXT_MEMORY_PRIORITY_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_buffer_device_address"] + pub mod buffer_device_address { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::EXT_BUFFER_DEVICE_ADDRESS_NAME as NAME, + crate::vk::EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_buffer_device_address device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_buffer_device_address device-level function pointers"] + pub struct DeviceFn { + pub get_buffer_device_address_ext: PFN_vkGetBufferDeviceAddress, + } + 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_buffer_device_address_ext: unsafe { + unsafe extern "system" fn get_buffer_device_address_ext( + _device: crate::vk::Device, + _p_info: *const BufferDeviceAddressInfo<'_>, + ) -> DeviceAddress { + panic!(concat!( + "Unable to load ", + stringify!(get_buffer_device_address_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetBufferDeviceAddressEXT\0"); + let val = _f(cname); + if val.is_null() { + get_buffer_device_address_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_tooling_info"] + pub mod tooling_info { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::EXT_TOOLING_INFO_NAME as NAME, + crate::vk::EXT_TOOLING_INFO_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_tooling_info instance-level functions"] + #[derive(Clone)] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn load(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle; + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_tooling_info instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_tool_properties_ext: PFN_vkGetPhysicalDeviceToolProperties, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + 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_physical_device_tool_properties_ext: unsafe { + unsafe extern "system" fn get_physical_device_tool_properties_ext( + _physical_device: PhysicalDevice, + _p_tool_count: *mut u32, + _p_tool_properties: *mut PhysicalDeviceToolProperties<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_tool_properties_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceToolPropertiesEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_tool_properties_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_separate_stencil_usage"] + pub mod separate_stencil_usage { + pub use { + crate::vk::EXT_SEPARATE_STENCIL_USAGE_NAME as NAME, + crate::vk::EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_validation_features"] + pub mod validation_features { + pub use { + crate::vk::EXT_VALIDATION_FEATURES_NAME as NAME, + crate::vk::EXT_VALIDATION_FEATURES_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_fragment_shader_interlock"] + pub mod fragment_shader_interlock { + pub use { + crate::vk::EXT_FRAGMENT_SHADER_INTERLOCK_NAME as NAME, + crate::vk::EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_ycbcr_image_arrays"] + pub mod ycbcr_image_arrays { + pub use { + crate::vk::EXT_YCBCR_IMAGE_ARRAYS_NAME as NAME, + crate::vk::EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_provoking_vertex"] + pub mod provoking_vertex { + pub use { + crate::vk::EXT_PROVOKING_VERTEX_NAME as NAME, + crate::vk::EXT_PROVOKING_VERTEX_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_full_screen_exclusive"] + pub mod full_screen_exclusive { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::EXT_FULL_SCREEN_EXCLUSIVE_NAME as NAME, + crate::vk::EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_full_screen_exclusive instance-level functions"] + #[derive(Clone)] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn load(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle; + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_full_screen_exclusive instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_surface_present_modes2_ext: + PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + 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_physical_device_surface_present_modes2_ext: unsafe { + unsafe extern "system" fn get_physical_device_surface_present_modes2_ext( + _physical_device: PhysicalDevice, + _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, + _p_present_mode_count: *mut u32, + _p_present_modes: *mut PresentModeKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_surface_present_modes2_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceSurfacePresentModes2EXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_surface_present_modes2_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + #[doc = "VK_EXT_full_screen_exclusive device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_full_screen_exclusive device-level function pointers"] + pub struct DeviceFn { + pub acquire_full_screen_exclusive_mode_ext: PFN_vkAcquireFullScreenExclusiveModeEXT, + pub release_full_screen_exclusive_mode_ext: PFN_vkReleaseFullScreenExclusiveModeEXT, + pub get_device_group_surface_present_modes2_ext: + PFN_vkGetDeviceGroupSurfacePresentModes2EXT, + } + 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 { + acquire_full_screen_exclusive_mode_ext: unsafe { + unsafe extern "system" fn acquire_full_screen_exclusive_mode_ext( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(acquire_full_screen_exclusive_mode_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkAcquireFullScreenExclusiveModeEXT\0", + ); + let val = _f(cname); + if val.is_null() { + acquire_full_screen_exclusive_mode_ext + } else { + ::core::mem::transmute(val) + } + }, + release_full_screen_exclusive_mode_ext: unsafe { + unsafe extern "system" fn release_full_screen_exclusive_mode_ext( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(release_full_screen_exclusive_mode_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkReleaseFullScreenExclusiveModeEXT\0", + ); + let val = _f(cname); + if val.is_null() { + release_full_screen_exclusive_mode_ext + } else { + ::core::mem::transmute(val) + } + }, + get_device_group_surface_present_modes2_ext: unsafe { + unsafe extern "system" fn get_device_group_surface_present_modes2_ext( + _device: crate::vk::Device, + _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, + _p_modes: *mut DeviceGroupPresentModeFlagsKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_device_group_surface_present_modes2_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDeviceGroupSurfacePresentModes2EXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_device_group_surface_present_modes2_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_headless_surface"] + pub mod headless_surface { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::EXT_HEADLESS_SURFACE_NAME as NAME, + crate::vk::EXT_HEADLESS_SURFACE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_headless_surface instance-level functions"] + #[derive(Clone)] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn load(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle; + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_headless_surface instance-level function pointers"] + pub struct InstanceFn { + pub create_headless_surface_ext: PFN_vkCreateHeadlessSurfaceEXT, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + 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_headless_surface_ext: unsafe { + unsafe extern "system" fn create_headless_surface_ext( + _instance: crate::vk::Instance, + _p_create_info: *const HeadlessSurfaceCreateInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks, + _p_surface: *mut SurfaceKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_headless_surface_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateHeadlessSurfaceEXT\0"); + let val = _f(cname); + if val.is_null() { + create_headless_surface_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_line_rasterization"] + pub mod line_rasterization { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::EXT_LINE_RASTERIZATION_NAME as NAME, + crate::vk::EXT_LINE_RASTERIZATION_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_line_rasterization device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_line_rasterization device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_line_stipple_ext: PFN_vkCmdSetLineStipple, + } + 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_line_stipple_ext: unsafe { + unsafe extern "system" fn cmd_set_line_stipple_ext( + _command_buffer: CommandBuffer, + _line_stipple_factor: u32, + _line_stipple_pattern: u16, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_line_stipple_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineStippleEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_line_stipple_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_shader_atomic_float"] + pub mod shader_atomic_float { + pub use { + crate::vk::EXT_SHADER_ATOMIC_FLOAT_NAME as NAME, + crate::vk::EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_host_query_reset"] + pub mod host_query_reset { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::EXT_HOST_QUERY_RESET_NAME as NAME, + crate::vk::EXT_HOST_QUERY_RESET_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_host_query_reset device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_host_query_reset device-level function pointers"] + pub struct DeviceFn { + pub reset_query_pool_ext: PFN_vkResetQueryPool, + } + 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 { + reset_query_pool_ext: unsafe { + unsafe extern "system" fn reset_query_pool_ext( + _device: crate::vk::Device, + _query_pool: QueryPool, + _first_query: u32, + _query_count: u32, + ) { + panic!(concat!("Unable to load ", stringify!(reset_query_pool_ext))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkResetQueryPoolEXT\0"); + let val = _f(cname); + if val.is_null() { + reset_query_pool_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_index_type_uint8"] + pub mod index_type_uint8 { + pub use { + crate::vk::EXT_INDEX_TYPE_UINT8_NAME as NAME, + crate::vk::EXT_INDEX_TYPE_UINT8_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_extended_dynamic_state"] + pub mod extended_dynamic_state { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::EXT_EXTENDED_DYNAMIC_STATE_NAME as NAME, + crate::vk::EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_extended_dynamic_state device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_extended_dynamic_state device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_cull_mode_ext: PFN_vkCmdSetCullMode, + pub cmd_set_front_face_ext: PFN_vkCmdSetFrontFace, + pub cmd_set_primitive_topology_ext: PFN_vkCmdSetPrimitiveTopology, + pub cmd_set_viewport_with_count_ext: PFN_vkCmdSetViewportWithCount, + pub cmd_set_scissor_with_count_ext: PFN_vkCmdSetScissorWithCount, + pub cmd_bind_vertex_buffers2_ext: PFN_vkCmdBindVertexBuffers2, + pub cmd_set_depth_test_enable_ext: PFN_vkCmdSetDepthTestEnable, + pub cmd_set_depth_write_enable_ext: PFN_vkCmdSetDepthWriteEnable, + pub cmd_set_depth_compare_op_ext: PFN_vkCmdSetDepthCompareOp, + pub cmd_set_depth_bounds_test_enable_ext: PFN_vkCmdSetDepthBoundsTestEnable, + pub cmd_set_stencil_test_enable_ext: PFN_vkCmdSetStencilTestEnable, + pub cmd_set_stencil_op_ext: PFN_vkCmdSetStencilOp, + } + 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_cull_mode_ext: unsafe { + unsafe extern "system" fn cmd_set_cull_mode_ext( + _command_buffer: CommandBuffer, + _cull_mode: CullModeFlags, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_cull_mode_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCullModeEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_cull_mode_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_front_face_ext: unsafe { + unsafe extern "system" fn cmd_set_front_face_ext( + _command_buffer: CommandBuffer, + _front_face: FrontFace, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_front_face_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetFrontFaceEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_front_face_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_primitive_topology_ext: unsafe { + unsafe extern "system" fn cmd_set_primitive_topology_ext( + _command_buffer: CommandBuffer, + _primitive_topology: PrimitiveTopology, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_primitive_topology_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPrimitiveTopologyEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_primitive_topology_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_viewport_with_count_ext: unsafe { + unsafe extern "system" fn cmd_set_viewport_with_count_ext( + _command_buffer: CommandBuffer, + _viewport_count: u32, _p_viewports: *const Viewport, ) { panic!(concat!( @@ -4076,11 +4778,11 @@ pub mod ext { #[derive(Clone)] #[doc = "Raw VK_EXT_host_image_copy device-level function pointers"] pub struct DeviceFn { - pub copy_memory_to_image_ext: PFN_vkCopyMemoryToImageEXT, - pub copy_image_to_memory_ext: PFN_vkCopyImageToMemoryEXT, - pub copy_image_to_image_ext: PFN_vkCopyImageToImageEXT, - pub transition_image_layout_ext: PFN_vkTransitionImageLayoutEXT, - pub get_image_subresource_layout2_ext: PFN_vkGetImageSubresourceLayout2KHR, + pub copy_memory_to_image_ext: PFN_vkCopyMemoryToImage, + pub copy_image_to_memory_ext: PFN_vkCopyImageToMemory, + pub copy_image_to_image_ext: PFN_vkCopyImageToImage, + pub transition_image_layout_ext: PFN_vkTransitionImageLayout, + pub get_image_subresource_layout2_ext: PFN_vkGetImageSubresourceLayout2, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -4093,7 +4795,7 @@ pub mod ext { copy_memory_to_image_ext: unsafe { unsafe extern "system" fn copy_memory_to_image_ext( _device: crate::vk::Device, - _p_copy_memory_to_image_info: *const CopyMemoryToImageInfoEXT<'_>, + _p_copy_memory_to_image_info: *const CopyMemoryToImageInfo<'_>, ) -> Result { panic!(concat!( "Unable to load ", @@ -4112,7 +4814,7 @@ pub mod ext { copy_image_to_memory_ext: unsafe { unsafe extern "system" fn copy_image_to_memory_ext( _device: crate::vk::Device, - _p_copy_image_to_memory_info: *const CopyImageToMemoryInfoEXT<'_>, + _p_copy_image_to_memory_info: *const CopyImageToMemoryInfo<'_>, ) -> Result { panic!(concat!( "Unable to load ", @@ -4131,7 +4833,7 @@ pub mod ext { copy_image_to_image_ext: unsafe { unsafe extern "system" fn copy_image_to_image_ext( _device: crate::vk::Device, - _p_copy_image_to_image_info: *const CopyImageToImageInfoEXT<'_>, + _p_copy_image_to_image_info: *const CopyImageToImageInfo<'_>, ) -> Result { panic!(concat!( "Unable to load ", @@ -4150,7 +4852,7 @@ pub mod ext { unsafe extern "system" fn transition_image_layout_ext( _device: crate::vk::Device, _transition_count: u32, - _p_transitions: *const HostImageLayoutTransitionInfoEXT<'_>, + _p_transitions: *const HostImageLayoutTransitionInfo<'_>, ) -> Result { panic!(concat!( "Unable to load ", @@ -4170,8 +4872,8 @@ pub mod ext { unsafe extern "system" fn get_image_subresource_layout2_ext( _device: crate::vk::Device, _image: Image, - _p_subresource: *const ImageSubresource2KHR<'_>, - _p_layout: *mut SubresourceLayout2KHR<'_>, + _p_subresource: *const ImageSubresource2<'_>, + _p_layout: *mut SubresourceLayout2<'_>, ) { panic!(concat!( "Unable to load ", @@ -4247,7 +4949,7 @@ pub mod ext { #[derive(Clone)] #[doc = "Raw VK_EXT_swapchain_maintenance1 device-level function pointers"] pub struct DeviceFn { - pub release_swapchain_images_ext: PFN_vkReleaseSwapchainImagesEXT, + pub release_swapchain_images_ext: PFN_vkReleaseSwapchainImagesKHR, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -4260,7 +4962,7 @@ pub mod ext { release_swapchain_images_ext: unsafe { unsafe extern "system" fn release_swapchain_images_ext( _device: crate::vk::Device, - _p_release_info: *const ReleaseSwapchainImagesInfoEXT<'_>, + _p_release_info: *const ReleaseSwapchainImagesInfoKHR<'_>, ) -> Result { panic!(concat!( "Unable to load ", @@ -5147,7 +5849,7 @@ pub mod ext { #[derive(Clone)] #[doc = "Raw VK_EXT_image_compression_control device-level function pointers"] pub struct DeviceFn { - pub get_image_subresource_layout2_ext: PFN_vkGetImageSubresourceLayout2KHR, + pub get_image_subresource_layout2_ext: PFN_vkGetImageSubresourceLayout2, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -5161,8 +5863,8 @@ pub mod ext { unsafe extern "system" fn get_image_subresource_layout2_ext( _device: crate::vk::Device, _image: Image, - _p_subresource: *const ImageSubresource2KHR<'_>, - _p_layout: *mut SubresourceLayout2KHR<'_>, + _p_subresource: *const ImageSubresource2<'_>, + _p_layout: *mut SubresourceLayout2<'_>, ) { panic!(concat!( "Unable to load ", @@ -5462,6 +6164,13 @@ pub mod ext { crate::vk::EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION as SPEC_VERSION, }; } + #[doc = "VK_EXT_present_mode_fifo_latest_ready"] + pub mod present_mode_fifo_latest_ready { + pub use { + crate::vk::EXT_PRESENT_MODE_FIFO_LATEST_READY_NAME as NAME, + crate::vk::EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION as SPEC_VERSION, + }; + } #[doc = "VK_EXT_pipeline_properties"] pub mod pipeline_properties { use crate::vk::*; @@ -8450,6 +9159,13 @@ pub mod ext { crate::vk::EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION as SPEC_VERSION, }; } + #[doc = "VK_EXT_shader_float8"] + pub mod shader_float8 { + pub use { + crate::vk::EXT_SHADER_FLOAT8_NAME as NAME, + crate::vk::EXT_SHADER_FLOAT8_SPEC_VERSION as SPEC_VERSION, + }; + } #[doc = "VK_EXT_device_generated_commands"] pub mod device_generated_commands { use crate::vk::*; @@ -8771,6 +9487,179 @@ pub mod ext { } } } + #[doc = "VK_EXT_external_memory_metal"] + pub mod external_memory_metal { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::EXT_EXTERNAL_MEMORY_METAL_NAME as NAME, + crate::vk::EXT_EXTERNAL_MEMORY_METAL_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_external_memory_metal device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_external_memory_metal device-level function pointers"] + pub struct DeviceFn { + pub get_memory_metal_handle_ext: PFN_vkGetMemoryMetalHandleEXT, + pub get_memory_metal_handle_properties_ext: PFN_vkGetMemoryMetalHandlePropertiesEXT, + } + 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_memory_metal_handle_ext: unsafe { + unsafe extern "system" fn get_memory_metal_handle_ext( + _device: crate::vk::Device, + _p_get_metal_handle_info: *const MemoryGetMetalHandleInfoEXT<'_>, + _p_handle: *mut *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_memory_metal_handle_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryMetalHandleEXT\0"); + let val = _f(cname); + if val.is_null() { + get_memory_metal_handle_ext + } else { + ::core::mem::transmute(val) + } + }, + get_memory_metal_handle_properties_ext: unsafe { + unsafe extern "system" fn get_memory_metal_handle_properties_ext( + _device: crate::vk::Device, + _handle_type: ExternalMemoryHandleTypeFlags, + _p_handle: *const c_void, + _p_memory_metal_handle_properties: *mut MemoryMetalHandlePropertiesEXT< + '_, + >, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_memory_metal_handle_properties_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetMemoryMetalHandlePropertiesEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_memory_metal_handle_properties_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_vertex_attribute_robustness"] + pub mod vertex_attribute_robustness { + pub use { + crate::vk::EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_NAME as NAME, + crate::vk::EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_fragment_density_map_offset"] + pub mod fragment_density_map_offset { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::EXT_FRAGMENT_DENSITY_MAP_OFFSET_NAME as NAME, + crate::vk::EXT_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_fragment_density_map_offset device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_fragment_density_map_offset device-level function pointers"] + pub struct DeviceFn { + pub cmd_end_rendering2_ext: PFN_vkCmdEndRendering2EXT, + } + 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_end_rendering2_ext: unsafe { + unsafe extern "system" fn cmd_end_rendering2_ext( + _command_buffer: CommandBuffer, + _p_rendering_end_info: *const RenderingEndInfoEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_end_rendering2_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdEndRendering2EXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_end_rendering2_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_zero_initialize_device_memory"] + pub mod zero_initialize_device_memory { + pub use { + crate::vk::EXT_ZERO_INITIALIZE_DEVICE_MEMORY_NAME as NAME, + crate::vk::EXT_ZERO_INITIALIZE_DEVICE_MEMORY_SPEC_VERSION as SPEC_VERSION, + }; + } } #[doc = "Extensions tagged FUCHSIA"] pub mod fuchsia { @@ -9644,6 +10533,13 @@ pub mod huawei { } } } + #[doc = "VK_HUAWEI_hdr_vivid"] + pub mod hdr_vivid { + pub use { + crate::vk::HUAWEI_HDR_VIVID_NAME as NAME, + crate::vk::HUAWEI_HDR_VIVID_SPEC_VERSION as SPEC_VERSION, + }; + } } #[doc = "Extensions tagged IMG"] pub mod img { @@ -12735,9 +13631,8 @@ pub mod khr { #[derive(Clone)] #[doc = "Raw VK_KHR_push_descriptor device-level function pointers"] pub struct DeviceFn { - pub cmd_push_descriptor_set_khr: PFN_vkCmdPushDescriptorSetKHR, - pub cmd_push_descriptor_set_with_template_khr: - PFN_vkCmdPushDescriptorSetWithTemplateKHR, + pub cmd_push_descriptor_set_khr: PFN_vkCmdPushDescriptorSet, + pub cmd_push_descriptor_set_with_template_khr: PFN_vkCmdPushDescriptorSetWithTemplate, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -12855,8 +13750,7 @@ pub mod khr { pub create_descriptor_update_template_khr: PFN_vkCreateDescriptorUpdateTemplate, pub destroy_descriptor_update_template_khr: PFN_vkDestroyDescriptorUpdateTemplate, pub update_descriptor_set_with_template_khr: PFN_vkUpdateDescriptorSetWithTemplate, - pub cmd_push_descriptor_set_with_template_khr: - PFN_vkCmdPushDescriptorSetWithTemplateKHR, + pub cmd_push_descriptor_set_with_template_khr: PFN_vkCmdPushDescriptorSetWithTemplate, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -12999,9 +13893,13 @@ pub mod khr { #[derive(Clone)] #[doc = "Raw VK_KHR_create_renderpass2 device-level function pointers"] pub struct DeviceFn { + #[deprecated = ""] pub create_render_pass2_khr: PFN_vkCreateRenderPass2, + #[deprecated = ""] pub cmd_begin_render_pass2_khr: PFN_vkCmdBeginRenderPass2, + #[deprecated = ""] pub cmd_next_subpass2_khr: PFN_vkCmdNextSubpass2, + #[deprecated = ""] pub cmd_end_render_pass2_khr: PFN_vkCmdEndRenderPass2, } unsafe impl Send for DeviceFn {} @@ -13839,6 +14737,13 @@ pub mod khr { crate::vk::KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION as SPEC_VERSION, }; } + #[doc = "VK_KHR_shader_bfloat16"] + pub mod shader_bfloat16 { + pub use { + crate::vk::KHR_SHADER_BFLOAT16_NAME as NAME, + crate::vk::KHR_SHADER_BFLOAT16_SPEC_VERSION as SPEC_VERSION, + }; + } #[doc = "VK_KHR_relaxed_block_layout"] pub mod relaxed_block_layout { pub use { @@ -15317,9 +16222,9 @@ pub mod khr { #[doc = "Raw VK_KHR_dynamic_rendering_local_read device-level function pointers"] pub struct DeviceFn { pub cmd_set_rendering_attachment_locations_khr: - PFN_vkCmdSetRenderingAttachmentLocationsKHR, + PFN_vkCmdSetRenderingAttachmentLocations, pub cmd_set_rendering_input_attachment_indices_khr: - PFN_vkCmdSetRenderingInputAttachmentIndicesKHR, + PFN_vkCmdSetRenderingInputAttachmentIndices, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -15332,7 +16237,7 @@ pub mod khr { cmd_set_rendering_attachment_locations_khr: unsafe { unsafe extern "system" fn cmd_set_rendering_attachment_locations_khr( _command_buffer: CommandBuffer, - _p_location_info: *const RenderingAttachmentLocationInfoKHR<'_>, + _p_location_info: *const RenderingAttachmentLocationInfo<'_>, ) { panic!(concat!( "Unable to load ", @@ -15352,7 +16257,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_input_attachment_index_info : * const RenderingInputAttachmentIndexInfo < '_ >, ) { panic!(concat!( "Unable to load ", @@ -15886,8 +16791,8 @@ pub mod khr { #[derive(Clone)] #[doc = "Raw VK_KHR_map_memory2 device-level function pointers"] pub struct DeviceFn { - pub map_memory2_khr: PFN_vkMapMemory2KHR, - pub unmap_memory2_khr: PFN_vkUnmapMemory2KHR, + pub map_memory2_khr: PFN_vkMapMemory2, + pub unmap_memory2_khr: PFN_vkUnmapMemory2, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -15900,7 +16805,7 @@ pub mod khr { map_memory2_khr: unsafe { unsafe extern "system" fn map_memory2_khr( _device: crate::vk::Device, - _p_memory_map_info: *const MemoryMapInfoKHR<'_>, + _p_memory_map_info: *const MemoryMapInfo<'_>, _pp_data: *mut *mut c_void, ) -> Result { panic!(concat!("Unable to load ", stringify!(map_memory2_khr))) @@ -15916,7 +16821,7 @@ pub mod khr { unmap_memory2_khr: unsafe { unsafe extern "system" fn unmap_memory2_khr( _device: crate::vk::Device, - _p_memory_unmap_info: *const MemoryUnmapInfoKHR<'_>, + _p_memory_unmap_info: *const MemoryUnmapInfo<'_>, ) -> Result { panic!(concat!("Unable to load ", stringify!(unmap_memory2_khr))) } @@ -16152,8 +17057,6 @@ pub mod khr { pub cmd_pipeline_barrier2_khr: PFN_vkCmdPipelineBarrier2, pub cmd_write_timestamp2_khr: PFN_vkCmdWriteTimestamp2, pub queue_submit2_khr: PFN_vkQueueSubmit2, - pub cmd_write_buffer_marker2_amd: PFN_vkCmdWriteBufferMarker2AMD, - pub get_queue_checkpoint_data2_nv: PFN_vkGetQueueCheckpointData2NV, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -16240,73 +17143,31 @@ pub mod khr { ) { panic!(concat!( "Unable to load ", - stringify!(cmd_write_timestamp2_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteTimestamp2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_write_timestamp2_khr - } else { - ::core::mem::transmute(val) - } - }, - queue_submit2_khr: unsafe { - unsafe extern "system" fn queue_submit2_khr( - _queue: Queue, - _submit_count: u32, - _p_submits: *const SubmitInfo2<'_>, - _fence: Fence, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(queue_submit2_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkQueueSubmit2KHR\0"); - let val = _f(cname); - if val.is_null() { - queue_submit2_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_write_buffer_marker2_amd: unsafe { - unsafe extern "system" fn cmd_write_buffer_marker2_amd( - _command_buffer: CommandBuffer, - _stage: PipelineStageFlags2, - _dst_buffer: Buffer, - _dst_offset: DeviceSize, - _marker: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_write_buffer_marker2_amd) + stringify!(cmd_write_timestamp2_khr) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteBufferMarker2AMD\0"); + CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteTimestamp2KHR\0"); let val = _f(cname); if val.is_null() { - cmd_write_buffer_marker2_amd + cmd_write_timestamp2_khr } else { ::core::mem::transmute(val) } }, - get_queue_checkpoint_data2_nv: unsafe { - unsafe extern "system" fn get_queue_checkpoint_data2_nv( + queue_submit2_khr: unsafe { + unsafe extern "system" fn queue_submit2_khr( _queue: Queue, - _p_checkpoint_data_count: *mut u32, - _p_checkpoint_data: *mut CheckpointData2NV<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_queue_checkpoint_data2_nv) - )) + _submit_count: u32, + _p_submits: *const SubmitInfo2<'_>, + _fence: Fence, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(queue_submit2_khr))) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetQueueCheckpointData2NV\0"); + let cname = CStr::from_bytes_with_nul_unchecked(b"vkQueueSubmit2KHR\0"); let val = _f(cname); if val.is_null() { - get_queue_checkpoint_data2_nv + queue_submit2_khr } else { ::core::mem::transmute(val) } @@ -16571,6 +17432,13 @@ pub mod khr { } } } + #[doc = "VK_KHR_shader_untyped_pointers"] + pub mod shader_untyped_pointers { + pub use { + crate::vk::KHR_SHADER_UNTYPED_POINTERS_NAME as NAME, + crate::vk::KHR_SHADER_UNTYPED_POINTERS_SPEC_VERSION as SPEC_VERSION, + }; + } #[doc = "VK_KHR_portability_enumeration"] pub mod portability_enumeration { pub use { @@ -16741,10 +17609,10 @@ pub mod khr { #[derive(Clone)] #[doc = "Raw VK_KHR_maintenance5 device-level function pointers"] pub struct DeviceFn { - pub cmd_bind_index_buffer2_khr: PFN_vkCmdBindIndexBuffer2KHR, - pub get_rendering_area_granularity_khr: PFN_vkGetRenderingAreaGranularityKHR, - pub get_device_image_subresource_layout_khr: PFN_vkGetDeviceImageSubresourceLayoutKHR, - pub get_image_subresource_layout2_khr: PFN_vkGetImageSubresourceLayout2KHR, + pub cmd_bind_index_buffer2_khr: PFN_vkCmdBindIndexBuffer2, + pub get_rendering_area_granularity_khr: PFN_vkGetRenderingAreaGranularity, + pub get_device_image_subresource_layout_khr: PFN_vkGetDeviceImageSubresourceLayout, + pub get_image_subresource_layout2_khr: PFN_vkGetImageSubresourceLayout2, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -16779,7 +17647,7 @@ pub mod khr { get_rendering_area_granularity_khr: unsafe { unsafe extern "system" fn get_rendering_area_granularity_khr( _device: crate::vk::Device, - _p_rendering_area_info: *const RenderingAreaInfoKHR<'_>, + _p_rendering_area_info: *const RenderingAreaInfo<'_>, _p_granularity: *mut Extent2D, ) { panic!(concat!( @@ -16800,8 +17668,8 @@ pub mod khr { get_device_image_subresource_layout_khr: unsafe { unsafe extern "system" fn get_device_image_subresource_layout_khr( _device: crate::vk::Device, - _p_info: *const DeviceImageSubresourceInfoKHR<'_>, - _p_layout: *mut SubresourceLayout2KHR<'_>, + _p_info: *const DeviceImageSubresourceInfo<'_>, + _p_layout: *mut SubresourceLayout2<'_>, ) { panic!(concat!( "Unable to load ", @@ -16822,8 +17690,8 @@ pub mod khr { unsafe extern "system" fn get_image_subresource_layout2_khr( _device: crate::vk::Device, _image: Image, - _p_subresource: *const ImageSubresource2KHR<'_>, - _p_layout: *mut SubresourceLayout2KHR<'_>, + _p_subresource: *const ImageSubresource2<'_>, + _p_layout: *mut SubresourceLayout2<'_>, ) { panic!(concat!( "Unable to load ", @@ -16844,6 +17712,80 @@ pub mod khr { } } } + #[doc = "VK_KHR_present_id2"] + pub mod present_id2 { + pub use { + crate::vk::KHR_PRESENT_ID2_NAME as NAME, + crate::vk::KHR_PRESENT_ID2_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_present_wait2"] + pub mod present_wait2 { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::KHR_PRESENT_WAIT2_NAME as NAME, + crate::vk::KHR_PRESENT_WAIT2_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_present_wait2 device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_present_wait2 device-level function pointers"] + pub struct DeviceFn { + pub wait_for_present2_khr: PFN_vkWaitForPresent2KHR, + } + 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 { + wait_for_present2_khr: unsafe { + unsafe extern "system" fn wait_for_present2_khr( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + _p_present_wait2_info: *const PresentWait2InfoKHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(wait_for_present2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkWaitForPresent2KHR\0"); + let val = _f(cname); + if val.is_null() { + wait_for_present2_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } #[doc = "VK_KHR_ray_tracing_position_fetch"] pub mod ray_tracing_position_fetch { pub use { @@ -17003,6 +17945,80 @@ pub mod khr { } } } + #[doc = "VK_KHR_surface_maintenance1"] + pub mod surface_maintenance1 { + pub use { + crate::vk::KHR_SURFACE_MAINTENANCE1_NAME as NAME, + crate::vk::KHR_SURFACE_MAINTENANCE1_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_swapchain_maintenance1"] + pub mod swapchain_maintenance1 { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::KHR_SWAPCHAIN_MAINTENANCE1_NAME as NAME, + crate::vk::KHR_SWAPCHAIN_MAINTENANCE1_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_swapchain_maintenance1 device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_swapchain_maintenance1 device-level function pointers"] + pub struct DeviceFn { + pub release_swapchain_images_khr: PFN_vkReleaseSwapchainImagesKHR, + } + 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 { + release_swapchain_images_khr: unsafe { + unsafe extern "system" fn release_swapchain_images_khr( + _device: crate::vk::Device, + _p_release_info: *const ReleaseSwapchainImagesInfoKHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(release_swapchain_images_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkReleaseSwapchainImagesKHR\0"); + let val = _f(cname); + if val.is_null() { + release_swapchain_images_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } #[doc = "VK_KHR_cooperative_matrix"] pub mod cooperative_matrix { use crate::vk::*; @@ -17087,6 +18103,20 @@ pub mod khr { crate::vk::KHR_VIDEO_DECODE_AV1_SPEC_VERSION as SPEC_VERSION, }; } + #[doc = "VK_KHR_video_encode_av1"] + pub mod video_encode_av1 { + pub use { + crate::vk::KHR_VIDEO_ENCODE_AV1_NAME as NAME, + crate::vk::KHR_VIDEO_ENCODE_AV1_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_video_decode_vp9"] + pub mod video_decode_vp9 { + pub use { + crate::vk::KHR_VIDEO_DECODE_VP9_NAME as NAME, + crate::vk::KHR_VIDEO_DECODE_VP9_SPEC_VERSION as SPEC_VERSION, + }; + } #[doc = "VK_KHR_video_maintenance1"] pub mod video_maintenance1 { pub use { @@ -17108,6 +18138,13 @@ pub mod khr { crate::vk::KHR_LOAD_STORE_OP_NONE_SPEC_VERSION as SPEC_VERSION, }; } + #[doc = "VK_KHR_unified_image_layouts"] + pub mod unified_image_layouts { + pub use { + crate::vk::KHR_UNIFIED_IMAGE_LAYOUTS_NAME as NAME, + crate::vk::KHR_UNIFIED_IMAGE_LAYOUTS_SPEC_VERSION as SPEC_VERSION, + }; + } #[doc = "VK_KHR_shader_float_controls2"] pub mod shader_float_controls2 { pub use { @@ -17156,7 +18193,7 @@ pub mod khr { #[derive(Clone)] #[doc = "Raw VK_KHR_line_rasterization device-level function pointers"] pub struct DeviceFn { - pub cmd_set_line_stipple_khr: PFN_vkCmdSetLineStippleKHR, + pub cmd_set_line_stipple_khr: PFN_vkCmdSetLineStipple, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -17362,11 +18399,10 @@ pub mod khr { #[derive(Clone)] #[doc = "Raw VK_KHR_maintenance6 device-level function pointers"] pub struct DeviceFn { - pub cmd_bind_descriptor_sets2_khr: PFN_vkCmdBindDescriptorSets2KHR, - pub cmd_push_constants2_khr: PFN_vkCmdPushConstants2KHR, - pub cmd_push_descriptor_set2_khr: PFN_vkCmdPushDescriptorSet2KHR, - pub cmd_push_descriptor_set_with_template2_khr: - PFN_vkCmdPushDescriptorSetWithTemplate2KHR, + pub cmd_bind_descriptor_sets2_khr: PFN_vkCmdBindDescriptorSets2, + pub cmd_push_constants2_khr: PFN_vkCmdPushConstants2, + pub cmd_push_descriptor_set2_khr: PFN_vkCmdPushDescriptorSet2, + pub cmd_push_descriptor_set_with_template2_khr: PFN_vkCmdPushDescriptorSetWithTemplate2, pub cmd_set_descriptor_buffer_offsets2_ext: PFN_vkCmdSetDescriptorBufferOffsets2EXT, pub cmd_bind_descriptor_buffer_embedded_samplers2_ext: PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT, @@ -17382,7 +18418,7 @@ pub mod khr { cmd_bind_descriptor_sets2_khr: unsafe { unsafe extern "system" fn cmd_bind_descriptor_sets2_khr( _command_buffer: CommandBuffer, - _p_bind_descriptor_sets_info: *const BindDescriptorSetsInfoKHR<'_>, + _p_bind_descriptor_sets_info: *const BindDescriptorSetsInfo<'_>, ) { panic!(concat!( "Unable to load ", @@ -17401,7 +18437,7 @@ pub mod khr { cmd_push_constants2_khr: unsafe { unsafe extern "system" fn cmd_push_constants2_khr( _command_buffer: CommandBuffer, - _p_push_constants_info: *const PushConstantsInfoKHR<'_>, + _p_push_constants_info: *const PushConstantsInfo<'_>, ) { panic!(concat!( "Unable to load ", @@ -17420,7 +18456,7 @@ pub mod khr { cmd_push_descriptor_set2_khr: unsafe { unsafe extern "system" fn cmd_push_descriptor_set2_khr( _command_buffer: CommandBuffer, - _p_push_descriptor_set_info: *const PushDescriptorSetInfoKHR<'_>, + _p_push_descriptor_set_info: *const PushDescriptorSetInfo<'_>, ) { panic!(concat!( "Unable to load ", @@ -17439,7 +18475,7 @@ pub mod khr { cmd_push_descriptor_set_with_template2_khr: unsafe { unsafe extern "system" fn cmd_push_descriptor_set_with_template2_khr( _command_buffer: CommandBuffer, - _p_push_descriptor_set_with_template_info : * const PushDescriptorSetWithTemplateInfoKHR < '_ >, + _p_push_descriptor_set_with_template_info : * const PushDescriptorSetWithTemplateInfo < '_ >, ) { panic!(concat!( "Unable to load ", @@ -17500,18 +18536,169 @@ pub mod khr { } } } - #[doc = "VK_KHR_shader_relaxed_extended_instruction"] - pub mod shader_relaxed_extended_instruction { + #[doc = "VK_KHR_copy_memory_indirect"] + pub mod copy_memory_indirect { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::KHR_COPY_MEMORY_INDIRECT_NAME as NAME, + crate::vk::KHR_COPY_MEMORY_INDIRECT_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_copy_memory_indirect device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_copy_memory_indirect device-level function pointers"] + pub struct DeviceFn { + pub cmd_copy_memory_indirect_khr: PFN_vkCmdCopyMemoryIndirectKHR, + pub cmd_copy_memory_to_image_indirect_khr: PFN_vkCmdCopyMemoryToImageIndirectKHR, + } + 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_copy_memory_indirect_khr: unsafe { + unsafe extern "system" fn cmd_copy_memory_indirect_khr( + _command_buffer: CommandBuffer, + _p_copy_memory_indirect_info: *const CopyMemoryIndirectInfoKHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_memory_indirect_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyMemoryIndirectKHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_copy_memory_indirect_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_memory_to_image_indirect_khr: unsafe { + unsafe extern "system" fn cmd_copy_memory_to_image_indirect_khr( + _command_buffer: CommandBuffer, + _p_copy_memory_to_image_indirect_info : * const CopyMemoryToImageIndirectInfoKHR < '_ >, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_memory_to_image_indirect_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdCopyMemoryToImageIndirectKHR\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_copy_memory_to_image_indirect_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_video_encode_intra_refresh"] + pub mod video_encode_intra_refresh { + pub use { + crate::vk::KHR_VIDEO_ENCODE_INTRA_REFRESH_NAME as NAME, + crate::vk::KHR_VIDEO_ENCODE_INTRA_REFRESH_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_video_encode_quantization_map"] + pub mod video_encode_quantization_map { + pub use { + crate::vk::KHR_VIDEO_ENCODE_QUANTIZATION_MAP_NAME as NAME, + crate::vk::KHR_VIDEO_ENCODE_QUANTIZATION_MAP_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_shader_relaxed_extended_instruction"] + pub mod shader_relaxed_extended_instruction { + 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 { + pub use { + crate::vk::KHR_MAINTENANCE7_NAME as NAME, + crate::vk::KHR_MAINTENANCE7_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_maintenance8"] + pub mod maintenance8 { + pub use { + crate::vk::KHR_MAINTENANCE8_NAME as NAME, + crate::vk::KHR_MAINTENANCE8_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_shader_fma"] + pub mod shader_fma { + pub use { + crate::vk::KHR_SHADER_FMA_NAME as NAME, + crate::vk::KHR_SHADER_FMA_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_maintenance9"] + pub mod maintenance9 { + pub use { + crate::vk::KHR_MAINTENANCE9_NAME as NAME, + crate::vk::KHR_MAINTENANCE9_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_video_maintenance2"] + pub mod video_maintenance2 { + pub use { + crate::vk::KHR_VIDEO_MAINTENANCE2_NAME as NAME, + crate::vk::KHR_VIDEO_MAINTENANCE2_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_depth_clamp_zero_one"] + pub mod depth_clamp_zero_one { + pub use { + crate::vk::KHR_DEPTH_CLAMP_ZERO_ONE_NAME as NAME, + crate::vk::KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_robustness2"] + pub mod robustness2 { pub use { - crate::vk::KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_NAME as NAME, - crate::vk::KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION as SPEC_VERSION, + crate::vk::KHR_ROBUSTNESS2_NAME as NAME, + crate::vk::KHR_ROBUSTNESS2_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_KHR_maintenance7"] - pub mod maintenance7 { + #[doc = "VK_KHR_present_mode_fifo_latest_ready"] + pub mod present_mode_fifo_latest_ready { pub use { - crate::vk::KHR_MAINTENANCE7_NAME as NAME, - crate::vk::KHR_MAINTENANCE7_SPEC_VERSION as SPEC_VERSION, + crate::vk::KHR_PRESENT_MODE_FIFO_LATEST_READY_NAME as NAME, + crate::vk::KHR_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION as SPEC_VERSION, }; } } @@ -17918,7 +19105,252 @@ pub mod nv { CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryWin32HandleNV\0"); let val = _f(cname); if val.is_null() { - get_memory_win32_handle_nv + get_memory_win32_handle_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_win32_keyed_mutex"] + pub mod win32_keyed_mutex { + pub use { + crate::vk::NV_WIN32_KEYED_MUTEX_NAME as NAME, + crate::vk::NV_WIN32_KEYED_MUTEX_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_clip_space_w_scaling"] + pub mod clip_space_w_scaling { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::NV_CLIP_SPACE_W_SCALING_NAME as NAME, + crate::vk::NV_CLIP_SPACE_W_SCALING_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_clip_space_w_scaling device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_NV_clip_space_w_scaling device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_viewport_w_scaling_nv: PFN_vkCmdSetViewportWScalingNV, + } + 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_viewport_w_scaling_nv: unsafe { + unsafe extern "system" fn cmd_set_viewport_w_scaling_nv( + _command_buffer: CommandBuffer, + _first_viewport: u32, + _viewport_count: u32, + _p_viewport_w_scalings: *const ViewportWScalingNV, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_viewport_w_scaling_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportWScalingNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_viewport_w_scaling_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_sample_mask_override_coverage"] + pub mod sample_mask_override_coverage { + pub use { + crate::vk::NV_SAMPLE_MASK_OVERRIDE_COVERAGE_NAME as NAME, + crate::vk::NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_geometry_shader_passthrough"] + pub mod geometry_shader_passthrough { + pub use { + crate::vk::NV_GEOMETRY_SHADER_PASSTHROUGH_NAME as NAME, + crate::vk::NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_viewport_array2"] + pub mod viewport_array2 { + pub use { + crate::vk::NV_VIEWPORT_ARRAY2_NAME as NAME, + crate::vk::NV_VIEWPORT_ARRAY2_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_viewport_swizzle"] + pub mod viewport_swizzle { + pub use { + crate::vk::NV_VIEWPORT_SWIZZLE_NAME as NAME, + crate::vk::NV_VIEWPORT_SWIZZLE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_fragment_coverage_to_color"] + pub mod fragment_coverage_to_color { + pub use { + crate::vk::NV_FRAGMENT_COVERAGE_TO_COLOR_NAME as NAME, + crate::vk::NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_framebuffer_mixed_samples"] + pub mod framebuffer_mixed_samples { + pub use { + crate::vk::NV_FRAMEBUFFER_MIXED_SAMPLES_NAME as NAME, + crate::vk::NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_fill_rectangle"] + pub mod fill_rectangle { + pub use { + crate::vk::NV_FILL_RECTANGLE_NAME as NAME, + crate::vk::NV_FILL_RECTANGLE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_shader_sm_builtins"] + pub mod shader_sm_builtins { + pub use { + crate::vk::NV_SHADER_SM_BUILTINS_NAME as NAME, + crate::vk::NV_SHADER_SM_BUILTINS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_shading_rate_image"] + pub mod shading_rate_image { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::NV_SHADING_RATE_IMAGE_NAME as NAME, + crate::vk::NV_SHADING_RATE_IMAGE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_shading_rate_image device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_NV_shading_rate_image device-level function pointers"] + pub struct DeviceFn { + pub cmd_bind_shading_rate_image_nv: PFN_vkCmdBindShadingRateImageNV, + pub cmd_set_viewport_shading_rate_palette_nv: PFN_vkCmdSetViewportShadingRatePaletteNV, + pub cmd_set_coarse_sample_order_nv: PFN_vkCmdSetCoarseSampleOrderNV, + } + 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_bind_shading_rate_image_nv: unsafe { + unsafe extern "system" fn cmd_bind_shading_rate_image_nv( + _command_buffer: CommandBuffer, + _image_view: ImageView, + _image_layout: ImageLayout, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_shading_rate_image_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdBindShadingRateImageNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_bind_shading_rate_image_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_viewport_shading_rate_palette_nv: unsafe { + unsafe extern "system" fn cmd_set_viewport_shading_rate_palette_nv( + _command_buffer: CommandBuffer, + _first_viewport: u32, + _viewport_count: u32, + _p_shading_rate_palettes: *const ShadingRatePaletteNV<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_viewport_shading_rate_palette_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetViewportShadingRatePaletteNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_viewport_shading_rate_palette_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_coarse_sample_order_nv: unsafe { + unsafe extern "system" fn cmd_set_coarse_sample_order_nv( + _command_buffer: CommandBuffer, + _sample_order_type: CoarseSampleOrderTypeNV, + _custom_sample_order_count: u32, + _p_custom_sample_orders: *const CoarseSampleOrderCustomNV<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_coarse_sample_order_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCoarseSampleOrderNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_coarse_sample_order_nv } else { ::core::mem::transmute(val) } @@ -17927,22 +19359,15 @@ pub mod nv { } } } - #[doc = "VK_NV_win32_keyed_mutex"] - pub mod win32_keyed_mutex { - pub use { - crate::vk::NV_WIN32_KEYED_MUTEX_NAME as NAME, - crate::vk::NV_WIN32_KEYED_MUTEX_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_NV_clip_space_w_scaling"] - pub mod clip_space_w_scaling { + #[doc = "VK_NV_ray_tracing"] + pub mod ray_tracing { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::NV_CLIP_SPACE_W_SCALING_NAME as NAME, - crate::vk::NV_CLIP_SPACE_W_SCALING_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_RAY_TRACING_NAME as NAME, + crate::vk::NV_RAY_TRACING_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_NV_clip_space_w_scaling device-level functions"] + #[doc = "VK_NV_ray_tracing device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -17966,9 +19391,22 @@ pub mod nv { } } #[derive(Clone)] - #[doc = "Raw VK_NV_clip_space_w_scaling device-level function pointers"] + #[doc = "Raw VK_NV_ray_tracing device-level function pointers"] pub struct DeviceFn { - pub cmd_set_viewport_w_scaling_nv: PFN_vkCmdSetViewportWScalingNV, + pub create_acceleration_structure_nv: PFN_vkCreateAccelerationStructureNV, + pub destroy_acceleration_structure_nv: PFN_vkDestroyAccelerationStructureNV, + pub get_acceleration_structure_memory_requirements_nv: + PFN_vkGetAccelerationStructureMemoryRequirementsNV, + pub bind_acceleration_structure_memory_nv: PFN_vkBindAccelerationStructureMemoryNV, + pub cmd_build_acceleration_structure_nv: PFN_vkCmdBuildAccelerationStructureNV, + pub cmd_copy_acceleration_structure_nv: PFN_vkCmdCopyAccelerationStructureNV, + pub cmd_trace_rays_nv: PFN_vkCmdTraceRaysNV, + pub create_ray_tracing_pipelines_nv: PFN_vkCreateRayTracingPipelinesNV, + pub get_ray_tracing_shader_group_handles_nv: PFN_vkGetRayTracingShaderGroupHandlesKHR, + pub get_acceleration_structure_handle_nv: PFN_vkGetAccelerationStructureHandleNV, + pub cmd_write_acceleration_structures_properties_nv: + PFN_vkCmdWriteAccelerationStructuresPropertiesNV, + pub compile_deferred_nv: PFN_vkCompileDeferredNV, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -17978,23 +19416,273 @@ pub mod nv { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - cmd_set_viewport_w_scaling_nv: unsafe { - unsafe extern "system" fn cmd_set_viewport_w_scaling_nv( + create_acceleration_structure_nv: unsafe { + unsafe extern "system" fn create_acceleration_structure_nv( + _device: crate::vk::Device, + _p_create_info: *const AccelerationStructureCreateInfoNV<'_>, + _p_allocator: *const AllocationCallbacks, + _p_acceleration_structure: *mut AccelerationStructureNV, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_acceleration_structure_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateAccelerationStructureNV\0", + ); + let val = _f(cname); + if val.is_null() { + create_acceleration_structure_nv + } else { + ::core::mem::transmute(val) + } + }, + destroy_acceleration_structure_nv: unsafe { + unsafe extern "system" fn destroy_acceleration_structure_nv( + _device: crate::vk::Device, + _acceleration_structure: AccelerationStructureNV, + _p_allocator: *const AllocationCallbacks, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_acceleration_structure_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkDestroyAccelerationStructureNV\0", + ); + let val = _f(cname); + if val.is_null() { + destroy_acceleration_structure_nv + } else { + ::core::mem::transmute(val) + } + }, + get_acceleration_structure_memory_requirements_nv: unsafe { + unsafe extern "system" fn get_acceleration_structure_memory_requirements_nv( + _device: crate::vk::Device, + _p_info: *const AccelerationStructureMemoryRequirementsInfoNV<'_>, + _p_memory_requirements: *mut MemoryRequirements2KHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_acceleration_structure_memory_requirements_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetAccelerationStructureMemoryRequirementsNV\0", + ); + let val = _f(cname); + if val.is_null() { + get_acceleration_structure_memory_requirements_nv + } else { + ::core::mem::transmute(val) + } + }, + bind_acceleration_structure_memory_nv: unsafe { + unsafe extern "system" fn bind_acceleration_structure_memory_nv( + _device: crate::vk::Device, + _bind_info_count: u32, + _p_bind_infos: *const BindAccelerationStructureMemoryInfoNV<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(bind_acceleration_structure_memory_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkBindAccelerationStructureMemoryNV\0", + ); + let val = _f(cname); + if val.is_null() { + bind_acceleration_structure_memory_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_build_acceleration_structure_nv: unsafe { + unsafe extern "system" fn cmd_build_acceleration_structure_nv( + _command_buffer: CommandBuffer, + _p_info: *const AccelerationStructureInfoNV<'_>, + _instance_data: Buffer, + _instance_offset: DeviceSize, + _update: Bool32, + _dst: AccelerationStructureNV, + _src: AccelerationStructureNV, + _scratch: Buffer, + _scratch_offset: DeviceSize, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_build_acceleration_structure_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdBuildAccelerationStructureNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_build_acceleration_structure_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_acceleration_structure_nv: unsafe { + unsafe extern "system" fn cmd_copy_acceleration_structure_nv( + _command_buffer: CommandBuffer, + _dst: AccelerationStructureNV, + _src: AccelerationStructureNV, + _mode: CopyAccelerationStructureModeKHR, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_acceleration_structure_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdCopyAccelerationStructureNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_copy_acceleration_structure_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_trace_rays_nv: unsafe { + unsafe extern "system" fn cmd_trace_rays_nv( + _command_buffer: CommandBuffer, + _raygen_shader_binding_table_buffer: Buffer, + _raygen_shader_binding_offset: DeviceSize, + _miss_shader_binding_table_buffer: Buffer, + _miss_shader_binding_offset: DeviceSize, + _miss_shader_binding_stride: DeviceSize, + _hit_shader_binding_table_buffer: Buffer, + _hit_shader_binding_offset: DeviceSize, + _hit_shader_binding_stride: DeviceSize, + _callable_shader_binding_table_buffer: Buffer, + _callable_shader_binding_offset: DeviceSize, + _callable_shader_binding_stride: DeviceSize, + _width: u32, + _height: u32, + _depth: u32, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_trace_rays_nv))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_trace_rays_nv + } else { + ::core::mem::transmute(val) + } + }, + create_ray_tracing_pipelines_nv: unsafe { + unsafe extern "system" fn create_ray_tracing_pipelines_nv( + _device: crate::vk::Device, + _pipeline_cache: PipelineCache, + _create_info_count: u32, + _p_create_infos: *const RayTracingPipelineCreateInfoNV<'_>, + _p_allocator: *const AllocationCallbacks, + _p_pipelines: *mut Pipeline, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_ray_tracing_pipelines_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateRayTracingPipelinesNV\0"); + let val = _f(cname); + if val.is_null() { + create_ray_tracing_pipelines_nv + } else { + ::core::mem::transmute(val) + } + }, + get_ray_tracing_shader_group_handles_nv: unsafe { + unsafe extern "system" fn get_ray_tracing_shader_group_handles_nv( + _device: crate::vk::Device, + _pipeline: Pipeline, + _first_group: u32, + _group_count: u32, + _data_size: usize, + _p_data: *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_ray_tracing_shader_group_handles_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetRayTracingShaderGroupHandlesNV\0", + ); + let val = _f(cname); + if val.is_null() { + get_ray_tracing_shader_group_handles_nv + } else { + ::core::mem::transmute(val) + } + }, + get_acceleration_structure_handle_nv: unsafe { + unsafe extern "system" fn get_acceleration_structure_handle_nv( + _device: crate::vk::Device, + _acceleration_structure: AccelerationStructureNV, + _data_size: usize, + _p_data: *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_acceleration_structure_handle_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetAccelerationStructureHandleNV\0", + ); + let val = _f(cname); + if val.is_null() { + get_acceleration_structure_handle_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_write_acceleration_structures_properties_nv: unsafe { + unsafe extern "system" fn cmd_write_acceleration_structures_properties_nv( _command_buffer: CommandBuffer, - _first_viewport: u32, - _viewport_count: u32, - _p_viewport_w_scalings: *const ViewportWScalingNV, + _acceleration_structure_count: u32, + _p_acceleration_structures: *const AccelerationStructureNV, + _query_type: QueryType, + _query_pool: QueryPool, + _first_query: u32, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_set_viewport_w_scaling_nv) + stringify!(cmd_write_acceleration_structures_properties_nv) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportWScalingNV\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdWriteAccelerationStructuresPropertiesNV\0", + ); let val = _f(cname); if val.is_null() { - cmd_set_viewport_w_scaling_nv + cmd_write_acceleration_structures_properties_nv + } else { + ::core::mem::transmute(val) + } + }, + compile_deferred_nv: unsafe { + unsafe extern "system" fn compile_deferred_nv( + _device: crate::vk::Device, + _pipeline: Pipeline, + _shader: u32, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(compile_deferred_nv))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCompileDeferredNV\0"); + let val = _f(cname); + if val.is_null() { + compile_deferred_nv } else { ::core::mem::transmute(val) } @@ -18003,71 +19691,36 @@ pub mod nv { } } } - #[doc = "VK_NV_sample_mask_override_coverage"] - pub mod sample_mask_override_coverage { - pub use { - crate::vk::NV_SAMPLE_MASK_OVERRIDE_COVERAGE_NAME as NAME, - crate::vk::NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_NV_geometry_shader_passthrough"] - pub mod geometry_shader_passthrough { - pub use { - crate::vk::NV_GEOMETRY_SHADER_PASSTHROUGH_NAME as NAME, - crate::vk::NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_NV_viewport_array2"] - pub mod viewport_array2 { - pub use { - crate::vk::NV_VIEWPORT_ARRAY2_NAME as NAME, - crate::vk::NV_VIEWPORT_ARRAY2_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_NV_viewport_swizzle"] - pub mod viewport_swizzle { - pub use { - crate::vk::NV_VIEWPORT_SWIZZLE_NAME as NAME, - crate::vk::NV_VIEWPORT_SWIZZLE_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_NV_fragment_coverage_to_color"] - pub mod fragment_coverage_to_color { - pub use { - crate::vk::NV_FRAGMENT_COVERAGE_TO_COLOR_NAME as NAME, - crate::vk::NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_NV_framebuffer_mixed_samples"] - pub mod framebuffer_mixed_samples { + #[doc = "VK_NV_representative_fragment_test"] + pub mod representative_fragment_test { pub use { - crate::vk::NV_FRAMEBUFFER_MIXED_SAMPLES_NAME as NAME, - crate::vk::NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_REPRESENTATIVE_FRAGMENT_TEST_NAME as NAME, + crate::vk::NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_NV_fill_rectangle"] - pub mod fill_rectangle { + #[doc = "VK_NV_shader_subgroup_partitioned"] + pub mod shader_subgroup_partitioned { pub use { - crate::vk::NV_FILL_RECTANGLE_NAME as NAME, - crate::vk::NV_FILL_RECTANGLE_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_SHADER_SUBGROUP_PARTITIONED_NAME as NAME, + crate::vk::NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_NV_shader_sm_builtins"] - pub mod shader_sm_builtins { + #[doc = "VK_NV_compute_shader_derivatives"] + pub mod compute_shader_derivatives { pub use { - crate::vk::NV_SHADER_SM_BUILTINS_NAME as NAME, - crate::vk::NV_SHADER_SM_BUILTINS_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_COMPUTE_SHADER_DERIVATIVES_NAME as NAME, + crate::vk::NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_NV_shading_rate_image"] - pub mod shading_rate_image { + #[doc = "VK_NV_mesh_shader"] + pub mod mesh_shader { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::NV_SHADING_RATE_IMAGE_NAME as NAME, - crate::vk::NV_SHADING_RATE_IMAGE_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_MESH_SHADER_NAME as NAME, + crate::vk::NV_MESH_SHADER_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_NV_shading_rate_image device-level functions"] + #[doc = "VK_NV_mesh_shader device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -18091,11 +19744,11 @@ pub mod nv { } } #[derive(Clone)] - #[doc = "Raw VK_NV_shading_rate_image device-level function pointers"] + #[doc = "Raw VK_NV_mesh_shader device-level function pointers"] pub struct DeviceFn { - pub cmd_bind_shading_rate_image_nv: PFN_vkCmdBindShadingRateImageNV, - pub cmd_set_viewport_shading_rate_palette_nv: PFN_vkCmdSetViewportShadingRatePaletteNV, - pub cmd_set_coarse_sample_order_nv: PFN_vkCmdSetCoarseSampleOrderNV, + pub cmd_draw_mesh_tasks_nv: PFN_vkCmdDrawMeshTasksNV, + pub cmd_draw_mesh_tasks_indirect_nv: PFN_vkCmdDrawMeshTasksIndirectNV, + pub cmd_draw_mesh_tasks_indirect_count_nv: PFN_vkCmdDrawMeshTasksIndirectCountNV, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -18105,65 +19758,68 @@ pub mod nv { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - cmd_bind_shading_rate_image_nv: unsafe { - unsafe extern "system" fn cmd_bind_shading_rate_image_nv( + cmd_draw_mesh_tasks_nv: unsafe { + unsafe extern "system" fn cmd_draw_mesh_tasks_nv( _command_buffer: CommandBuffer, - _image_view: ImageView, - _image_layout: ImageLayout, + _task_count: u32, + _first_task: u32, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_bind_shading_rate_image_nv) + stringify!(cmd_draw_mesh_tasks_nv) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdBindShadingRateImageNV\0"); + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMeshTasksNV\0"); let val = _f(cname); if val.is_null() { - cmd_bind_shading_rate_image_nv + cmd_draw_mesh_tasks_nv } else { ::core::mem::transmute(val) } }, - cmd_set_viewport_shading_rate_palette_nv: unsafe { - unsafe extern "system" fn cmd_set_viewport_shading_rate_palette_nv( + cmd_draw_mesh_tasks_indirect_nv: unsafe { + unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_nv( _command_buffer: CommandBuffer, - _first_viewport: u32, - _viewport_count: u32, - _p_shading_rate_palettes: *const ShadingRatePaletteNV<'_>, + _buffer: Buffer, + _offset: DeviceSize, + _draw_count: u32, + _stride: u32, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_set_viewport_shading_rate_palette_nv) + stringify!(cmd_draw_mesh_tasks_indirect_nv) )) } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetViewportShadingRatePaletteNV\0", - ); + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMeshTasksIndirectNV\0"); let val = _f(cname); if val.is_null() { - cmd_set_viewport_shading_rate_palette_nv + cmd_draw_mesh_tasks_indirect_nv } else { ::core::mem::transmute(val) } }, - cmd_set_coarse_sample_order_nv: unsafe { - unsafe extern "system" fn cmd_set_coarse_sample_order_nv( + cmd_draw_mesh_tasks_indirect_count_nv: unsafe { + unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_count_nv( _command_buffer: CommandBuffer, - _sample_order_type: CoarseSampleOrderTypeNV, - _custom_sample_order_count: u32, - _p_custom_sample_orders: *const CoarseSampleOrderCustomNV<'_>, + _buffer: Buffer, + _offset: DeviceSize, + _count_buffer: Buffer, + _count_buffer_offset: DeviceSize, + _max_draw_count: u32, + _stride: u32, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_set_coarse_sample_order_nv) + stringify!(cmd_draw_mesh_tasks_indirect_count_nv) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCoarseSampleOrderNV\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdDrawMeshTasksIndirectCountNV\0", + ); let val = _f(cname); if val.is_null() { - cmd_set_coarse_sample_order_nv + cmd_draw_mesh_tasks_indirect_count_nv } else { ::core::mem::transmute(val) } @@ -18172,15 +19828,29 @@ pub mod nv { } } } - #[doc = "VK_NV_ray_tracing"] - pub mod ray_tracing { + #[doc = "VK_NV_fragment_shader_barycentric"] + pub mod fragment_shader_barycentric { + pub use { + crate::vk::NV_FRAGMENT_SHADER_BARYCENTRIC_NAME as NAME, + crate::vk::NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_shader_image_footprint"] + pub mod shader_image_footprint { + pub use { + crate::vk::NV_SHADER_IMAGE_FOOTPRINT_NAME as NAME, + crate::vk::NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_scissor_exclusive"] + pub mod scissor_exclusive { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::NV_RAY_TRACING_NAME as NAME, - crate::vk::NV_RAY_TRACING_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_SCISSOR_EXCLUSIVE_NAME as NAME, + crate::vk::NV_SCISSOR_EXCLUSIVE_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_NV_ray_tracing device-level functions"] + #[doc = "VK_NV_scissor_exclusive device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -18204,22 +19874,10 @@ pub mod nv { } } #[derive(Clone)] - #[doc = "Raw VK_NV_ray_tracing device-level function pointers"] + #[doc = "Raw VK_NV_scissor_exclusive device-level function pointers"] pub struct DeviceFn { - pub create_acceleration_structure_nv: PFN_vkCreateAccelerationStructureNV, - pub destroy_acceleration_structure_nv: PFN_vkDestroyAccelerationStructureNV, - pub get_acceleration_structure_memory_requirements_nv: - PFN_vkGetAccelerationStructureMemoryRequirementsNV, - pub bind_acceleration_structure_memory_nv: PFN_vkBindAccelerationStructureMemoryNV, - pub cmd_build_acceleration_structure_nv: PFN_vkCmdBuildAccelerationStructureNV, - pub cmd_copy_acceleration_structure_nv: PFN_vkCmdCopyAccelerationStructureNV, - pub cmd_trace_rays_nv: PFN_vkCmdTraceRaysNV, - pub create_ray_tracing_pipelines_nv: PFN_vkCreateRayTracingPipelinesNV, - pub get_ray_tracing_shader_group_handles_nv: PFN_vkGetRayTracingShaderGroupHandlesKHR, - pub get_acceleration_structure_handle_nv: PFN_vkGetAccelerationStructureHandleNV, - pub cmd_write_acceleration_structures_properties_nv: - PFN_vkCmdWriteAccelerationStructuresPropertiesNV, - pub compile_deferred_nv: PFN_vkCompileDeferredNV, + pub cmd_set_exclusive_scissor_enable_nv: PFN_vkCmdSetExclusiveScissorEnableNV, + pub cmd_set_exclusive_scissor_nv: PFN_vkCmdSetExclusiveScissorNV, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -18229,273 +19887,297 @@ pub mod nv { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - create_acceleration_structure_nv: unsafe { - unsafe extern "system" fn create_acceleration_structure_nv( - _device: crate::vk::Device, - _p_create_info: *const AccelerationStructureCreateInfoNV<'_>, - _p_allocator: *const AllocationCallbacks, - _p_acceleration_structure: *mut AccelerationStructureNV, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_acceleration_structure_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateAccelerationStructureNV\0", - ); - let val = _f(cname); - if val.is_null() { - create_acceleration_structure_nv - } else { - ::core::mem::transmute(val) - } - }, - destroy_acceleration_structure_nv: unsafe { - unsafe extern "system" fn destroy_acceleration_structure_nv( - _device: crate::vk::Device, - _acceleration_structure: AccelerationStructureNV, - _p_allocator: *const AllocationCallbacks, + cmd_set_exclusive_scissor_enable_nv: unsafe { + unsafe extern "system" fn cmd_set_exclusive_scissor_enable_nv( + _command_buffer: CommandBuffer, + _first_exclusive_scissor: u32, + _exclusive_scissor_count: u32, + _p_exclusive_scissor_enables: *const Bool32, ) { panic!(concat!( "Unable to load ", - stringify!(destroy_acceleration_structure_nv) + stringify!(cmd_set_exclusive_scissor_enable_nv) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkDestroyAccelerationStructureNV\0", + b"vkCmdSetExclusiveScissorEnableNV\0", ); let val = _f(cname); if val.is_null() { - destroy_acceleration_structure_nv + cmd_set_exclusive_scissor_enable_nv } else { ::core::mem::transmute(val) } }, - get_acceleration_structure_memory_requirements_nv: unsafe { - unsafe extern "system" fn get_acceleration_structure_memory_requirements_nv( - _device: crate::vk::Device, - _p_info: *const AccelerationStructureMemoryRequirementsInfoNV<'_>, - _p_memory_requirements: *mut MemoryRequirements2KHR<'_>, + cmd_set_exclusive_scissor_nv: unsafe { + unsafe extern "system" fn cmd_set_exclusive_scissor_nv( + _command_buffer: CommandBuffer, + _first_exclusive_scissor: u32, + _exclusive_scissor_count: u32, + _p_exclusive_scissors: *const Rect2D, ) { panic!(concat!( "Unable to load ", - stringify!(get_acceleration_structure_memory_requirements_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetAccelerationStructureMemoryRequirementsNV\0", - ); - let val = _f(cname); - if val.is_null() { - get_acceleration_structure_memory_requirements_nv - } else { - ::core::mem::transmute(val) - } - }, - bind_acceleration_structure_memory_nv: unsafe { - unsafe extern "system" fn bind_acceleration_structure_memory_nv( - _device: crate::vk::Device, - _bind_info_count: u32, - _p_bind_infos: *const BindAccelerationStructureMemoryInfoNV<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(bind_acceleration_structure_memory_nv) + stringify!(cmd_set_exclusive_scissor_nv) )) } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkBindAccelerationStructureMemoryNV\0", - ); + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetExclusiveScissorNV\0"); let val = _f(cname); if val.is_null() { - bind_acceleration_structure_memory_nv + cmd_set_exclusive_scissor_nv } else { ::core::mem::transmute(val) } }, - cmd_build_acceleration_structure_nv: unsafe { - unsafe extern "system" fn cmd_build_acceleration_structure_nv( + } + } + } + } + #[doc = "VK_NV_device_diagnostic_checkpoints"] + pub mod device_diagnostic_checkpoints { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_NAME as NAME, + crate::vk::NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_device_diagnostic_checkpoints device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_NV_device_diagnostic_checkpoints device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_checkpoint_nv: PFN_vkCmdSetCheckpointNV, + pub get_queue_checkpoint_data_nv: PFN_vkGetQueueCheckpointDataNV, + pub get_queue_checkpoint_data2_nv: PFN_vkGetQueueCheckpointData2NV, + } + 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_checkpoint_nv: unsafe { + unsafe extern "system" fn cmd_set_checkpoint_nv( _command_buffer: CommandBuffer, - _p_info: *const AccelerationStructureInfoNV<'_>, - _instance_data: Buffer, - _instance_offset: DeviceSize, - _update: Bool32, - _dst: AccelerationStructureNV, - _src: AccelerationStructureNV, - _scratch: Buffer, - _scratch_offset: DeviceSize, + _p_checkpoint_marker: *const c_void, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_build_acceleration_structure_nv) + stringify!(cmd_set_checkpoint_nv) )) } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdBuildAccelerationStructureNV\0", - ); + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCheckpointNV\0"); let val = _f(cname); if val.is_null() { - cmd_build_acceleration_structure_nv + cmd_set_checkpoint_nv } else { ::core::mem::transmute(val) } }, - cmd_copy_acceleration_structure_nv: unsafe { - unsafe extern "system" fn cmd_copy_acceleration_structure_nv( - _command_buffer: CommandBuffer, - _dst: AccelerationStructureNV, - _src: AccelerationStructureNV, - _mode: CopyAccelerationStructureModeKHR, + get_queue_checkpoint_data_nv: unsafe { + unsafe extern "system" fn get_queue_checkpoint_data_nv( + _queue: Queue, + _p_checkpoint_data_count: *mut u32, + _p_checkpoint_data: *mut CheckpointDataNV<'_>, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_copy_acceleration_structure_nv) + stringify!(get_queue_checkpoint_data_nv) )) } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdCopyAccelerationStructureNV\0", - ); + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetQueueCheckpointDataNV\0"); let val = _f(cname); if val.is_null() { - cmd_copy_acceleration_structure_nv + get_queue_checkpoint_data_nv } else { ::core::mem::transmute(val) } }, - cmd_trace_rays_nv: unsafe { - unsafe extern "system" fn cmd_trace_rays_nv( - _command_buffer: CommandBuffer, - _raygen_shader_binding_table_buffer: Buffer, - _raygen_shader_binding_offset: DeviceSize, - _miss_shader_binding_table_buffer: Buffer, - _miss_shader_binding_offset: DeviceSize, - _miss_shader_binding_stride: DeviceSize, - _hit_shader_binding_table_buffer: Buffer, - _hit_shader_binding_offset: DeviceSize, - _hit_shader_binding_stride: DeviceSize, - _callable_shader_binding_table_buffer: Buffer, - _callable_shader_binding_offset: DeviceSize, - _callable_shader_binding_stride: DeviceSize, - _width: u32, - _height: u32, - _depth: u32, + get_queue_checkpoint_data2_nv: unsafe { + unsafe extern "system" fn get_queue_checkpoint_data2_nv( + _queue: Queue, + _p_checkpoint_data_count: *mut u32, + _p_checkpoint_data: *mut CheckpointData2NV<'_>, ) { - panic!(concat!("Unable to load ", stringify!(cmd_trace_rays_nv))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysNV\0"); - let val = _f(cname); - if val.is_null() { - cmd_trace_rays_nv - } else { - ::core::mem::transmute(val) - } - }, - create_ray_tracing_pipelines_nv: unsafe { - unsafe extern "system" fn create_ray_tracing_pipelines_nv( - _device: crate::vk::Device, - _pipeline_cache: PipelineCache, - _create_info_count: u32, - _p_create_infos: *const RayTracingPipelineCreateInfoNV<'_>, - _p_allocator: *const AllocationCallbacks, - _p_pipelines: *mut Pipeline, - ) -> Result { panic!(concat!( "Unable to load ", - stringify!(create_ray_tracing_pipelines_nv) + stringify!(get_queue_checkpoint_data2_nv) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateRayTracingPipelinesNV\0"); + CStr::from_bytes_with_nul_unchecked(b"vkGetQueueCheckpointData2NV\0"); let val = _f(cname); if val.is_null() { - create_ray_tracing_pipelines_nv + get_queue_checkpoint_data2_nv } else { ::core::mem::transmute(val) } }, - get_ray_tracing_shader_group_handles_nv: unsafe { - unsafe extern "system" fn get_ray_tracing_shader_group_handles_nv( - _device: crate::vk::Device, - _pipeline: Pipeline, - _first_group: u32, - _group_count: u32, - _data_size: usize, - _p_data: *mut c_void, + } + } + } + } + #[doc = "VK_NV_dedicated_allocation_image_aliasing"] + pub mod dedicated_allocation_image_aliasing { + pub use { + crate::vk::NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_NAME as NAME, + crate::vk::NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_cooperative_matrix"] + pub mod cooperative_matrix { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::NV_COOPERATIVE_MATRIX_NAME as NAME, + crate::vk::NV_COOPERATIVE_MATRIX_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_cooperative_matrix instance-level functions"] + #[derive(Clone)] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn load(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle; + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_cooperative_matrix instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_cooperative_matrix_properties_nv: + PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + 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_physical_device_cooperative_matrix_properties_nv: unsafe { + unsafe extern "system" fn get_physical_device_cooperative_matrix_properties_nv( + _physical_device: PhysicalDevice, + _p_property_count: *mut u32, + _p_properties: *mut CooperativeMatrixPropertiesNV<'_>, ) -> Result { panic!(concat!( "Unable to load ", - stringify!(get_ray_tracing_shader_group_handles_nv) + stringify!(get_physical_device_cooperative_matrix_properties_nv) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetRayTracingShaderGroupHandlesNV\0", + b"vkGetPhysicalDeviceCooperativeMatrixPropertiesNV\0", ); let val = _f(cname); if val.is_null() { - get_ray_tracing_shader_group_handles_nv + get_physical_device_cooperative_matrix_properties_nv } else { ::core::mem::transmute(val) } }, - get_acceleration_structure_handle_nv: unsafe { - unsafe extern "system" fn get_acceleration_structure_handle_nv( - _device: crate::vk::Device, - _acceleration_structure: AccelerationStructureNV, - _data_size: usize, - _p_data: *mut c_void, + } + } + } + } + #[doc = "VK_NV_coverage_reduction_mode"] + pub mod coverage_reduction_mode { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::NV_COVERAGE_REDUCTION_MODE_NAME as NAME, + crate::vk::NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_coverage_reduction_mode instance-level functions"] + #[derive(Clone)] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn load(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle; + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_coverage_reduction_mode instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_supported_framebuffer_mixed_samples_combinations_nv: + PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + 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_physical_device_supported_framebuffer_mixed_samples_combinations_nv: unsafe { + unsafe extern "system" fn get_physical_device_supported_framebuffer_mixed_samples_combinations_nv( + _physical_device: PhysicalDevice, + _p_combination_count: *mut u32, + _p_combinations: *mut FramebufferMixedSamplesCombinationNV<'_>, ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_acceleration_structure_handle_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetAccelerationStructureHandleNV\0", - ); - let val = _f(cname); - if val.is_null() { - get_acceleration_structure_handle_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_write_acceleration_structures_properties_nv: unsafe { - unsafe extern "system" fn cmd_write_acceleration_structures_properties_nv( - _command_buffer: CommandBuffer, - _acceleration_structure_count: u32, - _p_acceleration_structures: *const AccelerationStructureNV, - _query_type: QueryType, - _query_pool: QueryPool, - _first_query: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_write_acceleration_structures_properties_nv) - )) + panic ! (concat ! ("Unable to load " , stringify ! (get_physical_device_supported_framebuffer_mixed_samples_combinations_nv))) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdWriteAccelerationStructuresPropertiesNV\0", + b"vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\0", ); let val = _f(cname); if val.is_null() { - cmd_write_acceleration_structures_properties_nv - } else { - ::core::mem::transmute(val) - } - }, - compile_deferred_nv: unsafe { - unsafe extern "system" fn compile_deferred_nv( - _device: crate::vk::Device, - _pipeline: Pipeline, - _shader: u32, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(compile_deferred_nv))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCompileDeferredNV\0"); - let val = _f(cname); - if val.is_null() { - compile_deferred_nv + get_physical_device_supported_framebuffer_mixed_samples_combinations_nv } else { ::core::mem::transmute(val) } @@ -18504,36 +20186,15 @@ pub mod nv { } } } - #[doc = "VK_NV_representative_fragment_test"] - pub mod representative_fragment_test { - pub use { - crate::vk::NV_REPRESENTATIVE_FRAGMENT_TEST_NAME as NAME, - crate::vk::NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_NV_shader_subgroup_partitioned"] - pub mod shader_subgroup_partitioned { - pub use { - crate::vk::NV_SHADER_SUBGROUP_PARTITIONED_NAME as NAME, - crate::vk::NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_NV_compute_shader_derivatives"] - pub mod compute_shader_derivatives { - pub use { - crate::vk::NV_COMPUTE_SHADER_DERIVATIVES_NAME as NAME, - crate::vk::NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_NV_mesh_shader"] - pub mod mesh_shader { + #[doc = "VK_NV_device_generated_commands"] + pub mod device_generated_commands { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::NV_MESH_SHADER_NAME as NAME, - crate::vk::NV_MESH_SHADER_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_DEVICE_GENERATED_COMMANDS_NAME as NAME, + crate::vk::NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_NV_mesh_shader device-level functions"] + #[doc = "VK_NV_device_generated_commands device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -18557,11 +20218,15 @@ pub mod nv { } } #[derive(Clone)] - #[doc = "Raw VK_NV_mesh_shader device-level function pointers"] + #[doc = "Raw VK_NV_device_generated_commands device-level function pointers"] pub struct DeviceFn { - pub cmd_draw_mesh_tasks_nv: PFN_vkCmdDrawMeshTasksNV, - pub cmd_draw_mesh_tasks_indirect_nv: PFN_vkCmdDrawMeshTasksIndirectNV, - pub cmd_draw_mesh_tasks_indirect_count_nv: PFN_vkCmdDrawMeshTasksIndirectCountNV, + pub get_generated_commands_memory_requirements_nv: + PFN_vkGetGeneratedCommandsMemoryRequirementsNV, + pub cmd_preprocess_generated_commands_nv: PFN_vkCmdPreprocessGeneratedCommandsNV, + pub cmd_execute_generated_commands_nv: PFN_vkCmdExecuteGeneratedCommandsNV, + pub cmd_bind_pipeline_shader_group_nv: PFN_vkCmdBindPipelineShaderGroupNV, + pub create_indirect_commands_layout_nv: PFN_vkCreateIndirectCommandsLayoutNV, + pub destroy_indirect_commands_layout_nv: PFN_vkDestroyIndirectCommandsLayoutNV, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -18571,68 +20236,129 @@ pub mod nv { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - cmd_draw_mesh_tasks_nv: unsafe { - unsafe extern "system" fn cmd_draw_mesh_tasks_nv( + get_generated_commands_memory_requirements_nv: unsafe { + unsafe extern "system" fn get_generated_commands_memory_requirements_nv( + _device: crate::vk::Device, + _p_info: *const GeneratedCommandsMemoryRequirementsInfoNV<'_>, + _p_memory_requirements: *mut MemoryRequirements2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_generated_commands_memory_requirements_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetGeneratedCommandsMemoryRequirementsNV\0", + ); + let val = _f(cname); + if val.is_null() { + get_generated_commands_memory_requirements_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_preprocess_generated_commands_nv: unsafe { + unsafe extern "system" fn cmd_preprocess_generated_commands_nv( _command_buffer: CommandBuffer, - _task_count: u32, - _first_task: u32, + _p_generated_commands_info: *const GeneratedCommandsInfoNV<'_>, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_draw_mesh_tasks_nv) + stringify!(cmd_preprocess_generated_commands_nv) )) } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMeshTasksNV\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdPreprocessGeneratedCommandsNV\0", + ); let val = _f(cname); if val.is_null() { - cmd_draw_mesh_tasks_nv + cmd_preprocess_generated_commands_nv } else { ::core::mem::transmute(val) } }, - cmd_draw_mesh_tasks_indirect_nv: unsafe { - unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_nv( + cmd_execute_generated_commands_nv: unsafe { + unsafe extern "system" fn cmd_execute_generated_commands_nv( _command_buffer: CommandBuffer, - _buffer: Buffer, - _offset: DeviceSize, - _draw_count: u32, - _stride: u32, + _is_preprocessed: Bool32, + _p_generated_commands_info: *const GeneratedCommandsInfoNV<'_>, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_draw_mesh_tasks_indirect_nv) + stringify!(cmd_execute_generated_commands_nv) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMeshTasksIndirectNV\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdExecuteGeneratedCommandsNV\0", + ); let val = _f(cname); if val.is_null() { - cmd_draw_mesh_tasks_indirect_nv + cmd_execute_generated_commands_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_bind_pipeline_shader_group_nv: unsafe { + unsafe extern "system" fn cmd_bind_pipeline_shader_group_nv( + _command_buffer: CommandBuffer, + _pipeline_bind_point: PipelineBindPoint, + _pipeline: Pipeline, + _group_index: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_pipeline_shader_group_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdBindPipelineShaderGroupNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_bind_pipeline_shader_group_nv + } else { + ::core::mem::transmute(val) + } + }, + create_indirect_commands_layout_nv: unsafe { + unsafe extern "system" fn create_indirect_commands_layout_nv( + _device: crate::vk::Device, + _p_create_info: *const IndirectCommandsLayoutCreateInfoNV<'_>, + _p_allocator: *const AllocationCallbacks, + _p_indirect_commands_layout: *mut IndirectCommandsLayoutNV, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_indirect_commands_layout_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateIndirectCommandsLayoutNV\0", + ); + let val = _f(cname); + if val.is_null() { + create_indirect_commands_layout_nv } else { ::core::mem::transmute(val) } }, - cmd_draw_mesh_tasks_indirect_count_nv: unsafe { - unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_count_nv( - _command_buffer: CommandBuffer, - _buffer: Buffer, - _offset: DeviceSize, - _count_buffer: Buffer, - _count_buffer_offset: DeviceSize, - _max_draw_count: u32, - _stride: u32, + destroy_indirect_commands_layout_nv: unsafe { + unsafe extern "system" fn destroy_indirect_commands_layout_nv( + _device: crate::vk::Device, + _indirect_commands_layout: IndirectCommandsLayoutNV, + _p_allocator: *const AllocationCallbacks, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_draw_mesh_tasks_indirect_count_nv) + stringify!(destroy_indirect_commands_layout_nv) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdDrawMeshTasksIndirectCountNV\0", + b"vkDestroyIndirectCommandsLayoutNV\0", ); let val = _f(cname); if val.is_null() { - cmd_draw_mesh_tasks_indirect_count_nv + destroy_indirect_commands_layout_nv } else { ::core::mem::transmute(val) } @@ -18641,29 +20367,36 @@ pub mod nv { } } } - #[doc = "VK_NV_fragment_shader_barycentric"] - pub mod fragment_shader_barycentric { + #[doc = "VK_NV_inherited_viewport_scissor"] + pub mod inherited_viewport_scissor { pub use { - crate::vk::NV_FRAGMENT_SHADER_BARYCENTRIC_NAME as NAME, - crate::vk::NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_INHERITED_VIEWPORT_SCISSOR_NAME as NAME, + crate::vk::NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_NV_shader_image_footprint"] - pub mod shader_image_footprint { + #[doc = "VK_NV_present_barrier"] + pub mod present_barrier { pub use { - crate::vk::NV_SHADER_IMAGE_FOOTPRINT_NAME as NAME, - crate::vk::NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_PRESENT_BARRIER_NAME as NAME, + crate::vk::NV_PRESENT_BARRIER_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_NV_scissor_exclusive"] - pub mod scissor_exclusive { + #[doc = "VK_NV_device_diagnostics_config"] + pub mod device_diagnostics_config { + pub use { + crate::vk::NV_DEVICE_DIAGNOSTICS_CONFIG_NAME as NAME, + crate::vk::NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_cuda_kernel_launch"] + pub mod cuda_kernel_launch { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::NV_SCISSOR_EXCLUSIVE_NAME as NAME, - crate::vk::NV_SCISSOR_EXCLUSIVE_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_CUDA_KERNEL_LAUNCH_NAME as NAME, + crate::vk::NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_NV_scissor_exclusive device-level functions"] + #[doc = "VK_NV_cuda_kernel_launch device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -18687,10 +20420,14 @@ pub mod nv { } } #[derive(Clone)] - #[doc = "Raw VK_NV_scissor_exclusive device-level function pointers"] + #[doc = "Raw VK_NV_cuda_kernel_launch device-level function pointers"] pub struct DeviceFn { - pub cmd_set_exclusive_scissor_enable_nv: PFN_vkCmdSetExclusiveScissorEnableNV, - pub cmd_set_exclusive_scissor_nv: PFN_vkCmdSetExclusiveScissorNV, + pub create_cuda_module_nv: PFN_vkCreateCudaModuleNV, + pub get_cuda_module_cache_nv: PFN_vkGetCudaModuleCacheNV, + pub create_cuda_function_nv: PFN_vkCreateCudaFunctionNV, + pub destroy_cuda_module_nv: PFN_vkDestroyCudaModuleNV, + pub destroy_cuda_function_nv: PFN_vkDestroyCudaFunctionNV, + pub cmd_cuda_launch_kernel_nv: PFN_vkCmdCudaLaunchKernelNV, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -18700,132 +20437,122 @@ pub mod nv { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - cmd_set_exclusive_scissor_enable_nv: unsafe { - unsafe extern "system" fn cmd_set_exclusive_scissor_enable_nv( - _command_buffer: CommandBuffer, - _first_exclusive_scissor: u32, - _exclusive_scissor_count: u32, - _p_exclusive_scissor_enables: *const Bool32, - ) { + create_cuda_module_nv: unsafe { + unsafe extern "system" fn create_cuda_module_nv( + _device: crate::vk::Device, + _p_create_info: *const CudaModuleCreateInfoNV<'_>, + _p_allocator: *const AllocationCallbacks, + _p_module: *mut CudaModuleNV, + ) -> Result { panic!(concat!( "Unable to load ", - stringify!(cmd_set_exclusive_scissor_enable_nv) + stringify!(create_cuda_module_nv) )) } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetExclusiveScissorEnableNV\0", - ); + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateCudaModuleNV\0"); let val = _f(cname); if val.is_null() { - cmd_set_exclusive_scissor_enable_nv + create_cuda_module_nv } else { ::core::mem::transmute(val) } }, - cmd_set_exclusive_scissor_nv: unsafe { - unsafe extern "system" fn cmd_set_exclusive_scissor_nv( - _command_buffer: CommandBuffer, - _first_exclusive_scissor: u32, - _exclusive_scissor_count: u32, - _p_exclusive_scissors: *const Rect2D, - ) { + get_cuda_module_cache_nv: unsafe { + unsafe extern "system" fn get_cuda_module_cache_nv( + _device: crate::vk::Device, + _module: CudaModuleNV, + _p_cache_size: *mut usize, + _p_cache_data: *mut c_void, + ) -> Result { panic!(concat!( "Unable to load ", - stringify!(cmd_set_exclusive_scissor_nv) + stringify!(get_cuda_module_cache_nv) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetExclusiveScissorNV\0"); + CStr::from_bytes_with_nul_unchecked(b"vkGetCudaModuleCacheNV\0"); let val = _f(cname); if val.is_null() { - cmd_set_exclusive_scissor_nv + get_cuda_module_cache_nv } else { ::core::mem::transmute(val) } }, - } - } - } - } - #[doc = "VK_NV_device_diagnostic_checkpoints"] - pub mod device_diagnostic_checkpoints { - use crate::vk::*; - use core::ffi::*; - pub use { - crate::vk::NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_NAME as NAME, - crate::vk::NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION as SPEC_VERSION, - }; - #[doc = "VK_NV_device_diagnostic_checkpoints device-level functions"] - #[derive(Clone)] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn load(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_NV_device_diagnostic_checkpoints device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_checkpoint_nv: PFN_vkCmdSetCheckpointNV, - pub get_queue_checkpoint_data_nv: PFN_vkGetQueueCheckpointDataNV, - } - 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_checkpoint_nv: unsafe { - unsafe extern "system" fn cmd_set_checkpoint_nv( - _command_buffer: CommandBuffer, - _p_checkpoint_marker: *const c_void, + create_cuda_function_nv: unsafe { + unsafe extern "system" fn create_cuda_function_nv( + _device: crate::vk::Device, + _p_create_info: *const CudaFunctionCreateInfoNV<'_>, + _p_allocator: *const AllocationCallbacks, + _p_function: *mut CudaFunctionNV, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_cuda_function_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateCudaFunctionNV\0"); + let val = _f(cname); + if val.is_null() { + create_cuda_function_nv + } else { + ::core::mem::transmute(val) + } + }, + destroy_cuda_module_nv: unsafe { + unsafe extern "system" fn destroy_cuda_module_nv( + _device: crate::vk::Device, + _module: CudaModuleNV, + _p_allocator: *const AllocationCallbacks, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_set_checkpoint_nv) + stringify!(destroy_cuda_module_nv) )) } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCheckpointNV\0"); + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyCudaModuleNV\0"); let val = _f(cname); if val.is_null() { - cmd_set_checkpoint_nv + destroy_cuda_module_nv } else { ::core::mem::transmute(val) } }, - get_queue_checkpoint_data_nv: unsafe { - unsafe extern "system" fn get_queue_checkpoint_data_nv( - _queue: Queue, - _p_checkpoint_data_count: *mut u32, - _p_checkpoint_data: *mut CheckpointDataNV<'_>, + destroy_cuda_function_nv: unsafe { + unsafe extern "system" fn destroy_cuda_function_nv( + _device: crate::vk::Device, + _function: CudaFunctionNV, + _p_allocator: *const AllocationCallbacks, ) { panic!(concat!( "Unable to load ", - stringify!(get_queue_checkpoint_data_nv) + stringify!(destroy_cuda_function_nv) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetQueueCheckpointDataNV\0"); + CStr::from_bytes_with_nul_unchecked(b"vkDestroyCudaFunctionNV\0"); let val = _f(cname); if val.is_null() { - get_queue_checkpoint_data_nv + destroy_cuda_function_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_cuda_launch_kernel_nv: unsafe { + unsafe extern "system" fn cmd_cuda_launch_kernel_nv( + _command_buffer: CommandBuffer, + _p_launch_info: *const CudaLaunchInfoNV<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_cuda_launch_kernel_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdCudaLaunchKernelNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_cuda_launch_kernel_nv } else { ::core::mem::transmute(val) } @@ -18834,75 +20561,74 @@ pub mod nv { } } } - #[doc = "VK_NV_dedicated_allocation_image_aliasing"] - pub mod dedicated_allocation_image_aliasing { + #[doc = "VK_NV_low_latency"] + pub mod low_latency { pub use { - crate::vk::NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_NAME as NAME, - crate::vk::NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_LOW_LATENCY_NAME as NAME, + crate::vk::NV_LOW_LATENCY_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_NV_cooperative_matrix"] - pub mod cooperative_matrix { + #[doc = "VK_NV_fragment_shading_rate_enums"] + pub mod fragment_shading_rate_enums { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::NV_COOPERATIVE_MATRIX_NAME as NAME, - crate::vk::NV_COOPERATIVE_MATRIX_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_FRAGMENT_SHADING_RATE_ENUMS_NAME as NAME, + crate::vk::NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_NV_cooperative_matrix instance-level functions"] + #[doc = "VK_NV_fragment_shading_rate_enums device-level functions"] #[derive(Clone)] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn load(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle; - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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) -> &InstanceFn { + pub fn fp(&self) -> &DeviceFn { &self.fp } #[inline] - pub fn instance(&self) -> crate::vk::Instance { + pub fn device(&self) -> crate::vk::Device { self.handle } } #[derive(Clone)] - #[doc = "Raw VK_NV_cooperative_matrix instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_cooperative_matrix_properties_nv: - PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, + #[doc = "Raw VK_NV_fragment_shading_rate_enums device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_fragment_shading_rate_enum_nv: PFN_vkCmdSetFragmentShadingRateEnumNV, } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { + 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_physical_device_cooperative_matrix_properties_nv: unsafe { - unsafe extern "system" fn get_physical_device_cooperative_matrix_properties_nv( - _physical_device: PhysicalDevice, - _p_property_count: *mut u32, - _p_properties: *mut CooperativeMatrixPropertiesNV<'_>, - ) -> Result { + cmd_set_fragment_shading_rate_enum_nv: unsafe { + unsafe extern "system" fn cmd_set_fragment_shading_rate_enum_nv( + _command_buffer: CommandBuffer, + _shading_rate: FragmentShadingRateNV, + _combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2usize], + ) { panic!(concat!( "Unable to load ", - stringify!(get_physical_device_cooperative_matrix_properties_nv) + stringify!(cmd_set_fragment_shading_rate_enum_nv) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceCooperativeMatrixPropertiesNV\0", + b"vkCmdSetFragmentShadingRateEnumNV\0", ); let val = _f(cname); if val.is_null() { - get_physical_device_cooperative_matrix_properties_nv + cmd_set_fragment_shading_rate_enum_nv } else { ::core::mem::transmute(val) } @@ -18911,15 +20637,22 @@ pub mod nv { } } } - #[doc = "VK_NV_coverage_reduction_mode"] - pub mod coverage_reduction_mode { + #[doc = "VK_NV_ray_tracing_motion_blur"] + pub mod ray_tracing_motion_blur { + pub use { + crate::vk::NV_RAY_TRACING_MOTION_BLUR_NAME as NAME, + crate::vk::NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_acquire_winrt_display"] + pub mod acquire_winrt_display { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::NV_COVERAGE_REDUCTION_MODE_NAME as NAME, - crate::vk::NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_ACQUIRE_WINRT_DISPLAY_NAME as NAME, + crate::vk::NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_NV_coverage_reduction_mode instance-level functions"] + #[doc = "VK_NV_acquire_winrt_display instance-level functions"] #[derive(Clone)] pub struct Instance { pub(crate) fp: InstanceFn, @@ -18943,10 +20676,10 @@ pub mod nv { } } #[derive(Clone)] - #[doc = "Raw VK_NV_coverage_reduction_mode instance-level function pointers"] + #[doc = "Raw VK_NV_acquire_winrt_display instance-level function pointers"] pub struct InstanceFn { - pub get_physical_device_supported_framebuffer_mixed_samples_combinations_nv: - PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, + pub acquire_winrt_display_nv: PFN_vkAcquireWinrtDisplayNV, + pub get_winrt_display_nv: PFN_vkGetWinrtDisplayNV, } unsafe impl Send for InstanceFn {} unsafe impl Sync for InstanceFn {} @@ -18956,201 +20689,37 @@ pub mod nv { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - get_physical_device_supported_framebuffer_mixed_samples_combinations_nv: unsafe { - unsafe extern "system" fn get_physical_device_supported_framebuffer_mixed_samples_combinations_nv( + acquire_winrt_display_nv: unsafe { + unsafe extern "system" fn acquire_winrt_display_nv( _physical_device: PhysicalDevice, - _p_combination_count: *mut u32, - _p_combinations: *mut FramebufferMixedSamplesCombinationNV<'_>, + _display: DisplayKHR, ) -> Result { - panic ! (concat ! ("Unable to load " , stringify ! (get_physical_device_supported_framebuffer_mixed_samples_combinations_nv))) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_supported_framebuffer_mixed_samples_combinations_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - } - #[doc = "VK_NV_device_generated_commands"] - pub mod device_generated_commands { - use crate::vk::*; - use core::ffi::*; - pub use { - crate::vk::NV_DEVICE_GENERATED_COMMANDS_NAME as NAME, - crate::vk::NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION as SPEC_VERSION, - }; - #[doc = "VK_NV_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 load(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_NV_device_generated_commands device-level function pointers"] - pub struct DeviceFn { - pub get_generated_commands_memory_requirements_nv: - PFN_vkGetGeneratedCommandsMemoryRequirementsNV, - pub cmd_preprocess_generated_commands_nv: PFN_vkCmdPreprocessGeneratedCommandsNV, - pub cmd_execute_generated_commands_nv: PFN_vkCmdExecuteGeneratedCommandsNV, - pub cmd_bind_pipeline_shader_group_nv: PFN_vkCmdBindPipelineShaderGroupNV, - pub create_indirect_commands_layout_nv: PFN_vkCreateIndirectCommandsLayoutNV, - pub destroy_indirect_commands_layout_nv: PFN_vkDestroyIndirectCommandsLayoutNV, - } - 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_nv: unsafe { - unsafe extern "system" fn get_generated_commands_memory_requirements_nv( - _device: crate::vk::Device, - _p_info: *const GeneratedCommandsMemoryRequirementsInfoNV<'_>, - _p_memory_requirements: *mut MemoryRequirements2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_generated_commands_memory_requirements_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetGeneratedCommandsMemoryRequirementsNV\0", - ); - let val = _f(cname); - if val.is_null() { - get_generated_commands_memory_requirements_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_preprocess_generated_commands_nv: unsafe { - unsafe extern "system" fn cmd_preprocess_generated_commands_nv( - _command_buffer: CommandBuffer, - _p_generated_commands_info: *const GeneratedCommandsInfoNV<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_preprocess_generated_commands_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdPreprocessGeneratedCommandsNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_preprocess_generated_commands_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_execute_generated_commands_nv: unsafe { - unsafe extern "system" fn cmd_execute_generated_commands_nv( - _command_buffer: CommandBuffer, - _is_preprocessed: Bool32, - _p_generated_commands_info: *const GeneratedCommandsInfoNV<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_execute_generated_commands_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdExecuteGeneratedCommandsNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_execute_generated_commands_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_bind_pipeline_shader_group_nv: unsafe { - unsafe extern "system" fn cmd_bind_pipeline_shader_group_nv( - _command_buffer: CommandBuffer, - _pipeline_bind_point: PipelineBindPoint, - _pipeline: Pipeline, - _group_index: u32, - ) { panic!(concat!( "Unable to load ", - stringify!(cmd_bind_pipeline_shader_group_nv) + stringify!(acquire_winrt_display_nv) )) } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdBindPipelineShaderGroupNV\0", - ); + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkAcquireWinrtDisplayNV\0"); let val = _f(cname); if val.is_null() { - cmd_bind_pipeline_shader_group_nv + acquire_winrt_display_nv } else { ::core::mem::transmute(val) } }, - create_indirect_commands_layout_nv: unsafe { - unsafe extern "system" fn create_indirect_commands_layout_nv( - _device: crate::vk::Device, - _p_create_info: *const IndirectCommandsLayoutCreateInfoNV<'_>, - _p_allocator: *const AllocationCallbacks, - _p_indirect_commands_layout: *mut IndirectCommandsLayoutNV, + get_winrt_display_nv: unsafe { + unsafe extern "system" fn get_winrt_display_nv( + _physical_device: PhysicalDevice, + _device_relative_id: u32, + _p_display: *mut DisplayKHR, ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_indirect_commands_layout_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateIndirectCommandsLayoutNV\0", - ); - let val = _f(cname); - if val.is_null() { - create_indirect_commands_layout_nv - } else { - ::core::mem::transmute(val) - } - }, - destroy_indirect_commands_layout_nv: unsafe { - unsafe extern "system" fn destroy_indirect_commands_layout_nv( - _device: crate::vk::Device, - _indirect_commands_layout: IndirectCommandsLayoutNV, - _p_allocator: *const AllocationCallbacks, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_indirect_commands_layout_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkDestroyIndirectCommandsLayoutNV\0", - ); + panic!(concat!("Unable to load ", stringify!(get_winrt_display_nv))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetWinrtDisplayNV\0"); let val = _f(cname); if val.is_null() { - destroy_indirect_commands_layout_nv + get_winrt_display_nv } else { ::core::mem::transmute(val) } @@ -19159,36 +20728,15 @@ pub mod nv { } } } - #[doc = "VK_NV_inherited_viewport_scissor"] - pub mod inherited_viewport_scissor { - pub use { - crate::vk::NV_INHERITED_VIEWPORT_SCISSOR_NAME as NAME, - crate::vk::NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_NV_present_barrier"] - pub mod present_barrier { - pub use { - crate::vk::NV_PRESENT_BARRIER_NAME as NAME, - crate::vk::NV_PRESENT_BARRIER_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_NV_device_diagnostics_config"] - pub mod device_diagnostics_config { - pub use { - crate::vk::NV_DEVICE_DIAGNOSTICS_CONFIG_NAME as NAME, - crate::vk::NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_NV_cuda_kernel_launch"] - pub mod cuda_kernel_launch { + #[doc = "VK_NV_external_memory_rdma"] + pub mod external_memory_rdma { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::NV_CUDA_KERNEL_LAUNCH_NAME as NAME, - crate::vk::NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_EXTERNAL_MEMORY_RDMA_NAME as NAME, + crate::vk::NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_NV_cuda_kernel_launch device-level functions"] + #[doc = "VK_NV_external_memory_rdma device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -19212,14 +20760,9 @@ pub mod nv { } } #[derive(Clone)] - #[doc = "Raw VK_NV_cuda_kernel_launch device-level function pointers"] + #[doc = "Raw VK_NV_external_memory_rdma device-level function pointers"] pub struct DeviceFn { - pub create_cuda_module_nv: PFN_vkCreateCudaModuleNV, - pub get_cuda_module_cache_nv: PFN_vkGetCudaModuleCacheNV, - pub create_cuda_function_nv: PFN_vkCreateCudaFunctionNV, - pub destroy_cuda_module_nv: PFN_vkDestroyCudaModuleNV, - pub destroy_cuda_function_nv: PFN_vkDestroyCudaFunctionNV, - pub cmd_cuda_launch_kernel_nv: PFN_vkCmdCudaLaunchKernelNV, + pub get_memory_remote_address_nv: PFN_vkGetMemoryRemoteAddressNV, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -19229,122 +20772,217 @@ pub mod nv { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - create_cuda_module_nv: unsafe { - unsafe extern "system" fn create_cuda_module_nv( - _device: crate::vk::Device, - _p_create_info: *const CudaModuleCreateInfoNV<'_>, - _p_allocator: *const AllocationCallbacks, - _p_module: *mut CudaModuleNV, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_cuda_module_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateCudaModuleNV\0"); - let val = _f(cname); - if val.is_null() { - create_cuda_module_nv - } else { - ::core::mem::transmute(val) - } - }, - get_cuda_module_cache_nv: unsafe { - unsafe extern "system" fn get_cuda_module_cache_nv( + get_memory_remote_address_nv: unsafe { + unsafe extern "system" fn get_memory_remote_address_nv( _device: crate::vk::Device, - _module: CudaModuleNV, - _p_cache_size: *mut usize, - _p_cache_data: *mut c_void, + _p_memory_get_remote_address_info: *const MemoryGetRemoteAddressInfoNV< + '_, + >, + _p_address: *mut RemoteAddressNV, ) -> Result { panic!(concat!( "Unable to load ", - stringify!(get_cuda_module_cache_nv) + stringify!(get_memory_remote_address_nv) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetCudaModuleCacheNV\0"); + CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryRemoteAddressNV\0"); let val = _f(cname); if val.is_null() { - get_cuda_module_cache_nv + get_memory_remote_address_nv } else { ::core::mem::transmute(val) } }, - create_cuda_function_nv: unsafe { - unsafe extern "system" fn create_cuda_function_nv( - _device: crate::vk::Device, - _p_create_info: *const CudaFunctionCreateInfoNV<'_>, - _p_allocator: *const AllocationCallbacks, - _p_function: *mut CudaFunctionNV, - ) -> Result { + } + } + } + } + #[doc = "VK_NV_displacement_micromap"] + pub mod displacement_micromap { + pub use { + crate::vk::NV_DISPLACEMENT_MICROMAP_NAME as NAME, + crate::vk::NV_DISPLACEMENT_MICROMAP_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_copy_memory_indirect"] + pub mod copy_memory_indirect { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::NV_COPY_MEMORY_INDIRECT_NAME as NAME, + crate::vk::NV_COPY_MEMORY_INDIRECT_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_copy_memory_indirect device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_NV_copy_memory_indirect device-level function pointers"] + pub struct DeviceFn { + pub cmd_copy_memory_indirect_nv: PFN_vkCmdCopyMemoryIndirectNV, + pub cmd_copy_memory_to_image_indirect_nv: PFN_vkCmdCopyMemoryToImageIndirectNV, + } + 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_copy_memory_indirect_nv: unsafe { + unsafe extern "system" fn cmd_copy_memory_indirect_nv( + _command_buffer: CommandBuffer, + _copy_buffer_address: DeviceAddress, + _copy_count: u32, + _stride: u32, + ) { panic!(concat!( "Unable to load ", - stringify!(create_cuda_function_nv) + stringify!(cmd_copy_memory_indirect_nv) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateCudaFunctionNV\0"); + CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyMemoryIndirectNV\0"); let val = _f(cname); if val.is_null() { - create_cuda_function_nv + cmd_copy_memory_indirect_nv } else { ::core::mem::transmute(val) } }, - destroy_cuda_module_nv: unsafe { - unsafe extern "system" fn destroy_cuda_module_nv( - _device: crate::vk::Device, - _module: CudaModuleNV, - _p_allocator: *const AllocationCallbacks, + cmd_copy_memory_to_image_indirect_nv: unsafe { + unsafe extern "system" fn cmd_copy_memory_to_image_indirect_nv( + _command_buffer: CommandBuffer, + _copy_buffer_address: DeviceAddress, + _copy_count: u32, + _stride: u32, + _dst_image: Image, + _dst_image_layout: ImageLayout, + _p_image_subresources: *const ImageSubresourceLayers, ) { panic!(concat!( "Unable to load ", - stringify!(destroy_cuda_module_nv) + stringify!(cmd_copy_memory_to_image_indirect_nv) )) } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyCudaModuleNV\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdCopyMemoryToImageIndirectNV\0", + ); let val = _f(cname); if val.is_null() { - destroy_cuda_module_nv + cmd_copy_memory_to_image_indirect_nv } else { ::core::mem::transmute(val) } }, - destroy_cuda_function_nv: unsafe { - unsafe extern "system" fn destroy_cuda_function_nv( - _device: crate::vk::Device, - _function: CudaFunctionNV, - _p_allocator: *const AllocationCallbacks, + } + } + } + } + #[doc = "VK_NV_memory_decompression"] + pub mod memory_decompression { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::NV_MEMORY_DECOMPRESSION_NAME as NAME, + crate::vk::NV_MEMORY_DECOMPRESSION_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_memory_decompression device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_NV_memory_decompression device-level function pointers"] + pub struct DeviceFn { + pub cmd_decompress_memory_nv: PFN_vkCmdDecompressMemoryNV, + pub cmd_decompress_memory_indirect_count_nv: PFN_vkCmdDecompressMemoryIndirectCountNV, + } + 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_decompress_memory_nv: unsafe { + unsafe extern "system" fn cmd_decompress_memory_nv( + _command_buffer: CommandBuffer, + _decompress_region_count: u32, + _p_decompress_memory_regions: *const DecompressMemoryRegionNV, ) { panic!(concat!( "Unable to load ", - stringify!(destroy_cuda_function_nv) + stringify!(cmd_decompress_memory_nv) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDestroyCudaFunctionNV\0"); + CStr::from_bytes_with_nul_unchecked(b"vkCmdDecompressMemoryNV\0"); let val = _f(cname); if val.is_null() { - destroy_cuda_function_nv + cmd_decompress_memory_nv } else { ::core::mem::transmute(val) } }, - cmd_cuda_launch_kernel_nv: unsafe { - unsafe extern "system" fn cmd_cuda_launch_kernel_nv( + cmd_decompress_memory_indirect_count_nv: unsafe { + unsafe extern "system" fn cmd_decompress_memory_indirect_count_nv( _command_buffer: CommandBuffer, - _p_launch_info: *const CudaLaunchInfoNV<'_>, + _indirect_commands_address: DeviceAddress, + _indirect_commands_count_address: DeviceAddress, + _stride: u32, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_cuda_launch_kernel_nv) + stringify!(cmd_decompress_memory_indirect_count_nv) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdCudaLaunchKernelNV\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdDecompressMemoryIndirectCountNV\0", + ); let val = _f(cname); if val.is_null() { - cmd_cuda_launch_kernel_nv + cmd_decompress_memory_indirect_count_nv } else { ::core::mem::transmute(val) } @@ -19353,22 +20991,15 @@ pub mod nv { } } } - #[doc = "VK_NV_low_latency"] - pub mod low_latency { - pub use { - crate::vk::NV_LOW_LATENCY_NAME as NAME, - crate::vk::NV_LOW_LATENCY_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_NV_fragment_shading_rate_enums"] - pub mod fragment_shading_rate_enums { + #[doc = "VK_NV_device_generated_commands_compute"] + pub mod device_generated_commands_compute { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::NV_FRAGMENT_SHADING_RATE_ENUMS_NAME as NAME, - crate::vk::NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_DEVICE_GENERATED_COMMANDS_COMPUTE_NAME as NAME, + crate::vk::NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_NV_fragment_shading_rate_enums device-level functions"] + #[doc = "VK_NV_device_generated_commands_compute device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -19392,9 +21023,12 @@ pub mod nv { } } #[derive(Clone)] - #[doc = "Raw VK_NV_fragment_shading_rate_enums device-level function pointers"] + #[doc = "Raw VK_NV_device_generated_commands_compute device-level function pointers"] pub struct DeviceFn { - pub cmd_set_fragment_shading_rate_enum_nv: PFN_vkCmdSetFragmentShadingRateEnumNV, + pub get_pipeline_indirect_memory_requirements_nv: + PFN_vkGetPipelineIndirectMemoryRequirementsNV, + pub cmd_update_pipeline_indirect_buffer_nv: PFN_vkCmdUpdatePipelineIndirectBufferNV, + pub get_pipeline_indirect_device_address_nv: PFN_vkGetPipelineIndirectDeviceAddressNV, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -19404,23 +21038,64 @@ pub mod nv { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - cmd_set_fragment_shading_rate_enum_nv: unsafe { - unsafe extern "system" fn cmd_set_fragment_shading_rate_enum_nv( + get_pipeline_indirect_memory_requirements_nv: unsafe { + unsafe extern "system" fn get_pipeline_indirect_memory_requirements_nv( + _device: crate::vk::Device, + _p_create_info: *const ComputePipelineCreateInfo<'_>, + _p_memory_requirements: *mut MemoryRequirements2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_pipeline_indirect_memory_requirements_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPipelineIndirectMemoryRequirementsNV\0", + ); + let val = _f(cname); + if val.is_null() { + get_pipeline_indirect_memory_requirements_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_update_pipeline_indirect_buffer_nv: unsafe { + unsafe extern "system" fn cmd_update_pipeline_indirect_buffer_nv( _command_buffer: CommandBuffer, - _shading_rate: FragmentShadingRateNV, - _combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2usize], + _pipeline_bind_point: PipelineBindPoint, + _pipeline: Pipeline, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_set_fragment_shading_rate_enum_nv) + stringify!(cmd_update_pipeline_indirect_buffer_nv) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetFragmentShadingRateEnumNV\0", + b"vkCmdUpdatePipelineIndirectBufferNV\0", ); let val = _f(cname); if val.is_null() { - cmd_set_fragment_shading_rate_enum_nv + cmd_update_pipeline_indirect_buffer_nv + } else { + ::core::mem::transmute(val) + } + }, + get_pipeline_indirect_device_address_nv: unsafe { + unsafe extern "system" fn get_pipeline_indirect_device_address_nv( + _device: crate::vk::Device, + _p_info: *const PipelineIndirectDeviceAddressInfoNV<'_>, + ) -> DeviceAddress { + panic!(concat!( + "Unable to load ", + stringify!(get_pipeline_indirect_device_address_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPipelineIndirectDeviceAddressNV\0", + ); + let val = _f(cname); + if val.is_null() { + get_pipeline_indirect_device_address_nv } else { ::core::mem::transmute(val) } @@ -19429,22 +21104,29 @@ pub mod nv { } } } - #[doc = "VK_NV_ray_tracing_motion_blur"] - pub mod ray_tracing_motion_blur { + #[doc = "VK_NV_ray_tracing_linear_swept_spheres"] + pub mod ray_tracing_linear_swept_spheres { pub use { - crate::vk::NV_RAY_TRACING_MOTION_BLUR_NAME as NAME, - crate::vk::NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_NAME as NAME, + crate::vk::NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_NV_acquire_winrt_display"] - pub mod acquire_winrt_display { + #[doc = "VK_NV_linear_color_attachment"] + pub mod linear_color_attachment { + pub use { + crate::vk::NV_LINEAR_COLOR_ATTACHMENT_NAME as NAME, + crate::vk::NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_optical_flow"] + pub mod optical_flow { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::NV_ACQUIRE_WINRT_DISPLAY_NAME as NAME, - crate::vk::NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_OPTICAL_FLOW_NAME as NAME, + crate::vk::NV_OPTICAL_FLOW_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_NV_acquire_winrt_display instance-level functions"] + #[doc = "VK_NV_optical_flow instance-level functions"] #[derive(Clone)] pub struct Instance { pub(crate) fp: InstanceFn, @@ -19468,10 +21150,10 @@ pub mod nv { } } #[derive(Clone)] - #[doc = "Raw VK_NV_acquire_winrt_display instance-level function pointers"] + #[doc = "Raw VK_NV_optical_flow instance-level function pointers"] pub struct InstanceFn { - pub acquire_winrt_display_nv: PFN_vkAcquireWinrtDisplayNV, - pub get_winrt_display_nv: PFN_vkGetWinrtDisplayNV, + pub get_physical_device_optical_flow_image_formats_nv: + PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV, } unsafe impl Send for InstanceFn {} unsafe impl Sync for InstanceFn {} @@ -19481,37 +21163,26 @@ pub mod nv { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - acquire_winrt_display_nv: unsafe { - unsafe extern "system" fn acquire_winrt_display_nv( + get_physical_device_optical_flow_image_formats_nv: unsafe { + unsafe extern "system" fn get_physical_device_optical_flow_image_formats_nv( _physical_device: PhysicalDevice, - _display: DisplayKHR, + _p_optical_flow_image_format_info: *const OpticalFlowImageFormatInfoNV< + '_, + >, + _p_format_count: *mut u32, + _p_image_format_properties: *mut OpticalFlowImageFormatPropertiesNV<'_>, ) -> Result { panic!(concat!( "Unable to load ", - stringify!(acquire_winrt_display_nv) + stringify!(get_physical_device_optical_flow_image_formats_nv) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkAcquireWinrtDisplayNV\0"); - let val = _f(cname); - if val.is_null() { - acquire_winrt_display_nv - } else { - ::core::mem::transmute(val) - } - }, - get_winrt_display_nv: unsafe { - unsafe extern "system" fn get_winrt_display_nv( - _physical_device: PhysicalDevice, - _device_relative_id: u32, - _p_display: *mut DisplayKHR, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(get_winrt_display_nv))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetWinrtDisplayNV\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceOpticalFlowImageFormatsNV\0", + ); let val = _f(cname); if val.is_null() { - get_winrt_display_nv + get_physical_device_optical_flow_image_formats_nv } else { ::core::mem::transmute(val) } @@ -19519,16 +21190,7 @@ pub mod nv { } } } - } - #[doc = "VK_NV_external_memory_rdma"] - pub mod external_memory_rdma { - use crate::vk::*; - use core::ffi::*; - pub use { - crate::vk::NV_EXTERNAL_MEMORY_RDMA_NAME as NAME, - crate::vk::NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION as SPEC_VERSION, - }; - #[doc = "VK_NV_external_memory_rdma device-level functions"] + #[doc = "VK_NV_optical_flow device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -19552,9 +21214,12 @@ pub mod nv { } } #[derive(Clone)] - #[doc = "Raw VK_NV_external_memory_rdma device-level function pointers"] + #[doc = "Raw VK_NV_optical_flow device-level function pointers"] pub struct DeviceFn { - pub get_memory_remote_address_nv: PFN_vkGetMemoryRemoteAddressNV, + pub create_optical_flow_session_nv: PFN_vkCreateOpticalFlowSessionNV, + pub destroy_optical_flow_session_nv: PFN_vkDestroyOpticalFlowSessionNV, + pub bind_optical_flow_session_image_nv: PFN_vkBindOpticalFlowSessionImageNV, + pub cmd_optical_flow_execute_nv: PFN_vkCmdOpticalFlowExecuteNV, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -19564,24 +21229,86 @@ pub mod nv { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - get_memory_remote_address_nv: unsafe { - unsafe extern "system" fn get_memory_remote_address_nv( + create_optical_flow_session_nv: unsafe { + unsafe extern "system" fn create_optical_flow_session_nv( _device: crate::vk::Device, - _p_memory_get_remote_address_info: *const MemoryGetRemoteAddressInfoNV< - '_, - >, - _p_address: *mut RemoteAddressNV, + _p_create_info: *const OpticalFlowSessionCreateInfoNV<'_>, + _p_allocator: *const AllocationCallbacks, + _p_session: *mut OpticalFlowSessionNV, ) -> Result { panic!(concat!( "Unable to load ", - stringify!(get_memory_remote_address_nv) + stringify!(create_optical_flow_session_nv) )) } let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryRemoteAddressNV\0"); + CStr::from_bytes_with_nul_unchecked(b"vkCreateOpticalFlowSessionNV\0"); let val = _f(cname); if val.is_null() { - get_memory_remote_address_nv + create_optical_flow_session_nv + } else { + ::core::mem::transmute(val) + } + }, + destroy_optical_flow_session_nv: unsafe { + unsafe extern "system" fn destroy_optical_flow_session_nv( + _device: crate::vk::Device, + _session: OpticalFlowSessionNV, + _p_allocator: *const AllocationCallbacks, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_optical_flow_session_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkDestroyOpticalFlowSessionNV\0"); + let val = _f(cname); + if val.is_null() { + destroy_optical_flow_session_nv + } else { + ::core::mem::transmute(val) + } + }, + bind_optical_flow_session_image_nv: unsafe { + unsafe extern "system" fn bind_optical_flow_session_image_nv( + _device: crate::vk::Device, + _session: OpticalFlowSessionNV, + _binding_point: OpticalFlowSessionBindingPointNV, + _view: ImageView, + _layout: ImageLayout, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(bind_optical_flow_session_image_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkBindOpticalFlowSessionImageNV\0", + ); + let val = _f(cname); + if val.is_null() { + bind_optical_flow_session_image_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_optical_flow_execute_nv: unsafe { + unsafe extern "system" fn cmd_optical_flow_execute_nv( + _command_buffer: CommandBuffer, + _session: OpticalFlowSessionNV, + _p_execute_info: *const OpticalFlowExecuteInfoNV<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_optical_flow_execute_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdOpticalFlowExecuteNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_optical_flow_execute_nv } else { ::core::mem::transmute(val) } @@ -19590,100 +21317,75 @@ pub mod nv { } } } - #[doc = "VK_NV_displacement_micromap"] - pub mod displacement_micromap { + #[doc = "VK_NV_ray_tracing_invocation_reorder"] + pub mod ray_tracing_invocation_reorder { pub use { - crate::vk::NV_DISPLACEMENT_MICROMAP_NAME as NAME, - crate::vk::NV_DISPLACEMENT_MICROMAP_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_RAY_TRACING_INVOCATION_REORDER_NAME as NAME, + crate::vk::NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_NV_copy_memory_indirect"] - pub mod copy_memory_indirect { + #[doc = "VK_NV_cooperative_vector"] + pub mod cooperative_vector { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::NV_COPY_MEMORY_INDIRECT_NAME as NAME, - crate::vk::NV_COPY_MEMORY_INDIRECT_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_COOPERATIVE_VECTOR_NAME as NAME, + crate::vk::NV_COOPERATIVE_VECTOR_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_NV_copy_memory_indirect device-level functions"] + #[doc = "VK_NV_cooperative_vector instance-level functions"] #[derive(Clone)] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, } - impl Device { - pub fn load(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())) + impl Instance { + pub fn load(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle; + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) }); Self { handle, fp } } #[inline] - pub fn fp(&self) -> &DeviceFn { + pub fn fp(&self) -> &InstanceFn { &self.fp } #[inline] - pub fn device(&self) -> crate::vk::Device { + pub fn instance(&self) -> crate::vk::Instance { self.handle } } #[derive(Clone)] - #[doc = "Raw VK_NV_copy_memory_indirect device-level function pointers"] - pub struct DeviceFn { - pub cmd_copy_memory_indirect_nv: PFN_vkCmdCopyMemoryIndirectNV, - pub cmd_copy_memory_to_image_indirect_nv: PFN_vkCmdCopyMemoryToImageIndirectNV, + #[doc = "Raw VK_NV_cooperative_vector instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_cooperative_vector_properties_nv: + PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV, } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { 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_copy_memory_indirect_nv: unsafe { - unsafe extern "system" fn cmd_copy_memory_indirect_nv( - _command_buffer: CommandBuffer, - _copy_buffer_address: DeviceAddress, - _copy_count: u32, - _stride: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_copy_memory_indirect_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyMemoryIndirectNV\0"); - let val = _f(cname); - if val.is_null() { - cmd_copy_memory_indirect_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_memory_to_image_indirect_nv: unsafe { - unsafe extern "system" fn cmd_copy_memory_to_image_indirect_nv( - _command_buffer: CommandBuffer, - _copy_buffer_address: DeviceAddress, - _copy_count: u32, - _stride: u32, - _dst_image: Image, - _dst_image_layout: ImageLayout, - _p_image_subresources: *const ImageSubresourceLayers, - ) { + get_physical_device_cooperative_vector_properties_nv: unsafe { + unsafe extern "system" fn get_physical_device_cooperative_vector_properties_nv( + _physical_device: PhysicalDevice, + _p_property_count: *mut u32, + _p_properties: *mut CooperativeVectorPropertiesNV<'_>, + ) -> Result { panic!(concat!( "Unable to load ", - stringify!(cmd_copy_memory_to_image_indirect_nv) + stringify!(get_physical_device_cooperative_vector_properties_nv) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdCopyMemoryToImageIndirectNV\0", + b"vkGetPhysicalDeviceCooperativeVectorPropertiesNV\0", ); let val = _f(cname); if val.is_null() { - cmd_copy_memory_to_image_indirect_nv + get_physical_device_cooperative_vector_properties_nv } else { ::core::mem::transmute(val) } @@ -19691,16 +21393,7 @@ pub mod nv { } } } - } - #[doc = "VK_NV_memory_decompression"] - pub mod memory_decompression { - use crate::vk::*; - use core::ffi::*; - pub use { - crate::vk::NV_MEMORY_DECOMPRESSION_NAME as NAME, - crate::vk::NV_MEMORY_DECOMPRESSION_SPEC_VERSION as SPEC_VERSION, - }; - #[doc = "VK_NV_memory_decompression device-level functions"] + #[doc = "VK_NV_cooperative_vector device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -19724,10 +21417,10 @@ pub mod nv { } } #[derive(Clone)] - #[doc = "Raw VK_NV_memory_decompression device-level function pointers"] + #[doc = "Raw VK_NV_cooperative_vector device-level function pointers"] pub struct DeviceFn { - pub cmd_decompress_memory_nv: PFN_vkCmdDecompressMemoryNV, - pub cmd_decompress_memory_indirect_count_nv: PFN_vkCmdDecompressMemoryIndirectCountNV, + pub convert_cooperative_vector_matrix_nv: PFN_vkConvertCooperativeVectorMatrixNV, + pub cmd_convert_cooperative_vector_matrix_nv: PFN_vkCmdConvertCooperativeVectorMatrixNV, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -19737,44 +21430,43 @@ pub mod nv { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - cmd_decompress_memory_nv: unsafe { - unsafe extern "system" fn cmd_decompress_memory_nv( - _command_buffer: CommandBuffer, - _decompress_region_count: u32, - _p_decompress_memory_regions: *const DecompressMemoryRegionNV, - ) { + convert_cooperative_vector_matrix_nv: unsafe { + unsafe extern "system" fn convert_cooperative_vector_matrix_nv( + _device: crate::vk::Device, + _p_info: *const ConvertCooperativeVectorMatrixInfoNV<'_>, + ) -> Result { panic!(concat!( "Unable to load ", - stringify!(cmd_decompress_memory_nv) + stringify!(convert_cooperative_vector_matrix_nv) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdDecompressMemoryNV\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkConvertCooperativeVectorMatrixNV\0", + ); let val = _f(cname); if val.is_null() { - cmd_decompress_memory_nv + convert_cooperative_vector_matrix_nv } else { ::core::mem::transmute(val) } }, - cmd_decompress_memory_indirect_count_nv: unsafe { - unsafe extern "system" fn cmd_decompress_memory_indirect_count_nv( + cmd_convert_cooperative_vector_matrix_nv: unsafe { + unsafe extern "system" fn cmd_convert_cooperative_vector_matrix_nv( _command_buffer: CommandBuffer, - _indirect_commands_address: DeviceAddress, - _indirect_commands_count_address: DeviceAddress, - _stride: u32, + _info_count: u32, + _p_infos: *const ConvertCooperativeVectorMatrixInfoNV<'_>, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_decompress_memory_indirect_count_nv) + stringify!(cmd_convert_cooperative_vector_matrix_nv) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdDecompressMemoryIndirectCountNV\0", + b"vkCmdConvertCooperativeVectorMatrixNV\0", ); let val = _f(cname); if val.is_null() { - cmd_decompress_memory_indirect_count_nv + cmd_convert_cooperative_vector_matrix_nv } else { ::core::mem::transmute(val) } @@ -19783,15 +21475,22 @@ pub mod nv { } } } - #[doc = "VK_NV_device_generated_commands_compute"] - pub mod device_generated_commands_compute { + #[doc = "VK_NV_extended_sparse_address_space"] + pub mod extended_sparse_address_space { + pub use { + crate::vk::NV_EXTENDED_SPARSE_ADDRESS_SPACE_NAME as NAME, + crate::vk::NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_low_latency2"] + pub mod low_latency2 { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::NV_DEVICE_GENERATED_COMMANDS_COMPUTE_NAME as NAME, - crate::vk::NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_LOW_LATENCY2_NAME as NAME, + crate::vk::NV_LOW_LATENCY2_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_NV_device_generated_commands_compute device-level functions"] + #[doc = "VK_NV_low_latency2 device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -19815,12 +21514,13 @@ pub mod nv { } } #[derive(Clone)] - #[doc = "Raw VK_NV_device_generated_commands_compute device-level function pointers"] + #[doc = "Raw VK_NV_low_latency2 device-level function pointers"] pub struct DeviceFn { - pub get_pipeline_indirect_memory_requirements_nv: - PFN_vkGetPipelineIndirectMemoryRequirementsNV, - pub cmd_update_pipeline_indirect_buffer_nv: PFN_vkCmdUpdatePipelineIndirectBufferNV, - pub get_pipeline_indirect_device_address_nv: PFN_vkGetPipelineIndirectDeviceAddressNV, + pub set_latency_sleep_mode_nv: PFN_vkSetLatencySleepModeNV, + pub latency_sleep_nv: PFN_vkLatencySleepNV, + pub set_latency_marker_nv: PFN_vkSetLatencyMarkerNV, + pub get_latency_timings_nv: PFN_vkGetLatencyTimingsNV, + pub queue_notify_out_of_band_nv: PFN_vkQueueNotifyOutOfBandNV, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -19830,64 +21530,95 @@ pub mod nv { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - get_pipeline_indirect_memory_requirements_nv: unsafe { - unsafe extern "system" fn get_pipeline_indirect_memory_requirements_nv( + set_latency_sleep_mode_nv: unsafe { + unsafe extern "system" fn set_latency_sleep_mode_nv( _device: crate::vk::Device, - _p_create_info: *const ComputePipelineCreateInfo<'_>, - _p_memory_requirements: *mut MemoryRequirements2<'_>, - ) { + _swapchain: SwapchainKHR, + _p_sleep_mode_info: *const LatencySleepModeInfoNV<'_>, + ) -> Result { panic!(concat!( "Unable to load ", - stringify!(get_pipeline_indirect_memory_requirements_nv) + stringify!(set_latency_sleep_mode_nv) )) } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPipelineIndirectMemoryRequirementsNV\0", - ); + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkSetLatencySleepModeNV\0"); let val = _f(cname); if val.is_null() { - get_pipeline_indirect_memory_requirements_nv + set_latency_sleep_mode_nv } else { ::core::mem::transmute(val) } }, - cmd_update_pipeline_indirect_buffer_nv: unsafe { - unsafe extern "system" fn cmd_update_pipeline_indirect_buffer_nv( - _command_buffer: CommandBuffer, - _pipeline_bind_point: PipelineBindPoint, - _pipeline: Pipeline, + latency_sleep_nv: unsafe { + unsafe extern "system" fn latency_sleep_nv( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + _p_sleep_info: *const LatencySleepInfoNV<'_>, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(latency_sleep_nv))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkLatencySleepNV\0"); + let val = _f(cname); + if val.is_null() { + latency_sleep_nv + } else { + ::core::mem::transmute(val) + } + }, + set_latency_marker_nv: unsafe { + unsafe extern "system" fn set_latency_marker_nv( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + _p_latency_marker_info: *const SetLatencyMarkerInfoNV<'_>, ) { panic!(concat!( "Unable to load ", - stringify!(cmd_update_pipeline_indirect_buffer_nv) + stringify!(set_latency_marker_nv) )) } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdUpdatePipelineIndirectBufferNV\0", - ); + let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetLatencyMarkerNV\0"); let val = _f(cname); if val.is_null() { - cmd_update_pipeline_indirect_buffer_nv + set_latency_marker_nv } else { ::core::mem::transmute(val) } }, - get_pipeline_indirect_device_address_nv: unsafe { - unsafe extern "system" fn get_pipeline_indirect_device_address_nv( + get_latency_timings_nv: unsafe { + unsafe extern "system" fn get_latency_timings_nv( _device: crate::vk::Device, - _p_info: *const PipelineIndirectDeviceAddressInfoNV<'_>, - ) -> DeviceAddress { + _swapchain: SwapchainKHR, + _p_latency_marker_info: *mut GetLatencyMarkerInfoNV<'_>, + ) { panic!(concat!( "Unable to load ", - stringify!(get_pipeline_indirect_device_address_nv) + stringify!(get_latency_timings_nv) )) } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPipelineIndirectDeviceAddressNV\0", - ); + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetLatencyTimingsNV\0"); let val = _f(cname); if val.is_null() { - get_pipeline_indirect_device_address_nv + get_latency_timings_nv + } else { + ::core::mem::transmute(val) + } + }, + queue_notify_out_of_band_nv: unsafe { + unsafe extern "system" fn queue_notify_out_of_band_nv( + _queue: Queue, + _p_queue_type_info: *const OutOfBandQueueTypeInfoNV<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(queue_notify_out_of_band_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkQueueNotifyOutOfBandNV\0"); + let val = _f(cname); + if val.is_null() { + queue_notify_out_of_band_nv } else { ::core::mem::transmute(val) } @@ -19896,22 +21627,43 @@ pub mod nv { } } } - #[doc = "VK_NV_linear_color_attachment"] - pub mod linear_color_attachment { + #[doc = "VK_NV_per_stage_descriptor_set"] + pub mod per_stage_descriptor_set { pub use { - crate::vk::NV_LINEAR_COLOR_ATTACHMENT_NAME as NAME, - crate::vk::NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_PER_STAGE_DESCRIPTOR_SET_NAME as NAME, + crate::vk::NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_NV_optical_flow"] - pub mod optical_flow { + #[doc = "VK_NV_descriptor_pool_overallocation"] + pub mod descriptor_pool_overallocation { + pub use { + crate::vk::NV_DESCRIPTOR_POOL_OVERALLOCATION_NAME as NAME, + crate::vk::NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_display_stereo"] + pub mod display_stereo { + pub use { + crate::vk::NV_DISPLAY_STEREO_NAME as NAME, + crate::vk::NV_DISPLAY_STEREO_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_raw_access_chains"] + pub mod raw_access_chains { + pub use { + crate::vk::NV_RAW_ACCESS_CHAINS_NAME as NAME, + crate::vk::NV_RAW_ACCESS_CHAINS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_external_compute_queue"] + pub mod external_compute_queue { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::NV_OPTICAL_FLOW_NAME as NAME, - crate::vk::NV_OPTICAL_FLOW_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_EXTERNAL_COMPUTE_QUEUE_NAME as NAME, + crate::vk::NV_EXTERNAL_COMPUTE_QUEUE_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_NV_optical_flow instance-level functions"] + #[doc = "VK_NV_external_compute_queue instance-level functions"] #[derive(Clone)] pub struct Instance { pub(crate) fp: InstanceFn, @@ -19935,10 +21687,9 @@ pub mod nv { } } #[derive(Clone)] - #[doc = "Raw VK_NV_optical_flow instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_optical_flow_image_formats_nv: - PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV, + #[doc = "Raw VK_NV_external_compute_queue instance-level function pointers"] + pub struct InstanceFn { + pub get_external_compute_queue_data_nv: PFN_vkGetExternalComputeQueueDataNV, } unsafe impl Send for InstanceFn {} unsafe impl Sync for InstanceFn {} @@ -19948,26 +21699,23 @@ pub mod nv { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - get_physical_device_optical_flow_image_formats_nv: unsafe { - unsafe extern "system" fn get_physical_device_optical_flow_image_formats_nv( - _physical_device: PhysicalDevice, - _p_optical_flow_image_format_info: *const OpticalFlowImageFormatInfoNV< - '_, - >, - _p_format_count: *mut u32, - _p_image_format_properties: *mut OpticalFlowImageFormatPropertiesNV<'_>, - ) -> Result { + get_external_compute_queue_data_nv: unsafe { + unsafe extern "system" fn get_external_compute_queue_data_nv( + _external_queue: ExternalComputeQueueNV, + _params: *mut ExternalComputeQueueDataParamsNV<'_>, + _p_data: *mut c_void, + ) { panic!(concat!( "Unable to load ", - stringify!(get_physical_device_optical_flow_image_formats_nv) + stringify!(get_external_compute_queue_data_nv) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceOpticalFlowImageFormatsNV\0", + b"vkGetExternalComputeQueueDataNV\0", ); let val = _f(cname); if val.is_null() { - get_physical_device_optical_flow_image_formats_nv + get_external_compute_queue_data_nv } else { ::core::mem::transmute(val) } @@ -19975,7 +21723,7 @@ pub mod nv { } } } - #[doc = "VK_NV_optical_flow device-level functions"] + #[doc = "VK_NV_external_compute_queue device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -19999,12 +21747,10 @@ pub mod nv { } } #[derive(Clone)] - #[doc = "Raw VK_NV_optical_flow device-level function pointers"] + #[doc = "Raw VK_NV_external_compute_queue device-level function pointers"] pub struct DeviceFn { - pub create_optical_flow_session_nv: PFN_vkCreateOpticalFlowSessionNV, - pub destroy_optical_flow_session_nv: PFN_vkDestroyOpticalFlowSessionNV, - pub bind_optical_flow_session_image_nv: PFN_vkBindOpticalFlowSessionImageNV, - pub cmd_optical_flow_execute_nv: PFN_vkCmdOpticalFlowExecuteNV, + pub create_external_compute_queue_nv: PFN_vkCreateExternalComputeQueueNV, + pub destroy_external_compute_queue_nv: PFN_vkDestroyExternalComputeQueueNV, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -20014,86 +21760,45 @@ pub mod nv { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - create_optical_flow_session_nv: unsafe { - unsafe extern "system" fn create_optical_flow_session_nv( + create_external_compute_queue_nv: unsafe { + unsafe extern "system" fn create_external_compute_queue_nv( _device: crate::vk::Device, - _p_create_info: *const OpticalFlowSessionCreateInfoNV<'_>, + _p_create_info: *const ExternalComputeQueueCreateInfoNV<'_>, _p_allocator: *const AllocationCallbacks, - _p_session: *mut OpticalFlowSessionNV, + _p_external_queue: *mut ExternalComputeQueueNV, ) -> Result { panic!(concat!( "Unable to load ", - stringify!(create_optical_flow_session_nv) + stringify!(create_external_compute_queue_nv) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateOpticalFlowSessionNV\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateExternalComputeQueueNV\0", + ); let val = _f(cname); if val.is_null() { - create_optical_flow_session_nv + create_external_compute_queue_nv } else { ::core::mem::transmute(val) } }, - destroy_optical_flow_session_nv: unsafe { - unsafe extern "system" fn destroy_optical_flow_session_nv( + destroy_external_compute_queue_nv: unsafe { + unsafe extern "system" fn destroy_external_compute_queue_nv( _device: crate::vk::Device, - _session: OpticalFlowSessionNV, + _external_queue: ExternalComputeQueueNV, _p_allocator: *const AllocationCallbacks, ) { panic!(concat!( "Unable to load ", - stringify!(destroy_optical_flow_session_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDestroyOpticalFlowSessionNV\0"); - let val = _f(cname); - if val.is_null() { - destroy_optical_flow_session_nv - } else { - ::core::mem::transmute(val) - } - }, - bind_optical_flow_session_image_nv: unsafe { - unsafe extern "system" fn bind_optical_flow_session_image_nv( - _device: crate::vk::Device, - _session: OpticalFlowSessionNV, - _binding_point: OpticalFlowSessionBindingPointNV, - _view: ImageView, - _layout: ImageLayout, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(bind_optical_flow_session_image_nv) + stringify!(destroy_external_compute_queue_nv) )) } let cname = CStr::from_bytes_with_nul_unchecked( - b"vkBindOpticalFlowSessionImageNV\0", + b"vkDestroyExternalComputeQueueNV\0", ); let val = _f(cname); if val.is_null() { - bind_optical_flow_session_image_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_optical_flow_execute_nv: unsafe { - unsafe extern "system" fn cmd_optical_flow_execute_nv( - _command_buffer: CommandBuffer, - _session: OpticalFlowSessionNV, - _p_execute_info: *const OpticalFlowExecuteInfoNV<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_optical_flow_execute_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdOpticalFlowExecuteNV\0"); - let val = _f(cname); - if val.is_null() { - cmd_optical_flow_execute_nv + destroy_external_compute_queue_nv } else { ::core::mem::transmute(val) } @@ -20102,29 +21807,36 @@ pub mod nv { } } } - #[doc = "VK_NV_ray_tracing_invocation_reorder"] - pub mod ray_tracing_invocation_reorder { + #[doc = "VK_NV_command_buffer_inheritance"] + pub mod command_buffer_inheritance { pub use { - crate::vk::NV_RAY_TRACING_INVOCATION_REORDER_NAME as NAME, - crate::vk::NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_COMMAND_BUFFER_INHERITANCE_NAME as NAME, + crate::vk::NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_NV_extended_sparse_address_space"] - pub mod extended_sparse_address_space { + #[doc = "VK_NV_shader_atomic_float16_vector"] + pub mod shader_atomic_float16_vector { pub use { - crate::vk::NV_EXTENDED_SPARSE_ADDRESS_SPACE_NAME as NAME, - crate::vk::NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_SHADER_ATOMIC_FLOAT16_VECTOR_NAME as NAME, + crate::vk::NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION as SPEC_VERSION, }; } - #[doc = "VK_NV_low_latency2"] - pub mod low_latency2 { + #[doc = "VK_NV_ray_tracing_validation"] + pub mod ray_tracing_validation { + pub use { + crate::vk::NV_RAY_TRACING_VALIDATION_NAME as NAME, + crate::vk::NV_RAY_TRACING_VALIDATION_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_cluster_acceleration_structure"] + pub mod cluster_acceleration_structure { use crate::vk::*; use core::ffi::*; pub use { - crate::vk::NV_LOW_LATENCY2_NAME as NAME, - crate::vk::NV_LOW_LATENCY2_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_CLUSTER_ACCELERATION_STRUCTURE_NAME as NAME, + crate::vk::NV_CLUSTER_ACCELERATION_STRUCTURE_SPEC_VERSION as SPEC_VERSION, }; - #[doc = "VK_NV_low_latency2 device-level functions"] + #[doc = "VK_NV_cluster_acceleration_structure device-level functions"] #[derive(Clone)] pub struct Device { pub(crate) fp: DeviceFn, @@ -20148,13 +21860,12 @@ pub mod nv { } } #[derive(Clone)] - #[doc = "Raw VK_NV_low_latency2 device-level function pointers"] + #[doc = "Raw VK_NV_cluster_acceleration_structure device-level function pointers"] pub struct DeviceFn { - pub set_latency_sleep_mode_nv: PFN_vkSetLatencySleepModeNV, - pub latency_sleep_nv: PFN_vkLatencySleepNV, - pub set_latency_marker_nv: PFN_vkSetLatencyMarkerNV, - pub get_latency_timings_nv: PFN_vkGetLatencyTimingsNV, - pub queue_notify_out_of_band_nv: PFN_vkQueueNotifyOutOfBandNV, + pub get_cluster_acceleration_structure_build_sizes_nv: + PFN_vkGetClusterAccelerationStructureBuildSizesNV, + pub cmd_build_cluster_acceleration_structure_indirect_nv: + PFN_vkCmdBuildClusterAccelerationStructureIndirectNV, } unsafe impl Send for DeviceFn {} unsafe impl Sync for DeviceFn {} @@ -20164,95 +21875,202 @@ pub mod nv { } fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self { Self { - set_latency_sleep_mode_nv: unsafe { - unsafe extern "system" fn set_latency_sleep_mode_nv( + get_cluster_acceleration_structure_build_sizes_nv: unsafe { + unsafe extern "system" fn get_cluster_acceleration_structure_build_sizes_nv( _device: crate::vk::Device, - _swapchain: SwapchainKHR, - _p_sleep_mode_info: *const LatencySleepModeInfoNV<'_>, - ) -> Result { + _p_info: *const ClusterAccelerationStructureInputInfoNV<'_>, + _p_size_info: *mut AccelerationStructureBuildSizesInfoKHR<'_>, + ) { panic!(concat!( "Unable to load ", - stringify!(set_latency_sleep_mode_nv) + stringify!(get_cluster_acceleration_structure_build_sizes_nv) )) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkSetLatencySleepModeNV\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetClusterAccelerationStructureBuildSizesNV\0", + ); let val = _f(cname); if val.is_null() { - set_latency_sleep_mode_nv + get_cluster_acceleration_structure_build_sizes_nv } else { ::core::mem::transmute(val) } }, - latency_sleep_nv: unsafe { - unsafe extern "system" fn latency_sleep_nv( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - _p_sleep_info: *const LatencySleepInfoNV<'_>, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(latency_sleep_nv))) + cmd_build_cluster_acceleration_structure_indirect_nv: unsafe { + unsafe extern "system" fn cmd_build_cluster_acceleration_structure_indirect_nv( + _command_buffer: CommandBuffer, + _p_command_infos: *const ClusterAccelerationStructureCommandsInfoNV<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_build_cluster_acceleration_structure_indirect_nv) + )) } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkLatencySleepNV\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdBuildClusterAccelerationStructureIndirectNV\0", + ); let val = _f(cname); if val.is_null() { - latency_sleep_nv + cmd_build_cluster_acceleration_structure_indirect_nv } else { ::core::mem::transmute(val) } }, - set_latency_marker_nv: unsafe { - unsafe extern "system" fn set_latency_marker_nv( + } + } + } + } + #[doc = "VK_NV_partitioned_acceleration_structure"] + pub mod partitioned_acceleration_structure { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::NV_PARTITIONED_ACCELERATION_STRUCTURE_NAME as NAME, + crate::vk::NV_PARTITIONED_ACCELERATION_STRUCTURE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_partitioned_acceleration_structure device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_NV_partitioned_acceleration_structure device-level function pointers"] + pub struct DeviceFn { + pub get_partitioned_acceleration_structures_build_sizes_nv: + PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV, + pub cmd_build_partitioned_acceleration_structures_nv: + PFN_vkCmdBuildPartitionedAccelerationStructuresNV, + } + 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_partitioned_acceleration_structures_build_sizes_nv: unsafe { + unsafe extern "system" fn get_partitioned_acceleration_structures_build_sizes_nv( _device: crate::vk::Device, - _swapchain: SwapchainKHR, - _p_latency_marker_info: *const SetLatencyMarkerInfoNV<'_>, + _p_info: *const PartitionedAccelerationStructureInstancesInputNV<'_>, + _p_size_info: *mut AccelerationStructureBuildSizesInfoKHR<'_>, ) { panic!(concat!( "Unable to load ", - stringify!(set_latency_marker_nv) + stringify!(get_partitioned_acceleration_structures_build_sizes_nv) )) } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetLatencyMarkerNV\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPartitionedAccelerationStructuresBuildSizesNV\0", + ); let val = _f(cname); if val.is_null() { - set_latency_marker_nv + get_partitioned_acceleration_structures_build_sizes_nv } else { ::core::mem::transmute(val) } }, - get_latency_timings_nv: unsafe { - unsafe extern "system" fn get_latency_timings_nv( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - _p_latency_marker_info: *mut GetLatencyMarkerInfoNV<'_>, + cmd_build_partitioned_acceleration_structures_nv: unsafe { + unsafe extern "system" fn cmd_build_partitioned_acceleration_structures_nv( + _command_buffer: CommandBuffer, + _p_build_info: *const BuildPartitionedAccelerationStructureInfoNV<'_>, ) { panic!(concat!( "Unable to load ", - stringify!(get_latency_timings_nv) + stringify!(cmd_build_partitioned_acceleration_structures_nv) )) } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetLatencyTimingsNV\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdBuildPartitionedAccelerationStructuresNV\0", + ); let val = _f(cname); if val.is_null() { - get_latency_timings_nv + cmd_build_partitioned_acceleration_structures_nv } else { ::core::mem::transmute(val) } }, - queue_notify_out_of_band_nv: unsafe { - unsafe extern "system" fn queue_notify_out_of_band_nv( - _queue: Queue, - _p_queue_type_info: *const OutOfBandQueueTypeInfoNV<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(queue_notify_out_of_band_nv) - )) + } + } + } + } + #[doc = "VK_NV_cooperative_matrix2"] + pub mod cooperative_matrix2 { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::NV_COOPERATIVE_MATRIX2_NAME as NAME, + crate::vk::NV_COOPERATIVE_MATRIX2_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_cooperative_matrix2 instance-level functions"] + #[derive(Clone)] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn load(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle; + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_cooperative_matrix2 instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_cooperative_matrix_flexible_dimensions_properties_nv: + PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + 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_physical_device_cooperative_matrix_flexible_dimensions_properties_nv: unsafe { + unsafe extern "system" fn get_physical_device_cooperative_matrix_flexible_dimensions_properties_nv( + _physical_device: PhysicalDevice, + _p_property_count: *mut u32, + _p_properties: *mut CooperativeMatrixFlexibleDimensionsPropertiesNV<'_>, + ) -> Result { + panic ! (concat ! ("Unable to load " , stringify ! (get_physical_device_cooperative_matrix_flexible_dimensions_properties_nv))) } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkQueueNotifyOutOfBandNV\0"); + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV\0", + ); let val = _f(cname); if val.is_null() { - queue_notify_out_of_band_nv + get_physical_device_cooperative_matrix_flexible_dimensions_properties_nv } else { ::core::mem::transmute(val) } @@ -20261,46 +22079,11 @@ pub mod nv { } } } - #[doc = "VK_NV_per_stage_descriptor_set"] - pub mod per_stage_descriptor_set { - pub use { - crate::vk::NV_PER_STAGE_DESCRIPTOR_SET_NAME as NAME, - crate::vk::NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_NV_descriptor_pool_overallocation"] - pub mod descriptor_pool_overallocation { - pub use { - crate::vk::NV_DESCRIPTOR_POOL_OVERALLOCATION_NAME as NAME, - crate::vk::NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_NV_raw_access_chains"] - pub mod raw_access_chains { - pub use { - crate::vk::NV_RAW_ACCESS_CHAINS_NAME as NAME, - crate::vk::NV_RAW_ACCESS_CHAINS_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_NV_command_buffer_inheritance"] - pub mod command_buffer_inheritance { - 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 { - pub use { - crate::vk::NV_SHADER_ATOMIC_FLOAT16_VECTOR_NAME as NAME, - crate::vk::NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION as SPEC_VERSION, - }; - } - #[doc = "VK_NV_ray_tracing_validation"] - pub mod ray_tracing_validation { + #[doc = "VK_NV_present_metering"] + pub mod present_metering { pub use { - crate::vk::NV_RAY_TRACING_VALIDATION_NAME as NAME, - crate::vk::NV_RAY_TRACING_VALIDATION_SPEC_VERSION as SPEC_VERSION, + crate::vk::NV_PRESENT_METERING_NAME as NAME, + crate::vk::NV_PRESENT_METERING_SPEC_VERSION as SPEC_VERSION, }; } } @@ -20488,6 +22271,7 @@ pub mod nvx { #[doc = "Raw VK_NVX_image_view_handle device-level function pointers"] pub struct DeviceFn { pub get_image_view_handle_nvx: PFN_vkGetImageViewHandleNVX, + pub get_image_view_handle64_nvx: PFN_vkGetImageViewHandle64NVX, pub get_image_view_address_nvx: PFN_vkGetImageViewAddressNVX, } unsafe impl Send for DeviceFn {} @@ -20517,6 +22301,25 @@ pub mod nvx { ::core::mem::transmute(val) } }, + get_image_view_handle64_nvx: unsafe { + unsafe extern "system" fn get_image_view_handle64_nvx( + _device: crate::vk::Device, + _p_info: *const ImageViewHandleInfoNVX<'_>, + ) -> u64 { + panic!(concat!( + "Unable to load ", + stringify!(get_image_view_handle64_nvx) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetImageViewHandle64NVX\0"); + let val = _f(cname); + if val.is_null() { + get_image_view_handle64_nvx + } else { + ::core::mem::transmute(val) + } + }, get_image_view_address_nvx: unsafe { unsafe extern "system" fn get_image_view_address_nvx( _device: crate::vk::Device, @@ -20549,6 +22352,74 @@ pub mod nvx { }; } } +#[doc = "Extensions tagged OHOS"] +pub mod ohos { + #[doc = "VK_OHOS_surface"] + pub mod surface { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::OHOS_SURFACE_NAME as NAME, + crate::vk::OHOS_SURFACE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_OHOS_surface instance-level functions"] + #[derive(Clone)] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn load(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle; + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_OHOS_surface instance-level function pointers"] + pub struct InstanceFn { + pub create_surface_ohos: PFN_vkCreateSurfaceOHOS, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + 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_surface_ohos: unsafe { + unsafe extern "system" fn create_surface_ohos( + _instance: crate::vk::Instance, + _p_create_info: *const SurfaceCreateInfoOHOS<'_>, + _p_allocator: *const AllocationCallbacks, + _p_surface: *mut SurfaceKHR, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_surface_ohos))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateSurfaceOHOS\0"); + let val = _f(cname); + if val.is_null() { + create_surface_ohos + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } +} #[doc = "Extensions tagged QCOM"] pub mod qcom { #[doc = "VK_QCOM_render_pass_shader_resolve"] @@ -20572,6 +22443,113 @@ pub mod qcom { crate::vk::QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION as SPEC_VERSION, }; } + #[doc = "VK_QCOM_tile_shading"] + pub mod tile_shading { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::QCOM_TILE_SHADING_NAME as NAME, + crate::vk::QCOM_TILE_SHADING_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_QCOM_tile_shading device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_QCOM_tile_shading device-level function pointers"] + pub struct DeviceFn { + pub cmd_dispatch_tile_qcom: PFN_vkCmdDispatchTileQCOM, + pub cmd_begin_per_tile_execution_qcom: PFN_vkCmdBeginPerTileExecutionQCOM, + pub cmd_end_per_tile_execution_qcom: PFN_vkCmdEndPerTileExecutionQCOM, + } + 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_dispatch_tile_qcom: unsafe { + unsafe extern "system" fn cmd_dispatch_tile_qcom( + _command_buffer: CommandBuffer, + _p_dispatch_tile_info: *const DispatchTileInfoQCOM<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_dispatch_tile_qcom) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDispatchTileQCOM\0"); + let val = _f(cname); + if val.is_null() { + cmd_dispatch_tile_qcom + } else { + ::core::mem::transmute(val) + } + }, + cmd_begin_per_tile_execution_qcom: unsafe { + unsafe extern "system" fn cmd_begin_per_tile_execution_qcom( + _command_buffer: CommandBuffer, + _p_per_tile_begin_info: *const PerTileBeginInfoQCOM<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_begin_per_tile_execution_qcom) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdBeginPerTileExecutionQCOM\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_begin_per_tile_execution_qcom + } else { + ::core::mem::transmute(val) + } + }, + cmd_end_per_tile_execution_qcom: unsafe { + unsafe extern "system" fn cmd_end_per_tile_execution_qcom( + _command_buffer: CommandBuffer, + _p_per_tile_end_info: *const PerTileEndInfoQCOM<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_end_per_tile_execution_qcom) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdEndPerTileExecutionQCOM\0"); + let val = _f(cname); + if val.is_null() { + cmd_end_per_tile_execution_qcom + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } #[doc = "VK_QCOM_rotated_copy_commands"] pub mod rotated_copy_commands { pub use { @@ -20728,6 +22706,73 @@ pub mod qcom { crate::vk::QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION as SPEC_VERSION, }; } + #[doc = "VK_QCOM_tile_memory_heap"] + pub mod tile_memory_heap { + use crate::vk::*; + use core::ffi::*; + pub use { + crate::vk::QCOM_TILE_MEMORY_HEAP_NAME as NAME, + crate::vk::QCOM_TILE_MEMORY_HEAP_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_QCOM_tile_memory_heap device-level functions"] + #[derive(Clone)] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn load(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_QCOM_tile_memory_heap device-level function pointers"] + pub struct DeviceFn { + pub cmd_bind_tile_memory_qcom: PFN_vkCmdBindTileMemoryQCOM, + } + 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_bind_tile_memory_qcom: unsafe { + unsafe extern "system" fn cmd_bind_tile_memory_qcom( + _command_buffer: CommandBuffer, + _p_tile_memory_bind_info: *const TileMemoryBindInfoQCOM<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_tile_memory_qcom) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdBindTileMemoryQCOM\0"); + let val = _f(cname); + if val.is_null() { + cmd_bind_tile_memory_qcom + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } } #[doc = "Extensions tagged QNX"] pub mod qnx { @@ -20902,6 +22947,13 @@ pub mod sec { crate::vk::SEC_AMIGO_PROFILING_SPEC_VERSION as SPEC_VERSION, }; } + #[doc = "VK_SEC_pipeline_cache_incremental_mode"] + pub mod pipeline_cache_incremental_mode { + pub use { + crate::vk::SEC_PIPELINE_CACHE_INCREMENTAL_MODE_NAME as NAME, + crate::vk::SEC_PIPELINE_CACHE_INCREMENTAL_MODE_SPEC_VERSION as SPEC_VERSION, + }; + } } #[doc = "Extensions tagged VALVE"] pub mod valve { @@ -20912,6 +22964,13 @@ pub mod valve { crate::vk::VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION as SPEC_VERSION, }; } + #[doc = "VK_VALVE_video_encode_rgb_conversion"] + pub mod video_encode_rgb_conversion { + pub use { + crate::vk::VALVE_VIDEO_ENCODE_RGB_CONVERSION_NAME as NAME, + crate::vk::VALVE_VIDEO_ENCODE_RGB_CONVERSION_SPEC_VERSION as SPEC_VERSION, + }; + } #[doc = "VK_VALVE_descriptor_set_host_mapping"] pub mod descriptor_set_host_mapping { use crate::vk::*; @@ -21004,4 +23063,11 @@ pub mod valve { } } } + #[doc = "VK_VALVE_fragment_density_map_layered"] + pub mod fragment_density_map_layered { + pub use { + crate::vk::VALVE_FRAGMENT_DENSITY_MAP_LAYERED_NAME as NAME, + crate::vk::VALVE_FRAGMENT_DENSITY_MAP_LAYERED_SPEC_VERSION as SPEC_VERSION, + }; + } } diff --git a/ash/src/tables.rs b/ash/src/tables.rs index e373ceeb0..a115bed0d 100644 --- a/ash/src/tables.rs +++ b/ash/src/tables.rs @@ -114,16 +114,24 @@ impl EntryFnV1_0 { pub struct InstanceFnV1_0 { pub destroy_instance: PFN_vkDestroyInstance, pub enumerate_physical_devices: PFN_vkEnumeratePhysicalDevices, + #[deprecated = ""] pub get_physical_device_features: PFN_vkGetPhysicalDeviceFeatures, + #[deprecated = ""] pub get_physical_device_format_properties: PFN_vkGetPhysicalDeviceFormatProperties, + #[deprecated = ""] pub get_physical_device_image_format_properties: PFN_vkGetPhysicalDeviceImageFormatProperties, + #[deprecated = ""] pub get_physical_device_properties: PFN_vkGetPhysicalDeviceProperties, + #[deprecated = ""] pub get_physical_device_queue_family_properties: PFN_vkGetPhysicalDeviceQueueFamilyProperties, + #[deprecated = ""] pub get_physical_device_memory_properties: PFN_vkGetPhysicalDeviceMemoryProperties, pub get_device_proc_addr: PFN_vkGetDeviceProcAddr, pub create_device: PFN_vkCreateDevice, pub enumerate_device_extension_properties: PFN_vkEnumerateDeviceExtensionProperties, + #[deprecated = ""] pub enumerate_device_layer_properties: PFN_vkEnumerateDeviceLayerProperties, + #[deprecated = ""] pub get_physical_device_sparse_image_format_properties: PFN_vkGetPhysicalDeviceSparseImageFormatProperties, } @@ -458,10 +466,15 @@ pub struct DeviceFnV1_0 { pub allocate_descriptor_sets: PFN_vkAllocateDescriptorSets, pub free_descriptor_sets: PFN_vkFreeDescriptorSets, pub update_descriptor_sets: PFN_vkUpdateDescriptorSets, + #[deprecated = ""] pub create_framebuffer: PFN_vkCreateFramebuffer, + #[deprecated = ""] pub destroy_framebuffer: PFN_vkDestroyFramebuffer, + #[deprecated = ""] pub create_render_pass: PFN_vkCreateRenderPass, + #[deprecated = ""] pub destroy_render_pass: PFN_vkDestroyRenderPass, + #[deprecated = ""] pub get_render_area_granularity: PFN_vkGetRenderAreaGranularity, pub create_command_pool: PFN_vkCreateCommandPool, pub destroy_command_pool: PFN_vkDestroyCommandPool, @@ -511,8 +524,11 @@ pub struct DeviceFnV1_0 { pub cmd_write_timestamp: PFN_vkCmdWriteTimestamp, pub cmd_copy_query_pool_results: PFN_vkCmdCopyQueryPoolResults, pub cmd_push_constants: PFN_vkCmdPushConstants, + #[deprecated = ""] pub cmd_begin_render_pass: PFN_vkCmdBeginRenderPass, + #[deprecated = ""] pub cmd_next_subpass: PFN_vkCmdNextSubpass, + #[deprecated = ""] pub cmd_end_render_pass: PFN_vkCmdEndRenderPass, pub cmd_execute_commands: PFN_vkCmdExecuteCommands, } @@ -3309,9 +3325,13 @@ pub struct InstanceFnV1_2; pub struct DeviceFnV1_2 { pub cmd_draw_indirect_count: PFN_vkCmdDrawIndirectCount, pub cmd_draw_indexed_indirect_count: PFN_vkCmdDrawIndexedIndirectCount, + #[deprecated = ""] pub create_render_pass2: PFN_vkCreateRenderPass2, + #[deprecated = ""] pub cmd_begin_render_pass2: PFN_vkCmdBeginRenderPass2, + #[deprecated = ""] pub cmd_next_subpass2: PFN_vkCmdNextSubpass2, + #[deprecated = ""] pub cmd_end_render_pass2: PFN_vkCmdEndRenderPass2, pub reset_query_pool: PFN_vkResetQueryPool, pub get_semaphore_counter_value: PFN_vkGetSemaphoreCounterValue, @@ -4293,3 +4313,387 @@ impl DeviceFnV1_3 { } } } +#[derive(Clone)] +#[doc = "Raw Vulkan 1.4 entry point function pointers"] +pub struct EntryFnV1_4; +#[derive(Clone)] +#[doc = "Raw Vulkan 1.4 instance-level function pointers"] +pub struct InstanceFnV1_4; +#[derive(Clone)] +#[doc = "Raw Vulkan 1.4 device-level function pointers"] +pub struct DeviceFnV1_4 { + pub cmd_set_line_stipple: PFN_vkCmdSetLineStipple, + pub map_memory2: PFN_vkMapMemory2, + pub unmap_memory2: PFN_vkUnmapMemory2, + pub cmd_bind_index_buffer2: PFN_vkCmdBindIndexBuffer2, + pub get_rendering_area_granularity: PFN_vkGetRenderingAreaGranularity, + pub get_device_image_subresource_layout: PFN_vkGetDeviceImageSubresourceLayout, + pub get_image_subresource_layout2: PFN_vkGetImageSubresourceLayout2, + pub cmd_push_descriptor_set: PFN_vkCmdPushDescriptorSet, + pub cmd_push_descriptor_set_with_template: PFN_vkCmdPushDescriptorSetWithTemplate, + pub cmd_set_rendering_attachment_locations: PFN_vkCmdSetRenderingAttachmentLocations, + pub cmd_set_rendering_input_attachment_indices: PFN_vkCmdSetRenderingInputAttachmentIndices, + pub cmd_bind_descriptor_sets2: PFN_vkCmdBindDescriptorSets2, + pub cmd_push_constants2: PFN_vkCmdPushConstants2, + pub cmd_push_descriptor_set2: PFN_vkCmdPushDescriptorSet2, + pub cmd_push_descriptor_set_with_template2: PFN_vkCmdPushDescriptorSetWithTemplate2, + pub copy_memory_to_image: PFN_vkCopyMemoryToImage, + pub copy_image_to_memory: PFN_vkCopyImageToMemory, + pub copy_image_to_image: PFN_vkCopyImageToImage, + pub transition_image_layout: PFN_vkTransitionImageLayout, +} +unsafe impl Send for DeviceFnV1_4 {} +unsafe impl Sync for DeviceFnV1_4 {} +impl DeviceFnV1_4 { + 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_line_stipple: unsafe { + unsafe extern "system" fn cmd_set_line_stipple( + _command_buffer: CommandBuffer, + _line_stipple_factor: u32, + _line_stipple_pattern: u16, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_set_line_stipple))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineStipple\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_line_stipple + } else { + ::core::mem::transmute(val) + } + }, + map_memory2: unsafe { + unsafe extern "system" fn map_memory2( + _device: crate::vk::Device, + _p_memory_map_info: *const MemoryMapInfo<'_>, + _pp_data: *mut *mut c_void, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(map_memory2))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkMapMemory2\0"); + let val = _f(cname); + if val.is_null() { + map_memory2 + } else { + ::core::mem::transmute(val) + } + }, + unmap_memory2: unsafe { + unsafe extern "system" fn unmap_memory2( + _device: crate::vk::Device, + _p_memory_unmap_info: *const MemoryUnmapInfo<'_>, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(unmap_memory2))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkUnmapMemory2\0"); + let val = _f(cname); + if val.is_null() { + unmap_memory2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_bind_index_buffer2: unsafe { + unsafe extern "system" fn cmd_bind_index_buffer2( + _command_buffer: CommandBuffer, + _buffer: Buffer, + _offset: DeviceSize, + _size: DeviceSize, + _index_type: IndexType, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_index_buffer2) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBindIndexBuffer2\0"); + let val = _f(cname); + if val.is_null() { + cmd_bind_index_buffer2 + } else { + ::core::mem::transmute(val) + } + }, + get_rendering_area_granularity: unsafe { + unsafe extern "system" fn get_rendering_area_granularity( + _device: crate::vk::Device, + _p_rendering_area_info: *const RenderingAreaInfo<'_>, + _p_granularity: *mut Extent2D, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_rendering_area_granularity) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetRenderingAreaGranularity\0"); + let val = _f(cname); + if val.is_null() { + get_rendering_area_granularity + } else { + ::core::mem::transmute(val) + } + }, + get_device_image_subresource_layout: unsafe { + unsafe extern "system" fn get_device_image_subresource_layout( + _device: crate::vk::Device, + _p_info: *const DeviceImageSubresourceInfo<'_>, + _p_layout: *mut SubresourceLayout2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_device_image_subresource_layout) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceImageSubresourceLayout\0"); + let val = _f(cname); + if val.is_null() { + get_device_image_subresource_layout + } else { + ::core::mem::transmute(val) + } + }, + get_image_subresource_layout2: unsafe { + unsafe extern "system" fn get_image_subresource_layout2( + _device: crate::vk::Device, + _image: Image, + _p_subresource: *const ImageSubresource2<'_>, + _p_layout: *mut SubresourceLayout2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_image_subresource_layout2) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetImageSubresourceLayout2\0"); + let val = _f(cname); + if val.is_null() { + get_image_subresource_layout2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_push_descriptor_set: unsafe { + unsafe extern "system" fn cmd_push_descriptor_set( + _command_buffer: CommandBuffer, + _pipeline_bind_point: PipelineBindPoint, + _layout: PipelineLayout, + _set: u32, + _descriptor_write_count: u32, + _p_descriptor_writes: *const WriteDescriptorSet<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_push_descriptor_set) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdPushDescriptorSet\0"); + let val = _f(cname); + if val.is_null() { + cmd_push_descriptor_set + } else { + ::core::mem::transmute(val) + } + }, + cmd_push_descriptor_set_with_template: unsafe { + unsafe extern "system" fn cmd_push_descriptor_set_with_template( + _command_buffer: CommandBuffer, + _descriptor_update_template: DescriptorUpdateTemplate, + _layout: PipelineLayout, + _set: u32, + _p_data: *const c_void, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_push_descriptor_set_with_template) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdPushDescriptorSetWithTemplate\0"); + let val = _f(cname); + if val.is_null() { + cmd_push_descriptor_set_with_template + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_rendering_attachment_locations: unsafe { + unsafe extern "system" fn cmd_set_rendering_attachment_locations( + _command_buffer: CommandBuffer, + _p_location_info: *const RenderingAttachmentLocationInfo<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_rendering_attachment_locations) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetRenderingAttachmentLocations\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_rendering_attachment_locations + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_rendering_input_attachment_indices: unsafe { + unsafe extern "system" fn cmd_set_rendering_input_attachment_indices( + _command_buffer: CommandBuffer, + _p_input_attachment_index_info: *const RenderingInputAttachmentIndexInfo<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_rendering_input_attachment_indices) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetRenderingInputAttachmentIndices\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_rendering_input_attachment_indices + } else { + ::core::mem::transmute(val) + } + }, + cmd_bind_descriptor_sets2: unsafe { + unsafe extern "system" fn cmd_bind_descriptor_sets2( + _command_buffer: CommandBuffer, + _p_bind_descriptor_sets_info: *const BindDescriptorSetsInfo<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_descriptor_sets2) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBindDescriptorSets2\0"); + let val = _f(cname); + if val.is_null() { + cmd_bind_descriptor_sets2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_push_constants2: unsafe { + unsafe extern "system" fn cmd_push_constants2( + _command_buffer: CommandBuffer, + _p_push_constants_info: *const PushConstantsInfo<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_push_constants2))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdPushConstants2\0"); + let val = _f(cname); + if val.is_null() { + cmd_push_constants2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_push_descriptor_set2: unsafe { + unsafe extern "system" fn cmd_push_descriptor_set2( + _command_buffer: CommandBuffer, + _p_push_descriptor_set_info: *const PushDescriptorSetInfo<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_push_descriptor_set2) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdPushDescriptorSet2\0"); + let val = _f(cname); + if val.is_null() { + cmd_push_descriptor_set2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_push_descriptor_set_with_template2: unsafe { + unsafe extern "system" fn cmd_push_descriptor_set_with_template2( + _command_buffer: CommandBuffer, + _p_push_descriptor_set_with_template_info : * const PushDescriptorSetWithTemplateInfo < '_ >, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_push_descriptor_set_with_template2) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdPushDescriptorSetWithTemplate2\0"); + let val = _f(cname); + if val.is_null() { + cmd_push_descriptor_set_with_template2 + } else { + ::core::mem::transmute(val) + } + }, + copy_memory_to_image: unsafe { + unsafe extern "system" fn copy_memory_to_image( + _device: crate::vk::Device, + _p_copy_memory_to_image_info: *const CopyMemoryToImageInfo<'_>, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(copy_memory_to_image))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCopyMemoryToImage\0"); + let val = _f(cname); + if val.is_null() { + copy_memory_to_image + } else { + ::core::mem::transmute(val) + } + }, + copy_image_to_memory: unsafe { + unsafe extern "system" fn copy_image_to_memory( + _device: crate::vk::Device, + _p_copy_image_to_memory_info: *const CopyImageToMemoryInfo<'_>, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(copy_image_to_memory))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCopyImageToMemory\0"); + let val = _f(cname); + if val.is_null() { + copy_image_to_memory + } else { + ::core::mem::transmute(val) + } + }, + copy_image_to_image: unsafe { + unsafe extern "system" fn copy_image_to_image( + _device: crate::vk::Device, + _p_copy_image_to_image_info: *const CopyImageToImageInfo<'_>, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(copy_image_to_image))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCopyImageToImage\0"); + let val = _f(cname); + if val.is_null() { + copy_image_to_image + } else { + ::core::mem::transmute(val) + } + }, + transition_image_layout: unsafe { + unsafe extern "system" fn transition_image_layout( + _device: crate::vk::Device, + _transition_count: u32, + _p_transitions: *const HostImageLayoutTransitionInfo<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(transition_image_layout) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkTransitionImageLayout\0"); + let val = _f(cname); + if val.is_null() { + transition_image_layout + } else { + ::core::mem::transmute(val) + } + }, + } + } +} diff --git a/ash/src/vk/aliases.rs b/ash/src/vk/aliases.rs index 5f172454f..6fba660e3 100644 --- a/ash/src/vk/aliases.rs +++ b/ash/src/vk/aliases.rs @@ -1,6 +1,7 @@ use super::bitflags::*; use super::definitions::*; use super::enums::*; +pub type MemoryUnmapFlagsKHR = MemoryUnmapFlags; pub type GeometryFlagsNV = GeometryFlagsKHR; pub type GeometryInstanceFlagsNV = GeometryInstanceFlagsKHR; pub type BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagsKHR; @@ -12,6 +13,8 @@ pub type AccessFlags2KHR = AccessFlags2; pub type PipelineStageFlags2KHR = PipelineStageFlags2; pub type FormatFeatureFlags2KHR = FormatFeatureFlags2; pub type RenderingFlagsKHR = RenderingFlags; +pub type PipelineCreateFlags2KHR = PipelineCreateFlags2; +pub type BufferUsageFlags2KHR = BufferUsageFlags2; pub type PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags; pub type MemoryAllocateFlagsKHR = MemoryAllocateFlags; pub type CommandPoolTrimFlagsKHR = CommandPoolTrimFlags; @@ -27,19 +30,26 @@ pub type DescriptorBindingFlagsEXT = DescriptorBindingFlags; pub type ResolveModeFlagsKHR = ResolveModeFlags; pub type ToolPurposeFlagsEXT = ToolPurposeFlags; pub type SubmitFlagsKHR = SubmitFlags; +pub type HostImageCopyFlagsEXT = HostImageCopyFlags; +pub type PresentScalingFlagsEXT = PresentScalingFlagsKHR; +pub type PresentGravityFlagsEXT = PresentGravityFlagsKHR; pub type DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate; pub type SamplerYcbcrConversionKHR = SamplerYcbcrConversion; pub type PrivateDataSlotEXT = PrivateDataSlot; pub type DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType; pub type PointClippingBehaviorKHR = PointClippingBehavior; -pub type QueueGlobalPriorityEXT = QueueGlobalPriorityKHR; +pub type QueueGlobalPriorityKHR = QueueGlobalPriority; +pub type QueueGlobalPriorityEXT = QueueGlobalPriority; pub type TimeDomainEXT = TimeDomainKHR; pub type SemaphoreTypeKHR = SemaphoreType; pub type CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR; pub type AccelerationStructureTypeNV = AccelerationStructureTypeKHR; pub type GeometryTypeNV = GeometryTypeKHR; pub type RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR; -pub type LineRasterizationModeEXT = LineRasterizationModeKHR; +pub type LineRasterizationModeKHR = LineRasterizationMode; +pub type LineRasterizationModeEXT = LineRasterizationMode; +pub type PipelineRobustnessBufferBehaviorEXT = PipelineRobustnessBufferBehavior; +pub type PipelineRobustnessImageBehaviorEXT = PipelineRobustnessImageBehavior; pub type ScopeNV = ScopeKHR; pub type ComponentTypeNV = ComponentTypeKHR; pub type TessellationDomainOriginKHR = TessellationDomainOrigin; @@ -49,6 +59,10 @@ pub type ChromaLocationKHR = ChromaLocation; pub type SamplerReductionModeEXT = SamplerReductionMode; pub type ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence; pub type DriverIdKHR = DriverId; +pub type BufferUsageFlags2CreateInfoKHR<'a> = BufferUsageFlags2CreateInfo<'a>; +pub type CopyMemoryIndirectCommandNV = CopyMemoryIndirectCommandKHR; +pub type CopyMemoryToImageIndirectCommandNV = CopyMemoryToImageIndirectCommandKHR; +pub type PipelineCreateFlags2CreateInfoKHR<'a> = PipelineCreateFlags2CreateInfo<'a>; pub type DevicePrivateDataCreateInfoEXT<'a> = DevicePrivateDataCreateInfo<'a>; pub type PrivateDataSlotCreateInfoEXT<'a> = PrivateDataSlotCreateInfo<'a>; pub type PhysicalDevicePrivateDataFeaturesEXT<'a> = PhysicalDevicePrivateDataFeatures<'a>; @@ -61,6 +75,7 @@ pub type QueueFamilyProperties2KHR<'a> = QueueFamilyProperties2<'a>; pub type PhysicalDeviceMemoryProperties2KHR<'a> = PhysicalDeviceMemoryProperties2<'a>; pub type SparseImageFormatProperties2KHR<'a> = SparseImageFormatProperties2<'a>; pub type PhysicalDeviceSparseImageFormatInfo2KHR<'a> = PhysicalDeviceSparseImageFormatInfo2<'a>; +pub type PhysicalDevicePushDescriptorPropertiesKHR<'a> = PhysicalDevicePushDescriptorProperties<'a>; pub type ConformanceVersionKHR = ConformanceVersion; pub type PhysicalDeviceDriverPropertiesKHR<'a> = PhysicalDeviceDriverProperties<'a>; pub type PhysicalDeviceVariablePointersFeaturesKHR<'a> = PhysicalDeviceVariablePointersFeatures<'a>; @@ -138,6 +153,11 @@ pub type ImageFormatListCreateInfoKHR<'a> = ImageFormatListCreateInfo<'a>; pub type PhysicalDeviceMaintenance3PropertiesKHR<'a> = PhysicalDeviceMaintenance3Properties<'a>; pub type PhysicalDeviceMaintenance4FeaturesKHR<'a> = PhysicalDeviceMaintenance4Features<'a>; pub type PhysicalDeviceMaintenance4PropertiesKHR<'a> = PhysicalDeviceMaintenance4Properties<'a>; +pub type PhysicalDeviceMaintenance5FeaturesKHR<'a> = PhysicalDeviceMaintenance5Features<'a>; +pub type PhysicalDeviceMaintenance5PropertiesKHR<'a> = PhysicalDeviceMaintenance5Properties<'a>; +pub type PhysicalDeviceMaintenance6FeaturesKHR<'a> = PhysicalDeviceMaintenance6Features<'a>; +pub type PhysicalDeviceMaintenance6PropertiesKHR<'a> = PhysicalDeviceMaintenance6Properties<'a>; +pub type RenderingAreaInfoKHR<'a> = RenderingAreaInfo<'a>; pub type DescriptorSetLayoutSupportKHR<'a> = DescriptorSetLayoutSupport<'a>; pub type PhysicalDeviceShaderDrawParameterFeatures<'a> = PhysicalDeviceShaderDrawParametersFeatures<'a>; @@ -146,10 +166,14 @@ pub type PhysicalDeviceShaderFloat16Int8FeaturesKHR<'a> = pub type PhysicalDeviceFloat16Int8FeaturesKHR<'a> = PhysicalDeviceShaderFloat16Int8Features<'a>; pub type PhysicalDeviceFloatControlsPropertiesKHR<'a> = PhysicalDeviceFloatControlsProperties<'a>; pub type PhysicalDeviceHostQueryResetFeaturesEXT<'a> = PhysicalDeviceHostQueryResetFeatures<'a>; -pub type DeviceQueueGlobalPriorityCreateInfoEXT<'a> = DeviceQueueGlobalPriorityCreateInfoKHR<'a>; +pub type DeviceQueueGlobalPriorityCreateInfoKHR<'a> = DeviceQueueGlobalPriorityCreateInfo<'a>; +pub type DeviceQueueGlobalPriorityCreateInfoEXT<'a> = DeviceQueueGlobalPriorityCreateInfo<'a>; +pub type PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'a> = + PhysicalDeviceGlobalPriorityQueryFeatures<'a>; pub type PhysicalDeviceGlobalPriorityQueryFeaturesEXT<'a> = - PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'a>; -pub type QueueFamilyGlobalPriorityPropertiesEXT<'a> = QueueFamilyGlobalPriorityPropertiesKHR<'a>; + PhysicalDeviceGlobalPriorityQueryFeatures<'a>; +pub type QueueFamilyGlobalPriorityPropertiesKHR<'a> = QueueFamilyGlobalPriorityProperties<'a>; +pub type QueueFamilyGlobalPriorityPropertiesEXT<'a> = QueueFamilyGlobalPriorityProperties<'a>; pub type CalibratedTimestampInfoEXT<'a> = CalibratedTimestampInfoKHR<'a>; pub type PhysicalDeviceDescriptorIndexingFeaturesEXT<'a> = PhysicalDeviceDescriptorIndexingFeatures<'a>; @@ -176,16 +200,23 @@ pub type SemaphoreTypeCreateInfoKHR<'a> = SemaphoreTypeCreateInfo<'a>; pub type TimelineSemaphoreSubmitInfoKHR<'a> = TimelineSemaphoreSubmitInfo<'a>; pub type SemaphoreWaitInfoKHR<'a> = SemaphoreWaitInfo<'a>; pub type SemaphoreSignalInfoKHR<'a> = SemaphoreSignalInfo<'a>; -pub type VertexInputBindingDivisorDescriptionEXT = VertexInputBindingDivisorDescriptionKHR; +pub type VertexInputBindingDivisorDescriptionKHR = VertexInputBindingDivisorDescription; +pub type VertexInputBindingDivisorDescriptionEXT = VertexInputBindingDivisorDescription; +pub type PipelineVertexInputDivisorStateCreateInfoKHR<'a> = + PipelineVertexInputDivisorStateCreateInfo<'a>; pub type PipelineVertexInputDivisorStateCreateInfoEXT<'a> = - PipelineVertexInputDivisorStateCreateInfoKHR<'a>; + PipelineVertexInputDivisorStateCreateInfo<'a>; +pub type PhysicalDeviceVertexAttributeDivisorPropertiesKHR<'a> = + PhysicalDeviceVertexAttributeDivisorProperties<'a>; pub type PhysicalDevice8BitStorageFeaturesKHR<'a> = PhysicalDevice8BitStorageFeatures<'a>; pub type PhysicalDeviceVulkanMemoryModelFeaturesKHR<'a> = PhysicalDeviceVulkanMemoryModelFeatures<'a>; pub type PhysicalDeviceShaderAtomicInt64FeaturesKHR<'a> = PhysicalDeviceShaderAtomicInt64Features<'a>; +pub type PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'a> = + PhysicalDeviceVertexAttributeDivisorFeatures<'a>; pub type PhysicalDeviceVertexAttributeDivisorFeaturesEXT<'a> = - PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'a>; + PhysicalDeviceVertexAttributeDivisorFeatures<'a>; pub type PhysicalDeviceDepthStencilResolvePropertiesKHR<'a> = PhysicalDeviceDepthStencilResolveProperties<'a>; pub type SubpassDescriptionDepthStencilResolveKHR<'a> = SubpassDescriptionDepthStencilResolve<'a>; @@ -193,7 +224,15 @@ pub type PhysicalDeviceComputeShaderDerivativesFeaturesNV<'a> = PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a>; pub type PhysicalDeviceFragmentShaderBarycentricFeaturesNV<'a> = PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a>; +pub type PhysicalDeviceCopyMemoryIndirectPropertiesNV<'a> = + PhysicalDeviceCopyMemoryIndirectPropertiesKHR<'a>; pub type ImageStencilUsageCreateInfoEXT<'a> = ImageStencilUsageCreateInfo<'a>; +pub type PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'a> = + PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT<'a>; +pub type PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM<'a> = + PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT<'a>; +pub type SubpassFragmentDensityMapOffsetEndInfoQCOM<'a> = + RenderPassFragmentDensityMapOffsetEndInfoEXT<'a>; pub type PhysicalDeviceScalarBlockLayoutFeaturesEXT<'a> = PhysicalDeviceScalarBlockLayoutFeatures<'a>; pub type PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR<'a> = @@ -215,7 +254,8 @@ pub type PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT<'a> = pub type PipelineCreationFeedbackEXT = PipelineCreationFeedback; pub type PipelineCreationFeedbackCreateInfoEXT<'a> = PipelineCreationFeedbackCreateInfo<'a>; pub type QueryPoolCreateInfoINTEL<'a> = QueryPoolPerformanceQueryCreateInfoINTEL<'a>; -pub type PhysicalDeviceIndexTypeUint8FeaturesEXT<'a> = PhysicalDeviceIndexTypeUint8FeaturesKHR<'a>; +pub type PhysicalDeviceIndexTypeUint8FeaturesKHR<'a> = PhysicalDeviceIndexTypeUint8Features<'a>; +pub type PhysicalDeviceIndexTypeUint8FeaturesEXT<'a> = PhysicalDeviceIndexTypeUint8Features<'a>; pub type PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR<'a> = PhysicalDeviceSeparateDepthStencilLayoutsFeatures<'a>; pub type AttachmentReferenceStencilLayoutKHR<'a> = AttachmentReferenceStencilLayout<'a>; @@ -235,12 +275,18 @@ pub type ShaderRequiredSubgroupSizeCreateInfoEXT<'a> = PipelineShaderStageRequiredSubgroupSizeCreateInfo<'a>; pub type MemoryOpaqueCaptureAddressAllocateInfoKHR<'a> = MemoryOpaqueCaptureAddressAllocateInfo<'a>; pub type DeviceMemoryOpaqueCaptureAddressInfoKHR<'a> = DeviceMemoryOpaqueCaptureAddressInfo<'a>; +pub type PhysicalDeviceLineRasterizationFeaturesKHR<'a> = + PhysicalDeviceLineRasterizationFeatures<'a>; pub type PhysicalDeviceLineRasterizationFeaturesEXT<'a> = - PhysicalDeviceLineRasterizationFeaturesKHR<'a>; + PhysicalDeviceLineRasterizationFeatures<'a>; +pub type PhysicalDeviceLineRasterizationPropertiesKHR<'a> = + PhysicalDeviceLineRasterizationProperties<'a>; pub type PhysicalDeviceLineRasterizationPropertiesEXT<'a> = - PhysicalDeviceLineRasterizationPropertiesKHR<'a>; + PhysicalDeviceLineRasterizationProperties<'a>; +pub type PipelineRasterizationLineStateCreateInfoKHR<'a> = + PipelineRasterizationLineStateCreateInfo<'a>; pub type PipelineRasterizationLineStateCreateInfoEXT<'a> = - PipelineRasterizationLineStateCreateInfoKHR<'a>; + PipelineRasterizationLineStateCreateInfo<'a>; pub type PhysicalDevicePipelineCreationCacheControlFeaturesEXT<'a> = PhysicalDevicePipelineCreationCacheControlFeatures<'a>; pub type PhysicalDeviceToolPropertiesEXT<'a> = PhysicalDeviceToolProperties<'a>; @@ -249,6 +295,8 @@ pub type TransformMatrixNV = TransformMatrixKHR; pub type AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR; pub type PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR<'a> = PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures<'a>; +pub type PhysicalDeviceRobustness2FeaturesEXT<'a> = PhysicalDeviceRobustness2FeaturesKHR<'a>; +pub type PhysicalDeviceRobustness2PropertiesEXT<'a> = PhysicalDeviceRobustness2PropertiesKHR<'a>; pub type PhysicalDeviceImageRobustnessFeaturesEXT<'a> = PhysicalDeviceImageRobustnessFeatures<'a>; pub type BufferCopy2KHR<'a> = BufferCopy2<'a>; pub type ImageCopy2KHR<'a> = ImageCopy2<'a>; @@ -275,6 +323,18 @@ pub type SemaphoreSubmitInfoKHR<'a> = SemaphoreSubmitInfo<'a>; pub type CommandBufferSubmitInfoKHR<'a> = CommandBufferSubmitInfo<'a>; pub type SubmitInfo2KHR<'a> = SubmitInfo2<'a>; pub type PhysicalDeviceSynchronization2FeaturesKHR<'a> = PhysicalDeviceSynchronization2Features<'a>; +pub type PhysicalDeviceHostImageCopyFeaturesEXT<'a> = PhysicalDeviceHostImageCopyFeatures<'a>; +pub type PhysicalDeviceHostImageCopyPropertiesEXT<'a> = PhysicalDeviceHostImageCopyProperties<'a>; +pub type MemoryToImageCopyEXT<'a> = MemoryToImageCopy<'a>; +pub type ImageToMemoryCopyEXT<'a> = ImageToMemoryCopy<'a>; +pub type CopyMemoryToImageInfoEXT<'a> = CopyMemoryToImageInfo<'a>; +pub type CopyImageToMemoryInfoEXT<'a> = CopyImageToMemoryInfo<'a>; +pub type CopyImageToImageInfoEXT<'a> = CopyImageToImageInfo<'a>; +pub type HostImageLayoutTransitionInfoEXT<'a> = HostImageLayoutTransitionInfo<'a>; +pub type SubresourceHostMemcpySizeEXT<'a> = SubresourceHostMemcpySize<'a>; +pub type HostImageCopyDevicePerformanceQueryEXT<'a> = HostImageCopyDevicePerformanceQuery<'a>; +pub type PhysicalDevicePipelineProtectedAccessFeaturesEXT<'a> = + PhysicalDevicePipelineProtectedAccessFeatures<'a>; pub type PhysicalDeviceShaderIntegerDotProductFeaturesKHR<'a> = PhysicalDeviceShaderIntegerDotProductFeatures<'a>; pub type PhysicalDeviceShaderIntegerDotProductPropertiesKHR<'a> = @@ -288,5 +348,44 @@ pub type CommandBufferInheritanceRenderingInfoKHR<'a> = CommandBufferInheritance pub type AttachmentSampleCountInfoNV<'a> = AttachmentSampleCountInfoAMD<'a>; pub type PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM<'a> = PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'a>; -pub type ImageSubresource2EXT<'a> = ImageSubresource2KHR<'a>; -pub type SubresourceLayout2EXT<'a> = SubresourceLayout2KHR<'a>; +pub type ImageSubresource2KHR<'a> = ImageSubresource2<'a>; +pub type ImageSubresource2EXT<'a> = ImageSubresource2<'a>; +pub type SubresourceLayout2KHR<'a> = SubresourceLayout2<'a>; +pub type SubresourceLayout2EXT<'a> = SubresourceLayout2<'a>; +pub type PhysicalDevicePipelineRobustnessFeaturesEXT<'a> = + PhysicalDevicePipelineRobustnessFeatures<'a>; +pub type PipelineRobustnessCreateInfoEXT<'a> = PipelineRobustnessCreateInfo<'a>; +pub type PhysicalDevicePipelineRobustnessPropertiesEXT<'a> = + PhysicalDevicePipelineRobustnessProperties<'a>; +pub type PhysicalDeviceDepthClampZeroOneFeaturesEXT<'a> = + PhysicalDeviceDepthClampZeroOneFeaturesKHR<'a>; +pub type SurfacePresentModeEXT<'a> = SurfacePresentModeKHR<'a>; +pub type SurfacePresentScalingCapabilitiesEXT<'a> = SurfacePresentScalingCapabilitiesKHR<'a>; +pub type SurfacePresentModeCompatibilityEXT<'a> = SurfacePresentModeCompatibilityKHR<'a>; +pub type PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'a> = + PhysicalDeviceSwapchainMaintenance1FeaturesKHR<'a>; +pub type SwapchainPresentFenceInfoEXT<'a> = SwapchainPresentFenceInfoKHR<'a>; +pub type SwapchainPresentModesCreateInfoEXT<'a> = SwapchainPresentModesCreateInfoKHR<'a>; +pub type SwapchainPresentModeInfoEXT<'a> = SwapchainPresentModeInfoKHR<'a>; +pub type SwapchainPresentScalingCreateInfoEXT<'a> = SwapchainPresentScalingCreateInfoKHR<'a>; +pub type ReleaseSwapchainImagesInfoEXT<'a> = ReleaseSwapchainImagesInfoKHR<'a>; +pub type DeviceImageSubresourceInfoKHR<'a> = DeviceImageSubresourceInfo<'a>; +pub type MemoryMapInfoKHR<'a> = MemoryMapInfo<'a>; +pub type MemoryUnmapInfoKHR<'a> = MemoryUnmapInfo<'a>; +pub type BindMemoryStatusKHR<'a> = BindMemoryStatus<'a>; +pub type BindDescriptorSetsInfoKHR<'a> = BindDescriptorSetsInfo<'a>; +pub type PushConstantsInfoKHR<'a> = PushConstantsInfo<'a>; +pub type PushDescriptorSetInfoKHR<'a> = PushDescriptorSetInfo<'a>; +pub type PushDescriptorSetWithTemplateInfoKHR<'a> = PushDescriptorSetWithTemplateInfo<'a>; +pub type PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'a> = + PhysicalDeviceShaderSubgroupRotateFeatures<'a>; +pub type PhysicalDeviceShaderExpectAssumeFeaturesKHR<'a> = + PhysicalDeviceShaderExpectAssumeFeatures<'a>; +pub type PhysicalDeviceShaderFloatControls2FeaturesKHR<'a> = + PhysicalDeviceShaderFloatControls2Features<'a>; +pub type PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'a> = + PhysicalDeviceDynamicRenderingLocalReadFeatures<'a>; +pub type RenderingAttachmentLocationInfoKHR<'a> = RenderingAttachmentLocationInfo<'a>; +pub type RenderingInputAttachmentIndexInfoKHR<'a> = RenderingInputAttachmentIndexInfo<'a>; +pub type PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT<'a> = + PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR<'a>; diff --git a/ash/src/vk/bitflags.rs b/ash/src/vk/bitflags.rs index 1302cb446..b44f03eff 100644 --- a/ash/src/vk/bitflags.rs +++ b/ash/src/vk/bitflags.rs @@ -137,10 +137,10 @@ impl BufferUsageFlags { } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] -#[doc = ""] -pub struct BufferUsageFlags2KHR(pub(crate) Flags64); -vk_bitflags_wrapped!(BufferUsageFlags2KHR, Flags64); -impl BufferUsageFlags2KHR { +#[doc = ""] +pub struct BufferUsageFlags2(pub(crate) Flags64); +vk_bitflags_wrapped!(BufferUsageFlags2, Flags64); +impl BufferUsageFlags2 { pub const TRANSFER_SRC: Self = Self(0b1); pub const TRANSFER_DST: Self = Self(0b10); pub const UNIFORM_TEXEL_BUFFER: Self = Self(0b100); @@ -243,13 +243,19 @@ impl PipelineCreateFlags { } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] -#[doc = ""] -pub struct PipelineCreateFlags2KHR(pub(crate) Flags64); -vk_bitflags_wrapped!(PipelineCreateFlags2KHR, Flags64); -impl PipelineCreateFlags2KHR { +#[doc = ""] +pub struct PipelineCreateFlags2(pub(crate) Flags64); +vk_bitflags_wrapped!(PipelineCreateFlags2, Flags64); +impl PipelineCreateFlags2 { pub const DISABLE_OPTIMIZATION: Self = Self(0b1); pub const ALLOW_DERIVATIVES: Self = Self(0b10); pub const DERIVATIVE: Self = Self(0b100); + pub const VIEW_INDEX_FROM_DEVICE_INDEX: Self = Self(0b1000); + pub const DISPATCH_BASE: Self = Self(0b1_0000); + pub const FAIL_ON_PIPELINE_COMPILE_REQUIRED: Self = Self(0b1_0000_0000); + pub const EARLY_RETURN_ON_FAILURE: Self = Self(0b10_0000_0000); + pub const NO_PROTECTED_ACCESS: Self = Self(0b1000_0000_0000_0000_0000_0000_0000); + pub const PROTECTED_ACCESS_ONLY: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000); } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] @@ -638,6 +644,48 @@ impl ExternalMemoryFeatureFlagsNV { } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct ClusterAccelerationStructureIndexFormatFlagsNV(pub(crate) Flags); +vk_bitflags_wrapped!(ClusterAccelerationStructureIndexFormatFlagsNV, Flags); +impl ClusterAccelerationStructureIndexFormatFlagsNV { + pub const TYPE_8BIT: Self = Self(0b1); + pub const TYPE_16BIT: Self = Self(0b10); + pub const TYPE_32BIT: Self = Self(0b100); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct ClusterAccelerationStructureClusterFlagsNV(pub(crate) Flags); +vk_bitflags_wrapped!(ClusterAccelerationStructureClusterFlagsNV, Flags); +impl ClusterAccelerationStructureClusterFlagsNV { + pub const ALLOW_DISABLE_OPACITY_MICROMAPS: Self = Self(0b1); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct ClusterAccelerationStructureGeometryFlagsNV(pub(crate) Flags); +vk_bitflags_wrapped!(ClusterAccelerationStructureGeometryFlagsNV, Flags); +impl ClusterAccelerationStructureGeometryFlagsNV { + pub const CULL_DISABLE: Self = Self(0b1); + pub const NO_DUPLICATE_ANYHIT_INVOCATION: Self = Self(0b10); + pub const OPAQUE: Self = Self(0b100); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct ClusterAccelerationStructureAddressResolutionFlagsNV(pub(crate) Flags); +vk_bitflags_wrapped!(ClusterAccelerationStructureAddressResolutionFlagsNV, Flags); +impl ClusterAccelerationStructureAddressResolutionFlagsNV { + pub const NONE: Self = Self(0); + pub const INDIRECTED_DST_IMPLICIT_DATA: Self = Self(0b1); + pub const INDIRECTED_SCRATCH_DATA: Self = Self(0b10); + pub const INDIRECTED_DST_ADDRESS_ARRAY: Self = Self(0b100); + pub const INDIRECTED_DST_SIZES_ARRAY: Self = Self(0b1000); + pub const INDIRECTED_SRC_INFOS_ARRAY: Self = Self(0b1_0000); + pub const INDIRECTED_SRC_INFOS_COUNT: Self = Self(0b10_0000); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] #[doc = ""] pub struct SubgroupFeatureFlags(pub(crate) Flags); vk_bitflags_wrapped!(SubgroupFeatureFlags, Flags); @@ -931,6 +979,12 @@ vk_bitflags_wrapped!(FramebufferCreateFlags, Flags); impl FramebufferCreateFlags {} #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct QueryPoolCreateFlags(pub(crate) Flags); +vk_bitflags_wrapped!(QueryPoolCreateFlags, Flags); +impl QueryPoolCreateFlags {} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] #[doc = ""] pub struct DeviceDiagnosticsConfigFlagsNV(pub(crate) Flags); vk_bitflags_wrapped!(DeviceDiagnosticsConfigFlagsNV, Flags); @@ -947,11 +1001,8 @@ pub struct PipelineCreationFeedbackFlags(pub(crate) Flags); vk_bitflags_wrapped!(PipelineCreationFeedbackFlags, Flags); impl PipelineCreationFeedbackFlags { pub const VALID: Self = Self(0b1); - pub const VALID_EXT: Self = Self::VALID; pub const APPLICATION_PIPELINE_CACHE_HIT: Self = Self(0b10); - pub const APPLICATION_PIPELINE_CACHE_HIT_EXT: Self = Self::APPLICATION_PIPELINE_CACHE_HIT; pub const BASE_PIPELINE_ACCELERATION: Self = Self(0b100); - pub const BASE_PIPELINE_ACCELERATION_EXT: Self = Self::BASE_PIPELINE_ACCELERATION; } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] @@ -1001,15 +1052,10 @@ pub struct ToolPurposeFlags(pub(crate) Flags); vk_bitflags_wrapped!(ToolPurposeFlags, Flags); impl ToolPurposeFlags { pub const VALIDATION: Self = Self(0b1); - pub const VALIDATION_EXT: Self = Self::VALIDATION; pub const PROFILING: Self = Self(0b10); - pub const PROFILING_EXT: Self = Self::PROFILING; pub const TRACING: Self = Self(0b100); - pub const TRACING_EXT: Self = Self::TRACING; pub const ADDITIONAL_FEATURES: Self = Self(0b1000); - pub const ADDITIONAL_FEATURES_EXT: Self = Self::ADDITIONAL_FEATURES; pub const MODIFYING_FEATURES: Self = Self(0b1_0000); - pub const MODIFYING_FEATURES_EXT: Self = Self::MODIFYING_FEATURES; } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] @@ -1018,47 +1064,26 @@ pub struct AccessFlags2(pub(crate) Flags64); vk_bitflags_wrapped!(AccessFlags2, Flags64); impl AccessFlags2 { pub const NONE: Self = Self(0); - pub const NONE_KHR: Self = Self::NONE; pub const INDIRECT_COMMAND_READ: Self = Self(0b1); - pub const INDIRECT_COMMAND_READ_KHR: Self = Self::INDIRECT_COMMAND_READ; pub const INDEX_READ: Self = Self(0b10); - pub const INDEX_READ_KHR: Self = Self::INDEX_READ; pub const VERTEX_ATTRIBUTE_READ: Self = Self(0b100); - pub const VERTEX_ATTRIBUTE_READ_KHR: Self = Self::VERTEX_ATTRIBUTE_READ; pub const UNIFORM_READ: Self = Self(0b1000); - pub const UNIFORM_READ_KHR: Self = Self::UNIFORM_READ; pub const INPUT_ATTACHMENT_READ: Self = Self(0b1_0000); - pub const INPUT_ATTACHMENT_READ_KHR: Self = Self::INPUT_ATTACHMENT_READ; pub const SHADER_READ: Self = Self(0b10_0000); - pub const SHADER_READ_KHR: Self = Self::SHADER_READ; pub const SHADER_WRITE: Self = Self(0b100_0000); - pub const SHADER_WRITE_KHR: Self = Self::SHADER_WRITE; pub const COLOR_ATTACHMENT_READ: Self = Self(0b1000_0000); - pub const COLOR_ATTACHMENT_READ_KHR: Self = Self::COLOR_ATTACHMENT_READ; pub const COLOR_ATTACHMENT_WRITE: Self = Self(0b1_0000_0000); - pub const COLOR_ATTACHMENT_WRITE_KHR: Self = Self::COLOR_ATTACHMENT_WRITE; pub const DEPTH_STENCIL_ATTACHMENT_READ: Self = Self(0b10_0000_0000); - pub const DEPTH_STENCIL_ATTACHMENT_READ_KHR: Self = Self::DEPTH_STENCIL_ATTACHMENT_READ; pub const DEPTH_STENCIL_ATTACHMENT_WRITE: Self = Self(0b100_0000_0000); - pub const DEPTH_STENCIL_ATTACHMENT_WRITE_KHR: Self = Self::DEPTH_STENCIL_ATTACHMENT_WRITE; pub const TRANSFER_READ: Self = Self(0b1000_0000_0000); - pub const TRANSFER_READ_KHR: Self = Self::TRANSFER_READ; pub const TRANSFER_WRITE: Self = Self(0b1_0000_0000_0000); - pub const TRANSFER_WRITE_KHR: Self = Self::TRANSFER_WRITE; pub const HOST_READ: Self = Self(0b10_0000_0000_0000); - pub const HOST_READ_KHR: Self = Self::HOST_READ; pub const HOST_WRITE: Self = Self(0b100_0000_0000_0000); - pub const HOST_WRITE_KHR: Self = Self::HOST_WRITE; pub const MEMORY_READ: Self = Self(0b1000_0000_0000_0000); - pub const MEMORY_READ_KHR: Self = Self::MEMORY_READ; pub const MEMORY_WRITE: Self = Self(0b1_0000_0000_0000_0000); - pub const MEMORY_WRITE_KHR: Self = Self::MEMORY_WRITE; pub const SHADER_SAMPLED_READ: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000); - pub const SHADER_SAMPLED_READ_KHR: Self = Self::SHADER_SAMPLED_READ; pub const SHADER_STORAGE_READ: Self = Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000); - pub const SHADER_STORAGE_READ_KHR: Self = Self::SHADER_STORAGE_READ; pub const SHADER_STORAGE_WRITE: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000); - pub const SHADER_STORAGE_WRITE_KHR: Self = Self::SHADER_STORAGE_WRITE; } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] @@ -1067,59 +1092,33 @@ pub struct PipelineStageFlags2(pub(crate) Flags64); vk_bitflags_wrapped!(PipelineStageFlags2, Flags64); impl PipelineStageFlags2 { pub const NONE: Self = Self(0); - pub const NONE_KHR: Self = Self::NONE; pub const TOP_OF_PIPE: Self = Self(0b1); - pub const TOP_OF_PIPE_KHR: Self = Self::TOP_OF_PIPE; pub const DRAW_INDIRECT: Self = Self(0b10); - pub const DRAW_INDIRECT_KHR: Self = Self::DRAW_INDIRECT; pub const VERTEX_INPUT: Self = Self(0b100); - pub const VERTEX_INPUT_KHR: Self = Self::VERTEX_INPUT; pub const VERTEX_SHADER: Self = Self(0b1000); - pub const VERTEX_SHADER_KHR: Self = Self::VERTEX_SHADER; pub const TESSELLATION_CONTROL_SHADER: Self = Self(0b1_0000); - pub const TESSELLATION_CONTROL_SHADER_KHR: Self = Self::TESSELLATION_CONTROL_SHADER; pub const TESSELLATION_EVALUATION_SHADER: Self = Self(0b10_0000); - pub const TESSELLATION_EVALUATION_SHADER_KHR: Self = Self::TESSELLATION_EVALUATION_SHADER; pub const GEOMETRY_SHADER: Self = Self(0b100_0000); - pub const GEOMETRY_SHADER_KHR: Self = Self::GEOMETRY_SHADER; pub const FRAGMENT_SHADER: Self = Self(0b1000_0000); - pub const FRAGMENT_SHADER_KHR: Self = Self::FRAGMENT_SHADER; pub const EARLY_FRAGMENT_TESTS: Self = Self(0b1_0000_0000); - pub const EARLY_FRAGMENT_TESTS_KHR: Self = Self::EARLY_FRAGMENT_TESTS; pub const LATE_FRAGMENT_TESTS: Self = Self(0b10_0000_0000); - pub const LATE_FRAGMENT_TESTS_KHR: Self = Self::LATE_FRAGMENT_TESTS; pub const COLOR_ATTACHMENT_OUTPUT: Self = Self(0b100_0000_0000); - pub const COLOR_ATTACHMENT_OUTPUT_KHR: Self = Self::COLOR_ATTACHMENT_OUTPUT; pub const COMPUTE_SHADER: Self = Self(0b1000_0000_0000); - pub const COMPUTE_SHADER_KHR: Self = Self::COMPUTE_SHADER; pub const ALL_TRANSFER: Self = Self(0b1_0000_0000_0000); - pub const ALL_TRANSFER_KHR: Self = Self::ALL_TRANSFER; - pub const TRANSFER: Self = Self::ALL_TRANSFER_KHR; - pub const TRANSFER_KHR: Self = Self::ALL_TRANSFER; + pub const TRANSFER: Self = Self::ALL_TRANSFER; pub const BOTTOM_OF_PIPE: Self = Self(0b10_0000_0000_0000); - pub const BOTTOM_OF_PIPE_KHR: Self = Self::BOTTOM_OF_PIPE; pub const HOST: Self = Self(0b100_0000_0000_0000); - pub const HOST_KHR: Self = Self::HOST; pub const ALL_GRAPHICS: Self = Self(0b1000_0000_0000_0000); - pub const ALL_GRAPHICS_KHR: Self = Self::ALL_GRAPHICS; pub const ALL_COMMANDS: Self = Self(0b1_0000_0000_0000_0000); - pub const ALL_COMMANDS_KHR: Self = Self::ALL_COMMANDS; pub const COPY: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000); - pub const COPY_KHR: Self = Self::COPY; pub const RESOLVE: Self = Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000); - pub const RESOLVE_KHR: Self = Self::RESOLVE; pub const BLIT: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000); - pub const BLIT_KHR: Self = Self::BLIT; pub const CLEAR: Self = Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000); - pub const CLEAR_KHR: Self = Self::CLEAR; pub const INDEX_INPUT: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000); - pub const INDEX_INPUT_KHR: Self = Self::INDEX_INPUT; pub const VERTEX_ATTRIBUTE_INPUT: Self = Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000); - pub const VERTEX_ATTRIBUTE_INPUT_KHR: Self = Self::VERTEX_ATTRIBUTE_INPUT; pub const PRE_RASTERIZATION_SHADERS: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000); - pub const PRE_RASTERIZATION_SHADERS_KHR: Self = Self::PRE_RASTERIZATION_SHADERS; } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] @@ -1128,7 +1127,6 @@ pub struct SubmitFlags(pub(crate) Flags); vk_bitflags_wrapped!(SubmitFlags, Flags); impl SubmitFlags { pub const PROTECTED: Self = Self(0b1); - pub const PROTECTED_KHR: Self = Self::PROTECTED; } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] @@ -1183,23 +1181,29 @@ impl FrameBoundaryFlagsEXT { } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] -#[doc = ""] -pub struct PresentScalingFlagsEXT(pub(crate) Flags); -vk_bitflags_wrapped!(PresentScalingFlagsEXT, Flags); -impl PresentScalingFlagsEXT { +#[doc = ""] +pub struct PresentScalingFlagsKHR(pub(crate) Flags); +vk_bitflags_wrapped!(PresentScalingFlagsKHR, Flags); +impl PresentScalingFlagsKHR { pub const ONE_TO_ONE: Self = Self(0b1); + pub const ONE_TO_ONE_EXT: Self = Self::ONE_TO_ONE; pub const ASPECT_RATIO_STRETCH: Self = Self(0b10); + pub const ASPECT_RATIO_STRETCH_EXT: Self = Self::ASPECT_RATIO_STRETCH; pub const STRETCH: Self = Self(0b100); + pub const STRETCH_EXT: Self = Self::STRETCH; } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] -#[doc = ""] -pub struct PresentGravityFlagsEXT(pub(crate) Flags); -vk_bitflags_wrapped!(PresentGravityFlagsEXT, Flags); -impl PresentGravityFlagsEXT { +#[doc = ""] +pub struct PresentGravityFlagsKHR(pub(crate) Flags); +vk_bitflags_wrapped!(PresentGravityFlagsKHR, Flags); +impl PresentGravityFlagsKHR { pub const MIN: Self = Self(0b1); + pub const MIN_EXT: Self = Self::MIN; pub const MAX: Self = Self(0b10); + pub const MAX_EXT: Self = Self::MAX; pub const CENTERED: Self = Self(0b100); + pub const CENTERED_EXT: Self = Self::CENTERED; } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] @@ -1259,6 +1263,12 @@ impl VideoSessionCreateFlagsKHR { } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct VideoSessionParametersCreateFlagsKHR(pub(crate) Flags); +vk_bitflags_wrapped!(VideoSessionParametersCreateFlagsKHR, Flags); +impl VideoSessionParametersCreateFlagsKHR {} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] #[doc = ""] pub struct VideoDecodeH264PictureLayoutFlagsKHR(pub(crate) Flags); vk_bitflags_wrapped!(VideoDecodeH264PictureLayoutFlagsKHR, Flags); @@ -1356,6 +1366,18 @@ impl VideoEncodeRateControlModeFlagsKHR { } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct VideoEncodeIntraRefreshModeFlagsKHR(pub(crate) Flags); +vk_bitflags_wrapped!(VideoEncodeIntraRefreshModeFlagsKHR, Flags); +impl VideoEncodeIntraRefreshModeFlagsKHR { + pub const NONE: Self = Self(0); + pub const PER_PICTURE_PARTITION: Self = Self(0b1); + pub const BLOCK_BASED: Self = Self(0b10); + pub const BLOCK_ROW_BASED: Self = Self(0b100); + pub const BLOCK_COLUMN_BASED: Self = Self(0b1000); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] #[doc = ""] pub struct VideoEncodeH264CapabilityFlagsKHR(pub(crate) Flags); vk_bitflags_wrapped!(VideoEncodeH264CapabilityFlagsKHR, Flags); @@ -1411,14 +1433,26 @@ impl VideoEncodeH264RateControlFlagsKHR { } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] -#[doc = ""] -pub struct HostImageCopyFlagsEXT(pub(crate) Flags); -vk_bitflags_wrapped!(HostImageCopyFlagsEXT, Flags); -impl HostImageCopyFlagsEXT { +#[doc = ""] +pub struct HostImageCopyFlags(pub(crate) Flags); +vk_bitflags_wrapped!(HostImageCopyFlags, Flags); +impl HostImageCopyFlags { pub const MEMCPY: Self = Self(0b1); } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct PartitionedAccelerationStructureInstanceFlagsNV(pub(crate) Flags); +vk_bitflags_wrapped!(PartitionedAccelerationStructureInstanceFlagsNV, Flags); +impl PartitionedAccelerationStructureInstanceFlagsNV { + pub const FLAG_TRIANGLE_FACING_CULL_DISABLE: Self = Self(0b1); + pub const FLAG_TRIANGLE_FLIP_FACING: Self = Self(0b10); + pub const FLAG_FORCE_OPAQUE: Self = Self(0b100); + pub const FLAG_FORCE_NO_OPAQUE: Self = Self(0b1000); + pub const FLAG_ENABLE_EXPLICIT_BOUNDING_BOX: Self = Self(0b1_0000); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] #[doc = ""] pub struct ImageFormatConstraintsFlagsFUCHSIA(pub(crate) Flags); vk_bitflags_wrapped!(ImageFormatConstraintsFlagsFUCHSIA, Flags); @@ -1442,68 +1476,36 @@ pub struct FormatFeatureFlags2(pub(crate) Flags64); vk_bitflags_wrapped!(FormatFeatureFlags2, Flags64); impl FormatFeatureFlags2 { pub const SAMPLED_IMAGE: Self = Self(0b1); - pub const SAMPLED_IMAGE_KHR: Self = Self::SAMPLED_IMAGE; pub const STORAGE_IMAGE: Self = Self(0b10); - pub const STORAGE_IMAGE_KHR: Self = Self::STORAGE_IMAGE; pub const STORAGE_IMAGE_ATOMIC: Self = Self(0b100); - pub const STORAGE_IMAGE_ATOMIC_KHR: Self = Self::STORAGE_IMAGE_ATOMIC; pub const UNIFORM_TEXEL_BUFFER: Self = Self(0b1000); - pub const UNIFORM_TEXEL_BUFFER_KHR: Self = Self::UNIFORM_TEXEL_BUFFER; pub const STORAGE_TEXEL_BUFFER: Self = Self(0b1_0000); - pub const STORAGE_TEXEL_BUFFER_KHR: Self = Self::STORAGE_TEXEL_BUFFER; pub const STORAGE_TEXEL_BUFFER_ATOMIC: Self = Self(0b10_0000); - pub const STORAGE_TEXEL_BUFFER_ATOMIC_KHR: Self = Self::STORAGE_TEXEL_BUFFER_ATOMIC; pub const VERTEX_BUFFER: Self = Self(0b100_0000); - pub const VERTEX_BUFFER_KHR: Self = Self::VERTEX_BUFFER; pub const COLOR_ATTACHMENT: Self = Self(0b1000_0000); - pub const COLOR_ATTACHMENT_KHR: Self = Self::COLOR_ATTACHMENT; pub const COLOR_ATTACHMENT_BLEND: Self = Self(0b1_0000_0000); - pub const COLOR_ATTACHMENT_BLEND_KHR: Self = Self::COLOR_ATTACHMENT_BLEND; pub const DEPTH_STENCIL_ATTACHMENT: Self = Self(0b10_0000_0000); - pub const DEPTH_STENCIL_ATTACHMENT_KHR: Self = Self::DEPTH_STENCIL_ATTACHMENT; pub const BLIT_SRC: Self = Self(0b100_0000_0000); - pub const BLIT_SRC_KHR: Self = Self::BLIT_SRC; pub const BLIT_DST: Self = Self(0b1000_0000_0000); - pub const BLIT_DST_KHR: Self = Self::BLIT_DST; pub const SAMPLED_IMAGE_FILTER_LINEAR: Self = Self(0b1_0000_0000_0000); - pub const SAMPLED_IMAGE_FILTER_LINEAR_KHR: Self = Self::SAMPLED_IMAGE_FILTER_LINEAR; - pub const SAMPLED_IMAGE_FILTER_CUBIC: Self = Self(0b10_0000_0000_0000); - pub const SAMPLED_IMAGE_FILTER_CUBIC_EXT: Self = Self::SAMPLED_IMAGE_FILTER_CUBIC; pub const TRANSFER_SRC: Self = Self(0b100_0000_0000_0000); - pub const TRANSFER_SRC_KHR: Self = Self::TRANSFER_SRC; pub const TRANSFER_DST: Self = Self(0b1000_0000_0000_0000); - pub const TRANSFER_DST_KHR: Self = Self::TRANSFER_DST; pub const SAMPLED_IMAGE_FILTER_MINMAX: Self = Self(0b1_0000_0000_0000_0000); - pub const SAMPLED_IMAGE_FILTER_MINMAX_KHR: Self = Self::SAMPLED_IMAGE_FILTER_MINMAX; pub const MIDPOINT_CHROMA_SAMPLES: Self = Self(0b10_0000_0000_0000_0000); - pub const MIDPOINT_CHROMA_SAMPLES_KHR: Self = Self::MIDPOINT_CHROMA_SAMPLES; pub const SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER: Self = Self(0b100_0000_0000_0000_0000); - pub const SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_KHR: Self = - Self::SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER; pub const SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER: Self = Self(0b1000_0000_0000_0000_0000); - pub const SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_KHR: Self = - Self::SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER; pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT: Self = Self(0b1_0000_0000_0000_0000_0000); - pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_KHR: Self = - Self::SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT; pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE: Self = Self(0b10_0000_0000_0000_0000_0000); - pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_KHR: Self = - Self::SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE; pub const DISJOINT: Self = Self(0b100_0000_0000_0000_0000_0000); - pub const DISJOINT_KHR: Self = Self::DISJOINT; pub const COSITED_CHROMA_SAMPLES: Self = Self(0b1000_0000_0000_0000_0000_0000); - pub const COSITED_CHROMA_SAMPLES_KHR: Self = Self::COSITED_CHROMA_SAMPLES; pub const STORAGE_READ_WITHOUT_FORMAT: Self = Self(0b1000_0000_0000_0000_0000_0000_0000_0000); - pub const STORAGE_READ_WITHOUT_FORMAT_KHR: Self = Self::STORAGE_READ_WITHOUT_FORMAT; pub const STORAGE_WRITE_WITHOUT_FORMAT: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000); - pub const STORAGE_WRITE_WITHOUT_FORMAT_KHR: Self = Self::STORAGE_WRITE_WITHOUT_FORMAT; pub const SAMPLED_IMAGE_DEPTH_COMPARISON: Self = Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000); - pub const SAMPLED_IMAGE_DEPTH_COMPARISON_KHR: Self = Self::SAMPLED_IMAGE_DEPTH_COMPARISON; } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] @@ -1512,12 +1514,8 @@ pub struct RenderingFlags(pub(crate) Flags); vk_bitflags_wrapped!(RenderingFlags, Flags); impl RenderingFlags { pub const CONTENTS_SECONDARY_COMMAND_BUFFERS: Self = Self(0b1); - pub const CONTENTS_SECONDARY_COMMAND_BUFFERS_KHR: Self = - Self::CONTENTS_SECONDARY_COMMAND_BUFFERS; pub const SUSPENDING: Self = Self(0b10); - pub const SUSPENDING_KHR: Self = Self::SUSPENDING; pub const RESUMING: Self = Self(0b100); - pub const RESUMING_KHR: Self = Self::RESUMING; } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] @@ -1599,6 +1597,49 @@ impl VideoEncodeH265TransformBlockSizeFlagsKHR { } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct VideoEncodeAV1CapabilityFlagsKHR(pub(crate) Flags); +vk_bitflags_wrapped!(VideoEncodeAV1CapabilityFlagsKHR, Flags); +impl VideoEncodeAV1CapabilityFlagsKHR { + pub const PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX: Self = Self(0b1); + pub const GENERATE_OBU_EXTENSION_HEADER: Self = Self(0b10); + pub const PRIMARY_REFERENCE_CDF_ONLY: Self = Self(0b100); + pub const FRAME_SIZE_OVERRIDE: Self = Self(0b1000); + pub const MOTION_VECTOR_SCALING: Self = Self(0b1_0000); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct VideoEncodeAV1StdFlagsKHR(pub(crate) Flags); +vk_bitflags_wrapped!(VideoEncodeAV1StdFlagsKHR, Flags); +impl VideoEncodeAV1StdFlagsKHR { + pub const UNIFORM_TILE_SPACING_FLAG_SET: Self = Self(0b1); + pub const SKIP_MODE_PRESENT_UNSET: Self = Self(0b10); + pub const PRIMARY_REF_FRAME: Self = Self(0b100); + pub const DELTA_Q: Self = Self(0b1000); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct VideoEncodeAV1RateControlFlagsKHR(pub(crate) Flags); +vk_bitflags_wrapped!(VideoEncodeAV1RateControlFlagsKHR, Flags); +impl VideoEncodeAV1RateControlFlagsKHR { + pub const REGULAR_GOP: Self = Self(0b1); + pub const TEMPORAL_LAYER_PATTERN_DYADIC: Self = Self(0b10); + pub const REFERENCE_PATTERN_FLAT: Self = Self(0b100); + pub const REFERENCE_PATTERN_DYADIC: Self = Self(0b1000); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct VideoEncodeAV1SuperblockSizeFlagsKHR(pub(crate) Flags); +vk_bitflags_wrapped!(VideoEncodeAV1SuperblockSizeFlagsKHR, Flags); +impl VideoEncodeAV1SuperblockSizeFlagsKHR { + pub const TYPE_64: Self = Self(0b1); + pub const TYPE_128: Self = Self(0b10); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] #[doc = ""] pub struct ExportMetalObjectTypeFlagsEXT(pub(crate) Flags); vk_bitflags_wrapped!(ExportMetalObjectTypeFlagsEXT, Flags); @@ -1750,13 +1791,114 @@ impl ShaderCreateFlagsEXT { } #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] -#[doc = ""] -pub struct MemoryUnmapFlagsKHR(pub(crate) Flags); -vk_bitflags_wrapped!(MemoryUnmapFlagsKHR, Flags); -impl MemoryUnmapFlagsKHR {} +#[doc = ""] +pub struct MemoryUnmapFlags(pub(crate) Flags); +vk_bitflags_wrapped!(MemoryUnmapFlags, Flags); +impl MemoryUnmapFlags {} #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] #[doc = ""] pub struct WaylandSurfaceCreateFlagsKHR(pub(crate) Flags); vk_bitflags_wrapped!(WaylandSurfaceCreateFlagsKHR, Flags); impl WaylandSurfaceCreateFlagsKHR {} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct AccessFlags3KHR(pub(crate) Flags64); +vk_bitflags_wrapped!(AccessFlags3KHR, Flags64); +impl AccessFlags3KHR { + pub const NONE: Self = Self(0); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct TileShadingRenderPassFlagsQCOM(pub(crate) Flags); +vk_bitflags_wrapped!(TileShadingRenderPassFlagsQCOM, Flags); +impl TileShadingRenderPassFlagsQCOM { + pub const ENABLE: Self = Self(0b1); + pub const PER_TILE_EXECUTION: Self = Self(0b10); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct AddressCopyFlagsKHR(pub(crate) Flags); +vk_bitflags_wrapped!(AddressCopyFlagsKHR, Flags); +impl AddressCopyFlagsKHR { + pub const DEVICE_LOCAL: Self = Self(0b1); + pub const SPARSE: Self = Self(0b10); + pub const PROTECTED: Self = Self(0b100); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct TensorCreateFlagsARM(pub(crate) Flags64); +vk_bitflags_wrapped!(TensorCreateFlagsARM, Flags64); +impl TensorCreateFlagsARM { + pub const MUTABLE_FORMAT: Self = Self(0b1); + pub const PROTECTED: Self = Self(0b10); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct TensorUsageFlagsARM(pub(crate) Flags64); +vk_bitflags_wrapped!(TensorUsageFlagsARM, Flags64); +impl TensorUsageFlagsARM { + #[doc = "Tensor written/read through shader descriptor"] + pub const SHADER: Self = Self(0b10); + #[doc = "Tensor can be src of a transfer operation"] + pub const TRANSFER_SRC: Self = Self(0b100); + #[doc = "Tensor can be dst of a transfer operation"] + pub const TRANSFER_DST: Self = Self(0b1000); + #[doc = "Tensor can be aliased with an image"] + pub const IMAGE_ALIASING: Self = Self(0b1_0000); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct TensorViewCreateFlagsARM(pub(crate) Flags64); +vk_bitflags_wrapped!(TensorViewCreateFlagsARM, Flags64); +impl TensorViewCreateFlagsARM {} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct DataGraphPipelineSessionCreateFlagsARM(pub(crate) Flags64); +vk_bitflags_wrapped!(DataGraphPipelineSessionCreateFlagsARM, Flags64); +impl DataGraphPipelineSessionCreateFlagsARM { + pub const PROTECTED: Self = Self(0b1); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct DataGraphPipelineDispatchFlagsARM(pub(crate) Flags64); +vk_bitflags_wrapped!(DataGraphPipelineDispatchFlagsARM, Flags64); +impl DataGraphPipelineDispatchFlagsARM {} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct VideoEncodeRgbModelConversionFlagsVALVE(pub(crate) Flags); +vk_bitflags_wrapped!(VideoEncodeRgbModelConversionFlagsVALVE, Flags); +impl VideoEncodeRgbModelConversionFlagsVALVE { + pub const RGB_IDENTITY: Self = Self(0b1); + pub const YCBCR_IDENTITY: Self = Self(0b10); + pub const YCBCR_709: Self = Self(0b100); + pub const YCBCR_601: Self = Self(0b1000); + pub const YCBCR_2020: Self = Self(0b1_0000); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct VideoEncodeRgbRangeCompressionFlagsVALVE(pub(crate) Flags); +vk_bitflags_wrapped!(VideoEncodeRgbRangeCompressionFlagsVALVE, Flags); +impl VideoEncodeRgbRangeCompressionFlagsVALVE { + pub const FULL_RANGE: Self = Self(0b1); + pub const NARROW_RANGE: Self = Self(0b10); +} +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[doc = ""] +pub struct VideoEncodeRgbChromaOffsetFlagsVALVE(pub(crate) Flags); +vk_bitflags_wrapped!(VideoEncodeRgbChromaOffsetFlagsVALVE, Flags); +impl VideoEncodeRgbChromaOffsetFlagsVALVE { + pub const COSITED_EVEN: Self = Self(0b1); + pub const MIDPOINT: Self = Self(0b10); +} diff --git a/ash/src/vk/const_debugs.rs b/ash/src/vk/const_debugs.rs index 5f638518d..a8a27c979 100644 --- a/ash/src/vk/const_debugs.rs +++ b/ash/src/vk/const_debugs.rs @@ -186,12 +186,12 @@ impl fmt::Debug for AccessFlags { "FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR", ), ( - AccessFlags::COMMAND_PREPROCESS_READ_NV.0, - "COMMAND_PREPROCESS_READ_NV", + AccessFlags::COMMAND_PREPROCESS_READ_EXT.0, + "COMMAND_PREPROCESS_READ_EXT", ), ( - AccessFlags::COMMAND_PREPROCESS_WRITE_NV.0, - "COMMAND_PREPROCESS_WRITE_NV", + AccessFlags::COMMAND_PREPROCESS_WRITE_EXT.0, + "COMMAND_PREPROCESS_WRITE_EXT", ), (AccessFlags::NONE.0, "NONE"), ]; @@ -259,6 +259,14 @@ impl fmt::Debug for AccessFlags2 { AccessFlags2::VIDEO_ENCODE_WRITE_KHR.0, "VIDEO_ENCODE_WRITE_KHR", ), + ( + AccessFlags2::SHADER_TILE_ATTACHMENT_READ_QCOM.0, + "SHADER_TILE_ATTACHMENT_READ_QCOM", + ), + ( + AccessFlags2::SHADER_TILE_ATTACHMENT_WRITE_QCOM.0, + "SHADER_TILE_ATTACHMENT_WRITE_QCOM", + ), ( AccessFlags2::TRANSFORM_FEEDBACK_WRITE_EXT.0, "TRANSFORM_FEEDBACK_WRITE_EXT", @@ -276,12 +284,12 @@ impl fmt::Debug for AccessFlags2 { "CONDITIONAL_RENDERING_READ_EXT", ), ( - AccessFlags2::COMMAND_PREPROCESS_READ_NV.0, - "COMMAND_PREPROCESS_READ_NV", + AccessFlags2::COMMAND_PREPROCESS_READ_EXT.0, + "COMMAND_PREPROCESS_READ_EXT", ), ( - AccessFlags2::COMMAND_PREPROCESS_WRITE_NV.0, - "COMMAND_PREPROCESS_WRITE_NV", + AccessFlags2::COMMAND_PREPROCESS_WRITE_EXT.0, + "COMMAND_PREPROCESS_WRITE_EXT", ), ( AccessFlags2::FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR.0, @@ -322,16 +330,34 @@ impl fmt::Debug for AccessFlags2 { AccessFlags2::OPTICAL_FLOW_WRITE_NV.0, "OPTICAL_FLOW_WRITE_NV", ), + (AccessFlags2::DATA_GRAPH_READ_ARM.0, "DATA_GRAPH_READ_ARM"), + (AccessFlags2::DATA_GRAPH_WRITE_ARM.0, "DATA_GRAPH_WRITE_ARM"), ]; debug_flags(f, KNOWN, self.0) } } +impl fmt::Debug for AccessFlags3KHR { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags64, &str)] = &[(AccessFlags3KHR::NONE.0, "NONE")]; + debug_flags(f, KNOWN, self.0) + } +} impl fmt::Debug for AcquireProfilingLockFlagsKHR { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[]; debug_flags(f, KNOWN, self.0) } } +impl fmt::Debug for AddressCopyFlagsKHR { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags, &str)] = &[ + (AddressCopyFlagsKHR::DEVICE_LOCAL.0, "DEVICE_LOCAL"), + (AddressCopyFlagsKHR::SPARSE.0, "SPARSE"), + (AddressCopyFlagsKHR::PROTECTED.0, "PROTECTED"), + ]; + debug_flags(f, KNOWN, self.0) + } +} impl fmt::Debug for AndroidSurfaceCreateFlagsKHR { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[]; @@ -379,7 +405,7 @@ impl fmt::Debug for AttachmentLoadOp { Self::LOAD => Some("LOAD"), Self::CLEAR => Some("CLEAR"), Self::DONT_CARE => Some("DONT_CARE"), - Self::NONE_KHR => Some("NONE_KHR"), + Self::NONE => Some("NONE"), _ => None, }; if let Some(x) = name { @@ -652,6 +678,7 @@ impl fmt::Debug for BufferUsageFlags { BufferUsageFlags::MICROMAP_STORAGE_EXT.0, "MICROMAP_STORAGE_EXT", ), + (BufferUsageFlags::TILE_MEMORY_QCOM.0, "TILE_MEMORY_QCOM"), ( BufferUsageFlags::SHADER_DEVICE_ADDRESS.0, "SHADER_DEVICE_ADDRESS", @@ -660,84 +687,105 @@ impl fmt::Debug for BufferUsageFlags { debug_flags(f, KNOWN, self.0) } } -impl fmt::Debug for BufferUsageFlags2KHR { +impl fmt::Debug for BufferUsageFlags2 { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags64, &str)] = &[ - (BufferUsageFlags2KHR::TRANSFER_SRC.0, "TRANSFER_SRC"), - (BufferUsageFlags2KHR::TRANSFER_DST.0, "TRANSFER_DST"), + (BufferUsageFlags2::TRANSFER_SRC.0, "TRANSFER_SRC"), + (BufferUsageFlags2::TRANSFER_DST.0, "TRANSFER_DST"), ( - BufferUsageFlags2KHR::UNIFORM_TEXEL_BUFFER.0, + BufferUsageFlags2::UNIFORM_TEXEL_BUFFER.0, "UNIFORM_TEXEL_BUFFER", ), ( - BufferUsageFlags2KHR::STORAGE_TEXEL_BUFFER.0, + BufferUsageFlags2::STORAGE_TEXEL_BUFFER.0, "STORAGE_TEXEL_BUFFER", ), - (BufferUsageFlags2KHR::UNIFORM_BUFFER.0, "UNIFORM_BUFFER"), - (BufferUsageFlags2KHR::STORAGE_BUFFER.0, "STORAGE_BUFFER"), - (BufferUsageFlags2KHR::INDEX_BUFFER.0, "INDEX_BUFFER"), - (BufferUsageFlags2KHR::VERTEX_BUFFER.0, "VERTEX_BUFFER"), - (BufferUsageFlags2KHR::INDIRECT_BUFFER.0, "INDIRECT_BUFFER"), + (BufferUsageFlags2::UNIFORM_BUFFER.0, "UNIFORM_BUFFER"), + (BufferUsageFlags2::STORAGE_BUFFER.0, "STORAGE_BUFFER"), + (BufferUsageFlags2::INDEX_BUFFER.0, "INDEX_BUFFER"), + (BufferUsageFlags2::VERTEX_BUFFER.0, "VERTEX_BUFFER"), + (BufferUsageFlags2::INDIRECT_BUFFER.0, "INDIRECT_BUFFER"), ( - BufferUsageFlags2KHR::EXECUTION_GRAPH_SCRATCH_AMDX.0, + BufferUsageFlags2::EXECUTION_GRAPH_SCRATCH_AMDX.0, "EXECUTION_GRAPH_SCRATCH_AMDX", ), ( - BufferUsageFlags2KHR::CONDITIONAL_RENDERING_EXT.0, + BufferUsageFlags2::CONDITIONAL_RENDERING_EXT.0, "CONDITIONAL_RENDERING_EXT", ), ( - BufferUsageFlags2KHR::SHADER_BINDING_TABLE.0, - "SHADER_BINDING_TABLE", + BufferUsageFlags2::SHADER_BINDING_TABLE_KHR.0, + "SHADER_BINDING_TABLE_KHR", ), ( - BufferUsageFlags2KHR::TRANSFORM_FEEDBACK_BUFFER_EXT.0, + BufferUsageFlags2::TRANSFORM_FEEDBACK_BUFFER_EXT.0, "TRANSFORM_FEEDBACK_BUFFER_EXT", ), ( - BufferUsageFlags2KHR::TRANSFORM_FEEDBACK_COUNTER_BUFFER_EXT.0, + BufferUsageFlags2::TRANSFORM_FEEDBACK_COUNTER_BUFFER_EXT.0, "TRANSFORM_FEEDBACK_COUNTER_BUFFER_EXT", ), - (BufferUsageFlags2KHR::VIDEO_DECODE_SRC.0, "VIDEO_DECODE_SRC"), - (BufferUsageFlags2KHR::VIDEO_DECODE_DST.0, "VIDEO_DECODE_DST"), - (BufferUsageFlags2KHR::VIDEO_ENCODE_DST.0, "VIDEO_ENCODE_DST"), - (BufferUsageFlags2KHR::VIDEO_ENCODE_SRC.0, "VIDEO_ENCODE_SRC"), ( - BufferUsageFlags2KHR::SHADER_DEVICE_ADDRESS.0, - "SHADER_DEVICE_ADDRESS", + BufferUsageFlags2::VIDEO_DECODE_SRC_KHR.0, + "VIDEO_DECODE_SRC_KHR", + ), + ( + BufferUsageFlags2::VIDEO_DECODE_DST_KHR.0, + "VIDEO_DECODE_DST_KHR", + ), + ( + BufferUsageFlags2::VIDEO_ENCODE_DST_KHR.0, + "VIDEO_ENCODE_DST_KHR", + ), + ( + BufferUsageFlags2::VIDEO_ENCODE_SRC_KHR.0, + "VIDEO_ENCODE_SRC_KHR", ), ( - BufferUsageFlags2KHR::ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY.0, - "ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY", + BufferUsageFlags2::ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_KHR.0, + "ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_KHR", ), ( - BufferUsageFlags2KHR::ACCELERATION_STRUCTURE_STORAGE.0, - "ACCELERATION_STRUCTURE_STORAGE", + BufferUsageFlags2::ACCELERATION_STRUCTURE_STORAGE_KHR.0, + "ACCELERATION_STRUCTURE_STORAGE_KHR", ), ( - BufferUsageFlags2KHR::SAMPLER_DESCRIPTOR_BUFFER_EXT.0, + BufferUsageFlags2::SAMPLER_DESCRIPTOR_BUFFER_EXT.0, "SAMPLER_DESCRIPTOR_BUFFER_EXT", ), ( - BufferUsageFlags2KHR::RESOURCE_DESCRIPTOR_BUFFER_EXT.0, + BufferUsageFlags2::RESOURCE_DESCRIPTOR_BUFFER_EXT.0, "RESOURCE_DESCRIPTOR_BUFFER_EXT", ), ( - BufferUsageFlags2KHR::PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_EXT.0, + BufferUsageFlags2::PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_EXT.0, "PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_EXT", ), ( - BufferUsageFlags2KHR::MICROMAP_BUILD_INPUT_READ_ONLY_EXT.0, + BufferUsageFlags2::MICROMAP_BUILD_INPUT_READ_ONLY_EXT.0, "MICROMAP_BUILD_INPUT_READ_ONLY_EXT", ), ( - BufferUsageFlags2KHR::MICROMAP_STORAGE_EXT.0, + BufferUsageFlags2::MICROMAP_STORAGE_EXT.0, "MICROMAP_STORAGE_EXT", ), ( - BufferUsageFlags2KHR::PREPROCESS_BUFFER_EXT.0, + BufferUsageFlags2::COMPRESSED_DATA_DGF1_AMDX.0, + "COMPRESSED_DATA_DGF1_AMDX", + ), + ( + BufferUsageFlags2::DATA_GRAPH_FOREIGN_DESCRIPTOR_ARM.0, + "DATA_GRAPH_FOREIGN_DESCRIPTOR_ARM", + ), + (BufferUsageFlags2::TILE_MEMORY_QCOM.0, "TILE_MEMORY_QCOM"), + ( + BufferUsageFlags2::PREPROCESS_BUFFER_EXT.0, "PREPROCESS_BUFFER_EXT", ), + ( + BufferUsageFlags2::SHADER_DEVICE_ADDRESS.0, + "SHADER_DEVICE_ADDRESS", + ), ]; debug_flags(f, KNOWN, self.0) } @@ -792,6 +840,10 @@ impl fmt::Debug for BuildAccelerationStructureFlagsKHR { BuildAccelerationStructureFlagsKHR::ALLOW_DATA_ACCESS.0, "ALLOW_DATA_ACCESS", ), + ( + BuildAccelerationStructureFlagsKHR::ALLOW_CLUSTER_OPACITY_MICROMAPS_NV.0, + "ALLOW_CLUSTER_OPACITY_MICROMAPS_NV", + ), ]; debug_flags(f, KNOWN, self.0) } @@ -856,6 +908,138 @@ impl fmt::Debug for ChromaLocation { } } } +impl fmt::Debug for ClusterAccelerationStructureAddressResolutionFlagsNV { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags, &str)] = &[ + ( + ClusterAccelerationStructureAddressResolutionFlagsNV::NONE.0, + "NONE", + ), + ( + ClusterAccelerationStructureAddressResolutionFlagsNV::INDIRECTED_DST_IMPLICIT_DATA + .0, + "INDIRECTED_DST_IMPLICIT_DATA", + ), + ( + ClusterAccelerationStructureAddressResolutionFlagsNV::INDIRECTED_SCRATCH_DATA.0, + "INDIRECTED_SCRATCH_DATA", + ), + ( + ClusterAccelerationStructureAddressResolutionFlagsNV::INDIRECTED_DST_ADDRESS_ARRAY + .0, + "INDIRECTED_DST_ADDRESS_ARRAY", + ), + ( + ClusterAccelerationStructureAddressResolutionFlagsNV::INDIRECTED_DST_SIZES_ARRAY.0, + "INDIRECTED_DST_SIZES_ARRAY", + ), + ( + ClusterAccelerationStructureAddressResolutionFlagsNV::INDIRECTED_SRC_INFOS_ARRAY.0, + "INDIRECTED_SRC_INFOS_ARRAY", + ), + ( + ClusterAccelerationStructureAddressResolutionFlagsNV::INDIRECTED_SRC_INFOS_COUNT.0, + "INDIRECTED_SRC_INFOS_COUNT", + ), + ]; + debug_flags(f, KNOWN, self.0) + } +} +impl fmt::Debug for ClusterAccelerationStructureClusterFlagsNV { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags, &str)] = &[( + ClusterAccelerationStructureClusterFlagsNV::ALLOW_DISABLE_OPACITY_MICROMAPS.0, + "ALLOW_DISABLE_OPACITY_MICROMAPS", + )]; + debug_flags(f, KNOWN, self.0) + } +} +impl fmt::Debug for ClusterAccelerationStructureGeometryFlagsNV { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags, &str)] = &[ + ( + ClusterAccelerationStructureGeometryFlagsNV::CULL_DISABLE.0, + "CULL_DISABLE", + ), + ( + ClusterAccelerationStructureGeometryFlagsNV::NO_DUPLICATE_ANYHIT_INVOCATION.0, + "NO_DUPLICATE_ANYHIT_INVOCATION", + ), + ( + ClusterAccelerationStructureGeometryFlagsNV::OPAQUE.0, + "OPAQUE", + ), + ]; + debug_flags(f, KNOWN, self.0) + } +} +impl fmt::Debug for ClusterAccelerationStructureIndexFormatFlagsNV { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags, &str)] = &[ + ( + ClusterAccelerationStructureIndexFormatFlagsNV::TYPE_8BIT.0, + "TYPE_8BIT", + ), + ( + ClusterAccelerationStructureIndexFormatFlagsNV::TYPE_16BIT.0, + "TYPE_16BIT", + ), + ( + ClusterAccelerationStructureIndexFormatFlagsNV::TYPE_32BIT.0, + "TYPE_32BIT", + ), + ]; + debug_flags(f, KNOWN, self.0) + } +} +impl fmt::Debug for ClusterAccelerationStructureOpModeNV { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::IMPLICIT_DESTINATIONS => Some("IMPLICIT_DESTINATIONS"), + Self::EXPLICIT_DESTINATIONS => Some("EXPLICIT_DESTINATIONS"), + Self::COMPUTE_SIZES => Some("COMPUTE_SIZES"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} +impl fmt::Debug for ClusterAccelerationStructureOpTypeNV { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::MOVE_OBJECTS => Some("MOVE_OBJECTS"), + Self::BUILD_CLUSTERS_BOTTOM_LEVEL => Some("BUILD_CLUSTERS_BOTTOM_LEVEL"), + Self::BUILD_TRIANGLE_CLUSTER => Some("BUILD_TRIANGLE_CLUSTER"), + Self::BUILD_TRIANGLE_CLUSTER_TEMPLATE => Some("BUILD_TRIANGLE_CLUSTER_TEMPLATE"), + Self::INSTANTIATE_TRIANGLE_CLUSTER => Some("INSTANTIATE_TRIANGLE_CLUSTER"), + Self::GET_CLUSTER_TEMPLATE_INDICES => Some("GET_CLUSTER_TEMPLATE_INDICES"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} +impl fmt::Debug for ClusterAccelerationStructureTypeNV { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::CLUSTERS_BOTTOM_LEVEL => Some("CLUSTERS_BOTTOM_LEVEL"), + Self::TRIANGLE_CLUSTER => Some("TRIANGLE_CLUSTER"), + Self::TRIANGLE_CLUSTER_TEMPLATE => Some("TRIANGLE_CLUSTER_TEMPLATE"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} impl fmt::Debug for CoarseSampleOrderTypeNV { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { @@ -1035,6 +1219,11 @@ impl fmt::Debug for ComponentTypeKHR { Self::UINT16 => Some("UINT16"), Self::UINT32 => Some("UINT32"), Self::UINT64 => Some("UINT64"), + Self::BFLOAT16 => Some("BFLOAT16"), + Self::SINT8_PACKED_NV => Some("SINT8_PACKED_NV"), + Self::UINT8_PACKED_NV => Some("UINT8_PACKED_NV"), + Self::FLOAT8_E4M3_EXT => Some("FLOAT8_E4M3_EXT"), + Self::FLOAT8_E5M2_EXT => Some("FLOAT8_E5M2_EXT"), _ => None, }; if let Some(x) = name { @@ -1055,6 +1244,19 @@ impl fmt::Debug for CompositeAlphaFlagsKHR { debug_flags(f, KNOWN, self.0) } } +impl fmt::Debug for CompressedTriangleFormatAMDX { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::DGF1 => Some("DGF1"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} impl fmt::Debug for ConditionalRenderingFlagsEXT { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[(ConditionalRenderingFlagsEXT::INVERTED.0, "INVERTED")]; @@ -1076,6 +1278,22 @@ impl fmt::Debug for ConservativeRasterizationModeEXT { } } } +impl fmt::Debug for CooperativeVectorMatrixLayoutNV { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::ROW_MAJOR => Some("ROW_MAJOR"), + Self::COLUMN_MAJOR => Some("COLUMN_MAJOR"), + Self::INFERENCING_OPTIMAL => Some("INFERENCING_OPTIMAL"), + Self::TRAINING_OPTIMAL => Some("TRAINING_OPTIMAL"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} impl fmt::Debug for CopyAccelerationStructureModeKHR { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { @@ -1165,6 +1383,61 @@ impl fmt::Debug for CullModeFlags { debug_flags(f, KNOWN, self.0) } } +impl fmt::Debug for DataGraphPipelineDispatchFlagsARM { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags64, &str)] = &[]; + debug_flags(f, KNOWN, self.0) + } +} +impl fmt::Debug for DataGraphPipelinePropertyARM { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::CREATION_LOG => Some("CREATION_LOG"), + Self::IDENTIFIER => Some("IDENTIFIER"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} +impl fmt::Debug for DataGraphPipelineSessionBindPointARM { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::TRANSIENT => Some("TRANSIENT"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} +impl fmt::Debug for DataGraphPipelineSessionBindPointTypeARM { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::MEMORY => Some("MEMORY"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} +impl fmt::Debug for DataGraphPipelineSessionCreateFlagsARM { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags64, &str)] = &[( + DataGraphPipelineSessionCreateFlagsARM::PROTECTED.0, + "PROTECTED", + )]; + debug_flags(f, KNOWN, self.0) + } +} impl fmt::Debug for DebugReportFlagsEXT { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[ @@ -1270,11 +1543,33 @@ impl fmt::Debug for DebugUtilsMessengerCreateFlagsEXT { debug_flags(f, KNOWN, self.0) } } +impl fmt::Debug for DefaultVertexAttributeValueKHR { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::ZERO_ZERO_ZERO_ZERO => Some("ZERO_ZERO_ZERO_ZERO"), + Self::ZERO_ZERO_ZERO_ONE => Some("ZERO_ZERO_ZERO_ONE"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} impl fmt::Debug for DependencyFlags { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[ (DependencyFlags::BY_REGION.0, "BY_REGION"), (DependencyFlags::FEEDBACK_LOOP_EXT.0, "FEEDBACK_LOOP_EXT"), + ( + DependencyFlags::QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_KHR.0, + "QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_KHR", + ), + ( + DependencyFlags::ASYMMETRIC_EVENT_KHR.0, + "ASYMMETRIC_EVENT_KHR", + ), (DependencyFlags::DEVICE_GROUP.0, "DEVICE_GROUP"), (DependencyFlags::VIEW_LOCAL.0, "VIEW_LOCAL"), ]; @@ -1365,10 +1660,6 @@ impl fmt::Debug for DescriptorPoolResetFlags { impl fmt::Debug for DescriptorSetLayoutCreateFlags { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[ - ( - DescriptorSetLayoutCreateFlags::PUSH_DESCRIPTOR_KHR.0, - "PUSH_DESCRIPTOR_KHR", - ), ( DescriptorSetLayoutCreateFlags::DESCRIPTOR_BUFFER_EXT.0, "DESCRIPTOR_BUFFER_EXT", @@ -1393,6 +1684,10 @@ impl fmt::Debug for DescriptorSetLayoutCreateFlags { DescriptorSetLayoutCreateFlags::UPDATE_AFTER_BIND_POOL.0, "UPDATE_AFTER_BIND_POOL", ), + ( + DescriptorSetLayoutCreateFlags::PUSH_DESCRIPTOR.0, + "PUSH_DESCRIPTOR", + ), ]; debug_flags(f, KNOWN, self.0) } @@ -1415,7 +1710,11 @@ impl fmt::Debug for DescriptorType { Self::ACCELERATION_STRUCTURE_NV => Some("ACCELERATION_STRUCTURE_NV"), Self::SAMPLE_WEIGHT_IMAGE_QCOM => Some("SAMPLE_WEIGHT_IMAGE_QCOM"), Self::BLOCK_MATCH_IMAGE_QCOM => Some("BLOCK_MATCH_IMAGE_QCOM"), + Self::TENSOR_ARM => Some("TENSOR_ARM"), Self::MUTABLE_EXT => Some("MUTABLE_EXT"), + Self::PARTITIONED_ACCELERATION_STRUCTURE_NV => { + Some("PARTITIONED_ACCELERATION_STRUCTURE_NV") + } Self::INLINE_UNIFORM_BLOCK => Some("INLINE_UNIFORM_BLOCK"), _ => None, }; @@ -1436,7 +1735,7 @@ impl fmt::Debug for DescriptorUpdateTemplateType { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { Self::DESCRIPTOR_SET => Some("DESCRIPTOR_SET"), - Self::PUSH_DESCRIPTORS_KHR => Some("PUSH_DESCRIPTORS_KHR"), + Self::PUSH_DESCRIPTORS => Some("PUSH_DESCRIPTORS"), _ => None, }; if let Some(x) = name { @@ -1695,6 +1994,22 @@ impl fmt::Debug for DisplaySurfaceCreateFlagsKHR { debug_flags(f, KNOWN, self.0) } } +impl fmt::Debug for DisplaySurfaceStereoTypeNV { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::NONE => Some("NONE"), + Self::ONBOARD_DIN => Some("ONBOARD_DIN"), + Self::HDMI_3D => Some("HDMI_3D"), + Self::INBAND_DISPLAYPORT => Some("INBAND_DISPLAYPORT"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} impl fmt::Debug for DriverId { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { @@ -1724,7 +2039,7 @@ impl fmt::Debug for DriverId { 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::VULKAN_SC_EMULATION_ON_VULKAN => Some("VULKAN_SC_EMULATION_ON_VULKAN"), _ => None, }; if let Some(x) = name { @@ -1805,7 +2120,6 @@ impl fmt::Debug for DynamicState { Self::ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT => { 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"), @@ -1822,6 +2136,7 @@ impl fmt::Debug for DynamicState { Self::RASTERIZER_DISCARD_ENABLE => Some("RASTERIZER_DISCARD_ENABLE"), Self::DEPTH_BIAS_ENABLE => Some("DEPTH_BIAS_ENABLE"), Self::PRIMITIVE_RESTART_ENABLE => Some("PRIMITIVE_RESTART_ENABLE"), + Self::LINE_STIPPLE => Some("LINE_STIPPLE"), _ => None, }; if let Some(x) = name { @@ -1967,6 +2282,15 @@ impl fmt::Debug for ExternalMemoryHandleTypeFlags { ExternalMemoryHandleTypeFlags::SCREEN_BUFFER_QNX.0, "SCREEN_BUFFER_QNX", ), + ( + ExternalMemoryHandleTypeFlags::MTLBUFFER_EXT.0, + "MTLBUFFER_EXT", + ), + ( + ExternalMemoryHandleTypeFlags::MTLTEXTURE_EXT.0, + "MTLTEXTURE_EXT", + ), + (ExternalMemoryHandleTypeFlags::MTLHEAP_EXT.0, "MTLHEAP_EXT"), ]; debug_flags(f, KNOWN, self.0) } @@ -2251,9 +2575,34 @@ 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::R8_BOOL_ARM => Some("R8_BOOL_ARM"), 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::R10X6_UINT_PACK16_ARM => Some("R10X6_UINT_PACK16_ARM"), + Self::R10X6G10X6_UINT_2PACK16_ARM => Some("R10X6G10X6_UINT_2PACK16_ARM"), + Self::R10X6G10X6B10X6A10X6_UINT_4PACK16_ARM => { + Some("R10X6G10X6B10X6A10X6_UINT_4PACK16_ARM") + } + Self::R12X4_UINT_PACK16_ARM => Some("R12X4_UINT_PACK16_ARM"), + Self::R12X4G12X4_UINT_2PACK16_ARM => Some("R12X4G12X4_UINT_2PACK16_ARM"), + Self::R12X4G12X4B12X4A12X4_UINT_4PACK16_ARM => { + Some("R12X4G12X4B12X4A12X4_UINT_4PACK16_ARM") + } + Self::R14X2_UINT_PACK16_ARM => Some("R14X2_UINT_PACK16_ARM"), + Self::R14X2G14X2_UINT_2PACK16_ARM => Some("R14X2G14X2_UINT_2PACK16_ARM"), + Self::R14X2G14X2B14X2A14X2_UINT_4PACK16_ARM => { + Some("R14X2G14X2B14X2A14X2_UINT_4PACK16_ARM") + } + Self::R14X2_UNORM_PACK16_ARM => Some("R14X2_UNORM_PACK16_ARM"), + Self::R14X2G14X2_UNORM_2PACK16_ARM => Some("R14X2G14X2_UNORM_2PACK16_ARM"), + Self::R14X2G14X2B14X2A14X2_UNORM_4PACK16_ARM => { + Some("R14X2G14X2B14X2A14X2_UNORM_4PACK16_ARM") + } + Self::G14X2_B14X2R14X2_2PLANE_420_UNORM_3PACK16_ARM => { + Some("G14X2_B14X2R14X2_2PLANE_420_UNORM_3PACK16_ARM") + } + Self::G14X2_B14X2R14X2_2PLANE_422_UNORM_3PACK16_ARM => { + Some("G14X2_B14X2R14X2_2PLANE_422_UNORM_3PACK16_ARM") + } Self::G8B8G8R8_422_UNORM => Some("G8B8G8R8_422_UNORM"), Self::B8G8R8G8_422_UNORM => Some("B8G8R8G8_422_UNORM"), Self::G8_B8_R8_3PLANE_420_UNORM => Some("G8_B8_R8_3PLANE_420_UNORM"), @@ -2340,6 +2689,8 @@ impl fmt::Debug for Format { Self::ASTC_10X10_SFLOAT_BLOCK => Some("ASTC_10X10_SFLOAT_BLOCK"), Self::ASTC_12X10_SFLOAT_BLOCK => Some("ASTC_12X10_SFLOAT_BLOCK"), Self::ASTC_12X12_SFLOAT_BLOCK => Some("ASTC_12X12_SFLOAT_BLOCK"), + Self::A1B5G5R5_UNORM_PACK16 => Some("A1B5G5R5_UNORM_PACK16"), + Self::A8_UNORM => Some("A8_UNORM"), _ => None, }; if let Some(x) = name { @@ -2357,7 +2708,7 @@ impl fmt::Debug for FormatFeatureFlags { } impl fmt::Debug for FormatFeatureFlags2 { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - const KNOWN : & [(Flags64 , & str)] = & [(FormatFeatureFlags2 :: SAMPLED_IMAGE . 0 , "SAMPLED_IMAGE") , (FormatFeatureFlags2 :: STORAGE_IMAGE . 0 , "STORAGE_IMAGE") , (FormatFeatureFlags2 :: STORAGE_IMAGE_ATOMIC . 0 , "STORAGE_IMAGE_ATOMIC") , (FormatFeatureFlags2 :: UNIFORM_TEXEL_BUFFER . 0 , "UNIFORM_TEXEL_BUFFER") , (FormatFeatureFlags2 :: STORAGE_TEXEL_BUFFER . 0 , "STORAGE_TEXEL_BUFFER") , (FormatFeatureFlags2 :: STORAGE_TEXEL_BUFFER_ATOMIC . 0 , "STORAGE_TEXEL_BUFFER_ATOMIC") , (FormatFeatureFlags2 :: VERTEX_BUFFER . 0 , "VERTEX_BUFFER") , (FormatFeatureFlags2 :: COLOR_ATTACHMENT . 0 , "COLOR_ATTACHMENT") , (FormatFeatureFlags2 :: COLOR_ATTACHMENT_BLEND . 0 , "COLOR_ATTACHMENT_BLEND") , (FormatFeatureFlags2 :: DEPTH_STENCIL_ATTACHMENT . 0 , "DEPTH_STENCIL_ATTACHMENT") , (FormatFeatureFlags2 :: BLIT_SRC . 0 , "BLIT_SRC") , (FormatFeatureFlags2 :: BLIT_DST . 0 , "BLIT_DST") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_FILTER_LINEAR . 0 , "SAMPLED_IMAGE_FILTER_LINEAR") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_FILTER_CUBIC . 0 , "SAMPLED_IMAGE_FILTER_CUBIC") , (FormatFeatureFlags2 :: TRANSFER_SRC . 0 , "TRANSFER_SRC") , (FormatFeatureFlags2 :: TRANSFER_DST . 0 , "TRANSFER_DST") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_FILTER_MINMAX . 0 , "SAMPLED_IMAGE_FILTER_MINMAX") , (FormatFeatureFlags2 :: MIDPOINT_CHROMA_SAMPLES . 0 , "MIDPOINT_CHROMA_SAMPLES") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER . 0 , "SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER . 0 , "SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT . 0 , "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE . 0 , "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE") , (FormatFeatureFlags2 :: DISJOINT . 0 , "DISJOINT") , (FormatFeatureFlags2 :: COSITED_CHROMA_SAMPLES . 0 , "COSITED_CHROMA_SAMPLES") , (FormatFeatureFlags2 :: STORAGE_READ_WITHOUT_FORMAT . 0 , "STORAGE_READ_WITHOUT_FORMAT") , (FormatFeatureFlags2 :: STORAGE_WRITE_WITHOUT_FORMAT . 0 , "STORAGE_WRITE_WITHOUT_FORMAT") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_DEPTH_COMPARISON . 0 , "SAMPLED_IMAGE_DEPTH_COMPARISON") , (FormatFeatureFlags2 :: VIDEO_DECODE_OUTPUT_KHR . 0 , "VIDEO_DECODE_OUTPUT_KHR") , (FormatFeatureFlags2 :: VIDEO_DECODE_DPB_KHR . 0 , "VIDEO_DECODE_DPB_KHR") , (FormatFeatureFlags2 :: ACCELERATION_STRUCTURE_VERTEX_BUFFER_KHR . 0 , "ACCELERATION_STRUCTURE_VERTEX_BUFFER_KHR") , (FormatFeatureFlags2 :: FRAGMENT_DENSITY_MAP_EXT . 0 , "FRAGMENT_DENSITY_MAP_EXT") , (FormatFeatureFlags2 :: FRAGMENT_SHADING_RATE_ATTACHMENT_KHR . 0 , "FRAGMENT_SHADING_RATE_ATTACHMENT_KHR") , (FormatFeatureFlags2 :: HOST_IMAGE_TRANSFER_EXT . 0 , "HOST_IMAGE_TRANSFER_EXT") , (FormatFeatureFlags2 :: VIDEO_ENCODE_INPUT_KHR . 0 , "VIDEO_ENCODE_INPUT_KHR") , (FormatFeatureFlags2 :: VIDEO_ENCODE_DPB_KHR . 0 , "VIDEO_ENCODE_DPB_KHR") , (FormatFeatureFlags2 :: LINEAR_COLOR_ATTACHMENT_NV . 0 , "LINEAR_COLOR_ATTACHMENT_NV") , (FormatFeatureFlags2 :: WEIGHT_IMAGE_QCOM . 0 , "WEIGHT_IMAGE_QCOM") , (FormatFeatureFlags2 :: WEIGHT_SAMPLED_IMAGE_QCOM . 0 , "WEIGHT_SAMPLED_IMAGE_QCOM") , (FormatFeatureFlags2 :: BLOCK_MATCHING_QCOM . 0 , "BLOCK_MATCHING_QCOM") , (FormatFeatureFlags2 :: BOX_FILTER_SAMPLED_QCOM . 0 , "BOX_FILTER_SAMPLED_QCOM") , (FormatFeatureFlags2 :: OPTICAL_FLOW_IMAGE_NV . 0 , "OPTICAL_FLOW_IMAGE_NV") , (FormatFeatureFlags2 :: OPTICAL_FLOW_VECTOR_NV . 0 , "OPTICAL_FLOW_VECTOR_NV") , (FormatFeatureFlags2 :: OPTICAL_FLOW_COST_NV . 0 , "OPTICAL_FLOW_COST_NV")] ; + const KNOWN : & [(Flags64 , & str)] = & [(FormatFeatureFlags2 :: SAMPLED_IMAGE . 0 , "SAMPLED_IMAGE") , (FormatFeatureFlags2 :: STORAGE_IMAGE . 0 , "STORAGE_IMAGE") , (FormatFeatureFlags2 :: STORAGE_IMAGE_ATOMIC . 0 , "STORAGE_IMAGE_ATOMIC") , (FormatFeatureFlags2 :: UNIFORM_TEXEL_BUFFER . 0 , "UNIFORM_TEXEL_BUFFER") , (FormatFeatureFlags2 :: STORAGE_TEXEL_BUFFER . 0 , "STORAGE_TEXEL_BUFFER") , (FormatFeatureFlags2 :: STORAGE_TEXEL_BUFFER_ATOMIC . 0 , "STORAGE_TEXEL_BUFFER_ATOMIC") , (FormatFeatureFlags2 :: VERTEX_BUFFER . 0 , "VERTEX_BUFFER") , (FormatFeatureFlags2 :: COLOR_ATTACHMENT . 0 , "COLOR_ATTACHMENT") , (FormatFeatureFlags2 :: COLOR_ATTACHMENT_BLEND . 0 , "COLOR_ATTACHMENT_BLEND") , (FormatFeatureFlags2 :: DEPTH_STENCIL_ATTACHMENT . 0 , "DEPTH_STENCIL_ATTACHMENT") , (FormatFeatureFlags2 :: BLIT_SRC . 0 , "BLIT_SRC") , (FormatFeatureFlags2 :: BLIT_DST . 0 , "BLIT_DST") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_FILTER_LINEAR . 0 , "SAMPLED_IMAGE_FILTER_LINEAR") , (FormatFeatureFlags2 :: TRANSFER_SRC . 0 , "TRANSFER_SRC") , (FormatFeatureFlags2 :: TRANSFER_DST . 0 , "TRANSFER_DST") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_FILTER_MINMAX . 0 , "SAMPLED_IMAGE_FILTER_MINMAX") , (FormatFeatureFlags2 :: MIDPOINT_CHROMA_SAMPLES . 0 , "MIDPOINT_CHROMA_SAMPLES") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER . 0 , "SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER . 0 , "SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT . 0 , "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE . 0 , "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE") , (FormatFeatureFlags2 :: DISJOINT . 0 , "DISJOINT") , (FormatFeatureFlags2 :: COSITED_CHROMA_SAMPLES . 0 , "COSITED_CHROMA_SAMPLES") , (FormatFeatureFlags2 :: STORAGE_READ_WITHOUT_FORMAT . 0 , "STORAGE_READ_WITHOUT_FORMAT") , (FormatFeatureFlags2 :: STORAGE_WRITE_WITHOUT_FORMAT . 0 , "STORAGE_WRITE_WITHOUT_FORMAT") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_DEPTH_COMPARISON . 0 , "SAMPLED_IMAGE_DEPTH_COMPARISON") , (FormatFeatureFlags2 :: VIDEO_DECODE_OUTPUT_KHR . 0 , "VIDEO_DECODE_OUTPUT_KHR") , (FormatFeatureFlags2 :: VIDEO_DECODE_DPB_KHR . 0 , "VIDEO_DECODE_DPB_KHR") , (FormatFeatureFlags2 :: ACCELERATION_STRUCTURE_VERTEX_BUFFER_KHR . 0 , "ACCELERATION_STRUCTURE_VERTEX_BUFFER_KHR") , (FormatFeatureFlags2 :: FRAGMENT_DENSITY_MAP_EXT . 0 , "FRAGMENT_DENSITY_MAP_EXT") , (FormatFeatureFlags2 :: FRAGMENT_SHADING_RATE_ATTACHMENT_KHR . 0 , "FRAGMENT_SHADING_RATE_ATTACHMENT_KHR") , (FormatFeatureFlags2 :: VIDEO_ENCODE_INPUT_KHR . 0 , "VIDEO_ENCODE_INPUT_KHR") , (FormatFeatureFlags2 :: VIDEO_ENCODE_DPB_KHR . 0 , "VIDEO_ENCODE_DPB_KHR") , (FormatFeatureFlags2 :: ACCELERATION_STRUCTURE_RADIUS_BUFFER_NV . 0 , "ACCELERATION_STRUCTURE_RADIUS_BUFFER_NV") , (FormatFeatureFlags2 :: LINEAR_COLOR_ATTACHMENT_NV . 0 , "LINEAR_COLOR_ATTACHMENT_NV") , (FormatFeatureFlags2 :: WEIGHT_IMAGE_QCOM . 0 , "WEIGHT_IMAGE_QCOM") , (FormatFeatureFlags2 :: WEIGHT_SAMPLED_IMAGE_QCOM . 0 , "WEIGHT_SAMPLED_IMAGE_QCOM") , (FormatFeatureFlags2 :: BLOCK_MATCHING_QCOM . 0 , "BLOCK_MATCHING_QCOM") , (FormatFeatureFlags2 :: BOX_FILTER_SAMPLED_QCOM . 0 , "BOX_FILTER_SAMPLED_QCOM") , (FormatFeatureFlags2 :: TENSOR_SHADER_ARM . 0 , "TENSOR_SHADER_ARM") , (FormatFeatureFlags2 :: TENSOR_IMAGE_ALIASING_ARM . 0 , "TENSOR_IMAGE_ALIASING_ARM") , (FormatFeatureFlags2 :: OPTICAL_FLOW_IMAGE_NV . 0 , "OPTICAL_FLOW_IMAGE_NV") , (FormatFeatureFlags2 :: OPTICAL_FLOW_VECTOR_NV . 0 , "OPTICAL_FLOW_VECTOR_NV") , (FormatFeatureFlags2 :: OPTICAL_FLOW_COST_NV . 0 , "OPTICAL_FLOW_COST_NV") , (FormatFeatureFlags2 :: TENSOR_DATA_GRAPH_ARM . 0 , "TENSOR_DATA_GRAPH_ARM") , (FormatFeatureFlags2 :: COPY_IMAGE_INDIRECT_DST_KHR . 0 , "COPY_IMAGE_INDIRECT_DST_KHR") , (FormatFeatureFlags2 :: VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_KHR . 0 , "VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_KHR") , (FormatFeatureFlags2 :: VIDEO_ENCODE_EMPHASIS_MAP_KHR . 0 , "VIDEO_ENCODE_EMPHASIS_MAP_KHR") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_FILTER_CUBIC . 0 , "SAMPLED_IMAGE_FILTER_CUBIC") , (FormatFeatureFlags2 :: HOST_IMAGE_TRANSFER . 0 , "HOST_IMAGE_TRANSFER")] ; debug_flags(f, KNOWN, self.0) } } @@ -2504,6 +2855,11 @@ impl fmt::Debug for GeometryTypeKHR { Self::TRIANGLES => Some("TRIANGLES"), Self::AABBS => Some("AABBS"), Self::INSTANCES => Some("INSTANCES"), + Self::SPHERES_NV => Some("SPHERES_NV"), + Self::LINEAR_SWEPT_SPHERES_NV => Some("LINEAR_SWEPT_SPHERES_NV"), + Self::DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX => { + Some("DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX") + } _ => None, }; if let Some(x) = name { @@ -2542,9 +2898,9 @@ impl fmt::Debug for HeadlessSurfaceCreateFlagsEXT { debug_flags(f, KNOWN, self.0) } } -impl fmt::Debug for HostImageCopyFlagsEXT { +impl fmt::Debug for HostImageCopyFlags { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - const KNOWN: &[(Flags, &str)] = &[(HostImageCopyFlagsEXT::MEMCPY.0, "MEMCPY")]; + const KNOWN: &[(Flags, &str)] = &[(HostImageCopyFlags::MEMCPY.0, "MEMCPY")]; debug_flags(f, KNOWN, self.0) } } @@ -2720,14 +3076,14 @@ impl fmt::Debug for ImageCreateFlags { ImageCreateFlags::TYPE_2D_VIEW_COMPATIBLE_EXT.0, "TYPE_2D_VIEW_COMPATIBLE_EXT", ), - ( - ImageCreateFlags::FRAGMENT_DENSITY_MAP_OFFSET_QCOM.0, - "FRAGMENT_DENSITY_MAP_OFFSET_QCOM", - ), ( ImageCreateFlags::VIDEO_PROFILE_INDEPENDENT_KHR.0, "VIDEO_PROFILE_INDEPENDENT_KHR", ), + ( + ImageCreateFlags::FRAGMENT_DENSITY_MAP_OFFSET_EXT.0, + "FRAGMENT_DENSITY_MAP_OFFSET_EXT", + ), (ImageCreateFlags::ALIAS.0, "ALIAS"), ( ImageCreateFlags::SPLIT_INSTANCE_BIND_REGIONS.0, @@ -2775,13 +3131,15 @@ impl fmt::Debug for ImageLayout { Self::FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR => { Some("FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR") } - Self::RENDERING_LOCAL_READ_KHR => Some("RENDERING_LOCAL_READ_KHR"), Self::VIDEO_ENCODE_DST_KHR => Some("VIDEO_ENCODE_DST_KHR"), Self::VIDEO_ENCODE_SRC_KHR => Some("VIDEO_ENCODE_SRC_KHR"), Self::VIDEO_ENCODE_DPB_KHR => Some("VIDEO_ENCODE_DPB_KHR"), Self::ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT => { Some("ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT") } + Self::TENSOR_ALIASING_ARM => Some("TENSOR_ALIASING_ARM"), + Self::VIDEO_ENCODE_QUANTIZATION_MAP_KHR => Some("VIDEO_ENCODE_QUANTIZATION_MAP_KHR"), + Self::ZERO_INITIALIZED_EXT => Some("ZERO_INITIALIZED_EXT"), Self::DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL => { Some("DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL") } @@ -2794,6 +3152,7 @@ impl fmt::Debug for ImageLayout { Self::STENCIL_READ_ONLY_OPTIMAL => Some("STENCIL_READ_ONLY_OPTIMAL"), Self::READ_ONLY_OPTIMAL => Some("READ_ONLY_OPTIMAL"), Self::ATTACHMENT_OPTIMAL => Some("ATTACHMENT_OPTIMAL"), + Self::RENDERING_LOCAL_READ => Some("RENDERING_LOCAL_READ"), _ => None, }; if let Some(x) = name { @@ -2876,7 +3235,6 @@ impl fmt::Debug for ImageUsageFlags { ImageUsageFlags::FRAGMENT_SHADING_RATE_ATTACHMENT_KHR.0, "FRAGMENT_SHADING_RATE_ATTACHMENT_KHR", ), - (ImageUsageFlags::HOST_TRANSFER_EXT.0, "HOST_TRANSFER_EXT"), ( ImageUsageFlags::VIDEO_ENCODE_DST_KHR.0, "VIDEO_ENCODE_DST_KHR", @@ -2902,6 +3260,20 @@ impl fmt::Debug for ImageUsageFlags { ImageUsageFlags::SAMPLE_BLOCK_MATCH_QCOM.0, "SAMPLE_BLOCK_MATCH_QCOM", ), + ( + ImageUsageFlags::TENSOR_ALIASING_ARM.0, + "TENSOR_ALIASING_ARM", + ), + (ImageUsageFlags::TILE_MEMORY_QCOM.0, "TILE_MEMORY_QCOM"), + ( + ImageUsageFlags::VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_KHR.0, + "VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_KHR", + ), + ( + ImageUsageFlags::VIDEO_ENCODE_EMPHASIS_MAP_KHR.0, + "VIDEO_ENCODE_EMPHASIS_MAP_KHR", + ), + (ImageUsageFlags::HOST_TRANSFER.0, "HOST_TRANSFER"), ]; debug_flags(f, KNOWN, self.0) } @@ -2950,7 +3322,7 @@ impl fmt::Debug for IndexType { Self::UINT16 => Some("UINT16"), Self::UINT32 => Some("UINT32"), Self::NONE_KHR => Some("NONE_KHR"), - Self::UINT8_KHR => Some("UINT8_KHR"), + Self::UINT8 => Some("UINT8"), _ => None, }; if let Some(x) = name { @@ -3160,7 +3532,7 @@ impl fmt::Debug for LayeredDriverUnderlyingApiMSFT { } } } -impl fmt::Debug for LineRasterizationModeKHR { +impl fmt::Debug for LineRasterizationMode { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { Self::DEFAULT => Some("DEFAULT"), @@ -3214,6 +3586,10 @@ impl fmt::Debug for MemoryAllocateFlags { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[ (MemoryAllocateFlags::DEVICE_MASK.0, "DEVICE_MASK"), + ( + MemoryAllocateFlags::ZERO_INITIALIZE_EXT.0, + "ZERO_INITIALIZE_EXT", + ), (MemoryAllocateFlags::DEVICE_ADDRESS.0, "DEVICE_ADDRESS"), ( MemoryAllocateFlags::DEVICE_ADDRESS_CAPTURE_REPLAY.0, @@ -3236,6 +3612,7 @@ impl fmt::Debug for MemoryHeapFlags { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[ (MemoryHeapFlags::DEVICE_LOCAL.0, "DEVICE_LOCAL"), + (MemoryHeapFlags::TILE_MEMORY_QCOM.0, "TILE_MEMORY_QCOM"), (MemoryHeapFlags::MULTI_INSTANCE.0, "MULTI_INSTANCE"), ]; debug_flags(f, KNOWN, self.0) @@ -3284,9 +3661,9 @@ impl fmt::Debug for MemoryPropertyFlags { debug_flags(f, KNOWN, self.0) } } -impl fmt::Debug for MemoryUnmapFlagsKHR { +impl fmt::Debug for MemoryUnmapFlags { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - const KNOWN: &[(Flags, &str)] = &[(MemoryUnmapFlagsKHR::RESERVE_EXT.0, "RESERVE_EXT")]; + const KNOWN: &[(Flags, &str)] = &[(MemoryUnmapFlags::RESERVE_EXT.0, "RESERVE_EXT")]; debug_flags(f, KNOWN, self.0) } } @@ -3340,6 +3717,9 @@ impl fmt::Debug for OpacityMicromapSpecialIndexEXT { Self::FULLY_OPAQUE => Some("FULLY_OPAQUE"), Self::FULLY_UNKNOWN_TRANSPARENT => Some("FULLY_UNKNOWN_TRANSPARENT"), Self::FULLY_UNKNOWN_OPAQUE => Some("FULLY_UNKNOWN_OPAQUE"), + Self::CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV => { + Some("CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV") + } _ => None, }; if let Some(x) = name { @@ -3461,20 +3841,64 @@ impl fmt::Debug for OutOfBandQueueTypeNV { } } } -impl fmt::Debug for PeerMemoryFeatureFlags { +impl fmt::Debug for PartitionedAccelerationStructureInstanceFlagsNV { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[ - (PeerMemoryFeatureFlags::COPY_SRC.0, "COPY_SRC"), - (PeerMemoryFeatureFlags::COPY_DST.0, "COPY_DST"), - (PeerMemoryFeatureFlags::GENERIC_SRC.0, "GENERIC_SRC"), - (PeerMemoryFeatureFlags::GENERIC_DST.0, "GENERIC_DST"), - ]; - debug_flags(f, KNOWN, self.0) - } -} -impl fmt::Debug for PerformanceConfigurationTypeINTEL { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let name = match *self { + ( + PartitionedAccelerationStructureInstanceFlagsNV::FLAG_TRIANGLE_FACING_CULL_DISABLE + .0, + "FLAG_TRIANGLE_FACING_CULL_DISABLE", + ), + ( + PartitionedAccelerationStructureInstanceFlagsNV::FLAG_TRIANGLE_FLIP_FACING.0, + "FLAG_TRIANGLE_FLIP_FACING", + ), + ( + PartitionedAccelerationStructureInstanceFlagsNV::FLAG_FORCE_OPAQUE.0, + "FLAG_FORCE_OPAQUE", + ), + ( + PartitionedAccelerationStructureInstanceFlagsNV::FLAG_FORCE_NO_OPAQUE.0, + "FLAG_FORCE_NO_OPAQUE", + ), + ( + PartitionedAccelerationStructureInstanceFlagsNV::FLAG_ENABLE_EXPLICIT_BOUNDING_BOX + .0, + "FLAG_ENABLE_EXPLICIT_BOUNDING_BOX", + ), + ]; + debug_flags(f, KNOWN, self.0) + } +} +impl fmt::Debug for PartitionedAccelerationStructureOpTypeNV { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::WRITE_INSTANCE => Some("WRITE_INSTANCE"), + Self::UPDATE_INSTANCE => Some("UPDATE_INSTANCE"), + Self::WRITE_PARTITION_TRANSLATION => Some("WRITE_PARTITION_TRANSLATION"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} +impl fmt::Debug for PeerMemoryFeatureFlags { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags, &str)] = &[ + (PeerMemoryFeatureFlags::COPY_SRC.0, "COPY_SRC"), + (PeerMemoryFeatureFlags::COPY_DST.0, "COPY_DST"), + (PeerMemoryFeatureFlags::GENERIC_SRC.0, "GENERIC_SRC"), + (PeerMemoryFeatureFlags::GENERIC_DST.0, "GENERIC_DST"), + ]; + debug_flags(f, KNOWN, self.0) + } +} +impl fmt::Debug for PerformanceConfigurationTypeINTEL { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { Self::COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED => { Some("COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED") } @@ -3603,6 +4027,32 @@ impl fmt::Debug for PerformanceValueTypeINTEL { } } } +impl fmt::Debug for PhysicalDeviceDataGraphOperationTypeARM { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::SPIRV_EXTENDED_INSTRUCTION_SET => Some("SPIRV_EXTENDED_INSTRUCTION_SET"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} +impl fmt::Debug for PhysicalDeviceDataGraphProcessingEngineTypeARM { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::DEFAULT => Some("DEFAULT"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} impl fmt::Debug for PhysicalDeviceLayeredApiKHR { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { @@ -3654,6 +4104,7 @@ impl fmt::Debug for PipelineBindPoint { Self::EXECUTION_GRAPH_AMDX => Some("EXECUTION_GRAPH_AMDX"), Self::RAY_TRACING_KHR => Some("RAY_TRACING_KHR"), Self::SUBPASS_SHADING_HUAWEI => Some("SUBPASS_SHADING_HUAWEI"), + Self::DATA_GRAPH_ARM => Some("DATA_GRAPH_ARM"), _ => None, }; if let Some(x) = name { @@ -3665,10 +4116,16 @@ impl fmt::Debug for PipelineBindPoint { } impl fmt::Debug for PipelineCacheCreateFlags { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - const KNOWN: &[(Flags, &str)] = &[( - PipelineCacheCreateFlags::EXTERNALLY_SYNCHRONIZED.0, - "EXTERNALLY_SYNCHRONIZED", - )]; + const KNOWN: &[(Flags, &str)] = &[ + ( + PipelineCacheCreateFlags::INTERNALLY_SYNCHRONIZED_MERGE_KHR.0, + "INTERNALLY_SYNCHRONIZED_MERGE_KHR", + ), + ( + PipelineCacheCreateFlags::EXTERNALLY_SYNCHRONIZED.0, + "EXTERNALLY_SYNCHRONIZED", + ), + ]; debug_flags(f, KNOWN, self.0) } } @@ -3730,14 +4187,6 @@ impl fmt::Debug for PipelineCreateFlags { "ALLOW_DERIVATIVES", ), (PipelineCreateFlags::DERIVATIVE.0, "DERIVATIVE"), - ( - PipelineCreateFlags::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR.0, - "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR", - ), - ( - PipelineCreateFlags::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT.0, - "RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT", - ), ( PipelineCreateFlags::RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_KHR.0, "RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_KHR", @@ -3767,6 +4216,14 @@ impl fmt::Debug for PipelineCreateFlags { "RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_KHR", ), (PipelineCreateFlags::DEFER_COMPILE_NV.0, "DEFER_COMPILE_NV"), + ( + PipelineCreateFlags::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT.0, + "RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT", + ), + ( + PipelineCreateFlags::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR.0, + "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR", + ), ( PipelineCreateFlags::CAPTURE_STATISTICS_KHR.0, "CAPTURE_STATISTICS_KHR", @@ -3812,14 +4269,6 @@ impl fmt::Debug for PipelineCreateFlags { PipelineCreateFlags::RAY_TRACING_DISPLACEMENT_MICROMAP_NV.0, "RAY_TRACING_DISPLACEMENT_MICROMAP_NV", ), - ( - PipelineCreateFlags::NO_PROTECTED_ACCESS_EXT.0, - "NO_PROTECTED_ACCESS_EXT", - ), - ( - PipelineCreateFlags::PROTECTED_ACCESS_ONLY_EXT.0, - "PROTECTED_ACCESS_ONLY_EXT", - ), ( PipelineCreateFlags::VIEW_INDEX_FROM_DEVICE_INDEX.0, "VIEW_INDEX_FROM_DEVICE_INDEX", @@ -3833,136 +4282,157 @@ impl fmt::Debug for PipelineCreateFlags { PipelineCreateFlags::EARLY_RETURN_ON_FAILURE.0, "EARLY_RETURN_ON_FAILURE", ), + ( + PipelineCreateFlags::NO_PROTECTED_ACCESS.0, + "NO_PROTECTED_ACCESS", + ), + ( + PipelineCreateFlags::PROTECTED_ACCESS_ONLY.0, + "PROTECTED_ACCESS_ONLY", + ), ]; debug_flags(f, KNOWN, self.0) } } -impl fmt::Debug for PipelineCreateFlags2KHR { +impl fmt::Debug for PipelineCreateFlags2 { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags64, &str)] = &[ ( - PipelineCreateFlags2KHR::DISABLE_OPTIMIZATION.0, + PipelineCreateFlags2::DISABLE_OPTIMIZATION.0, "DISABLE_OPTIMIZATION", ), ( - PipelineCreateFlags2KHR::ALLOW_DERIVATIVES.0, + PipelineCreateFlags2::ALLOW_DERIVATIVES.0, "ALLOW_DERIVATIVES", ), - (PipelineCreateFlags2KHR::DERIVATIVE.0, "DERIVATIVE"), + (PipelineCreateFlags2::DERIVATIVE.0, "DERIVATIVE"), ( - PipelineCreateFlags2KHR::ENABLE_LEGACY_DITHERING_EXT.0, - "ENABLE_LEGACY_DITHERING_EXT", + PipelineCreateFlags2::VIEW_INDEX_FROM_DEVICE_INDEX.0, + "VIEW_INDEX_FROM_DEVICE_INDEX", ), + (PipelineCreateFlags2::DISPATCH_BASE.0, "DISPATCH_BASE"), ( - PipelineCreateFlags2KHR::VIEW_INDEX_FROM_DEVICE_INDEX.0, - "VIEW_INDEX_FROM_DEVICE_INDEX", + PipelineCreateFlags2::FAIL_ON_PIPELINE_COMPILE_REQUIRED.0, + "FAIL_ON_PIPELINE_COMPILE_REQUIRED", ), - (PipelineCreateFlags2KHR::DISPATCH_BASE.0, "DISPATCH_BASE"), ( - PipelineCreateFlags2KHR::DEFER_COMPILE_NV.0, - "DEFER_COMPILE_NV", + PipelineCreateFlags2::EARLY_RETURN_ON_FAILURE.0, + "EARLY_RETURN_ON_FAILURE", ), ( - PipelineCreateFlags2KHR::CAPTURE_STATISTICS.0, - "CAPTURE_STATISTICS", + PipelineCreateFlags2::NO_PROTECTED_ACCESS.0, + "NO_PROTECTED_ACCESS", ), ( - PipelineCreateFlags2KHR::CAPTURE_INTERNAL_REPRESENTATIONS.0, - "CAPTURE_INTERNAL_REPRESENTATIONS", + PipelineCreateFlags2::PROTECTED_ACCESS_ONLY.0, + "PROTECTED_ACCESS_ONLY", ), ( - PipelineCreateFlags2KHR::FAIL_ON_PIPELINE_COMPILE_REQUIRED.0, - "FAIL_ON_PIPELINE_COMPILE_REQUIRED", + PipelineCreateFlags2::EXECUTION_GRAPH_AMDX.0, + "EXECUTION_GRAPH_AMDX", ), ( - PipelineCreateFlags2KHR::EARLY_RETURN_ON_FAILURE.0, - "EARLY_RETURN_ON_FAILURE", + PipelineCreateFlags2::RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_NV.0, + "RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_NV", + ), + ( + PipelineCreateFlags2::ENABLE_LEGACY_DITHERING_EXT.0, + "ENABLE_LEGACY_DITHERING_EXT", ), + (PipelineCreateFlags2::DEFER_COMPILE_NV.0, "DEFER_COMPILE_NV"), ( - PipelineCreateFlags2KHR::LINK_TIME_OPTIMIZATION_EXT.0, + PipelineCreateFlags2::CAPTURE_STATISTICS_KHR.0, + "CAPTURE_STATISTICS_KHR", + ), + ( + PipelineCreateFlags2::CAPTURE_INTERNAL_REPRESENTATIONS_KHR.0, + "CAPTURE_INTERNAL_REPRESENTATIONS_KHR", + ), + ( + PipelineCreateFlags2::LINK_TIME_OPTIMIZATION_EXT.0, "LINK_TIME_OPTIMIZATION_EXT", ), ( - PipelineCreateFlags2KHR::RETAIN_LINK_TIME_OPTIMIZATION_INFO_EXT.0, + PipelineCreateFlags2::RETAIN_LINK_TIME_OPTIMIZATION_INFO_EXT.0, "RETAIN_LINK_TIME_OPTIMIZATION_INFO_EXT", ), - (PipelineCreateFlags2KHR::LIBRARY.0, "LIBRARY"), + (PipelineCreateFlags2::LIBRARY_KHR.0, "LIBRARY_KHR"), ( - PipelineCreateFlags2KHR::RAY_TRACING_SKIP_TRIANGLES.0, - "RAY_TRACING_SKIP_TRIANGLES", + PipelineCreateFlags2::RAY_TRACING_SKIP_TRIANGLES_KHR.0, + "RAY_TRACING_SKIP_TRIANGLES_KHR", ), ( - PipelineCreateFlags2KHR::RAY_TRACING_SKIP_AABBS.0, - "RAY_TRACING_SKIP_AABBS", + PipelineCreateFlags2::RAY_TRACING_SKIP_AABBS_KHR.0, + "RAY_TRACING_SKIP_AABBS_KHR", ), ( - PipelineCreateFlags2KHR::RAY_TRACING_NO_NULL_ANY_HIT_SHADERS.0, - "RAY_TRACING_NO_NULL_ANY_HIT_SHADERS", + PipelineCreateFlags2::RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_KHR.0, + "RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_KHR", ), ( - PipelineCreateFlags2KHR::RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS.0, - "RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS", + PipelineCreateFlags2::RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_KHR.0, + "RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_KHR", ), ( - PipelineCreateFlags2KHR::RAY_TRACING_NO_NULL_MISS_SHADERS.0, - "RAY_TRACING_NO_NULL_MISS_SHADERS", + PipelineCreateFlags2::RAY_TRACING_NO_NULL_MISS_SHADERS_KHR.0, + "RAY_TRACING_NO_NULL_MISS_SHADERS_KHR", ), ( - PipelineCreateFlags2KHR::RAY_TRACING_NO_NULL_INTERSECTION_SHADERS.0, - "RAY_TRACING_NO_NULL_INTERSECTION_SHADERS", + PipelineCreateFlags2::RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_KHR.0, + "RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_KHR", ), ( - PipelineCreateFlags2KHR::RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY.0, - "RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY", + PipelineCreateFlags2::RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_KHR.0, + "RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_KHR", ), ( - PipelineCreateFlags2KHR::INDIRECT_BINDABLE_NV.0, + PipelineCreateFlags2::INDIRECT_BINDABLE_NV.0, "INDIRECT_BINDABLE_NV", ), ( - PipelineCreateFlags2KHR::RAY_TRACING_ALLOW_MOTION_NV.0, + PipelineCreateFlags2::RAY_TRACING_ALLOW_MOTION_NV.0, "RAY_TRACING_ALLOW_MOTION_NV", ), ( - PipelineCreateFlags2KHR::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT.0, - "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT", + PipelineCreateFlags2::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR.0, + "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR", ), ( - PipelineCreateFlags2KHR::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT.0, + PipelineCreateFlags2::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT.0, "RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT", ), ( - PipelineCreateFlags2KHR::RAY_TRACING_OPACITY_MICROMAP_EXT.0, + PipelineCreateFlags2::RAY_TRACING_OPACITY_MICROMAP_EXT.0, "RAY_TRACING_OPACITY_MICROMAP_EXT", ), ( - PipelineCreateFlags2KHR::COLOR_ATTACHMENT_FEEDBACK_LOOP_EXT.0, + PipelineCreateFlags2::COLOR_ATTACHMENT_FEEDBACK_LOOP_EXT.0, "COLOR_ATTACHMENT_FEEDBACK_LOOP_EXT", ), ( - PipelineCreateFlags2KHR::DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_EXT.0, + PipelineCreateFlags2::DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_EXT.0, "DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_EXT", ), ( - PipelineCreateFlags2KHR::NO_PROTECTED_ACCESS_EXT.0, - "NO_PROTECTED_ACCESS_EXT", + PipelineCreateFlags2::RAY_TRACING_DISPLACEMENT_MICROMAP_NV.0, + "RAY_TRACING_DISPLACEMENT_MICROMAP_NV", ), ( - PipelineCreateFlags2KHR::PROTECTED_ACCESS_ONLY_EXT.0, - "PROTECTED_ACCESS_ONLY_EXT", + PipelineCreateFlags2::DESCRIPTOR_BUFFER_EXT.0, + "DESCRIPTOR_BUFFER_EXT", ), ( - PipelineCreateFlags2KHR::RAY_TRACING_DISPLACEMENT_MICROMAP_NV.0, - "RAY_TRACING_DISPLACEMENT_MICROMAP_NV", + PipelineCreateFlags2::DISALLOW_OPACITY_MICROMAP_ARM.0, + "DISALLOW_OPACITY_MICROMAP_ARM", ), + (PipelineCreateFlags2::CAPTURE_DATA_KHR.0, "CAPTURE_DATA_KHR"), ( - PipelineCreateFlags2KHR::DESCRIPTOR_BUFFER_EXT.0, - "DESCRIPTOR_BUFFER_EXT", + PipelineCreateFlags2::INDIRECT_BINDABLE_EXT.0, + "INDIRECT_BINDABLE_EXT", ), - (PipelineCreateFlags2KHR::CAPTURE_DATA.0, "CAPTURE_DATA"), ( - PipelineCreateFlags2KHR::INDIRECT_BINDABLE_EXT.0, - "INDIRECT_BINDABLE_EXT", + PipelineCreateFlags2::PER_LAYER_FRAGMENT_DENSITY_VALVE.0, + "PER_LAYER_FRAGMENT_DENSITY_VALVE", ), ]; debug_flags(f, KNOWN, self.0) @@ -4063,7 +4533,7 @@ impl fmt::Debug for PipelineRasterizationStateStreamCreateFlagsEXT { debug_flags(f, KNOWN, self.0) } } -impl fmt::Debug for PipelineRobustnessBufferBehaviorEXT { +impl fmt::Debug for PipelineRobustnessBufferBehavior { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { Self::DEVICE_DEFAULT => Some("DEVICE_DEFAULT"), @@ -4079,7 +4549,7 @@ impl fmt::Debug for PipelineRobustnessBufferBehaviorEXT { } } } -impl fmt::Debug for PipelineRobustnessImageBehaviorEXT { +impl fmt::Debug for PipelineRobustnessImageBehavior { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { Self::DEVICE_DEFAULT => Some("DEVICE_DEFAULT"), @@ -4169,12 +4639,12 @@ impl fmt::Debug for PipelineStageFlags { PipelineStageFlags::FRAGMENT_SHADING_RATE_ATTACHMENT_KHR.0, "FRAGMENT_SHADING_RATE_ATTACHMENT_KHR", ), - ( - PipelineStageFlags::COMMAND_PREPROCESS_NV.0, - "COMMAND_PREPROCESS_NV", - ), (PipelineStageFlags::TASK_SHADER_EXT.0, "TASK_SHADER_EXT"), (PipelineStageFlags::MESH_SHADER_EXT.0, "MESH_SHADER_EXT"), + ( + PipelineStageFlags::COMMAND_PREPROCESS_EXT.0, + "COMMAND_PREPROCESS_EXT", + ), (PipelineStageFlags::NONE.0, "NONE"), ]; debug_flags(f, KNOWN, self.0) @@ -4240,8 +4710,8 @@ impl fmt::Debug for PipelineStageFlags2 { "CONDITIONAL_RENDERING_EXT", ), ( - PipelineStageFlags2::COMMAND_PREPROCESS_NV.0, - "COMMAND_PREPROCESS_NV", + PipelineStageFlags2::COMMAND_PREPROCESS_EXT.0, + "COMMAND_PREPROCESS_EXT", ), ( PipelineStageFlags2::FRAGMENT_SHADING_RATE_ATTACHMENT_KHR.0, @@ -4282,6 +4752,15 @@ impl fmt::Debug for PipelineStageFlags2 { "CLUSTER_CULLING_SHADER_HUAWEI", ), (PipelineStageFlags2::OPTICAL_FLOW_NV.0, "OPTICAL_FLOW_NV"), + ( + PipelineStageFlags2::CONVERT_COOPERATIVE_VECTOR_MATRIX_NV.0, + "CONVERT_COOPERATIVE_VECTOR_MATRIX_NV", + ), + (PipelineStageFlags2::DATA_GRAPH_ARM.0, "DATA_GRAPH_ARM"), + ( + PipelineStageFlags2::COPY_INDIRECT_KHR.0, + "COPY_INDIRECT_KHR", + ), ]; debug_flags(f, KNOWN, self.0) } @@ -4340,12 +4819,12 @@ impl fmt::Debug for PolygonMode { } } } -impl fmt::Debug for PresentGravityFlagsEXT { +impl fmt::Debug for PresentGravityFlagsKHR { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[ - (PresentGravityFlagsEXT::MIN.0, "MIN"), - (PresentGravityFlagsEXT::MAX.0, "MAX"), - (PresentGravityFlagsEXT::CENTERED.0, "CENTERED"), + (PresentGravityFlagsKHR::MIN.0, "MIN"), + (PresentGravityFlagsKHR::MAX.0, "MAX"), + (PresentGravityFlagsKHR::CENTERED.0, "CENTERED"), ]; debug_flags(f, KNOWN, self.0) } @@ -4359,6 +4838,7 @@ impl fmt::Debug for PresentModeKHR { Self::FIFO_RELAXED => Some("FIFO_RELAXED"), Self::SHARED_DEMAND_REFRESH => Some("SHARED_DEMAND_REFRESH"), Self::SHARED_CONTINUOUS_REFRESH => Some("SHARED_CONTINUOUS_REFRESH"), + Self::FIFO_LATEST_READY => Some("FIFO_LATEST_READY"), _ => None, }; if let Some(x) = name { @@ -4368,15 +4848,15 @@ impl fmt::Debug for PresentModeKHR { } } } -impl fmt::Debug for PresentScalingFlagsEXT { +impl fmt::Debug for PresentScalingFlagsKHR { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[ - (PresentScalingFlagsEXT::ONE_TO_ONE.0, "ONE_TO_ONE"), + (PresentScalingFlagsKHR::ONE_TO_ONE.0, "ONE_TO_ONE"), ( - PresentScalingFlagsEXT::ASPECT_RATIO_STRETCH.0, + PresentScalingFlagsKHR::ASPECT_RATIO_STRETCH.0, "ASPECT_RATIO_STRETCH", ), - (PresentScalingFlagsEXT::STRETCH.0, "STRETCH"), + (PresentScalingFlagsKHR::STRETCH.0, "STRETCH"), ]; debug_flags(f, KNOWN, self.0) } @@ -4495,7 +4975,7 @@ impl fmt::Debug for QueryPipelineStatisticFlags { } impl fmt::Debug for QueryPoolCreateFlags { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - const KNOWN: &[(Flags, &str)] = &[]; + const KNOWN: &[(Flags, &str)] = &[(QueryPoolCreateFlags::RESET_KHR.0, "RESET_KHR")]; debug_flags(f, KNOWN, self.0) } } @@ -4587,12 +5067,13 @@ impl fmt::Debug for QueueFlags { (QueueFlags::VIDEO_DECODE_KHR.0, "VIDEO_DECODE_KHR"), (QueueFlags::VIDEO_ENCODE_KHR.0, "VIDEO_ENCODE_KHR"), (QueueFlags::OPTICAL_FLOW_NV.0, "OPTICAL_FLOW_NV"), + (QueueFlags::DATA_GRAPH_ARM.0, "DATA_GRAPH_ARM"), (QueueFlags::PROTECTED.0, "PROTECTED"), ]; debug_flags(f, KNOWN, self.0) } } -impl fmt::Debug for QueueGlobalPriorityKHR { +impl fmt::Debug for QueueGlobalPriority { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { Self::LOW => Some("LOW"), @@ -4636,6 +5117,34 @@ impl fmt::Debug for RayTracingInvocationReorderModeNV { } } } +impl fmt::Debug for RayTracingLssIndexingModeNV { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::LIST => Some("LIST"), + Self::SUCCESSIVE => Some("SUCCESSIVE"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} +impl fmt::Debug for RayTracingLssPrimitiveEndCapsModeNV { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::NONE => Some("NONE"), + Self::CHAINED => Some("CHAINED"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} impl fmt::Debug for RayTracingShaderGroupTypeKHR { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { @@ -4653,8 +5162,13 @@ impl fmt::Debug for RayTracingShaderGroupTypeKHR { } impl fmt::Debug for RenderPassCreateFlags { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - const KNOWN: &[(Flags, &str)] = - &[(RenderPassCreateFlags::TRANSFORM_QCOM.0, "TRANSFORM_QCOM")]; + const KNOWN: &[(Flags, &str)] = &[ + (RenderPassCreateFlags::TRANSFORM_QCOM.0, "TRANSFORM_QCOM"), + ( + RenderPassCreateFlags::PER_LAYER_FRAGMENT_DENSITY_VALVE.0, + "PER_LAYER_FRAGMENT_DENSITY_VALVE", + ), + ]; debug_flags(f, KNOWN, self.0) } } @@ -4672,6 +5186,10 @@ impl fmt::Debug for RenderingFlags { "ENABLE_LEGACY_DITHERING_EXT", ), (RenderingFlags::CONTENTS_INLINE_KHR.0, "CONTENTS_INLINE_KHR"), + ( + RenderingFlags::PER_LAYER_FRAGMENT_DENSITY_VALVE.0, + "PER_LAYER_FRAGMENT_DENSITY_VALVE", + ), ]; debug_flags(f, KNOWN, self.0) } @@ -5254,6 +5772,9 @@ impl fmt::Debug for StructureType { Self::CU_MODULE_CREATE_INFO_NVX => Some("CU_MODULE_CREATE_INFO_NVX"), Self::CU_FUNCTION_CREATE_INFO_NVX => Some("CU_FUNCTION_CREATE_INFO_NVX"), Self::CU_LAUNCH_INFO_NVX => Some("CU_LAUNCH_INFO_NVX"), + Self::CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX => { + Some("CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX") + } Self::IMAGE_VIEW_HANDLE_INFO_NVX => Some("IMAGE_VIEW_HANDLE_INFO_NVX"), Self::IMAGE_VIEW_ADDRESS_PROPERTIES_NVX => Some("IMAGE_VIEW_ADDRESS_PROPERTIES_NVX"), Self::VIDEO_ENCODE_H264_CAPABILITIES_KHR => Some("VIDEO_ENCODE_H264_CAPABILITIES_KHR"), @@ -5343,16 +5864,6 @@ impl fmt::Debug for StructureType { Self::TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD => { Some("TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD") } - Self::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR => { - Some("RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR") - } - Self::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT => { - Some("RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT") - } - Self::ATTACHMENT_SAMPLE_COUNT_INFO_AMD => Some("ATTACHMENT_SAMPLE_COUNT_INFO_AMD"), - Self::MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX => { - Some("MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX") - } Self::STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP => { Some("STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP") } @@ -5374,15 +5885,6 @@ impl fmt::Debug for StructureType { Self::PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT => { Some("PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT") } - Self::PIPELINE_ROBUSTNESS_CREATE_INFO_EXT => { - Some("PIPELINE_ROBUSTNESS_CREATE_INFO_EXT") - } - Self::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT => { - Some("PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT") - } - Self::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT => { - Some("PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT") - } Self::IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR => { Some("IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR") } @@ -5409,9 +5911,6 @@ impl fmt::Debug for StructureType { } Self::IMPORT_SEMAPHORE_FD_INFO_KHR => Some("IMPORT_SEMAPHORE_FD_INFO_KHR"), Self::SEMAPHORE_GET_FD_INFO_KHR => Some("SEMAPHORE_GET_FD_INFO_KHR"), - Self::PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR => { - Some("PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR") - } Self::COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT => { Some("COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT") } @@ -5434,6 +5933,9 @@ impl fmt::Debug for StructureType { Self::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX => { Some("PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX") } + Self::MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX => { + Some("MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX") + } Self::PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV => { Some("PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV") } @@ -5535,6 +6037,10 @@ impl fmt::Debug for StructureType { Self::PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX => { Some("PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX") } + Self::ATTACHMENT_SAMPLE_COUNT_INFO_AMD => Some("ATTACHMENT_SAMPLE_COUNT_INFO_AMD"), + Self::PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR") + } Self::SAMPLE_LOCATIONS_INFO_EXT => Some("SAMPLE_LOCATIONS_INFO_EXT"), Self::RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT => { Some("RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT") @@ -5735,15 +6241,6 @@ impl fmt::Debug for StructureType { Self::VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR => { Some("VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR") } - Self::DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR => { - Some("DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR") - } - Self::PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR => { - Some("PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR") - } - Self::QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR => { - Some("QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR") - } Self::DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD => { Some("DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD") } @@ -5770,6 +6267,10 @@ impl fmt::Debug for StructureType { Self::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV => { Some("QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV") } + Self::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV => { + Some("QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV") + } + Self::CHECKPOINT_DATA_2_NV => Some("CHECKPOINT_DATA_2_NV"), Self::PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL => { Some("PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL") } @@ -5809,6 +6310,9 @@ impl fmt::Debug for StructureType { Self::RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT => { Some("RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT") } + Self::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT => { + Some("RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT") + } Self::FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR => { Some("FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR") } @@ -5824,21 +6328,15 @@ impl fmt::Debug for StructureType { Self::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR => { Some("PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR") } + Self::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR => { + Some("RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR") + } Self::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD => { Some("PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD") } Self::PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD => { Some("PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD") } - Self::PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR => { - Some("PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR") - } - Self::RENDERING_ATTACHMENT_LOCATION_INFO_KHR => { - Some("RENDERING_ATTACHMENT_LOCATION_INFO_KHR") - } - Self::RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR => { - Some("RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR") - } Self::PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT => { Some("PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT") } @@ -5923,26 +6421,6 @@ impl fmt::Debug for StructureType { Self::PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR => { Some("PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR") } - Self::PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT => { - Some("PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT") - } - Self::PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT => { - Some("PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT") - } - Self::MEMORY_TO_IMAGE_COPY_EXT => Some("MEMORY_TO_IMAGE_COPY_EXT"), - Self::IMAGE_TO_MEMORY_COPY_EXT => Some("IMAGE_TO_MEMORY_COPY_EXT"), - Self::COPY_IMAGE_TO_MEMORY_INFO_EXT => Some("COPY_IMAGE_TO_MEMORY_INFO_EXT"), - Self::COPY_MEMORY_TO_IMAGE_INFO_EXT => Some("COPY_MEMORY_TO_IMAGE_INFO_EXT"), - Self::HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT => { - Some("HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT") - } - Self::COPY_IMAGE_TO_IMAGE_INFO_EXT => Some("COPY_IMAGE_TO_IMAGE_INFO_EXT"), - Self::SUBRESOURCE_HOST_MEMCPY_SIZE_EXT => Some("SUBRESOURCE_HOST_MEMCPY_SIZE_EXT"), - Self::HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT => { - Some("HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT") - } - Self::MEMORY_MAP_INFO_KHR => Some("MEMORY_MAP_INFO_KHR"), - Self::MEMORY_UNMAP_INFO_KHR => Some("MEMORY_UNMAP_INFO_KHR"), Self::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT => { Some("PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT") } @@ -5953,25 +6431,6 @@ impl fmt::Debug for StructureType { Self::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT => { Some("PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT") } - Self::SURFACE_PRESENT_MODE_EXT => Some("SURFACE_PRESENT_MODE_EXT"), - Self::SURFACE_PRESENT_SCALING_CAPABILITIES_EXT => { - Some("SURFACE_PRESENT_SCALING_CAPABILITIES_EXT") - } - Self::SURFACE_PRESENT_MODE_COMPATIBILITY_EXT => { - Some("SURFACE_PRESENT_MODE_COMPATIBILITY_EXT") - } - Self::PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT => { - Some("PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT") - } - Self::SWAPCHAIN_PRESENT_FENCE_INFO_EXT => Some("SWAPCHAIN_PRESENT_FENCE_INFO_EXT"), - Self::SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT => { - Some("SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT") - } - Self::SWAPCHAIN_PRESENT_MODE_INFO_EXT => Some("SWAPCHAIN_PRESENT_MODE_INFO_EXT"), - Self::SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT => { - Some("SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT") - } - Self::RELEASE_SWAPCHAIN_IMAGES_INFO_EXT => Some("RELEASE_SWAPCHAIN_IMAGES_INFO_EXT"), Self::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV => { Some("PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV") } @@ -6021,12 +6480,6 @@ impl fmt::Debug for StructureType { Self::DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT => { Some("DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT") } - Self::PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT => { - Some("PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT") - } - Self::PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT => { - Some("PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT") - } Self::SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT => { Some("SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT") } @@ -6090,6 +6543,18 @@ impl fmt::Debug for StructureType { Self::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV => { Some("PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV") } + Self::PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM => { + Some("PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM") + } + Self::PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM => { + Some("PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM") + } + Self::RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM => { + Some("RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM") + } + Self::PER_TILE_BEGIN_INFO_QCOM => Some("PER_TILE_BEGIN_INFO_QCOM"), + Self::PER_TILE_END_INFO_QCOM => Some("PER_TILE_END_INFO_QCOM"), + Self::DISPATCH_TILE_INFO_QCOM => Some("DISPATCH_TILE_INFO_QCOM"), Self::QUERY_LOW_LATENCY_SUPPORT_NV => Some("QUERY_LOW_LATENCY_SUPPORT_NV"), Self::EXPORT_METAL_OBJECT_CREATE_INFO_EXT => { Some("EXPORT_METAL_OBJECT_CREATE_INFO_EXT") @@ -6107,10 +6572,6 @@ impl fmt::Debug for StructureType { Self::IMPORT_METAL_IO_SURFACE_INFO_EXT => Some("IMPORT_METAL_IO_SURFACE_INFO_EXT"), Self::EXPORT_METAL_SHARED_EVENT_INFO_EXT => Some("EXPORT_METAL_SHARED_EVENT_INFO_EXT"), Self::IMPORT_METAL_SHARED_EVENT_INFO_EXT => Some("IMPORT_METAL_SHARED_EVENT_INFO_EXT"), - Self::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV => { - Some("QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV") - } - Self::CHECKPOINT_DATA_2_NV => Some("CHECKPOINT_DATA_2_NV"), Self::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT => { Some("PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT") } @@ -6333,6 +6794,21 @@ impl fmt::Debug for StructureType { Self::PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR => { Some("PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR") } + Self::PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR") + } + Self::PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE => { + Some("PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE") + } + Self::VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE => { + Some("VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE") + } + Self::VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE => { + Some("VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE") + } + Self::VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE => { + Some("VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE") + } Self::PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT => { Some("PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT") } @@ -6398,9 +6874,6 @@ impl fmt::Debug for StructureType { Self::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM => { Some("PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM") } - Self::PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR => { - Some("PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR") - } Self::DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM => { Some("DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM") } @@ -6423,9 +6896,6 @@ impl fmt::Debug for StructureType { Self::DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE => { Some("DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE") } - Self::PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT => { - Some("PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT") - } Self::PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT => { Some("PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT") } @@ -6438,21 +6908,9 @@ impl fmt::Debug for StructureType { Self::RENDER_PASS_STRIPE_BEGIN_INFO_ARM => Some("RENDER_PASS_STRIPE_BEGIN_INFO_ARM"), Self::RENDER_PASS_STRIPE_INFO_ARM => Some("RENDER_PASS_STRIPE_INFO_ARM"), Self::RENDER_PASS_STRIPE_SUBMIT_INFO_ARM => Some("RENDER_PASS_STRIPE_SUBMIT_INFO_ARM"), - Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM => { - Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM") - } - Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM => { - Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM") - } - Self::SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM => { - Some("SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM") - } Self::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV => { Some("PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV") } - Self::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV => { - Some("PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV") - } Self::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV => { Some("PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV") } @@ -6468,6 +6926,15 @@ impl fmt::Debug for StructureType { Self::PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV => { Some("PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV") } + Self::PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV => { + Some("PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV") + } + Self::ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV => { + Some("ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV") + } + Self::ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV => { + Some("ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV") + } Self::PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV => { Some("PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV") } @@ -6513,6 +6980,52 @@ impl fmt::Debug for StructureType { } Self::DIRECT_DRIVER_LOADING_INFO_LUNARG => Some("DIRECT_DRIVER_LOADING_INFO_LUNARG"), Self::DIRECT_DRIVER_LOADING_LIST_LUNARG => Some("DIRECT_DRIVER_LOADING_LIST_LUNARG"), + Self::TENSOR_CREATE_INFO_ARM => Some("TENSOR_CREATE_INFO_ARM"), + Self::TENSOR_VIEW_CREATE_INFO_ARM => Some("TENSOR_VIEW_CREATE_INFO_ARM"), + Self::BIND_TENSOR_MEMORY_INFO_ARM => Some("BIND_TENSOR_MEMORY_INFO_ARM"), + Self::WRITE_DESCRIPTOR_SET_TENSOR_ARM => Some("WRITE_DESCRIPTOR_SET_TENSOR_ARM"), + Self::PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM => { + Some("PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM") + } + Self::TENSOR_FORMAT_PROPERTIES_ARM => Some("TENSOR_FORMAT_PROPERTIES_ARM"), + Self::TENSOR_DESCRIPTION_ARM => Some("TENSOR_DESCRIPTION_ARM"), + Self::TENSOR_MEMORY_REQUIREMENTS_INFO_ARM => { + Some("TENSOR_MEMORY_REQUIREMENTS_INFO_ARM") + } + Self::TENSOR_MEMORY_BARRIER_ARM => Some("TENSOR_MEMORY_BARRIER_ARM"), + Self::PHYSICAL_DEVICE_TENSOR_FEATURES_ARM => { + Some("PHYSICAL_DEVICE_TENSOR_FEATURES_ARM") + } + Self::DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM => { + Some("DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM") + } + Self::COPY_TENSOR_INFO_ARM => Some("COPY_TENSOR_INFO_ARM"), + Self::TENSOR_COPY_ARM => Some("TENSOR_COPY_ARM"), + Self::TENSOR_DEPENDENCY_INFO_ARM => Some("TENSOR_DEPENDENCY_INFO_ARM"), + Self::MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM => { + Some("MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM") + } + Self::PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM => { + Some("PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM") + } + Self::EXTERNAL_TENSOR_PROPERTIES_ARM => Some("EXTERNAL_TENSOR_PROPERTIES_ARM"), + Self::EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM => { + Some("EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM") + } + Self::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM => { + Some("PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM") + } + Self::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM => { + Some("PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM") + } + Self::DESCRIPTOR_GET_TENSOR_INFO_ARM => Some("DESCRIPTOR_GET_TENSOR_INFO_ARM"), + Self::TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM => { + Some("TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM") + } + Self::TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM => { + Some("TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM") + } + Self::FRAME_BOUNDARY_TENSORS_ARM => Some("FRAME_BOUNDARY_TENSORS_ARM"), Self::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT => { Some("PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT") } @@ -6546,9 +7059,6 @@ impl fmt::Debug for StructureType { Self::PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT => { Some("PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT") } - Self::PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT => { - Some("PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT") - } Self::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID => { Some("PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID") } @@ -6558,27 +7068,31 @@ impl fmt::Debug for StructureType { Self::ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID => { Some("ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID") } - Self::PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR => { - Some("PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR") - } - Self::PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR => { - Some("PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR") - } - Self::RENDERING_AREA_INFO_KHR => Some("RENDERING_AREA_INFO_KHR"), - Self::DEVICE_IMAGE_SUBRESOURCE_INFO_KHR => Some("DEVICE_IMAGE_SUBRESOURCE_INFO_KHR"), - Self::SUBRESOURCE_LAYOUT_2_KHR => Some("SUBRESOURCE_LAYOUT_2_KHR"), - Self::IMAGE_SUBRESOURCE_2_KHR => Some("IMAGE_SUBRESOURCE_2_KHR"), - Self::PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR => { - Some("PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR") - } - 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_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX => { + Some("PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX") + } + Self::ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX => { + Some("ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX") + } + Self::SURFACE_CAPABILITIES_PRESENT_ID_2_KHR => { + Some("SURFACE_CAPABILITIES_PRESENT_ID_2_KHR") + } + Self::PRESENT_ID_2_KHR => Some("PRESENT_ID_2_KHR"), + Self::PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR") + } + Self::SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR => { + Some("SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR") + } + Self::PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR") + } + Self::PRESENT_WAIT_2_INFO_KHR => Some("PRESENT_WAIT_2_INFO_KHR"), Self::PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR => { Some("PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR") } @@ -6615,15 +7129,44 @@ impl fmt::Debug for StructureType { Some("PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC") } Self::AMIGO_PROFILING_SUBMIT_INFO_SEC => Some("AMIGO_PROFILING_SUBMIT_INFO_SEC"), - Self::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM => { - Some("PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM") + Self::SURFACE_PRESENT_MODE_KHR => Some("SURFACE_PRESENT_MODE_KHR"), + Self::SURFACE_PRESENT_SCALING_CAPABILITIES_KHR => { + Some("SURFACE_PRESENT_SCALING_CAPABILITIES_KHR") } - Self::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV => { + Self::SURFACE_PRESENT_MODE_COMPATIBILITY_KHR => { + Some("SURFACE_PRESENT_MODE_COMPATIBILITY_KHR") + } + Self::PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR") + } + Self::SWAPCHAIN_PRESENT_FENCE_INFO_KHR => Some("SWAPCHAIN_PRESENT_FENCE_INFO_KHR"), + Self::SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR => { + Some("SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR") + } + Self::SWAPCHAIN_PRESENT_MODE_INFO_KHR => Some("SWAPCHAIN_PRESENT_MODE_INFO_KHR"), + Self::SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR => { + Some("SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR") + } + Self::RELEASE_SWAPCHAIN_IMAGES_INFO_KHR => Some("RELEASE_SWAPCHAIN_IMAGES_INFO_KHR"), + Self::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM => { + Some("PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM") + } + Self::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV => { Some("PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV") } Self::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV => { Some("PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV") } + Self::PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV => { + Some("PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV") + } + Self::PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV => { + Some("PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV") + } + Self::COOPERATIVE_VECTOR_PROPERTIES_NV => Some("COOPERATIVE_VECTOR_PROPERTIES_NV"), + Self::CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV => { + Some("CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV") + } Self::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV => { Some("PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV") } @@ -6671,6 +7214,62 @@ impl fmt::Debug for StructureType { Self::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR => { Some("PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR") } + Self::DATA_GRAPH_PIPELINE_CREATE_INFO_ARM => { + Some("DATA_GRAPH_PIPELINE_CREATE_INFO_ARM") + } + Self::DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM => { + Some("DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM") + } + Self::DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM => { + Some("DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM") + } + Self::DATA_GRAPH_PIPELINE_CONSTANT_ARM => Some("DATA_GRAPH_PIPELINE_CONSTANT_ARM"), + Self::DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM => { + Some("DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM") + } + Self::BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM => { + Some("BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM") + } + Self::PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM => { + Some("PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM") + } + Self::DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM => { + Some("DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM") + } + Self::DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM => { + Some("DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM") + } + Self::DATA_GRAPH_PIPELINE_INFO_ARM => Some("DATA_GRAPH_PIPELINE_INFO_ARM"), + Self::DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM => { + Some("DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM") + } + Self::DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM => { + Some("DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM") + } + Self::DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM => { + Some("DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM") + } + Self::DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM => { + Some("DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM") + } + Self::DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM => { + Some("DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM") + } + Self::DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM => { + Some("DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM") + } + Self::QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM => { + Some("QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM") + } + Self::QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM => { + Some("QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM") + } + Self::PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM => { + Some("PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM") + } + Self::DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM => { + Some("DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM") + } Self::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM => { Some("PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM") } @@ -6690,6 +7289,37 @@ impl fmt::Debug for StructureType { Some("VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR") } Self::VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR => Some("VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR"), + Self::VIDEO_ENCODE_AV1_CAPABILITIES_KHR => Some("VIDEO_ENCODE_AV1_CAPABILITIES_KHR"), + Self::VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR => { + Some("VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR") + } + Self::VIDEO_ENCODE_AV1_PICTURE_INFO_KHR => Some("VIDEO_ENCODE_AV1_PICTURE_INFO_KHR"), + Self::VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR => Some("VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR"), + Self::PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR") + } + Self::VIDEO_ENCODE_AV1_PROFILE_INFO_KHR => Some("VIDEO_ENCODE_AV1_PROFILE_INFO_KHR"), + Self::VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR => { + Some("VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR") + } + Self::VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR => { + Some("VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR") + } + Self::VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR => { + Some("VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR") + } + Self::VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR => { + Some("VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR") + } + Self::VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR => { + Some("VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR") + } + Self::PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR") + } + Self::VIDEO_DECODE_VP9_CAPABILITIES_KHR => Some("VIDEO_DECODE_VP9_CAPABILITIES_KHR"), + Self::VIDEO_DECODE_VP9_PICTURE_INFO_KHR => Some("VIDEO_DECODE_VP9_PICTURE_INFO_KHR"), + Self::VIDEO_DECODE_VP9_PROFILE_INFO_KHR => Some("VIDEO_DECODE_VP9_PROFILE_INFO_KHR"), Self::PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR => { Some("PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR") } @@ -6725,18 +7355,10 @@ impl fmt::Debug for StructureType { Self::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT => { Some("PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT") } - Self::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR => { - Some("PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR") - } - Self::PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR => { - Some("PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR") - } - Self::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR => { - Some("PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR") - } - Self::PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR => { - Some("PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR") + Self::PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR") } + Self::ATTACHMENT_FEEDBACK_LOOP_INFO_EXT => Some("ATTACHMENT_FEEDBACK_LOOP_INFO_EXT"), Self::SCREEN_BUFFER_PROPERTIES_QNX => Some("SCREEN_BUFFER_PROPERTIES_QNX"), Self::SCREEN_BUFFER_FORMAT_PROPERTIES_QNX => { Some("SCREEN_BUFFER_FORMAT_PROPERTIES_QNX") @@ -6749,47 +7371,99 @@ impl fmt::Debug for StructureType { Self::PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT => { Some("PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT") } - Self::PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR => { - Some("PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR") + Self::CALIBRATED_TIMESTAMP_INFO_KHR => Some("CALIBRATED_TIMESTAMP_INFO_KHR"), + Self::SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT => { + Some("SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT") } - Self::PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR => { - Some("PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR") + Self::BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT => { + Some("BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT") } - Self::PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR => { - Some("PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR") + Self::PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV => { + Some("PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV") } - Self::PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR => { - Some("PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR") + Self::PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM => { + Some("PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM") } - Self::CALIBRATED_TIMESTAMP_INFO_KHR => Some("CALIBRATED_TIMESTAMP_INFO_KHR"), - Self::PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR => { - Some("PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR") + Self::PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM => { + Some("PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM") } - Self::PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR => { - Some("PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR") + Self::TILE_MEMORY_REQUIREMENTS_QCOM => Some("TILE_MEMORY_REQUIREMENTS_QCOM"), + Self::TILE_MEMORY_BIND_INFO_QCOM => Some("TILE_MEMORY_BIND_INFO_QCOM"), + Self::TILE_MEMORY_SIZE_INFO_QCOM => Some("TILE_MEMORY_SIZE_INFO_QCOM"), + Self::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR") } - Self::PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR => { - Some("PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR") + Self::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR => { + Some("PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR") } - Self::BIND_MEMORY_STATUS_KHR => Some("BIND_MEMORY_STATUS_KHR"), - Self::BIND_DESCRIPTOR_SETS_INFO_KHR => Some("BIND_DESCRIPTOR_SETS_INFO_KHR"), - Self::PUSH_CONSTANTS_INFO_KHR => Some("PUSH_CONSTANTS_INFO_KHR"), - Self::PUSH_DESCRIPTOR_SET_INFO_KHR => Some("PUSH_DESCRIPTOR_SET_INFO_KHR"), - Self::PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR => { - Some("PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR") + Self::COPY_MEMORY_INDIRECT_INFO_KHR => Some("COPY_MEMORY_INDIRECT_INFO_KHR"), + Self::COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR => { + Some("COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR") } - Self::SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT => { - Some("SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT") + Self::DISPLAY_SURFACE_STEREO_CREATE_INFO_NV => { + Some("DISPLAY_SURFACE_STEREO_CREATE_INFO_NV") } - Self::BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT => { - Some("BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT") + Self::DISPLAY_MODE_STEREO_PROPERTIES_NV => Some("DISPLAY_MODE_STEREO_PROPERTIES_NV"), + Self::VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR => { + Some("VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR") } - Self::PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV => { - Some("PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV") + Self::VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR => { + Some("VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR") + } + Self::VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR => { + Some("VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR") + } + Self::VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR => { + Some("VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR") + } + Self::PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR") + } + Self::VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR => { + Some("VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR") + } + Self::VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR => { + Some("VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR") + } + Self::VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR => { + Some("VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR") + } + Self::VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR => { + Some("VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR") + } + Self::PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR") + } + Self::VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR => { + Some("VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR") + } + Self::VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR => { + Some("VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR") + } + Self::VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR => { + Some("VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR") + } + Self::VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR => { + Some("VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR") + } + Self::VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR => { + Some("VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR") } Self::PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV => { Some("PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV") } + Self::EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV => { + Some("EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV") + } + Self::EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV => { + Some("EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV") + } + Self::EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV => { + Some("EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV") + } + Self::PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV => { + Some("PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV") + } Self::PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR => { Some("PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR") } @@ -6817,9 +7491,54 @@ impl fmt::Debug for StructureType { Self::PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT => { Some("PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT") } + Self::PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT => { + Some("PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT") + } Self::PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV => { Some("PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV") } + Self::PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV => { + Some("PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV") + } + Self::PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV => { + Some("PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV") + } + Self::CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV => { + Some("CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV") + } + Self::CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV => { + Some("CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV") + } + Self::CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV => { + Some("CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV") + } + Self::CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV => { + Some("CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV") + } + Self::CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV => { + Some("CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV") + } + Self::RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV => { + Some("RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV") + } + Self::PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV => { + Some("PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV") + } + Self::PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV => { + Some("PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV") + } + Self::WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV => { + Some("WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV") + } + Self::PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV => { + Some("PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV") + } + Self::BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV => { + Some("BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV") + } + Self::PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV => { + Some("PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV") + } Self::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT => { Some("PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT") } @@ -6856,6 +7575,10 @@ impl fmt::Debug for StructureType { Some("GENERATED_COMMANDS_PIPELINE_INFO_EXT") } Self::GENERATED_COMMANDS_SHADER_INFO_EXT => Some("GENERATED_COMMANDS_SHADER_INFO_EXT"), + Self::PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR") + } + Self::MEMORY_BARRIER_ACCESS_FLAGS_3_KHR => Some("MEMORY_BARRIER_ACCESS_FLAGS_3_KHR"), Self::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA => { Some("PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA") } @@ -6865,12 +7588,105 @@ impl fmt::Debug for StructureType { Self::IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA => { Some("IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA") } + Self::PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR") + } 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_MAINTENANCE_9_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR") + } + Self::PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR => { + Some("PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR") + } + Self::QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR => { + Some("QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR") + } + Self::PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR") + } + Self::VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR => { + Some("VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR") + } + Self::VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR => { + Some("VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR") + } + Self::VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR => { + Some("VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR") + } + Self::SURFACE_CREATE_INFO_OHOS => Some("SURFACE_CREATE_INFO_OHOS"), + Self::PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI => { + Some("PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI") + } + Self::HDR_VIVID_DYNAMIC_METADATA_HUAWEI => Some("HDR_VIVID_DYNAMIC_METADATA_HUAWEI"), + Self::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV => { + Some("PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV") + } + Self::COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV => { + Some("COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV") + } + Self::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV => { + Some("PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV") + } + Self::PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM => { + Some("PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM") + } + Self::IMPORT_MEMORY_METAL_HANDLE_INFO_EXT => { + Some("IMPORT_MEMORY_METAL_HANDLE_INFO_EXT") + } + Self::MEMORY_METAL_HANDLE_PROPERTIES_EXT => Some("MEMORY_METAL_HANDLE_PROPERTIES_EXT"), + Self::MEMORY_GET_METAL_HANDLE_INFO_EXT => Some("MEMORY_GET_METAL_HANDLE_INFO_EXT"), + Self::PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR") + } + Self::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT => { + Some("PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT") + } + Self::PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM => { + Some("PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM") + } + Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE => { + Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE") + } + Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE => { + Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE") + } + Self::PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE => { + Some("PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE") + } + Self::PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR") + } + Self::PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR => { + Some("PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR") + } + Self::SET_PRESENT_CONFIG_NV => Some("SET_PRESENT_CONFIG_NV"), + Self::PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV => { + Some("PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV") + } + Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT => { + Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT") + } + Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT => { + Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT") + } + Self::RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT => { + Some("RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT") + } + Self::RENDERING_END_INFO_EXT => Some("RENDERING_END_INFO_EXT"), + Self::PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT => { + Some("PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT") + } + Self::PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR => { + Some("PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR") + } + Self::PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC => { + Some("PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC") + } Self::PHYSICAL_DEVICE_SUBGROUP_PROPERTIES => { Some("PHYSICAL_DEVICE_SUBGROUP_PROPERTIES") } @@ -7208,6 +8024,116 @@ impl fmt::Debug for StructureType { } Self::DEVICE_BUFFER_MEMORY_REQUIREMENTS => Some("DEVICE_BUFFER_MEMORY_REQUIREMENTS"), Self::DEVICE_IMAGE_MEMORY_REQUIREMENTS => Some("DEVICE_IMAGE_MEMORY_REQUIREMENTS"), + Self::PHYSICAL_DEVICE_VULKAN_1_4_FEATURES => { + Some("PHYSICAL_DEVICE_VULKAN_1_4_FEATURES") + } + Self::PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES => { + Some("PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES") + } + Self::DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO => { + Some("DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO") + } + Self::PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES => { + Some("PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES") + } + Self::QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES => { + Some("QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES") + } + Self::PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES => { + Some("PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES") + } + Self::PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES => { + Some("PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES") + } + Self::PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES => { + Some("PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES") + } + Self::PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES => { + Some("PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES") + } + Self::PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO => { + Some("PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO") + } + Self::PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES => { + Some("PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES") + } + Self::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES => { + Some("PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES") + } + Self::PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO => { + Some("PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO") + } + Self::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES => { + Some("PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES") + } + Self::PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES => { + Some("PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES") + } + Self::MEMORY_MAP_INFO => Some("MEMORY_MAP_INFO"), + Self::MEMORY_UNMAP_INFO => Some("MEMORY_UNMAP_INFO"), + Self::PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES => { + Some("PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES") + } + Self::PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES => { + Some("PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES") + } + Self::RENDERING_AREA_INFO => Some("RENDERING_AREA_INFO"), + Self::DEVICE_IMAGE_SUBRESOURCE_INFO => Some("DEVICE_IMAGE_SUBRESOURCE_INFO"), + Self::SUBRESOURCE_LAYOUT_2 => Some("SUBRESOURCE_LAYOUT_2"), + Self::IMAGE_SUBRESOURCE_2 => Some("IMAGE_SUBRESOURCE_2"), + Self::PIPELINE_CREATE_FLAGS_2_CREATE_INFO => { + Some("PIPELINE_CREATE_FLAGS_2_CREATE_INFO") + } + Self::BUFFER_USAGE_FLAGS_2_CREATE_INFO => Some("BUFFER_USAGE_FLAGS_2_CREATE_INFO"), + Self::PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES => { + Some("PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES") + } + Self::PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES => { + Some("PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES") + } + Self::RENDERING_ATTACHMENT_LOCATION_INFO => Some("RENDERING_ATTACHMENT_LOCATION_INFO"), + Self::RENDERING_INPUT_ATTACHMENT_INDEX_INFO => { + Some("RENDERING_INPUT_ATTACHMENT_INDEX_INFO") + } + Self::PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES => { + Some("PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES") + } + Self::PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES => { + Some("PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES") + } + Self::BIND_MEMORY_STATUS => Some("BIND_MEMORY_STATUS"), + Self::BIND_DESCRIPTOR_SETS_INFO => Some("BIND_DESCRIPTOR_SETS_INFO"), + Self::PUSH_CONSTANTS_INFO => Some("PUSH_CONSTANTS_INFO"), + Self::PUSH_DESCRIPTOR_SET_INFO => Some("PUSH_DESCRIPTOR_SET_INFO"), + Self::PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO => { + Some("PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO") + } + Self::PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES => { + Some("PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES") + } + Self::PIPELINE_ROBUSTNESS_CREATE_INFO => Some("PIPELINE_ROBUSTNESS_CREATE_INFO"), + Self::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES => { + Some("PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES") + } + Self::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES => { + Some("PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES") + } + Self::PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES => { + Some("PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES") + } + Self::PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES => { + Some("PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES") + } + Self::MEMORY_TO_IMAGE_COPY => Some("MEMORY_TO_IMAGE_COPY"), + Self::IMAGE_TO_MEMORY_COPY => Some("IMAGE_TO_MEMORY_COPY"), + Self::COPY_IMAGE_TO_MEMORY_INFO => Some("COPY_IMAGE_TO_MEMORY_INFO"), + Self::COPY_MEMORY_TO_IMAGE_INFO => Some("COPY_MEMORY_TO_IMAGE_INFO"), + Self::HOST_IMAGE_LAYOUT_TRANSITION_INFO => Some("HOST_IMAGE_LAYOUT_TRANSITION_INFO"), + Self::COPY_IMAGE_TO_IMAGE_INFO => Some("COPY_IMAGE_TO_IMAGE_INFO"), + Self::SUBRESOURCE_HOST_MEMCPY_SIZE => Some("SUBRESOURCE_HOST_MEMCPY_SIZE"), + Self::HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY => { + Some("HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY") + } _ => None, }; if let Some(x) = name { @@ -7229,11 +8155,8 @@ impl fmt::Debug for SubgroupFeatureFlags { (SubgroupFeatureFlags::CLUSTERED.0, "CLUSTERED"), (SubgroupFeatureFlags::QUAD.0, "QUAD"), (SubgroupFeatureFlags::PARTITIONED_NV.0, "PARTITIONED_NV"), - (SubgroupFeatureFlags::ROTATE_KHR.0, "ROTATE_KHR"), - ( - SubgroupFeatureFlags::ROTATE_CLUSTERED_KHR.0, - "ROTATE_CLUSTERED_KHR", - ), + (SubgroupFeatureFlags::ROTATE.0, "ROTATE"), + (SubgroupFeatureFlags::ROTATE_CLUSTERED.0, "ROTATE_CLUSTERED"), ]; debug_flags(f, KNOWN, self.0) } @@ -7280,6 +8203,10 @@ impl fmt::Debug for SubpassDescriptionFlags { SubpassDescriptionFlags::SHADER_RESOLVE_QCOM.0, "SHADER_RESOLVE_QCOM", ), + ( + SubpassDescriptionFlags::TILE_SHADING_APRON_QCOM.0, + "TILE_SHADING_APRON_QCOM", + ), ( SubpassDescriptionFlags::RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_EXT.0, "RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_EXT", @@ -7336,6 +8263,12 @@ impl fmt::Debug for SurfaceCounterFlagsEXT { debug_flags(f, KNOWN, self.0) } } +impl fmt::Debug for SurfaceCreateFlagsOHOS { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags, &str)] = &[]; + debug_flags(f, KNOWN, self.0) + } +} impl fmt::Debug for SurfaceTransformFlagsKHR { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[ @@ -7373,9 +8306,11 @@ impl fmt::Debug for SwapchainCreateFlagsKHR { ), (SwapchainCreateFlagsKHR::PROTECTED.0, "PROTECTED"), (SwapchainCreateFlagsKHR::MUTABLE_FORMAT.0, "MUTABLE_FORMAT"), + (SwapchainCreateFlagsKHR::PRESENT_ID_2.0, "PRESENT_ID_2"), + (SwapchainCreateFlagsKHR::PRESENT_WAIT_2.0, "PRESENT_WAIT_2"), ( - SwapchainCreateFlagsKHR::DEFERRED_MEMORY_ALLOCATION_EXT.0, - "DEFERRED_MEMORY_ALLOCATION_EXT", + SwapchainCreateFlagsKHR::DEFERRED_MEMORY_ALLOCATION.0, + "DEFERRED_MEMORY_ALLOCATION", ), ]; debug_flags(f, KNOWN, self.0) @@ -7404,6 +8339,54 @@ impl fmt::Debug for SystemAllocationScope { } } } +impl fmt::Debug for TensorCreateFlagsARM { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags64, &str)] = &[ + (TensorCreateFlagsARM::MUTABLE_FORMAT.0, "MUTABLE_FORMAT"), + (TensorCreateFlagsARM::PROTECTED.0, "PROTECTED"), + ( + TensorCreateFlagsARM::DESCRIPTOR_BUFFER_CAPTURE_REPLAY.0, + "DESCRIPTOR_BUFFER_CAPTURE_REPLAY", + ), + ]; + debug_flags(f, KNOWN, self.0) + } +} +impl fmt::Debug for TensorTilingARM { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::OPTIMAL => Some("OPTIMAL"), + Self::LINEAR => Some("LINEAR"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} +impl fmt::Debug for TensorUsageFlagsARM { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags64, &str)] = &[ + (TensorUsageFlagsARM::SHADER.0, "SHADER"), + (TensorUsageFlagsARM::TRANSFER_SRC.0, "TRANSFER_SRC"), + (TensorUsageFlagsARM::TRANSFER_DST.0, "TRANSFER_DST"), + (TensorUsageFlagsARM::IMAGE_ALIASING.0, "IMAGE_ALIASING"), + (TensorUsageFlagsARM::DATA_GRAPH.0, "DATA_GRAPH"), + ]; + debug_flags(f, KNOWN, self.0) + } +} +impl fmt::Debug for TensorViewCreateFlagsARM { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags64, &str)] = &[( + TensorViewCreateFlagsARM::DESCRIPTOR_BUFFER_CAPTURE_REPLAY.0, + "DESCRIPTOR_BUFFER_CAPTURE_REPLAY", + )]; + debug_flags(f, KNOWN, self.0) + } +} impl fmt::Debug for TessellationDomainOrigin { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { @@ -7418,6 +8401,18 @@ impl fmt::Debug for TessellationDomainOrigin { } } } +impl fmt::Debug for TileShadingRenderPassFlagsQCOM { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags, &str)] = &[ + (TileShadingRenderPassFlagsQCOM::ENABLE.0, "ENABLE"), + ( + TileShadingRenderPassFlagsQCOM::PER_TILE_EXECUTION.0, + "PER_TILE_EXECUTION", + ), + ]; + debug_flags(f, KNOWN, self.0) + } +} impl fmt::Debug for TimeDomainKHR { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { @@ -7606,6 +8601,8 @@ impl fmt::Debug for VideoCodecOperationFlagsKHR { (VideoCodecOperationFlagsKHR::DECODE_H264.0, "DECODE_H264"), (VideoCodecOperationFlagsKHR::DECODE_H265.0, "DECODE_H265"), (VideoCodecOperationFlagsKHR::DECODE_AV1.0, "DECODE_AV1"), + (VideoCodecOperationFlagsKHR::ENCODE_AV1.0, "ENCODE_AV1"), + (VideoCodecOperationFlagsKHR::DECODE_VP9.0, "DECODE_VP9"), ]; debug_flags(f, KNOWN, self.0) } @@ -7688,6 +8685,120 @@ impl fmt::Debug for VideoDecodeUsageFlagsKHR { debug_flags(f, KNOWN, self.0) } } +impl fmt::Debug for VideoEncodeAV1CapabilityFlagsKHR { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags, &str)] = &[ + ( + VideoEncodeAV1CapabilityFlagsKHR::PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX.0, + "PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX", + ), + ( + VideoEncodeAV1CapabilityFlagsKHR::GENERATE_OBU_EXTENSION_HEADER.0, + "GENERATE_OBU_EXTENSION_HEADER", + ), + ( + VideoEncodeAV1CapabilityFlagsKHR::PRIMARY_REFERENCE_CDF_ONLY.0, + "PRIMARY_REFERENCE_CDF_ONLY", + ), + ( + VideoEncodeAV1CapabilityFlagsKHR::FRAME_SIZE_OVERRIDE.0, + "FRAME_SIZE_OVERRIDE", + ), + ( + VideoEncodeAV1CapabilityFlagsKHR::MOTION_VECTOR_SCALING.0, + "MOTION_VECTOR_SCALING", + ), + ( + VideoEncodeAV1CapabilityFlagsKHR::COMPOUND_PREDICTION_INTRA_REFRESH.0, + "COMPOUND_PREDICTION_INTRA_REFRESH", + ), + ]; + debug_flags(f, KNOWN, self.0) + } +} +impl fmt::Debug for VideoEncodeAV1PredictionModeKHR { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::INTRA_ONLY => Some("INTRA_ONLY"), + Self::SINGLE_REFERENCE => Some("SINGLE_REFERENCE"), + Self::UNIDIRECTIONAL_COMPOUND => Some("UNIDIRECTIONAL_COMPOUND"), + Self::BIDIRECTIONAL_COMPOUND => Some("BIDIRECTIONAL_COMPOUND"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} +impl fmt::Debug for VideoEncodeAV1RateControlFlagsKHR { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags, &str)] = &[ + ( + VideoEncodeAV1RateControlFlagsKHR::REGULAR_GOP.0, + "REGULAR_GOP", + ), + ( + VideoEncodeAV1RateControlFlagsKHR::TEMPORAL_LAYER_PATTERN_DYADIC.0, + "TEMPORAL_LAYER_PATTERN_DYADIC", + ), + ( + VideoEncodeAV1RateControlFlagsKHR::REFERENCE_PATTERN_FLAT.0, + "REFERENCE_PATTERN_FLAT", + ), + ( + VideoEncodeAV1RateControlFlagsKHR::REFERENCE_PATTERN_DYADIC.0, + "REFERENCE_PATTERN_DYADIC", + ), + ]; + debug_flags(f, KNOWN, self.0) + } +} +impl fmt::Debug for VideoEncodeAV1RateControlGroupKHR { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = match *self { + Self::INTRA => Some("INTRA"), + Self::PREDICTIVE => Some("PREDICTIVE"), + Self::BIPREDICTIVE => Some("BIPREDICTIVE"), + _ => None, + }; + if let Some(x) = name { + f.write_str(x) + } else { + self.0.fmt(f) + } + } +} +impl fmt::Debug for VideoEncodeAV1StdFlagsKHR { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags, &str)] = &[ + ( + VideoEncodeAV1StdFlagsKHR::UNIFORM_TILE_SPACING_FLAG_SET.0, + "UNIFORM_TILE_SPACING_FLAG_SET", + ), + ( + VideoEncodeAV1StdFlagsKHR::SKIP_MODE_PRESENT_UNSET.0, + "SKIP_MODE_PRESENT_UNSET", + ), + ( + VideoEncodeAV1StdFlagsKHR::PRIMARY_REF_FRAME.0, + "PRIMARY_REF_FRAME", + ), + (VideoEncodeAV1StdFlagsKHR::DELTA_Q.0, "DELTA_Q"), + ]; + debug_flags(f, KNOWN, self.0) + } +} +impl fmt::Debug for VideoEncodeAV1SuperblockSizeFlagsKHR { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags, &str)] = &[ + (VideoEncodeAV1SuperblockSizeFlagsKHR::TYPE_64.0, "TYPE_64"), + (VideoEncodeAV1SuperblockSizeFlagsKHR::TYPE_128.0, "TYPE_128"), + ]; + debug_flags(f, KNOWN, self.0) + } +} impl fmt::Debug for VideoEncodeCapabilityFlagsKHR { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[ @@ -7699,6 +8810,14 @@ impl fmt::Debug for VideoEncodeCapabilityFlagsKHR { VideoEncodeCapabilityFlagsKHR::INSUFFICIENTSTREAM_BUFFER_RANGE_DETECTION.0, "INSUFFICIENTSTREAM_BUFFER_RANGE_DETECTION", ), + ( + VideoEncodeCapabilityFlagsKHR::QUANTIZATION_DELTA_MAP.0, + "QUANTIZATION_DELTA_MAP", + ), + ( + VideoEncodeCapabilityFlagsKHR::EMPHASIS_MAP.0, + "EMPHASIS_MAP", + ), ]; debug_flags(f, KNOWN, self.0) } @@ -7735,7 +8854,17 @@ impl fmt::Debug for VideoEncodeFeedbackFlagsKHR { } impl fmt::Debug for VideoEncodeFlagsKHR { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - const KNOWN: &[(Flags, &str)] = &[]; + const KNOWN: &[(Flags, &str)] = &[ + (VideoEncodeFlagsKHR::INTRA_REFRESH.0, "INTRA_REFRESH"), + ( + VideoEncodeFlagsKHR::WITH_QUANTIZATION_DELTA_MAP.0, + "WITH_QUANTIZATION_DELTA_MAP", + ), + ( + VideoEncodeFlagsKHR::WITH_EMPHASIS_MAP.0, + "WITH_EMPHASIS_MAP", + ), + ]; debug_flags(f, KNOWN, self.0) } } @@ -7778,6 +8907,14 @@ impl fmt::Debug for VideoEncodeH264CapabilityFlagsKHR { VideoEncodeH264CapabilityFlagsKHR::GENERATE_PREFIX_NALU.0, "GENERATE_PREFIX_NALU", ), + ( + VideoEncodeH264CapabilityFlagsKHR::B_PICTURE_INTRA_REFRESH.0, + "B_PICTURE_INTRA_REFRESH", + ), + ( + VideoEncodeH264CapabilityFlagsKHR::MB_QP_DIFF_WRAPAROUND.0, + "MB_QP_DIFF_WRAPAROUND", + ), ]; debug_flags(f, KNOWN, self.0) } @@ -7939,6 +9076,14 @@ impl fmt::Debug for VideoEncodeH265CapabilityFlagsKHR { VideoEncodeH265CapabilityFlagsKHR::MULTIPLE_SLICE_SEGMENTS_PER_TILE.0, "MULTIPLE_SLICE_SEGMENTS_PER_TILE", ), + ( + VideoEncodeH265CapabilityFlagsKHR::B_PICTURE_INTRA_REFRESH.0, + "B_PICTURE_INTRA_REFRESH", + ), + ( + VideoEncodeH265CapabilityFlagsKHR::CU_QP_DIFF_WRAPAROUND.0, + "CU_QP_DIFF_WRAPAROUND", + ), ]; debug_flags(f, KNOWN, self.0) } @@ -8094,6 +9239,30 @@ impl fmt::Debug for VideoEncodeH265TransformBlockSizeFlagsKHR { debug_flags(f, KNOWN, self.0) } } +impl fmt::Debug for VideoEncodeIntraRefreshModeFlagsKHR { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags, &str)] = &[ + (VideoEncodeIntraRefreshModeFlagsKHR::NONE.0, "NONE"), + ( + VideoEncodeIntraRefreshModeFlagsKHR::PER_PICTURE_PARTITION.0, + "PER_PICTURE_PARTITION", + ), + ( + VideoEncodeIntraRefreshModeFlagsKHR::BLOCK_BASED.0, + "BLOCK_BASED", + ), + ( + VideoEncodeIntraRefreshModeFlagsKHR::BLOCK_ROW_BASED.0, + "BLOCK_ROW_BASED", + ), + ( + VideoEncodeIntraRefreshModeFlagsKHR::BLOCK_COLUMN_BASED.0, + "BLOCK_COLUMN_BASED", + ), + ]; + debug_flags(f, KNOWN, self.0) + } +} impl fmt::Debug for VideoEncodeRateControlFlagsKHR { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { const KNOWN: &[(Flags, &str)] = &[]; @@ -8111,6 +9280,60 @@ impl fmt::Debug for VideoEncodeRateControlModeFlagsKHR { debug_flags(f, KNOWN, self.0) } } +impl fmt::Debug for VideoEncodeRgbChromaOffsetFlagsVALVE { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags, &str)] = &[ + ( + VideoEncodeRgbChromaOffsetFlagsVALVE::COSITED_EVEN.0, + "COSITED_EVEN", + ), + (VideoEncodeRgbChromaOffsetFlagsVALVE::MIDPOINT.0, "MIDPOINT"), + ]; + debug_flags(f, KNOWN, self.0) + } +} +impl fmt::Debug for VideoEncodeRgbModelConversionFlagsVALVE { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags, &str)] = &[ + ( + VideoEncodeRgbModelConversionFlagsVALVE::RGB_IDENTITY.0, + "RGB_IDENTITY", + ), + ( + VideoEncodeRgbModelConversionFlagsVALVE::YCBCR_IDENTITY.0, + "YCBCR_IDENTITY", + ), + ( + VideoEncodeRgbModelConversionFlagsVALVE::YCBCR_709.0, + "YCBCR_709", + ), + ( + VideoEncodeRgbModelConversionFlagsVALVE::YCBCR_601.0, + "YCBCR_601", + ), + ( + VideoEncodeRgbModelConversionFlagsVALVE::YCBCR_2020.0, + "YCBCR_2020", + ), + ]; + debug_flags(f, KNOWN, self.0) + } +} +impl fmt::Debug for VideoEncodeRgbRangeCompressionFlagsVALVE { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + const KNOWN: &[(Flags, &str)] = &[ + ( + VideoEncodeRgbRangeCompressionFlagsVALVE::FULL_RANGE.0, + "FULL_RANGE", + ), + ( + VideoEncodeRgbRangeCompressionFlagsVALVE::NARROW_RANGE.0, + "NARROW_RANGE", + ), + ]; + debug_flags(f, KNOWN, self.0) + } +} impl fmt::Debug for VideoEncodeTuningModeKHR { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { @@ -8161,13 +9384,28 @@ impl fmt::Debug for VideoSessionCreateFlagsKHR { VideoSessionCreateFlagsKHR::INLINE_QUERIES.0, "INLINE_QUERIES", ), + ( + VideoSessionCreateFlagsKHR::ALLOW_ENCODE_QUANTIZATION_DELTA_MAP.0, + "ALLOW_ENCODE_QUANTIZATION_DELTA_MAP", + ), + ( + VideoSessionCreateFlagsKHR::ALLOW_ENCODE_EMPHASIS_MAP.0, + "ALLOW_ENCODE_EMPHASIS_MAP", + ), + ( + VideoSessionCreateFlagsKHR::INLINE_SESSION_PARAMETERS.0, + "INLINE_SESSION_PARAMETERS", + ), ]; debug_flags(f, KNOWN, self.0) } } impl fmt::Debug for VideoSessionParametersCreateFlagsKHR { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - const KNOWN: &[(Flags, &str)] = &[]; + const KNOWN: &[(Flags, &str)] = &[( + VideoSessionParametersCreateFlagsKHR::QUANTIZATION_MAP_COMPATIBLE.0, + "QUANTIZATION_MAP_COMPATIBLE", + )]; debug_flags(f, KNOWN, self.0) } } diff --git a/ash/src/vk/constants.rs b/ash/src/vk/constants.rs index ed3e27f06..0b93df3a1 100644 --- a/ash/src/vk/constants.rs +++ b/ash/src/vk/constants.rs @@ -2,7 +2,6 @@ use super::definitions::*; pub const MAX_PHYSICAL_DEVICE_NAME_SIZE: usize = 256; pub const UUID_SIZE: usize = 16; pub const LUID_SIZE: usize = 8; -pub const LUID_SIZE_KHR: usize = LUID_SIZE; pub const MAX_EXTENSION_NAME_SIZE: usize = 256; pub const MAX_DESCRIPTION_SIZE: usize = 256; pub const MAX_MEMORY_TYPES: usize = 32; @@ -18,20 +17,19 @@ pub const TRUE: Bool32 = 1; pub const FALSE: Bool32 = 0; pub const QUEUE_FAMILY_IGNORED: u32 = !0; pub const QUEUE_FAMILY_EXTERNAL: u32 = !1; -pub const QUEUE_FAMILY_EXTERNAL_KHR: u32 = QUEUE_FAMILY_EXTERNAL; pub const QUEUE_FAMILY_FOREIGN_EXT: u32 = !2; pub const SUBPASS_EXTERNAL: u32 = !0; pub const MAX_DEVICE_GROUP_SIZE: usize = 32; -pub const MAX_DEVICE_GROUP_SIZE_KHR: usize = MAX_DEVICE_GROUP_SIZE; pub const MAX_DRIVER_NAME_SIZE: usize = 256; -pub const MAX_DRIVER_NAME_SIZE_KHR: usize = MAX_DRIVER_NAME_SIZE; pub const MAX_DRIVER_INFO_SIZE: usize = 256; -pub const MAX_DRIVER_INFO_SIZE_KHR: usize = MAX_DRIVER_INFO_SIZE; pub const SHADER_UNUSED_KHR: u32 = !0; -pub const SHADER_UNUSED_NV: u32 = SHADER_UNUSED_KHR; -pub const MAX_GLOBAL_PRIORITY_SIZE_KHR: usize = 16; -pub const MAX_GLOBAL_PRIORITY_SIZE_EXT: usize = MAX_GLOBAL_PRIORITY_SIZE_KHR; +pub const MAX_GLOBAL_PRIORITY_SIZE: 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 MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR: usize = 3; pub const SHADER_INDEX_UNUSED_AMDX: u32 = !0; +pub const PARTITIONED_ACCELERATION_STRUCTURE_PARTITION_INDEX_GLOBAL_NV: u32 = !0; +pub const COMPRESSED_TRIANGLE_FORMAT_DGF1_BYTE_ALIGNMENT_AMDX: usize = 128; +pub const COMPRESSED_TRIANGLE_FORMAT_DGF1_BYTE_STRIDE_AMDX: usize = 128; +pub const MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM: usize = 128; diff --git a/ash/src/vk/definitions.rs b/ash/src/vk/definitions.rs index aaf04da75..ea05043e9 100644 --- a/ash/src/vk/definitions.rs +++ b/ash/src/vk/definitions.rs @@ -12,22 +12,22 @@ use super::{ use core::ffi::*; use core::fmt; use core::marker::PhantomData; -#[deprecated = "This define is deprecated. VK_MAKE_API_VERSION should be used instead."] +#[deprecated = ""] #[doc = ""] pub const fn make_version(major: u32, minor: u32, patch: u32) -> u32 { ((major) << 22) | ((minor) << 12) | (patch) } -#[deprecated = "This define is deprecated. VK_API_VERSION_MAJOR should be used instead."] +#[deprecated = ""] #[doc = ""] pub const fn version_major(version: u32) -> u32 { (version) >> 22 } -#[deprecated = "This define is deprecated. VK_API_VERSION_MINOR should be used instead."] +#[deprecated = ""] #[doc = ""] pub const fn version_minor(version: u32) -> u32 { ((version) >> 12) & 0x3ff } -#[deprecated = "This define is deprecated. VK_API_VERSION_PATCH should be used instead."] +#[deprecated = ""] #[doc = ""] pub const fn version_patch(version: u32) -> u32 { (version) & 0xfff @@ -60,10 +60,12 @@ pub const API_VERSION_1_1: u32 = make_api_version(0, 1, 1, 0); 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 API_VERSION_1_4: u32 = make_api_version(0, 1, 4, 0); #[doc = ""] -pub const HEADER_VERSION: u32 = 296; +pub const HEADER_VERSION: u32 = 329; #[doc = ""] -pub const HEADER_VERSION_COMPLETE: u32 = make_api_version(0, 1, 3, HEADER_VERSION); +pub const HEADER_VERSION_COMPLETE: u32 = make_api_version(0, 1, 4, HEADER_VERSION); #[doc = ""] pub type SampleMask = u32; #[doc = ""] @@ -78,11 +80,6 @@ pub type DeviceSize = u64; pub type DeviceAddress = u64; #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] -#[doc = ""] -pub struct QueryPoolCreateFlags(pub(crate) Flags); -vk_bitflags_wrapped!(QueryPoolCreateFlags, Flags); -#[repr(transparent)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] #[doc = ""] pub struct PipelineDynamicStateCreateFlags(pub(crate) Flags); vk_bitflags_wrapped!(PipelineDynamicStateCreateFlags, Flags); @@ -293,9 +290,9 @@ pub struct PipelineRasterizationDepthClipStateCreateFlagsEXT(pub(crate) Flags); vk_bitflags_wrapped!(PipelineRasterizationDepthClipStateCreateFlagsEXT, Flags); #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] -#[doc = ""] -pub struct VideoSessionParametersCreateFlagsKHR(pub(crate) Flags); -vk_bitflags_wrapped!(VideoSessionParametersCreateFlagsKHR, Flags); +#[doc = ""] +pub struct SurfaceCreateFlagsOHOS(pub(crate) Flags); +vk_bitflags_wrapped!(SurfaceCreateFlagsOHOS, Flags); #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] #[doc = ""] @@ -478,6 +475,18 @@ handle_nondispatchable!( SHADER_EXT, doc = "" ); +handle_nondispatchable!( + TensorARM, + TENSOR_ARM, + doc = "" +); +handle_nondispatchable!( + TensorViewARM, + TENSOR_VIEW_ARM, + doc = + "" +); +handle_nondispatchable ! (DataGraphPipelineSessionARM , DATA_GRAPH_PIPELINE_SESSION_ARM , doc = "") ; handle_nondispatchable!( DisplayKHR, DISPLAY_KHR, @@ -2019,37 +2028,37 @@ impl<'a> CopyDescriptorSet<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct BufferUsageFlags2CreateInfoKHR<'a> { +pub struct BufferUsageFlags2CreateInfo<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub usage: BufferUsageFlags2KHR, + pub usage: BufferUsageFlags2, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for BufferUsageFlags2CreateInfoKHR<'_> {} -unsafe impl Sync for BufferUsageFlags2CreateInfoKHR<'_> {} -impl ::core::default::Default for BufferUsageFlags2CreateInfoKHR<'_> { +unsafe impl Send for BufferUsageFlags2CreateInfo<'_> {} +unsafe impl Sync for BufferUsageFlags2CreateInfo<'_> {} +impl ::core::default::Default for BufferUsageFlags2CreateInfo<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - usage: BufferUsageFlags2KHR::default(), + usage: BufferUsageFlags2::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for BufferUsageFlags2CreateInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR; +unsafe impl<'a> TaggedStructure<'a> for BufferUsageFlags2CreateInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_USAGE_FLAGS_2_CREATE_INFO; } -unsafe impl Extends> for BufferUsageFlags2CreateInfoKHR<'_> {} -unsafe impl Extends> for BufferUsageFlags2CreateInfoKHR<'_> {} -unsafe impl Extends> for BufferUsageFlags2CreateInfoKHR<'_> {} -unsafe impl Extends> for BufferUsageFlags2CreateInfoKHR<'_> {} -impl<'a> BufferUsageFlags2CreateInfoKHR<'a> { +unsafe impl Extends> for BufferUsageFlags2CreateInfo<'_> {} +unsafe impl Extends> for BufferUsageFlags2CreateInfo<'_> {} +unsafe impl Extends> for BufferUsageFlags2CreateInfo<'_> {} +unsafe impl Extends> for BufferUsageFlags2CreateInfo<'_> {} +impl<'a> BufferUsageFlags2CreateInfo<'a> { #[inline] - pub fn usage(mut self, usage: BufferUsageFlags2KHR) -> Self { + pub fn usage(mut self, usage: BufferUsageFlags2) -> Self { self.usage = usage; self } @@ -3135,14 +3144,41 @@ impl BufferImageCopy { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone, Default)] -#[doc = ""] +#[doc = ""] +#[must_use] +pub struct StridedDeviceAddressRangeKHR { + pub address: DeviceAddress, + pub size: DeviceSize, + pub stride: DeviceSize, +} +impl StridedDeviceAddressRangeKHR { + #[inline] + pub fn address(mut self, address: DeviceAddress) -> Self { + self.address = address; + self + } + #[inline] + pub fn size(mut self, size: DeviceSize) -> Self { + self.size = size; + self + } + #[inline] + pub fn stride(mut self, stride: DeviceSize) -> Self { + self.stride = stride; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] #[must_use] -pub struct CopyMemoryIndirectCommandNV { +pub struct CopyMemoryIndirectCommandKHR { pub src_address: DeviceAddress, pub dst_address: DeviceAddress, pub size: DeviceSize, } -impl CopyMemoryIndirectCommandNV { +impl CopyMemoryIndirectCommandKHR { #[inline] pub fn src_address(mut self, src_address: DeviceAddress) -> Self { self.src_address = src_address; @@ -3161,10 +3197,65 @@ impl CopyMemoryIndirectCommandNV { } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct CopyMemoryIndirectInfoKHR<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub src_copy_flags: AddressCopyFlagsKHR, + pub dst_copy_flags: AddressCopyFlagsKHR, + pub copy_count: u32, + pub copy_address_range: StridedDeviceAddressRangeKHR, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for CopyMemoryIndirectInfoKHR<'_> {} +unsafe impl Sync for CopyMemoryIndirectInfoKHR<'_> {} +impl ::core::default::Default for CopyMemoryIndirectInfoKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + src_copy_flags: AddressCopyFlagsKHR::default(), + dst_copy_flags: AddressCopyFlagsKHR::default(), + copy_count: u32::default(), + copy_address_range: StridedDeviceAddressRangeKHR::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for CopyMemoryIndirectInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::COPY_MEMORY_INDIRECT_INFO_KHR; +} +impl<'a> CopyMemoryIndirectInfoKHR<'a> { + #[inline] + pub fn src_copy_flags(mut self, src_copy_flags: AddressCopyFlagsKHR) -> Self { + self.src_copy_flags = src_copy_flags; + self + } + #[inline] + pub fn dst_copy_flags(mut self, dst_copy_flags: AddressCopyFlagsKHR) -> Self { + self.dst_copy_flags = dst_copy_flags; + self + } + #[inline] + pub fn copy_count(mut self, copy_count: u32) -> Self { + self.copy_count = copy_count; + self + } + #[inline] + pub fn copy_address_range(mut self, copy_address_range: StridedDeviceAddressRangeKHR) -> Self { + self.copy_address_range = copy_address_range; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone, Default)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct CopyMemoryToImageIndirectCommandNV { +pub struct CopyMemoryToImageIndirectCommandKHR { pub src_address: DeviceAddress, pub buffer_row_length: u32, pub buffer_image_height: u32, @@ -3172,7 +3263,7 @@ pub struct CopyMemoryToImageIndirectCommandNV { pub image_offset: Offset3D, pub image_extent: Extent3D, } -impl CopyMemoryToImageIndirectCommandNV { +impl CopyMemoryToImageIndirectCommandKHR { #[inline] pub fn src_address(mut self, src_address: DeviceAddress) -> Self { self.src_address = src_address; @@ -3206,6 +3297,71 @@ impl CopyMemoryToImageIndirectCommandNV { } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct CopyMemoryToImageIndirectInfoKHR<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub src_copy_flags: AddressCopyFlagsKHR, + pub copy_count: u32, + pub copy_address_range: StridedDeviceAddressRangeKHR, + pub dst_image: Image, + pub dst_image_layout: ImageLayout, + pub p_image_subresources: *const ImageSubresourceLayers, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for CopyMemoryToImageIndirectInfoKHR<'_> {} +unsafe impl Sync for CopyMemoryToImageIndirectInfoKHR<'_> {} +impl ::core::default::Default for CopyMemoryToImageIndirectInfoKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + src_copy_flags: AddressCopyFlagsKHR::default(), + copy_count: u32::default(), + copy_address_range: StridedDeviceAddressRangeKHR::default(), + dst_image: Image::default(), + dst_image_layout: ImageLayout::default(), + p_image_subresources: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for CopyMemoryToImageIndirectInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR; +} +impl<'a> CopyMemoryToImageIndirectInfoKHR<'a> { + #[inline] + pub fn src_copy_flags(mut self, src_copy_flags: AddressCopyFlagsKHR) -> Self { + self.src_copy_flags = src_copy_flags; + self + } + #[inline] + pub fn copy_address_range(mut self, copy_address_range: StridedDeviceAddressRangeKHR) -> Self { + self.copy_address_range = copy_address_range; + self + } + #[inline] + pub fn dst_image(mut self, dst_image: Image) -> Self { + self.dst_image = dst_image; + self + } + #[inline] + pub fn dst_image_layout(mut self, dst_image_layout: ImageLayout) -> Self { + self.dst_image_layout = dst_image_layout; + self + } + #[inline] + pub fn image_subresources(mut self, image_subresources: &'a [ImageSubresourceLayers]) -> Self { + self.copy_count = image_subresources.len() as _; + self.p_image_subresources = image_subresources.as_ptr(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone, Default)] #[doc = ""] #[must_use] @@ -3275,6 +3431,7 @@ unsafe impl<'a> TaggedStructure<'a> for ShaderModuleCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SHADER_MODULE_CREATE_INFO; } unsafe impl Extends> for ShaderModuleCreateInfo<'_> {} +unsafe impl Extends> for ShaderModuleCreateInfo<'_> {} impl<'a> ShaderModuleCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: ShaderModuleCreateFlags) -> Self { @@ -3758,37 +3915,37 @@ impl<'a> ComputePipelineIndirectBufferInfoNV<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PipelineCreateFlags2CreateInfoKHR<'a> { +pub struct PipelineCreateFlags2CreateInfo<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub flags: PipelineCreateFlags2KHR, + pub flags: PipelineCreateFlags2, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PipelineCreateFlags2CreateInfoKHR<'_> {} -unsafe impl Sync for PipelineCreateFlags2CreateInfoKHR<'_> {} -impl ::core::default::Default for PipelineCreateFlags2CreateInfoKHR<'_> { +unsafe impl Send for PipelineCreateFlags2CreateInfo<'_> {} +unsafe impl Sync for PipelineCreateFlags2CreateInfo<'_> {} +impl ::core::default::Default for PipelineCreateFlags2CreateInfo<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - flags: PipelineCreateFlags2KHR::default(), + flags: PipelineCreateFlags2::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PipelineCreateFlags2CreateInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR; +unsafe impl<'a> TaggedStructure<'a> for PipelineCreateFlags2CreateInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_CREATE_FLAGS_2_CREATE_INFO; } -unsafe impl Extends> for PipelineCreateFlags2CreateInfoKHR<'_> {} -unsafe impl Extends> for PipelineCreateFlags2CreateInfoKHR<'_> {} -unsafe impl Extends> for PipelineCreateFlags2CreateInfoKHR<'_> {} -unsafe impl Extends> for PipelineCreateFlags2CreateInfoKHR<'_> {} -impl<'a> PipelineCreateFlags2CreateInfoKHR<'a> { +unsafe impl Extends> for PipelineCreateFlags2CreateInfo<'_> {} +unsafe impl Extends> for PipelineCreateFlags2CreateInfo<'_> {} +unsafe impl Extends> for PipelineCreateFlags2CreateInfo<'_> {} +unsafe impl Extends> for PipelineCreateFlags2CreateInfo<'_> {} +impl<'a> PipelineCreateFlags2CreateInfo<'a> { #[inline] - pub fn flags(mut self, flags: PipelineCreateFlags2KHR) -> Self { + pub fn flags(mut self, flags: PipelineCreateFlags2) -> Self { self.flags = flags; self } @@ -5232,10 +5389,10 @@ impl ::core::default::Default for PipelineLayoutCreateInfo<'_> { unsafe impl<'a> TaggedStructure<'a> for PipelineLayoutCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_LAYOUT_CREATE_INFO; } -unsafe impl Extends> for PipelineLayoutCreateInfo<'_> {} -unsafe impl Extends> for PipelineLayoutCreateInfo<'_> {} -unsafe impl Extends> for PipelineLayoutCreateInfo<'_> {} -unsafe impl Extends> for PipelineLayoutCreateInfo<'_> {} +unsafe impl Extends> for PipelineLayoutCreateInfo<'_> {} +unsafe impl Extends> for PipelineLayoutCreateInfo<'_> {} +unsafe impl Extends> for PipelineLayoutCreateInfo<'_> {} +unsafe impl Extends> for PipelineLayoutCreateInfo<'_> {} unsafe impl Extends> for PipelineLayoutCreateInfo<'_> {} unsafe impl Extends> for PipelineLayoutCreateInfo<'_> @@ -8129,6 +8286,41 @@ impl<'a> DisplaySurfaceCreateInfoKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct DisplaySurfaceStereoCreateInfoNV<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub stereo_type: DisplaySurfaceStereoTypeNV, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for DisplaySurfaceStereoCreateInfoNV<'_> {} +unsafe impl Sync for DisplaySurfaceStereoCreateInfoNV<'_> {} +impl ::core::default::Default for DisplaySurfaceStereoCreateInfoNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + stereo_type: DisplaySurfaceStereoTypeNV::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for DisplaySurfaceStereoCreateInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DISPLAY_SURFACE_STEREO_CREATE_INFO_NV; +} +unsafe impl Extends> for DisplaySurfaceStereoCreateInfoNV<'_> {} +impl<'a> DisplaySurfaceStereoCreateInfoNV<'a> { + #[inline] + pub fn stereo_type(mut self, stereo_type: DisplaySurfaceStereoTypeNV) -> Self { + self.stereo_type = stereo_type; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct DisplayPresentInfoKHR<'a> { @@ -10098,466 +10290,1122 @@ impl<'a> PhysicalDeviceDeviceGeneratedCommandsPropertiesNV<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceMultiDrawPropertiesEXT<'a> { +pub struct PhysicalDeviceClusterAccelerationStructureFeaturesNV<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub max_multi_draw_count: u32, + pub cluster_acceleration_structure: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceMultiDrawPropertiesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceMultiDrawPropertiesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceMultiDrawPropertiesEXT<'_> { +unsafe impl Send for PhysicalDeviceClusterAccelerationStructureFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDeviceClusterAccelerationStructureFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceClusterAccelerationStructureFeaturesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - max_multi_draw_count: u32::default(), + cluster_acceleration_structure: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMultiDrawPropertiesEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceClusterAccelerationStructureFeaturesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV; } -unsafe impl Extends> for PhysicalDeviceMultiDrawPropertiesEXT<'_> {} -impl<'a> PhysicalDeviceMultiDrawPropertiesEXT<'a> { +unsafe impl Extends> + for PhysicalDeviceClusterAccelerationStructureFeaturesNV<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceClusterAccelerationStructureFeaturesNV<'_> +{ +} +impl<'a> PhysicalDeviceClusterAccelerationStructureFeaturesNV<'a> { #[inline] - pub fn max_multi_draw_count(mut self, max_multi_draw_count: u32) -> Self { - self.max_multi_draw_count = max_multi_draw_count; + pub fn cluster_acceleration_structure(mut self, cluster_acceleration_structure: bool) -> Self { + self.cluster_acceleration_structure = cluster_acceleration_structure.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct GraphicsShaderGroupCreateInfoNV<'a> { +pub struct PhysicalDeviceClusterAccelerationStructurePropertiesNV<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub stage_count: u32, - pub p_stages: *const PipelineShaderStageCreateInfo<'a>, - pub p_vertex_input_state: *const PipelineVertexInputStateCreateInfo<'a>, - pub p_tessellation_state: *const PipelineTessellationStateCreateInfo<'a>, + pub p_next: *mut c_void, + pub max_vertices_per_cluster: u32, + pub max_triangles_per_cluster: u32, + pub cluster_scratch_byte_alignment: u32, + pub cluster_byte_alignment: u32, + pub cluster_template_byte_alignment: u32, + pub cluster_bottom_level_byte_alignment: u32, + pub cluster_template_bounds_byte_alignment: u32, + pub max_cluster_geometry_index: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for GraphicsShaderGroupCreateInfoNV<'_> {} -unsafe impl Sync for GraphicsShaderGroupCreateInfoNV<'_> {} -impl ::core::default::Default for GraphicsShaderGroupCreateInfoNV<'_> { +unsafe impl Send for PhysicalDeviceClusterAccelerationStructurePropertiesNV<'_> {} +unsafe impl Sync for PhysicalDeviceClusterAccelerationStructurePropertiesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceClusterAccelerationStructurePropertiesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - stage_count: u32::default(), - p_stages: ::core::ptr::null(), - p_vertex_input_state: ::core::ptr::null(), - p_tessellation_state: ::core::ptr::null(), + p_next: ::core::ptr::null_mut(), + max_vertices_per_cluster: u32::default(), + max_triangles_per_cluster: u32::default(), + cluster_scratch_byte_alignment: u32::default(), + cluster_byte_alignment: u32::default(), + cluster_template_byte_alignment: u32::default(), + cluster_bottom_level_byte_alignment: u32::default(), + cluster_template_bounds_byte_alignment: u32::default(), + max_cluster_geometry_index: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for GraphicsShaderGroupCreateInfoNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::GRAPHICS_SHADER_GROUP_CREATE_INFO_NV; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceClusterAccelerationStructurePropertiesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV; } -impl<'a> GraphicsShaderGroupCreateInfoNV<'a> { +unsafe impl Extends> + for PhysicalDeviceClusterAccelerationStructurePropertiesNV<'_> +{ +} +impl<'a> PhysicalDeviceClusterAccelerationStructurePropertiesNV<'a> { #[inline] - pub fn stages(mut self, stages: &'a [PipelineShaderStageCreateInfo<'a>]) -> Self { - self.stage_count = stages.len() as _; - self.p_stages = stages.as_ptr(); + pub fn max_vertices_per_cluster(mut self, max_vertices_per_cluster: u32) -> Self { + self.max_vertices_per_cluster = max_vertices_per_cluster; self } #[inline] - pub fn vertex_input_state( + pub fn max_triangles_per_cluster(mut self, max_triangles_per_cluster: u32) -> Self { + self.max_triangles_per_cluster = max_triangles_per_cluster; + self + } + #[inline] + pub fn cluster_scratch_byte_alignment(mut self, cluster_scratch_byte_alignment: u32) -> Self { + self.cluster_scratch_byte_alignment = cluster_scratch_byte_alignment; + self + } + #[inline] + pub fn cluster_byte_alignment(mut self, cluster_byte_alignment: u32) -> Self { + self.cluster_byte_alignment = cluster_byte_alignment; + self + } + #[inline] + pub fn cluster_template_byte_alignment(mut self, cluster_template_byte_alignment: u32) -> Self { + self.cluster_template_byte_alignment = cluster_template_byte_alignment; + self + } + #[inline] + pub fn cluster_bottom_level_byte_alignment( mut self, - vertex_input_state: &'a PipelineVertexInputStateCreateInfo<'a>, + cluster_bottom_level_byte_alignment: u32, ) -> Self { - self.p_vertex_input_state = vertex_input_state; + self.cluster_bottom_level_byte_alignment = cluster_bottom_level_byte_alignment; self } #[inline] - pub fn tessellation_state( + pub fn cluster_template_bounds_byte_alignment( mut self, - tessellation_state: &'a PipelineTessellationStateCreateInfo<'a>, + cluster_template_bounds_byte_alignment: u32, ) -> Self { - self.p_tessellation_state = tessellation_state; + self.cluster_template_bounds_byte_alignment = cluster_template_bounds_byte_alignment; + self + } + #[inline] + pub fn max_cluster_geometry_index(mut self, max_cluster_geometry_index: u32) -> Self { + self.max_cluster_geometry_index = max_cluster_geometry_index; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct StridedDeviceAddressNV { + pub start_address: DeviceAddress, + pub stride_in_bytes: DeviceSize, +} +impl StridedDeviceAddressNV { + #[inline] + pub fn start_address(mut self, start_address: DeviceAddress) -> Self { + self.start_address = start_address; + self + } + #[inline] + pub fn stride_in_bytes(mut self, stride_in_bytes: DeviceSize) -> Self { + self.stride_in_bytes = stride_in_bytes; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct GraphicsPipelineShaderGroupsCreateInfoNV<'a> { +pub struct RayTracingPipelineClusterAccelerationStructureCreateInfoNV<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub group_count: u32, - pub p_groups: *const GraphicsShaderGroupCreateInfoNV<'a>, - pub pipeline_count: u32, - pub p_pipelines: *const Pipeline, + pub p_next: *mut c_void, + pub allow_cluster_acceleration_structure: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for GraphicsPipelineShaderGroupsCreateInfoNV<'_> {} -unsafe impl Sync for GraphicsPipelineShaderGroupsCreateInfoNV<'_> {} -impl ::core::default::Default for GraphicsPipelineShaderGroupsCreateInfoNV<'_> { +unsafe impl Send for RayTracingPipelineClusterAccelerationStructureCreateInfoNV<'_> {} +unsafe impl Sync for RayTracingPipelineClusterAccelerationStructureCreateInfoNV<'_> {} +impl ::core::default::Default for RayTracingPipelineClusterAccelerationStructureCreateInfoNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - group_count: u32::default(), - p_groups: ::core::ptr::null(), - pipeline_count: u32::default(), - p_pipelines: ::core::ptr::null(), + p_next: ::core::ptr::null_mut(), + allow_cluster_acceleration_structure: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for GraphicsPipelineShaderGroupsCreateInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> + for RayTracingPipelineClusterAccelerationStructureCreateInfoNV<'a> +{ const STRUCTURE_TYPE: StructureType = - StructureType::GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV; + StructureType::RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV; } -unsafe impl Extends> - for GraphicsPipelineShaderGroupsCreateInfoNV<'_> +unsafe impl Extends> + for RayTracingPipelineClusterAccelerationStructureCreateInfoNV<'_> { } -impl<'a> GraphicsPipelineShaderGroupsCreateInfoNV<'a> { - #[inline] - pub fn groups(mut self, groups: &'a [GraphicsShaderGroupCreateInfoNV<'a>]) -> Self { - self.group_count = groups.len() as _; - self.p_groups = groups.as_ptr(); - self - } +impl<'a> RayTracingPipelineClusterAccelerationStructureCreateInfoNV<'a> { #[inline] - pub fn pipelines(mut self, pipelines: &'a [Pipeline]) -> Self { - self.pipeline_count = pipelines.len() as _; - self.p_pipelines = pipelines.as_ptr(); + pub fn allow_cluster_acceleration_structure( + mut self, + allow_cluster_acceleration_structure: bool, + ) -> Self { + self.allow_cluster_acceleration_structure = allow_cluster_acceleration_structure.into(); self } } #[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV { + pub geometry_index_and_flags: u32, +} +#[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone, Default)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct BindShaderGroupIndirectCommandNV { - pub group_index: u32, +pub struct ClusterAccelerationStructureMoveObjectsInfoNV { + pub src_acceleration_structure: DeviceAddress, } -impl BindShaderGroupIndirectCommandNV { +impl ClusterAccelerationStructureMoveObjectsInfoNV { #[inline] - pub fn group_index(mut self, group_index: u32) -> Self { - self.group_index = group_index; + pub fn src_acceleration_structure(mut self, src_acceleration_structure: DeviceAddress) -> Self { + self.src_acceleration_structure = src_acceleration_structure; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone, Default)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct BindIndexBufferIndirectCommandNV { - pub buffer_address: DeviceAddress, - pub size: u32, - pub index_type: IndexType, +pub struct ClusterAccelerationStructureBuildClustersBottomLevelInfoNV { + pub cluster_references_count: u32, + pub cluster_references_stride: u32, + pub cluster_references: DeviceAddress, } -impl BindIndexBufferIndirectCommandNV { +impl ClusterAccelerationStructureBuildClustersBottomLevelInfoNV { #[inline] - pub fn buffer_address(mut self, buffer_address: DeviceAddress) -> Self { - self.buffer_address = buffer_address; + pub fn cluster_references_count(mut self, cluster_references_count: u32) -> Self { + self.cluster_references_count = cluster_references_count; self } #[inline] - pub fn size(mut self, size: u32) -> Self { - self.size = size; + pub fn cluster_references_stride(mut self, cluster_references_stride: u32) -> Self { + self.cluster_references_stride = cluster_references_stride; self } #[inline] - pub fn index_type(mut self, index_type: IndexType) -> Self { - self.index_type = index_type; + pub fn cluster_references(mut self, cluster_references: DeviceAddress) -> Self { + self.cluster_references = cluster_references; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone, Default)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct BindVertexBufferIndirectCommandNV { - pub buffer_address: DeviceAddress, - pub size: u32, - pub stride: u32, +pub struct ClusterAccelerationStructureGetTemplateIndicesInfoNV { + pub cluster_template_address: DeviceAddress, } -impl BindVertexBufferIndirectCommandNV { - #[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 - } +impl ClusterAccelerationStructureGetTemplateIndicesInfoNV { #[inline] - pub fn stride(mut self, stride: u32) -> Self { - self.stride = stride; + pub fn cluster_template_address(mut self, cluster_template_address: DeviceAddress) -> Self { + self.cluster_template_address = cluster_template_address; self } } #[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone, Default)] -#[doc = ""] +#[derive(Copy, Clone)] +#[doc = ""] #[must_use] -pub struct SetStateFlagsIndirectCommandNV { - pub data: u32, +pub struct ClusterAccelerationStructureBuildTriangleClusterInfoNV { + _todo_many_bitfields: [u8; 0], } -impl SetStateFlagsIndirectCommandNV { - #[inline] - pub fn data(mut self, data: u32) -> Self { - self.data = data; - self - } +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV { + _todo_many_bitfields: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ClusterAccelerationStructureInstantiateClusterInfoNV { + _todo_bitfield_and_other_fields: [u8; 0], } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone, Default)] -#[doc = ""] +#[derive(Copy, Clone)] +#[doc = ""] #[must_use] -pub struct IndirectCommandsStreamNV { - pub buffer: Buffer, - pub offset: DeviceSize, +pub struct ClusterAccelerationStructureClustersBottomLevelInputNV<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub max_total_cluster_count: u32, + pub max_cluster_count_per_acceleration_structure: u32, + pub _marker: PhantomData<&'a ()>, } -impl IndirectCommandsStreamNV { +unsafe impl Send for ClusterAccelerationStructureClustersBottomLevelInputNV<'_> {} +unsafe impl Sync for ClusterAccelerationStructureClustersBottomLevelInputNV<'_> {} +impl ::core::default::Default for ClusterAccelerationStructureClustersBottomLevelInputNV<'_> { #[inline] - pub fn buffer(mut self, buffer: Buffer) -> Self { - self.buffer = buffer; + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + max_total_cluster_count: u32::default(), + max_cluster_count_per_acceleration_structure: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for ClusterAccelerationStructureClustersBottomLevelInputNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV; +} +impl<'a> ClusterAccelerationStructureClustersBottomLevelInputNV<'a> { + #[inline] + pub fn max_total_cluster_count(mut self, max_total_cluster_count: u32) -> Self { + self.max_total_cluster_count = max_total_cluster_count; self } #[inline] - pub fn offset(mut self, offset: DeviceSize) -> Self { - self.offset = offset; + pub fn max_cluster_count_per_acceleration_structure( + mut self, + max_cluster_count_per_acceleration_structure: u32, + ) -> Self { + self.max_cluster_count_per_acceleration_structure = + max_cluster_count_per_acceleration_structure; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct IndirectCommandsLayoutTokenNV<'a> { +pub struct ClusterAccelerationStructureTriangleClusterInputNV<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub token_type: IndirectCommandsTokenTypeNV, - pub stream: u32, - pub offset: u32, - pub vertex_binding_unit: u32, - pub vertex_dynamic_stride: Bool32, - pub pushconstant_pipeline_layout: PipelineLayout, - pub pushconstant_shader_stage_flags: ShaderStageFlags, - pub pushconstant_offset: u32, - pub pushconstant_size: u32, - pub indirect_state_flags: IndirectStateFlagsNV, - pub index_type_count: u32, - pub p_index_types: *const IndexType, - pub p_index_type_values: *const u32, + pub p_next: *mut c_void, + pub vertex_format: Format, + pub max_geometry_index_value: u32, + pub max_cluster_unique_geometry_count: u32, + pub max_cluster_triangle_count: u32, + pub max_cluster_vertex_count: u32, + pub max_total_triangle_count: u32, + pub max_total_vertex_count: u32, + pub min_position_truncate_bit_count: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for IndirectCommandsLayoutTokenNV<'_> {} -unsafe impl Sync for IndirectCommandsLayoutTokenNV<'_> {} -impl ::core::default::Default for IndirectCommandsLayoutTokenNV<'_> { +unsafe impl Send for ClusterAccelerationStructureTriangleClusterInputNV<'_> {} +unsafe impl Sync for ClusterAccelerationStructureTriangleClusterInputNV<'_> {} +impl ::core::default::Default for ClusterAccelerationStructureTriangleClusterInputNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - token_type: IndirectCommandsTokenTypeNV::default(), - stream: u32::default(), - offset: u32::default(), - vertex_binding_unit: u32::default(), - vertex_dynamic_stride: Bool32::default(), - pushconstant_pipeline_layout: PipelineLayout::default(), - pushconstant_shader_stage_flags: ShaderStageFlags::default(), - pushconstant_offset: u32::default(), - pushconstant_size: u32::default(), - indirect_state_flags: IndirectStateFlagsNV::default(), - index_type_count: u32::default(), - p_index_types: ::core::ptr::null(), - p_index_type_values: ::core::ptr::null(), + p_next: ::core::ptr::null_mut(), + vertex_format: Format::default(), + max_geometry_index_value: u32::default(), + max_cluster_unique_geometry_count: u32::default(), + max_cluster_triangle_count: u32::default(), + max_cluster_vertex_count: u32::default(), + max_total_triangle_count: u32::default(), + max_total_vertex_count: u32::default(), + min_position_truncate_bit_count: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for IndirectCommandsLayoutTokenNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_TOKEN_NV; +unsafe impl<'a> TaggedStructure<'a> for ClusterAccelerationStructureTriangleClusterInputNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV; } -impl<'a> IndirectCommandsLayoutTokenNV<'a> { +impl<'a> ClusterAccelerationStructureTriangleClusterInputNV<'a> { #[inline] - pub fn token_type(mut self, token_type: IndirectCommandsTokenTypeNV) -> Self { - self.token_type = token_type; + pub fn vertex_format(mut self, vertex_format: Format) -> Self { + self.vertex_format = vertex_format; self } #[inline] - pub fn stream(mut self, stream: u32) -> Self { - self.stream = stream; + pub fn max_geometry_index_value(mut self, max_geometry_index_value: u32) -> Self { + self.max_geometry_index_value = max_geometry_index_value; self } #[inline] - pub fn offset(mut self, offset: u32) -> Self { - self.offset = offset; + pub fn max_cluster_unique_geometry_count( + mut self, + max_cluster_unique_geometry_count: u32, + ) -> Self { + self.max_cluster_unique_geometry_count = max_cluster_unique_geometry_count; self } #[inline] - pub fn vertex_binding_unit(mut self, vertex_binding_unit: u32) -> Self { - self.vertex_binding_unit = vertex_binding_unit; + pub fn max_cluster_triangle_count(mut self, max_cluster_triangle_count: u32) -> Self { + self.max_cluster_triangle_count = max_cluster_triangle_count; self } #[inline] - pub fn vertex_dynamic_stride(mut self, vertex_dynamic_stride: bool) -> Self { - self.vertex_dynamic_stride = vertex_dynamic_stride.into(); + pub fn max_cluster_vertex_count(mut self, max_cluster_vertex_count: u32) -> Self { + self.max_cluster_vertex_count = max_cluster_vertex_count; self } #[inline] - pub fn pushconstant_pipeline_layout( - mut self, - pushconstant_pipeline_layout: PipelineLayout, - ) -> Self { - self.pushconstant_pipeline_layout = pushconstant_pipeline_layout; + pub fn max_total_triangle_count(mut self, max_total_triangle_count: u32) -> Self { + self.max_total_triangle_count = max_total_triangle_count; self } #[inline] - pub fn pushconstant_shader_stage_flags( - mut self, - pushconstant_shader_stage_flags: ShaderStageFlags, - ) -> Self { - self.pushconstant_shader_stage_flags = pushconstant_shader_stage_flags; + pub fn max_total_vertex_count(mut self, max_total_vertex_count: u32) -> Self { + self.max_total_vertex_count = max_total_vertex_count; self } #[inline] - pub fn pushconstant_offset(mut self, pushconstant_offset: u32) -> Self { - self.pushconstant_offset = pushconstant_offset; + pub fn min_position_truncate_bit_count(mut self, min_position_truncate_bit_count: u32) -> Self { + self.min_position_truncate_bit_count = min_position_truncate_bit_count; self } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ClusterAccelerationStructureMoveObjectsInputNV<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub ty: ClusterAccelerationStructureTypeNV, + pub no_move_overlap: Bool32, + pub max_moved_bytes: DeviceSize, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ClusterAccelerationStructureMoveObjectsInputNV<'_> {} +unsafe impl Sync for ClusterAccelerationStructureMoveObjectsInputNV<'_> {} +impl ::core::default::Default for ClusterAccelerationStructureMoveObjectsInputNV<'_> { #[inline] - pub fn pushconstant_size(mut self, pushconstant_size: u32) -> Self { - self.pushconstant_size = pushconstant_size; - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + ty: ClusterAccelerationStructureTypeNV::default(), + no_move_overlap: Bool32::default(), + max_moved_bytes: DeviceSize::default(), + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for ClusterAccelerationStructureMoveObjectsInputNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV; +} +impl<'a> ClusterAccelerationStructureMoveObjectsInputNV<'a> { #[inline] - pub fn indirect_state_flags(mut self, indirect_state_flags: IndirectStateFlagsNV) -> Self { - self.indirect_state_flags = indirect_state_flags; + pub fn ty(mut self, ty: ClusterAccelerationStructureTypeNV) -> Self { + self.ty = ty; self } #[inline] - pub fn index_types(mut self, index_types: &'a [IndexType]) -> Self { - self.index_type_count = index_types.len() as _; - self.p_index_types = index_types.as_ptr(); + pub fn no_move_overlap(mut self, no_move_overlap: bool) -> Self { + self.no_move_overlap = no_move_overlap.into(); self } #[inline] - pub fn index_type_values(mut self, index_type_values: &'a [u32]) -> Self { - self.index_type_count = index_type_values.len() as _; - self.p_index_type_values = index_type_values.as_ptr(); + pub fn max_moved_bytes(mut self, max_moved_bytes: DeviceSize) -> Self { + self.max_moved_bytes = max_moved_bytes; self } } #[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] +pub union ClusterAccelerationStructureOpInputNV<'a> { + pub p_clusters_bottom_level: *mut ClusterAccelerationStructureClustersBottomLevelInputNV<'a>, + pub p_triangle_clusters: *mut ClusterAccelerationStructureTriangleClusterInputNV<'a>, + pub p_move_objects: *mut ClusterAccelerationStructureMoveObjectsInputNV<'a>, +} +impl<'a> ::core::default::Default for ClusterAccelerationStructureOpInputNV<'a> { + #[inline] + fn default() -> Self { + unsafe { ::core::mem::zeroed() } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] #[must_use] -pub struct IndirectCommandsLayoutCreateInfoNV<'a> { +pub struct ClusterAccelerationStructureInputInfoNV<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub flags: IndirectCommandsLayoutUsageFlagsNV, - pub pipeline_bind_point: PipelineBindPoint, - pub token_count: u32, - pub p_tokens: *const IndirectCommandsLayoutTokenNV<'a>, - pub stream_count: u32, - pub p_stream_strides: *const u32, + pub p_next: *mut c_void, + pub max_acceleration_structure_count: u32, + pub flags: BuildAccelerationStructureFlagsKHR, + pub op_type: ClusterAccelerationStructureOpTypeNV, + pub op_mode: ClusterAccelerationStructureOpModeNV, + pub op_input: ClusterAccelerationStructureOpInputNV<'a>, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for IndirectCommandsLayoutCreateInfoNV<'_> {} -unsafe impl Sync for IndirectCommandsLayoutCreateInfoNV<'_> {} -impl ::core::default::Default for IndirectCommandsLayoutCreateInfoNV<'_> { +unsafe impl Send for ClusterAccelerationStructureInputInfoNV<'_> {} +unsafe impl Sync for ClusterAccelerationStructureInputInfoNV<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for ClusterAccelerationStructureInputInfoNV<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("ClusterAccelerationStructureInputInfoNV") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field( + "max_acceleration_structure_count", + &self.max_acceleration_structure_count, + ) + .field("flags", &self.flags) + .field("op_type", &self.op_type) + .field("op_mode", &self.op_mode) + .field("op_input", &"union") + .finish() + } +} +impl ::core::default::Default for ClusterAccelerationStructureInputInfoNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - flags: IndirectCommandsLayoutUsageFlagsNV::default(), - pipeline_bind_point: PipelineBindPoint::default(), - token_count: u32::default(), - p_tokens: ::core::ptr::null(), - stream_count: u32::default(), - p_stream_strides: ::core::ptr::null(), + p_next: ::core::ptr::null_mut(), + max_acceleration_structure_count: u32::default(), + flags: BuildAccelerationStructureFlagsKHR::default(), + op_type: ClusterAccelerationStructureOpTypeNV::default(), + op_mode: ClusterAccelerationStructureOpModeNV::default(), + op_input: ClusterAccelerationStructureOpInputNV::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for IndirectCommandsLayoutCreateInfoNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV; +unsafe impl<'a> TaggedStructure<'a> for ClusterAccelerationStructureInputInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV; } -impl<'a> IndirectCommandsLayoutCreateInfoNV<'a> { +impl<'a> ClusterAccelerationStructureInputInfoNV<'a> { #[inline] - pub fn flags(mut self, flags: IndirectCommandsLayoutUsageFlagsNV) -> Self { + pub fn max_acceleration_structure_count( + mut self, + max_acceleration_structure_count: u32, + ) -> Self { + self.max_acceleration_structure_count = max_acceleration_structure_count; + self + } + #[inline] + pub fn flags(mut self, flags: BuildAccelerationStructureFlagsKHR) -> Self { self.flags = flags; self } #[inline] - pub fn pipeline_bind_point(mut self, pipeline_bind_point: PipelineBindPoint) -> Self { - self.pipeline_bind_point = pipeline_bind_point; + pub fn op_type(mut self, op_type: ClusterAccelerationStructureOpTypeNV) -> Self { + self.op_type = op_type; self } #[inline] - pub fn tokens(mut self, tokens: &'a [IndirectCommandsLayoutTokenNV<'a>]) -> Self { - self.token_count = tokens.len() as _; - self.p_tokens = tokens.as_ptr(); + pub fn op_mode(mut self, op_mode: ClusterAccelerationStructureOpModeNV) -> Self { + self.op_mode = op_mode; self } #[inline] - pub fn stream_strides(mut self, stream_strides: &'a [u32]) -> Self { - self.stream_count = stream_strides.len() as _; - self.p_stream_strides = stream_strides.as_ptr(); + pub fn op_input(mut self, op_input: ClusterAccelerationStructureOpInputNV<'a>) -> Self { + self.op_input = op_input; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct GeneratedCommandsInfoNV<'a> { +pub struct ClusterAccelerationStructureCommandsInfoNV<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub pipeline_bind_point: PipelineBindPoint, - pub pipeline: Pipeline, - pub indirect_commands_layout: IndirectCommandsLayoutNV, - pub stream_count: u32, - pub p_streams: *const IndirectCommandsStreamNV, - pub sequences_count: u32, - pub preprocess_buffer: Buffer, - pub preprocess_offset: DeviceSize, - pub preprocess_size: DeviceSize, - pub sequences_count_buffer: Buffer, - pub sequences_count_offset: DeviceSize, - pub sequences_index_buffer: Buffer, - pub sequences_index_offset: DeviceSize, + pub p_next: *mut c_void, + pub input: ClusterAccelerationStructureInputInfoNV<'a>, + pub dst_implicit_data: DeviceAddress, + pub scratch_data: DeviceAddress, + pub dst_addresses_array: StridedDeviceAddressRegionKHR, + pub dst_sizes_array: StridedDeviceAddressRegionKHR, + pub src_infos_array: StridedDeviceAddressRegionKHR, + pub src_infos_count: DeviceAddress, + pub address_resolution_flags: ClusterAccelerationStructureAddressResolutionFlagsNV, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for GeneratedCommandsInfoNV<'_> {} -unsafe impl Sync for GeneratedCommandsInfoNV<'_> {} -impl ::core::default::Default for GeneratedCommandsInfoNV<'_> { +unsafe impl Send for ClusterAccelerationStructureCommandsInfoNV<'_> {} +unsafe impl Sync for ClusterAccelerationStructureCommandsInfoNV<'_> {} +impl ::core::default::Default for ClusterAccelerationStructureCommandsInfoNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - pipeline_bind_point: PipelineBindPoint::default(), + p_next: ::core::ptr::null_mut(), + input: ClusterAccelerationStructureInputInfoNV::default(), + dst_implicit_data: DeviceAddress::default(), + scratch_data: DeviceAddress::default(), + dst_addresses_array: StridedDeviceAddressRegionKHR::default(), + dst_sizes_array: StridedDeviceAddressRegionKHR::default(), + src_infos_array: StridedDeviceAddressRegionKHR::default(), + src_infos_count: DeviceAddress::default(), + address_resolution_flags: ClusterAccelerationStructureAddressResolutionFlagsNV::default( + ), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for ClusterAccelerationStructureCommandsInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV; +} +impl<'a> ClusterAccelerationStructureCommandsInfoNV<'a> { + #[inline] + pub fn input(mut self, input: ClusterAccelerationStructureInputInfoNV<'a>) -> Self { + self.input = input; + self + } + #[inline] + pub fn dst_implicit_data(mut self, dst_implicit_data: DeviceAddress) -> Self { + self.dst_implicit_data = dst_implicit_data; + self + } + #[inline] + pub fn scratch_data(mut self, scratch_data: DeviceAddress) -> Self { + self.scratch_data = scratch_data; + self + } + #[inline] + pub fn dst_addresses_array( + mut self, + dst_addresses_array: StridedDeviceAddressRegionKHR, + ) -> Self { + self.dst_addresses_array = dst_addresses_array; + self + } + #[inline] + pub fn dst_sizes_array(mut self, dst_sizes_array: StridedDeviceAddressRegionKHR) -> Self { + self.dst_sizes_array = dst_sizes_array; + self + } + #[inline] + pub fn src_infos_array(mut self, src_infos_array: StridedDeviceAddressRegionKHR) -> Self { + self.src_infos_array = src_infos_array; + self + } + #[inline] + pub fn src_infos_count(mut self, src_infos_count: DeviceAddress) -> Self { + self.src_infos_count = src_infos_count; + self + } + #[inline] + pub fn address_resolution_flags( + mut self, + address_resolution_flags: ClusterAccelerationStructureAddressResolutionFlagsNV, + ) -> Self { + self.address_resolution_flags = address_resolution_flags; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceMultiDrawPropertiesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub max_multi_draw_count: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceMultiDrawPropertiesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceMultiDrawPropertiesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceMultiDrawPropertiesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + max_multi_draw_count: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMultiDrawPropertiesEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT; +} +unsafe impl Extends> for PhysicalDeviceMultiDrawPropertiesEXT<'_> {} +impl<'a> PhysicalDeviceMultiDrawPropertiesEXT<'a> { + #[inline] + pub fn max_multi_draw_count(mut self, max_multi_draw_count: u32) -> Self { + self.max_multi_draw_count = max_multi_draw_count; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct GraphicsShaderGroupCreateInfoNV<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub stage_count: u32, + pub p_stages: *const PipelineShaderStageCreateInfo<'a>, + pub p_vertex_input_state: *const PipelineVertexInputStateCreateInfo<'a>, + pub p_tessellation_state: *const PipelineTessellationStateCreateInfo<'a>, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for GraphicsShaderGroupCreateInfoNV<'_> {} +unsafe impl Sync for GraphicsShaderGroupCreateInfoNV<'_> {} +impl ::core::default::Default for GraphicsShaderGroupCreateInfoNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + stage_count: u32::default(), + p_stages: ::core::ptr::null(), + p_vertex_input_state: ::core::ptr::null(), + p_tessellation_state: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for GraphicsShaderGroupCreateInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::GRAPHICS_SHADER_GROUP_CREATE_INFO_NV; +} +impl<'a> GraphicsShaderGroupCreateInfoNV<'a> { + #[inline] + pub fn stages(mut self, stages: &'a [PipelineShaderStageCreateInfo<'a>]) -> Self { + self.stage_count = stages.len() as _; + self.p_stages = stages.as_ptr(); + self + } + #[inline] + pub fn vertex_input_state( + mut self, + vertex_input_state: &'a PipelineVertexInputStateCreateInfo<'a>, + ) -> Self { + self.p_vertex_input_state = vertex_input_state; + self + } + #[inline] + pub fn tessellation_state( + mut self, + tessellation_state: &'a PipelineTessellationStateCreateInfo<'a>, + ) -> Self { + self.p_tessellation_state = tessellation_state; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct GraphicsPipelineShaderGroupsCreateInfoNV<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub group_count: u32, + pub p_groups: *const GraphicsShaderGroupCreateInfoNV<'a>, + pub pipeline_count: u32, + pub p_pipelines: *const Pipeline, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for GraphicsPipelineShaderGroupsCreateInfoNV<'_> {} +unsafe impl Sync for GraphicsPipelineShaderGroupsCreateInfoNV<'_> {} +impl ::core::default::Default for GraphicsPipelineShaderGroupsCreateInfoNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + group_count: u32::default(), + p_groups: ::core::ptr::null(), + pipeline_count: u32::default(), + p_pipelines: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for GraphicsPipelineShaderGroupsCreateInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV; +} +unsafe impl Extends> + for GraphicsPipelineShaderGroupsCreateInfoNV<'_> +{ +} +impl<'a> GraphicsPipelineShaderGroupsCreateInfoNV<'a> { + #[inline] + pub fn groups(mut self, groups: &'a [GraphicsShaderGroupCreateInfoNV<'a>]) -> Self { + self.group_count = groups.len() as _; + self.p_groups = groups.as_ptr(); + self + } + #[inline] + pub fn pipelines(mut self, pipelines: &'a [Pipeline]) -> Self { + self.pipeline_count = pipelines.len() as _; + self.p_pipelines = pipelines.as_ptr(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct BindShaderGroupIndirectCommandNV { + pub group_index: u32, +} +impl BindShaderGroupIndirectCommandNV { + #[inline] + pub fn group_index(mut self, group_index: u32) -> Self { + self.group_index = group_index; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct BindIndexBufferIndirectCommandNV { + pub buffer_address: DeviceAddress, + pub size: u32, + pub index_type: IndexType, +} +impl BindIndexBufferIndirectCommandNV { + #[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 BindVertexBufferIndirectCommandNV { + pub buffer_address: DeviceAddress, + pub size: u32, + pub stride: u32, +} +impl BindVertexBufferIndirectCommandNV { + #[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 SetStateFlagsIndirectCommandNV { + pub data: u32, +} +impl SetStateFlagsIndirectCommandNV { + #[inline] + pub fn data(mut self, data: u32) -> Self { + self.data = data; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct IndirectCommandsStreamNV { + pub buffer: Buffer, + pub offset: DeviceSize, +} +impl IndirectCommandsStreamNV { + #[inline] + pub fn buffer(mut self, buffer: Buffer) -> Self { + self.buffer = buffer; + self + } + #[inline] + pub fn offset(mut self, offset: DeviceSize) -> Self { + self.offset = offset; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct IndirectCommandsLayoutTokenNV<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub token_type: IndirectCommandsTokenTypeNV, + pub stream: u32, + pub offset: u32, + pub vertex_binding_unit: u32, + pub vertex_dynamic_stride: Bool32, + pub pushconstant_pipeline_layout: PipelineLayout, + pub pushconstant_shader_stage_flags: ShaderStageFlags, + pub pushconstant_offset: u32, + pub pushconstant_size: u32, + pub indirect_state_flags: IndirectStateFlagsNV, + pub index_type_count: u32, + pub p_index_types: *const IndexType, + pub p_index_type_values: *const u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for IndirectCommandsLayoutTokenNV<'_> {} +unsafe impl Sync for IndirectCommandsLayoutTokenNV<'_> {} +impl ::core::default::Default for IndirectCommandsLayoutTokenNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + token_type: IndirectCommandsTokenTypeNV::default(), + stream: u32::default(), + offset: u32::default(), + vertex_binding_unit: u32::default(), + vertex_dynamic_stride: Bool32::default(), + pushconstant_pipeline_layout: PipelineLayout::default(), + pushconstant_shader_stage_flags: ShaderStageFlags::default(), + pushconstant_offset: u32::default(), + pushconstant_size: u32::default(), + indirect_state_flags: IndirectStateFlagsNV::default(), + index_type_count: u32::default(), + p_index_types: ::core::ptr::null(), + p_index_type_values: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for IndirectCommandsLayoutTokenNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_TOKEN_NV; +} +impl<'a> IndirectCommandsLayoutTokenNV<'a> { + #[inline] + pub fn token_type(mut self, token_type: IndirectCommandsTokenTypeNV) -> Self { + self.token_type = token_type; + self + } + #[inline] + pub fn stream(mut self, stream: u32) -> Self { + self.stream = stream; + self + } + #[inline] + pub fn offset(mut self, offset: u32) -> Self { + self.offset = offset; + self + } + #[inline] + pub fn vertex_binding_unit(mut self, vertex_binding_unit: u32) -> Self { + self.vertex_binding_unit = vertex_binding_unit; + self + } + #[inline] + pub fn vertex_dynamic_stride(mut self, vertex_dynamic_stride: bool) -> Self { + self.vertex_dynamic_stride = vertex_dynamic_stride.into(); + self + } + #[inline] + pub fn pushconstant_pipeline_layout( + mut self, + pushconstant_pipeline_layout: PipelineLayout, + ) -> Self { + self.pushconstant_pipeline_layout = pushconstant_pipeline_layout; + self + } + #[inline] + pub fn pushconstant_shader_stage_flags( + mut self, + pushconstant_shader_stage_flags: ShaderStageFlags, + ) -> Self { + self.pushconstant_shader_stage_flags = pushconstant_shader_stage_flags; + self + } + #[inline] + pub fn pushconstant_offset(mut self, pushconstant_offset: u32) -> Self { + self.pushconstant_offset = pushconstant_offset; + self + } + #[inline] + pub fn pushconstant_size(mut self, pushconstant_size: u32) -> Self { + self.pushconstant_size = pushconstant_size; + self + } + #[inline] + pub fn indirect_state_flags(mut self, indirect_state_flags: IndirectStateFlagsNV) -> Self { + self.indirect_state_flags = indirect_state_flags; + self + } + #[inline] + pub fn index_types(mut self, index_types: &'a [IndexType]) -> Self { + self.index_type_count = index_types.len() as _; + self.p_index_types = index_types.as_ptr(); + self + } + #[inline] + pub fn index_type_values(mut self, index_type_values: &'a [u32]) -> Self { + self.index_type_count = index_type_values.len() as _; + self.p_index_type_values = index_type_values.as_ptr(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct IndirectCommandsLayoutCreateInfoNV<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub flags: IndirectCommandsLayoutUsageFlagsNV, + pub pipeline_bind_point: PipelineBindPoint, + pub token_count: u32, + pub p_tokens: *const IndirectCommandsLayoutTokenNV<'a>, + pub stream_count: u32, + pub p_stream_strides: *const u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for IndirectCommandsLayoutCreateInfoNV<'_> {} +unsafe impl Sync for IndirectCommandsLayoutCreateInfoNV<'_> {} +impl ::core::default::Default for IndirectCommandsLayoutCreateInfoNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + flags: IndirectCommandsLayoutUsageFlagsNV::default(), + pipeline_bind_point: PipelineBindPoint::default(), + token_count: u32::default(), + p_tokens: ::core::ptr::null(), + stream_count: u32::default(), + p_stream_strides: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for IndirectCommandsLayoutCreateInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV; +} +impl<'a> IndirectCommandsLayoutCreateInfoNV<'a> { + #[inline] + pub fn flags(mut self, flags: IndirectCommandsLayoutUsageFlagsNV) -> Self { + self.flags = flags; + self + } + #[inline] + pub fn pipeline_bind_point(mut self, pipeline_bind_point: PipelineBindPoint) -> Self { + self.pipeline_bind_point = pipeline_bind_point; + self + } + #[inline] + pub fn tokens(mut self, tokens: &'a [IndirectCommandsLayoutTokenNV<'a>]) -> Self { + self.token_count = tokens.len() as _; + self.p_tokens = tokens.as_ptr(); + self + } + #[inline] + pub fn stream_strides(mut self, stream_strides: &'a [u32]) -> Self { + self.stream_count = stream_strides.len() as _; + self.p_stream_strides = stream_strides.as_ptr(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct GeneratedCommandsInfoNV<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub pipeline_bind_point: PipelineBindPoint, + pub pipeline: Pipeline, + pub indirect_commands_layout: IndirectCommandsLayoutNV, + pub stream_count: u32, + pub p_streams: *const IndirectCommandsStreamNV, + pub sequences_count: u32, + pub preprocess_buffer: Buffer, + pub preprocess_offset: DeviceSize, + pub preprocess_size: DeviceSize, + pub sequences_count_buffer: Buffer, + pub sequences_count_offset: DeviceSize, + pub sequences_index_buffer: Buffer, + pub sequences_index_offset: DeviceSize, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for GeneratedCommandsInfoNV<'_> {} +unsafe impl Sync for GeneratedCommandsInfoNV<'_> {} +impl ::core::default::Default for GeneratedCommandsInfoNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + pipeline_bind_point: PipelineBindPoint::default(), pipeline: Pipeline::default(), indirect_commands_layout: IndirectCommandsLayoutNV::default(), stream_count: u32::default(), @@ -11130,17 +11978,17 @@ impl<'a> PhysicalDeviceSparseImageFormatInfo2<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDevicePushDescriptorPropertiesKHR<'a> { +pub struct PhysicalDevicePushDescriptorProperties<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub max_push_descriptors: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDevicePushDescriptorPropertiesKHR<'_> {} -unsafe impl Sync for PhysicalDevicePushDescriptorPropertiesKHR<'_> {} -impl ::core::default::Default for PhysicalDevicePushDescriptorPropertiesKHR<'_> { +unsafe impl Send for PhysicalDevicePushDescriptorProperties<'_> {} +unsafe impl Sync for PhysicalDevicePushDescriptorProperties<'_> {} +impl ::core::default::Default for PhysicalDevicePushDescriptorProperties<'_> { #[inline] fn default() -> Self { Self { @@ -11151,15 +11999,11 @@ impl ::core::default::Default for PhysicalDevicePushDescriptorPropertiesKHR<'_> } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePushDescriptorPropertiesKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR; -} -unsafe impl Extends> - for PhysicalDevicePushDescriptorPropertiesKHR<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePushDescriptorProperties<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES; } -impl<'a> PhysicalDevicePushDescriptorPropertiesKHR<'a> { +unsafe impl Extends> for PhysicalDevicePushDescriptorProperties<'_> {} +impl<'a> PhysicalDevicePushDescriptorProperties<'a> { #[inline] pub fn max_push_descriptors(mut self, max_push_descriptors: u32) -> Self { self.max_push_descriptors = max_push_descriptors; @@ -12268,6 +13112,123 @@ impl<'a> Win32KeyedMutexAcquireReleaseInfoKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ImportMemoryMetalHandleInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub handle_type: ExternalMemoryHandleTypeFlags, + pub handle: *mut c_void, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ImportMemoryMetalHandleInfoEXT<'_> {} +unsafe impl Sync for ImportMemoryMetalHandleInfoEXT<'_> {} +impl ::core::default::Default for ImportMemoryMetalHandleInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + handle_type: ExternalMemoryHandleTypeFlags::default(), + handle: ::core::ptr::null_mut(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for ImportMemoryMetalHandleInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_METAL_HANDLE_INFO_EXT; +} +unsafe impl Extends> for ImportMemoryMetalHandleInfoEXT<'_> {} +impl<'a> ImportMemoryMetalHandleInfoEXT<'a> { + #[inline] + pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { + self.handle_type = handle_type; + self + } + #[inline] + pub fn handle(mut self, handle: *mut c_void) -> Self { + self.handle = handle; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct MemoryMetalHandlePropertiesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub memory_type_bits: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for MemoryMetalHandlePropertiesEXT<'_> {} +unsafe impl Sync for MemoryMetalHandlePropertiesEXT<'_> {} +impl ::core::default::Default for MemoryMetalHandlePropertiesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + memory_type_bits: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for MemoryMetalHandlePropertiesEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_METAL_HANDLE_PROPERTIES_EXT; +} +impl<'a> MemoryMetalHandlePropertiesEXT<'a> { + #[inline] + pub fn memory_type_bits(mut self, memory_type_bits: u32) -> Self { + self.memory_type_bits = memory_type_bits; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct MemoryGetMetalHandleInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub memory: DeviceMemory, + pub handle_type: ExternalMemoryHandleTypeFlags, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for MemoryGetMetalHandleInfoEXT<'_> {} +unsafe impl Sync for MemoryGetMetalHandleInfoEXT<'_> {} +impl ::core::default::Default for MemoryGetMetalHandleInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + memory: DeviceMemory::default(), + handle_type: ExternalMemoryHandleTypeFlags::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for MemoryGetMetalHandleInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_GET_METAL_HANDLE_INFO_EXT; +} +impl<'a> MemoryGetMetalHandleInfoEXT<'a> { + #[inline] + pub fn memory(mut self, memory: DeviceMemory) -> Self { + self.memory = memory; + self + } + #[inline] + pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { + self.handle_type = handle_type; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct PhysicalDeviceExternalSemaphoreInfo<'a> { @@ -14551,6 +15512,121 @@ impl<'a> PresentIdKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDevicePresentId2FeaturesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub present_id2: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDevicePresentId2FeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDevicePresentId2FeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDevicePresentId2FeaturesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + present_id2: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePresentId2FeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR; +} +unsafe impl Extends> for PhysicalDevicePresentId2FeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDevicePresentId2FeaturesKHR<'_> {} +impl<'a> PhysicalDevicePresentId2FeaturesKHR<'a> { + #[inline] + pub fn present_id2(mut self, present_id2: bool) -> Self { + self.present_id2 = present_id2.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PresentId2KHR<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub swapchain_count: u32, + pub p_present_ids: *const u64, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PresentId2KHR<'_> {} +unsafe impl Sync for PresentId2KHR<'_> {} +impl ::core::default::Default for PresentId2KHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + swapchain_count: u32::default(), + p_present_ids: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PresentId2KHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PRESENT_ID_2_KHR; +} +unsafe impl Extends> for PresentId2KHR<'_> {} +impl<'a> PresentId2KHR<'a> { + #[inline] + pub fn present_ids(mut self, present_ids: &'a [u64]) -> Self { + self.swapchain_count = present_ids.len() as _; + self.p_present_ids = present_ids.as_ptr(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PresentWait2InfoKHR<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub present_id: u64, + pub timeout: u64, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PresentWait2InfoKHR<'_> {} +unsafe impl Sync for PresentWait2InfoKHR<'_> {} +impl ::core::default::Default for PresentWait2InfoKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + present_id: u64::default(), + timeout: u64::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PresentWait2InfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PRESENT_WAIT_2_INFO_KHR; +} +impl<'a> PresentWait2InfoKHR<'a> { + #[inline] + pub fn present_id(mut self, present_id: u64) -> Self { + self.present_id = present_id; + self + } + #[inline] + pub fn timeout(mut self, timeout: u64) -> Self { + self.timeout = timeout; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct PhysicalDevicePresentWaitFeaturesKHR<'a> { @@ -14587,6 +15663,43 @@ impl<'a> PhysicalDevicePresentWaitFeaturesKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDevicePresentWait2FeaturesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub present_wait2: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDevicePresentWait2FeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDevicePresentWait2FeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDevicePresentWait2FeaturesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + present_wait2: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePresentWait2FeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR; +} +unsafe impl Extends> for PhysicalDevicePresentWait2FeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDevicePresentWait2FeaturesKHR<'_> {} +impl<'a> PhysicalDevicePresentWait2FeaturesKHR<'a> { + #[inline] + pub fn present_wait2(mut self, present_wait2: bool) -> Self { + self.present_wait2 = present_wait2.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct HdrMetadataEXT<'a> { @@ -14670,6 +15783,44 @@ impl<'a> HdrMetadataEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct HdrVividDynamicMetadataHUAWEI<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub dynamic_metadata_size: usize, + pub p_dynamic_metadata: *const c_void, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for HdrVividDynamicMetadataHUAWEI<'_> {} +unsafe impl Sync for HdrVividDynamicMetadataHUAWEI<'_> {} +impl ::core::default::Default for HdrVividDynamicMetadataHUAWEI<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + dynamic_metadata_size: usize::default(), + p_dynamic_metadata: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for HdrVividDynamicMetadataHUAWEI<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::HDR_VIVID_DYNAMIC_METADATA_HUAWEI; +} +unsafe impl Extends> for HdrVividDynamicMetadataHUAWEI<'_> {} +impl<'a> HdrVividDynamicMetadataHUAWEI<'a> { + #[inline] + pub fn dynamic_metadata(mut self, dynamic_metadata: &'a [u8]) -> Self { + self.dynamic_metadata_size = dynamic_metadata.len(); + self.p_dynamic_metadata = dynamic_metadata.as_ptr().cast(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct DisplayNativeHdrSurfaceCapabilitiesAMD<'a> { @@ -15549,6 +16700,41 @@ impl<'a> DisplayModeProperties2KHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct DisplayModeStereoPropertiesNV<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub hdmi3_d_supported: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for DisplayModeStereoPropertiesNV<'_> {} +unsafe impl Sync for DisplayModeStereoPropertiesNV<'_> {} +impl ::core::default::Default for DisplayModeStereoPropertiesNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + hdmi3_d_supported: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for DisplayModeStereoPropertiesNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DISPLAY_MODE_STEREO_PROPERTIES_NV; +} +unsafe impl Extends> for DisplayModeStereoPropertiesNV<'_> {} +impl<'a> DisplayModeStereoPropertiesNV<'a> { + #[inline] + pub fn hdmi3_d_supported(mut self, hdmi3_d_supported: bool) -> Self { + self.hdmi3_d_supported = hdmi3_d_supported.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct DisplayPlaneInfo2KHR<'a> { @@ -18044,17 +19230,17 @@ impl<'a> PhysicalDeviceMaintenance4Properties<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceMaintenance5FeaturesKHR<'a> { +pub struct PhysicalDeviceMaintenance5Features<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub maintenance5: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceMaintenance5FeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceMaintenance5FeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceMaintenance5FeaturesKHR<'_> { +unsafe impl Send for PhysicalDeviceMaintenance5Features<'_> {} +unsafe impl Sync for PhysicalDeviceMaintenance5Features<'_> {} +impl ::core::default::Default for PhysicalDeviceMaintenance5Features<'_> { #[inline] fn default() -> Self { Self { @@ -18065,12 +19251,12 @@ impl ::core::default::Default for PhysicalDeviceMaintenance5FeaturesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance5FeaturesKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance5Features<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES; } -unsafe impl Extends> for PhysicalDeviceMaintenance5FeaturesKHR<'_> {} -unsafe impl Extends> for PhysicalDeviceMaintenance5FeaturesKHR<'_> {} -impl<'a> PhysicalDeviceMaintenance5FeaturesKHR<'a> { +unsafe impl Extends> for PhysicalDeviceMaintenance5Features<'_> {} +unsafe impl Extends> for PhysicalDeviceMaintenance5Features<'_> {} +impl<'a> PhysicalDeviceMaintenance5Features<'a> { #[inline] pub fn maintenance5(mut self, maintenance5: bool) -> Self { self.maintenance5 = maintenance5.into(); @@ -18080,9 +19266,9 @@ impl<'a> PhysicalDeviceMaintenance5FeaturesKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceMaintenance5PropertiesKHR<'a> { +pub struct PhysicalDeviceMaintenance5Properties<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub early_fragment_multisample_coverage_after_sample_counting: Bool32, @@ -18093,9 +19279,9 @@ pub struct PhysicalDeviceMaintenance5PropertiesKHR<'a> { pub non_strict_wide_lines_use_parallelogram: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceMaintenance5PropertiesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceMaintenance5PropertiesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceMaintenance5PropertiesKHR<'_> { +unsafe impl Send for PhysicalDeviceMaintenance5Properties<'_> {} +unsafe impl Sync for PhysicalDeviceMaintenance5Properties<'_> {} +impl ::core::default::Default for PhysicalDeviceMaintenance5Properties<'_> { #[inline] fn default() -> Self { Self { @@ -18111,12 +19297,11 @@ impl ::core::default::Default for PhysicalDeviceMaintenance5PropertiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance5PropertiesKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance5Properties<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES; } -unsafe impl Extends> for PhysicalDeviceMaintenance5PropertiesKHR<'_> {} -impl<'a> PhysicalDeviceMaintenance5PropertiesKHR<'a> { +unsafe impl Extends> for PhysicalDeviceMaintenance5Properties<'_> {} +impl<'a> PhysicalDeviceMaintenance5Properties<'a> { #[inline] pub fn early_fragment_multisample_coverage_after_sample_counting( mut self, @@ -18170,17 +19355,17 @@ impl<'a> PhysicalDeviceMaintenance5PropertiesKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceMaintenance6FeaturesKHR<'a> { +pub struct PhysicalDeviceMaintenance6Features<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub maintenance6: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceMaintenance6FeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceMaintenance6FeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceMaintenance6FeaturesKHR<'_> { +unsafe impl Send for PhysicalDeviceMaintenance6Features<'_> {} +unsafe impl Sync for PhysicalDeviceMaintenance6Features<'_> {} +impl ::core::default::Default for PhysicalDeviceMaintenance6Features<'_> { #[inline] fn default() -> Self { Self { @@ -18191,12 +19376,12 @@ impl ::core::default::Default for PhysicalDeviceMaintenance6FeaturesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance6FeaturesKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance6Features<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES; } -unsafe impl Extends> for PhysicalDeviceMaintenance6FeaturesKHR<'_> {} -unsafe impl Extends> for PhysicalDeviceMaintenance6FeaturesKHR<'_> {} -impl<'a> PhysicalDeviceMaintenance6FeaturesKHR<'a> { +unsafe impl Extends> for PhysicalDeviceMaintenance6Features<'_> {} +unsafe impl Extends> for PhysicalDeviceMaintenance6Features<'_> {} +impl<'a> PhysicalDeviceMaintenance6Features<'a> { #[inline] pub fn maintenance6(mut self, maintenance6: bool) -> Self { self.maintenance6 = maintenance6.into(); @@ -18206,9 +19391,9 @@ impl<'a> PhysicalDeviceMaintenance6FeaturesKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceMaintenance6PropertiesKHR<'a> { +pub struct PhysicalDeviceMaintenance6Properties<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub block_texel_view_compatible_multiple_layers: Bool32, @@ -18216,9 +19401,9 @@ pub struct PhysicalDeviceMaintenance6PropertiesKHR<'a> { pub fragment_shading_rate_clamp_combiner_inputs: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceMaintenance6PropertiesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceMaintenance6PropertiesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceMaintenance6PropertiesKHR<'_> { +unsafe impl Send for PhysicalDeviceMaintenance6Properties<'_> {} +unsafe impl Sync for PhysicalDeviceMaintenance6Properties<'_> {} +impl ::core::default::Default for PhysicalDeviceMaintenance6Properties<'_> { #[inline] fn default() -> Self { Self { @@ -18231,12 +19416,11 @@ impl ::core::default::Default for PhysicalDeviceMaintenance6PropertiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance6PropertiesKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance6Properties<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES; } -unsafe impl Extends> for PhysicalDeviceMaintenance6PropertiesKHR<'_> {} -impl<'a> PhysicalDeviceMaintenance6PropertiesKHR<'a> { +unsafe impl Extends> for PhysicalDeviceMaintenance6Properties<'_> {} +impl<'a> PhysicalDeviceMaintenance6Properties<'a> { #[inline] pub fn block_texel_view_compatible_multiple_layers( mut self, @@ -18577,9 +19761,166 @@ impl<'a> PhysicalDeviceLayeredApiVulkanPropertiesKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceMaintenance8FeaturesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub maintenance8: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceMaintenance8FeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceMaintenance8FeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceMaintenance8FeaturesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + maintenance8: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance8FeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR; +} +unsafe impl Extends> for PhysicalDeviceMaintenance8FeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceMaintenance8FeaturesKHR<'_> {} +impl<'a> PhysicalDeviceMaintenance8FeaturesKHR<'a> { + #[inline] + pub fn maintenance8(mut self, maintenance8: bool) -> Self { + self.maintenance8 = maintenance8.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceMaintenance9FeaturesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub maintenance9: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceMaintenance9FeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceMaintenance9FeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceMaintenance9FeaturesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + maintenance9: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance9FeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR; +} +unsafe impl Extends> for PhysicalDeviceMaintenance9FeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceMaintenance9FeaturesKHR<'_> {} +impl<'a> PhysicalDeviceMaintenance9FeaturesKHR<'a> { + #[inline] + pub fn maintenance9(mut self, maintenance9: bool) -> Self { + self.maintenance9 = maintenance9.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceMaintenance9PropertiesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub image2_d_view_of3_d_sparse: Bool32, + pub default_vertex_attribute_value: DefaultVertexAttributeValueKHR, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceMaintenance9PropertiesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceMaintenance9PropertiesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceMaintenance9PropertiesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + image2_d_view_of3_d_sparse: Bool32::default(), + default_vertex_attribute_value: DefaultVertexAttributeValueKHR::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMaintenance9PropertiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR; +} +unsafe impl Extends> for PhysicalDeviceMaintenance9PropertiesKHR<'_> {} +impl<'a> PhysicalDeviceMaintenance9PropertiesKHR<'a> { + #[inline] + pub fn image2_d_view_of3_d_sparse(mut self, image2_d_view_of3_d_sparse: bool) -> Self { + self.image2_d_view_of3_d_sparse = image2_d_view_of3_d_sparse.into(); + self + } + #[inline] + pub fn default_vertex_attribute_value( + mut self, + default_vertex_attribute_value: DefaultVertexAttributeValueKHR, + ) -> Self { + self.default_vertex_attribute_value = default_vertex_attribute_value; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct QueueFamilyOwnershipTransferPropertiesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub optimal_image_transfer_to_queue_families: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for QueueFamilyOwnershipTransferPropertiesKHR<'_> {} +unsafe impl Sync for QueueFamilyOwnershipTransferPropertiesKHR<'_> {} +impl ::core::default::Default for QueueFamilyOwnershipTransferPropertiesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + optimal_image_transfer_to_queue_families: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for QueueFamilyOwnershipTransferPropertiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR; +} +unsafe impl Extends> for QueueFamilyOwnershipTransferPropertiesKHR<'_> {} +impl<'a> QueueFamilyOwnershipTransferPropertiesKHR<'a> { + #[inline] + pub fn optimal_image_transfer_to_queue_families( + mut self, + optimal_image_transfer_to_queue_families: u32, + ) -> Self { + self.optimal_image_transfer_to_queue_families = optimal_image_transfer_to_queue_families; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] #[must_use] -pub struct RenderingAreaInfoKHR<'a> { +pub struct RenderingAreaInfo<'a> { pub s_type: StructureType, pub p_next: *const c_void, pub view_mask: u32, @@ -18589,9 +19930,9 @@ pub struct RenderingAreaInfoKHR<'a> { pub stencil_attachment_format: Format, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for RenderingAreaInfoKHR<'_> {} -unsafe impl Sync for RenderingAreaInfoKHR<'_> {} -impl ::core::default::Default for RenderingAreaInfoKHR<'_> { +unsafe impl Send for RenderingAreaInfo<'_> {} +unsafe impl Sync for RenderingAreaInfo<'_> {} +impl ::core::default::Default for RenderingAreaInfo<'_> { #[inline] fn default() -> Self { Self { @@ -18606,10 +19947,10 @@ impl ::core::default::Default for RenderingAreaInfoKHR<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for RenderingAreaInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_AREA_INFO_KHR; +unsafe impl<'a> TaggedStructure<'a> for RenderingAreaInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_AREA_INFO; } -impl<'a> RenderingAreaInfoKHR<'a> { +impl<'a> RenderingAreaInfo<'a> { #[inline] pub fn view_mask(mut self, view_mask: u32) -> Self { self.view_mask = view_mask; @@ -19034,6 +20375,8 @@ impl ::core::default::Default for NativeBufferANDROID<'_> { unsafe impl<'a> TaggedStructure<'a> for NativeBufferANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::NATIVE_BUFFER_ANDROID; } +unsafe impl Extends> for NativeBufferANDROID<'_> {} +unsafe impl Extends> for NativeBufferANDROID<'_> {} impl<'a> NativeBufferANDROID<'a> { #[inline] pub fn handle(mut self, handle: *const c_void) -> Self { @@ -19088,6 +20431,7 @@ impl ::core::default::Default for SwapchainImageCreateInfoANDROID<'_> { unsafe impl<'a> TaggedStructure<'a> for SwapchainImageCreateInfoANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID; } +unsafe impl Extends> for SwapchainImageCreateInfoANDROID<'_> {} impl<'a> SwapchainImageCreateInfoANDROID<'a> { #[inline] pub fn usage(mut self, usage: SwapchainImageUsageFlagsANDROID) -> Self { @@ -19123,6 +20467,10 @@ unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePresentationPropertiesANDR const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID; } +unsafe impl Extends> + for PhysicalDevicePresentationPropertiesANDROID<'_> +{ +} impl<'a> PhysicalDevicePresentationPropertiesANDROID<'a> { #[inline] pub fn shared_image(mut self, shared_image: bool) -> Self { @@ -19237,35 +20585,34 @@ impl ShaderStatisticsInfoAMD { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DeviceQueueGlobalPriorityCreateInfoKHR<'a> { +pub struct DeviceQueueGlobalPriorityCreateInfo<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub global_priority: QueueGlobalPriorityKHR, + pub global_priority: QueueGlobalPriority, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for DeviceQueueGlobalPriorityCreateInfoKHR<'_> {} -unsafe impl Sync for DeviceQueueGlobalPriorityCreateInfoKHR<'_> {} -impl ::core::default::Default for DeviceQueueGlobalPriorityCreateInfoKHR<'_> { +unsafe impl Send for DeviceQueueGlobalPriorityCreateInfo<'_> {} +unsafe impl Sync for DeviceQueueGlobalPriorityCreateInfo<'_> {} +impl ::core::default::Default for DeviceQueueGlobalPriorityCreateInfo<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - global_priority: QueueGlobalPriorityKHR::default(), + global_priority: QueueGlobalPriority::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for DeviceQueueGlobalPriorityCreateInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR; +unsafe impl<'a> TaggedStructure<'a> for DeviceQueueGlobalPriorityCreateInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO; } -unsafe impl Extends> for DeviceQueueGlobalPriorityCreateInfoKHR<'_> {} -impl<'a> DeviceQueueGlobalPriorityCreateInfoKHR<'a> { +unsafe impl Extends> for DeviceQueueGlobalPriorityCreateInfo<'_> {} +impl<'a> DeviceQueueGlobalPriorityCreateInfo<'a> { #[inline] - pub fn global_priority(mut self, global_priority: QueueGlobalPriorityKHR) -> Self { + pub fn global_priority(mut self, global_priority: QueueGlobalPriority) -> Self { self.global_priority = global_priority; self } @@ -19273,17 +20620,17 @@ impl<'a> DeviceQueueGlobalPriorityCreateInfoKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'a> { +pub struct PhysicalDeviceGlobalPriorityQueryFeatures<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub global_priority_query: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'_> { +unsafe impl Send for PhysicalDeviceGlobalPriorityQueryFeatures<'_> {} +unsafe impl Sync for PhysicalDeviceGlobalPriorityQueryFeatures<'_> {} +impl ::core::default::Default for PhysicalDeviceGlobalPriorityQueryFeatures<'_> { #[inline] fn default() -> Self { Self { @@ -19294,16 +20641,13 @@ impl ::core::default::Default for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<' } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceGlobalPriorityQueryFeatures<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR; -} -unsafe impl Extends> - for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'_> -{ + StructureType::PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES; } -unsafe impl Extends> for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'_> {} -impl<'a> PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'a> { +unsafe impl Extends> for PhysicalDeviceGlobalPriorityQueryFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceGlobalPriorityQueryFeatures<'_> {} +impl<'a> PhysicalDeviceGlobalPriorityQueryFeatures<'a> { #[inline] pub fn global_priority_query(mut self, global_priority_query: bool) -> Self { self.global_priority_query = global_priority_query.into(); @@ -19312,21 +20656,21 @@ impl<'a> PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'a> { } #[repr(C)] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct QueueFamilyGlobalPriorityPropertiesKHR<'a> { +pub struct QueueFamilyGlobalPriorityProperties<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub priority_count: u32, - pub priorities: [QueueGlobalPriorityKHR; MAX_GLOBAL_PRIORITY_SIZE_KHR], + pub priorities: [QueueGlobalPriority; MAX_GLOBAL_PRIORITY_SIZE], pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for QueueFamilyGlobalPriorityPropertiesKHR<'_> {} -unsafe impl Sync for QueueFamilyGlobalPriorityPropertiesKHR<'_> {} +unsafe impl Send for QueueFamilyGlobalPriorityProperties<'_> {} +unsafe impl Sync for QueueFamilyGlobalPriorityProperties<'_> {} #[cfg(feature = "debug")] -impl fmt::Debug for QueueFamilyGlobalPriorityPropertiesKHR<'_> { +impl fmt::Debug for QueueFamilyGlobalPriorityProperties<'_> { fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("QueueFamilyGlobalPriorityPropertiesKHR") + fmt.debug_struct("QueueFamilyGlobalPriorityProperties") .field("s_type", &self.s_type) .field("p_next", &self.p_next) .field("priority_count", &self.priority_count) @@ -19334,7 +20678,7 @@ impl fmt::Debug for QueueFamilyGlobalPriorityPropertiesKHR<'_> { .finish() } } -impl ::core::default::Default for QueueFamilyGlobalPriorityPropertiesKHR<'_> { +impl ::core::default::Default for QueueFamilyGlobalPriorityProperties<'_> { #[inline] fn default() -> Self { Self { @@ -19346,20 +20690,19 @@ impl ::core::default::Default for QueueFamilyGlobalPriorityPropertiesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for QueueFamilyGlobalPriorityPropertiesKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR; +unsafe impl<'a> TaggedStructure<'a> for QueueFamilyGlobalPriorityProperties<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES; } -unsafe impl Extends> for QueueFamilyGlobalPriorityPropertiesKHR<'_> {} -impl<'a> QueueFamilyGlobalPriorityPropertiesKHR<'a> { +unsafe impl Extends> for QueueFamilyGlobalPriorityProperties<'_> {} +impl<'a> QueueFamilyGlobalPriorityProperties<'a> { #[inline] - pub fn priorities(mut self, priorities: &'_ [QueueGlobalPriorityKHR]) -> Self { + pub fn priorities(mut self, priorities: &'_ [QueueGlobalPriority]) -> Self { self.priority_count = priorities.len() as _; self.priorities[..priorities.len()].copy_from_slice(priorities); self } #[inline] - pub fn priorities_as_slice(&self) -> &[QueueGlobalPriorityKHR] { + pub fn priorities_as_slice(&self) -> &[QueueGlobalPriority] { &self.priorities[..self.priority_count as _] } } @@ -21749,13 +23092,13 @@ impl<'a> SemaphoreSignalInfo<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone, Default)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct VertexInputBindingDivisorDescriptionKHR { +pub struct VertexInputBindingDivisorDescription { pub binding: u32, pub divisor: u32, } -impl VertexInputBindingDivisorDescriptionKHR { +impl VertexInputBindingDivisorDescription { #[inline] pub fn binding(mut self, binding: u32) -> Self { self.binding = binding; @@ -21770,18 +23113,18 @@ impl VertexInputBindingDivisorDescriptionKHR { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PipelineVertexInputDivisorStateCreateInfoKHR<'a> { +pub struct PipelineVertexInputDivisorStateCreateInfo<'a> { pub s_type: StructureType, pub p_next: *const c_void, pub vertex_binding_divisor_count: u32, - pub p_vertex_binding_divisors: *const VertexInputBindingDivisorDescriptionKHR, + pub p_vertex_binding_divisors: *const VertexInputBindingDivisorDescription, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PipelineVertexInputDivisorStateCreateInfoKHR<'_> {} -unsafe impl Sync for PipelineVertexInputDivisorStateCreateInfoKHR<'_> {} -impl ::core::default::Default for PipelineVertexInputDivisorStateCreateInfoKHR<'_> { +unsafe impl Send for PipelineVertexInputDivisorStateCreateInfo<'_> {} +unsafe impl Sync for PipelineVertexInputDivisorStateCreateInfo<'_> {} +impl ::core::default::Default for PipelineVertexInputDivisorStateCreateInfo<'_> { #[inline] fn default() -> Self { Self { @@ -21793,19 +23136,19 @@ impl ::core::default::Default for PipelineVertexInputDivisorStateCreateInfoKHR<' } } } -unsafe impl<'a> TaggedStructure<'a> for PipelineVertexInputDivisorStateCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineVertexInputDivisorStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR; + StructureType::PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO; } unsafe impl Extends> - for PipelineVertexInputDivisorStateCreateInfoKHR<'_> + for PipelineVertexInputDivisorStateCreateInfo<'_> { } -impl<'a> PipelineVertexInputDivisorStateCreateInfoKHR<'a> { +impl<'a> PipelineVertexInputDivisorStateCreateInfo<'a> { #[inline] pub fn vertex_binding_divisors( mut self, - vertex_binding_divisors: &'a [VertexInputBindingDivisorDescriptionKHR], + vertex_binding_divisors: &'a [VertexInputBindingDivisorDescription], ) -> Self { self.vertex_binding_divisor_count = vertex_binding_divisors.len() as _; self.p_vertex_binding_divisors = vertex_binding_divisors.as_ptr(); @@ -21854,18 +23197,18 @@ impl<'a> PhysicalDeviceVertexAttributeDivisorPropertiesEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceVertexAttributeDivisorPropertiesKHR<'a> { +pub struct PhysicalDeviceVertexAttributeDivisorProperties<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub max_vertex_attrib_divisor: u32, pub supports_non_zero_first_instance: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceVertexAttributeDivisorPropertiesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceVertexAttributeDivisorPropertiesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceVertexAttributeDivisorPropertiesKHR<'_> { +unsafe impl Send for PhysicalDeviceVertexAttributeDivisorProperties<'_> {} +unsafe impl Sync for PhysicalDeviceVertexAttributeDivisorProperties<'_> {} +impl ::core::default::Default for PhysicalDeviceVertexAttributeDivisorProperties<'_> { #[inline] fn default() -> Self { Self { @@ -21877,15 +23220,15 @@ impl ::core::default::Default for PhysicalDeviceVertexAttributeDivisorProperties } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVertexAttributeDivisorPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVertexAttributeDivisorProperties<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR; + StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES; } unsafe impl Extends> - for PhysicalDeviceVertexAttributeDivisorPropertiesKHR<'_> + for PhysicalDeviceVertexAttributeDivisorProperties<'_> { } -impl<'a> PhysicalDeviceVertexAttributeDivisorPropertiesKHR<'a> { +impl<'a> PhysicalDeviceVertexAttributeDivisorProperties<'a> { #[inline] pub fn max_vertex_attrib_divisor(mut self, max_vertex_attrib_divisor: u32) -> Self { self.max_vertex_attrib_divisor = max_vertex_attrib_divisor; @@ -22766,18 +24109,18 @@ impl<'a> PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'a> { +pub struct PhysicalDeviceVertexAttributeDivisorFeatures<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub vertex_attribute_instance_rate_divisor: Bool32, pub vertex_attribute_instance_rate_zero_divisor: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'_> { +unsafe impl Send for PhysicalDeviceVertexAttributeDivisorFeatures<'_> {} +unsafe impl Sync for PhysicalDeviceVertexAttributeDivisorFeatures<'_> {} +impl ::core::default::Default for PhysicalDeviceVertexAttributeDivisorFeatures<'_> { #[inline] fn default() -> Self { Self { @@ -22789,16 +24132,16 @@ impl ::core::default::Default for PhysicalDeviceVertexAttributeDivisorFeaturesKH } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVertexAttributeDivisorFeatures<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR; + StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES; } unsafe impl Extends> - for PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'_> + for PhysicalDeviceVertexAttributeDivisorFeatures<'_> { } -unsafe impl Extends> for PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'_> {} -impl<'a> PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'a> { +unsafe impl Extends> for PhysicalDeviceVertexAttributeDivisorFeatures<'_> {} +impl<'a> PhysicalDeviceVertexAttributeDivisorFeatures<'a> { #[inline] pub fn vertex_attribute_instance_rate_divisor( mut self, @@ -23690,6 +25033,53 @@ impl<'a> PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceCopyMemoryIndirectFeaturesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub indirect_memory_copy: Bool32, + pub indirect_memory_to_image_copy: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceCopyMemoryIndirectFeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceCopyMemoryIndirectFeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceCopyMemoryIndirectFeaturesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + indirect_memory_copy: Bool32::default(), + indirect_memory_to_image_copy: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCopyMemoryIndirectFeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR; +} +unsafe impl Extends> + for PhysicalDeviceCopyMemoryIndirectFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceCopyMemoryIndirectFeaturesKHR<'_> {} +impl<'a> PhysicalDeviceCopyMemoryIndirectFeaturesKHR<'a> { + #[inline] + pub fn indirect_memory_copy(mut self, indirect_memory_copy: bool) -> Self { + self.indirect_memory_copy = indirect_memory_copy.into(); + self + } + #[inline] + pub fn indirect_memory_to_image_copy(mut self, indirect_memory_to_image_copy: bool) -> Self { + self.indirect_memory_to_image_copy = indirect_memory_to_image_copy.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct PhysicalDeviceCopyMemoryIndirectFeaturesNV<'a> { @@ -23730,17 +25120,17 @@ impl<'a> PhysicalDeviceCopyMemoryIndirectFeaturesNV<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceCopyMemoryIndirectPropertiesNV<'a> { +pub struct PhysicalDeviceCopyMemoryIndirectPropertiesKHR<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub supported_queues: QueueFlags, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceCopyMemoryIndirectPropertiesNV<'_> {} -unsafe impl Sync for PhysicalDeviceCopyMemoryIndirectPropertiesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceCopyMemoryIndirectPropertiesNV<'_> { +unsafe impl Send for PhysicalDeviceCopyMemoryIndirectPropertiesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceCopyMemoryIndirectPropertiesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceCopyMemoryIndirectPropertiesKHR<'_> { #[inline] fn default() -> Self { Self { @@ -23751,15 +25141,15 @@ impl ::core::default::Default for PhysicalDeviceCopyMemoryIndirectPropertiesNV<' } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCopyMemoryIndirectPropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCopyMemoryIndirectPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV; + StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR; } unsafe impl Extends> - for PhysicalDeviceCopyMemoryIndirectPropertiesNV<'_> + for PhysicalDeviceCopyMemoryIndirectPropertiesKHR<'_> { } -impl<'a> PhysicalDeviceCopyMemoryIndirectPropertiesNV<'a> { +impl<'a> PhysicalDeviceCopyMemoryIndirectPropertiesKHR<'a> { #[inline] pub fn supported_queues(mut self, supported_queues: QueueFlags) -> Self { self.supported_queues = supported_queues; @@ -26728,17 +28118,17 @@ impl<'a> PhysicalDeviceFragmentDensityMap2FeaturesEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'a> { +pub struct PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub fragment_density_map_offset: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'_> {} -unsafe impl Sync for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'_> {} -impl ::core::default::Default for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'_> { +unsafe impl Send for PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT<'_> { #[inline] fn default() -> Self { Self { @@ -26749,19 +28139,19 @@ impl ::core::default::Default for PhysicalDeviceFragmentDensityMapOffsetFeatures } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM; + StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT; } unsafe impl Extends> - for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'_> + for PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT<'_> { } unsafe impl Extends> - for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'_> + for PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT<'_> { } -impl<'a> PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'a> { +impl<'a> PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT<'a> { #[inline] pub fn fragment_density_map_offset(mut self, fragment_density_map_offset: bool) -> Self { self.fragment_density_map_offset = fragment_density_map_offset.into(); @@ -26897,17 +28287,17 @@ impl<'a> PhysicalDeviceFragmentDensityMap2PropertiesEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM<'a> { +pub struct PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub fragment_density_offset_granularity: Extent2D, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM<'_> {} -unsafe impl Sync for PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM<'_> {} -impl ::core::default::Default for PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM<'_> { +unsafe impl Send for PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT<'_> { #[inline] fn default() -> Self { Self { @@ -26918,15 +28308,15 @@ impl ::core::default::Default for PhysicalDeviceFragmentDensityMapOffsetProperti } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM; + StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT; } unsafe impl Extends> - for PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM<'_> + for PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT<'_> { } -impl<'a> PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM<'a> { +impl<'a> PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT<'a> { #[inline] pub fn fragment_density_offset_granularity( mut self, @@ -26979,18 +28369,18 @@ impl<'a> RenderPassFragmentDensityMapCreateInfoEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct SubpassFragmentDensityMapOffsetEndInfoQCOM<'a> { +pub struct RenderPassFragmentDensityMapOffsetEndInfoEXT<'a> { pub s_type: StructureType, pub p_next: *const c_void, pub fragment_density_offset_count: u32, pub p_fragment_density_offsets: *const Offset2D, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for SubpassFragmentDensityMapOffsetEndInfoQCOM<'_> {} -unsafe impl Sync for SubpassFragmentDensityMapOffsetEndInfoQCOM<'_> {} -impl ::core::default::Default for SubpassFragmentDensityMapOffsetEndInfoQCOM<'_> { +unsafe impl Send for RenderPassFragmentDensityMapOffsetEndInfoEXT<'_> {} +unsafe impl Sync for RenderPassFragmentDensityMapOffsetEndInfoEXT<'_> {} +impl ::core::default::Default for RenderPassFragmentDensityMapOffsetEndInfoEXT<'_> { #[inline] fn default() -> Self { Self { @@ -27002,12 +28392,13 @@ impl ::core::default::Default for SubpassFragmentDensityMapOffsetEndInfoQCOM<'_> } } } -unsafe impl<'a> TaggedStructure<'a> for SubpassFragmentDensityMapOffsetEndInfoQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for RenderPassFragmentDensityMapOffsetEndInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM; + StructureType::RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT; } -unsafe impl Extends> for SubpassFragmentDensityMapOffsetEndInfoQCOM<'_> {} -impl<'a> SubpassFragmentDensityMapOffsetEndInfoQCOM<'a> { +unsafe impl Extends> for RenderPassFragmentDensityMapOffsetEndInfoEXT<'_> {} +unsafe impl Extends> for RenderPassFragmentDensityMapOffsetEndInfoEXT<'_> {} +impl<'a> RenderPassFragmentDensityMapOffsetEndInfoEXT<'a> { #[inline] pub fn fragment_density_offsets(mut self, fragment_density_offsets: &'a [Offset2D]) -> Self { self.fragment_density_offset_count = fragment_density_offsets.len() as _; @@ -28308,6 +29699,7 @@ unsafe impl Extends> for PipelineCreationFeedbackCreateInfo<'_> { } +unsafe impl Extends> for PipelineCreationFeedbackCreateInfo<'_> {} impl<'a> PipelineCreationFeedbackCreateInfo<'a> { #[inline] pub fn pipeline_creation_feedback( @@ -29457,17 +30849,17 @@ impl<'a> PhysicalDeviceShaderClockFeaturesKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceIndexTypeUint8FeaturesKHR<'a> { +pub struct PhysicalDeviceIndexTypeUint8Features<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub index_type_uint8: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceIndexTypeUint8FeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceIndexTypeUint8FeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceIndexTypeUint8FeaturesKHR<'_> { +unsafe impl Send for PhysicalDeviceIndexTypeUint8Features<'_> {} +unsafe impl Sync for PhysicalDeviceIndexTypeUint8Features<'_> {} +impl ::core::default::Default for PhysicalDeviceIndexTypeUint8Features<'_> { #[inline] fn default() -> Self { Self { @@ -29478,13 +30870,12 @@ impl ::core::default::Default for PhysicalDeviceIndexTypeUint8FeaturesKHR<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceIndexTypeUint8FeaturesKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceIndexTypeUint8Features<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES; } -unsafe impl Extends> for PhysicalDeviceIndexTypeUint8FeaturesKHR<'_> {} -unsafe impl Extends> for PhysicalDeviceIndexTypeUint8FeaturesKHR<'_> {} -impl<'a> PhysicalDeviceIndexTypeUint8FeaturesKHR<'a> { +unsafe impl Extends> for PhysicalDeviceIndexTypeUint8Features<'_> {} +unsafe impl Extends> for PhysicalDeviceIndexTypeUint8Features<'_> {} +impl<'a> PhysicalDeviceIndexTypeUint8Features<'a> { #[inline] pub fn index_type_uint8(mut self, index_type_uint8: bool) -> Self { self.index_type_uint8 = index_type_uint8.into(); @@ -30455,7 +31846,7 @@ impl<'a> PhysicalDeviceSubgroupSizeControlProperties<'a> { #[must_use] pub struct PipelineShaderStageRequiredSubgroupSizeCreateInfo<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, + pub p_next: *const c_void, pub required_subgroup_size: u32, pub _marker: PhantomData<&'a ()>, } @@ -30466,7 +31857,7 @@ impl ::core::default::Default for PipelineShaderStageRequiredSubgroupSizeCreateI fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), + p_next: ::core::ptr::null(), required_subgroup_size: u32::default(), _marker: PhantomData, } @@ -30713,9 +32104,9 @@ impl<'a> DeviceMemoryOpaqueCaptureAddressInfo<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceLineRasterizationFeaturesKHR<'a> { +pub struct PhysicalDeviceLineRasterizationFeatures<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub rectangular_lines: Bool32, @@ -30726,9 +32117,9 @@ pub struct PhysicalDeviceLineRasterizationFeaturesKHR<'a> { pub stippled_smooth_lines: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceLineRasterizationFeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceLineRasterizationFeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceLineRasterizationFeaturesKHR<'_> { +unsafe impl Send for PhysicalDeviceLineRasterizationFeatures<'_> {} +unsafe impl Sync for PhysicalDeviceLineRasterizationFeatures<'_> {} +impl ::core::default::Default for PhysicalDeviceLineRasterizationFeatures<'_> { #[inline] fn default() -> Self { Self { @@ -30744,16 +32135,13 @@ impl ::core::default::Default for PhysicalDeviceLineRasterizationFeaturesKHR<'_> } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceLineRasterizationFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceLineRasterizationFeatures<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR; + StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES; } -unsafe impl Extends> - for PhysicalDeviceLineRasterizationFeaturesKHR<'_> -{ -} -unsafe impl Extends> for PhysicalDeviceLineRasterizationFeaturesKHR<'_> {} -impl<'a> PhysicalDeviceLineRasterizationFeaturesKHR<'a> { +unsafe impl Extends> for PhysicalDeviceLineRasterizationFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceLineRasterizationFeatures<'_> {} +impl<'a> PhysicalDeviceLineRasterizationFeatures<'a> { #[inline] pub fn rectangular_lines(mut self, rectangular_lines: bool) -> Self { self.rectangular_lines = rectangular_lines.into(); @@ -30788,17 +32176,17 @@ impl<'a> PhysicalDeviceLineRasterizationFeaturesKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceLineRasterizationPropertiesKHR<'a> { +pub struct PhysicalDeviceLineRasterizationProperties<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub line_sub_pixel_precision_bits: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceLineRasterizationPropertiesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceLineRasterizationPropertiesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceLineRasterizationPropertiesKHR<'_> { +unsafe impl Send for PhysicalDeviceLineRasterizationProperties<'_> {} +unsafe impl Sync for PhysicalDeviceLineRasterizationProperties<'_> {} +impl ::core::default::Default for PhysicalDeviceLineRasterizationProperties<'_> { #[inline] fn default() -> Self { Self { @@ -30809,15 +32197,15 @@ impl ::core::default::Default for PhysicalDeviceLineRasterizationPropertiesKHR<' } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceLineRasterizationPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceLineRasterizationProperties<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR; + StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES; } unsafe impl Extends> - for PhysicalDeviceLineRasterizationPropertiesKHR<'_> + for PhysicalDeviceLineRasterizationProperties<'_> { } -impl<'a> PhysicalDeviceLineRasterizationPropertiesKHR<'a> { +impl<'a> PhysicalDeviceLineRasterizationProperties<'a> { #[inline] pub fn line_sub_pixel_precision_bits(mut self, line_sub_pixel_precision_bits: u32) -> Self { self.line_sub_pixel_precision_bits = line_sub_pixel_precision_bits; @@ -30827,26 +32215,26 @@ impl<'a> PhysicalDeviceLineRasterizationPropertiesKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PipelineRasterizationLineStateCreateInfoKHR<'a> { +pub struct PipelineRasterizationLineStateCreateInfo<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub line_rasterization_mode: LineRasterizationModeKHR, + pub line_rasterization_mode: LineRasterizationMode, pub stippled_line_enable: Bool32, pub line_stipple_factor: u32, pub line_stipple_pattern: u16, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PipelineRasterizationLineStateCreateInfoKHR<'_> {} -unsafe impl Sync for PipelineRasterizationLineStateCreateInfoKHR<'_> {} -impl ::core::default::Default for PipelineRasterizationLineStateCreateInfoKHR<'_> { +unsafe impl Send for PipelineRasterizationLineStateCreateInfo<'_> {} +unsafe impl Sync for PipelineRasterizationLineStateCreateInfo<'_> {} +impl ::core::default::Default for PipelineRasterizationLineStateCreateInfo<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - line_rasterization_mode: LineRasterizationModeKHR::default(), + line_rasterization_mode: LineRasterizationMode::default(), stippled_line_enable: Bool32::default(), line_stipple_factor: u32::default(), line_stipple_pattern: u16::default(), @@ -30854,19 +32242,19 @@ impl ::core::default::Default for PipelineRasterizationLineStateCreateInfoKHR<'_ } } } -unsafe impl<'a> TaggedStructure<'a> for PipelineRasterizationLineStateCreateInfoKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PipelineRasterizationLineStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR; + StructureType::PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO; } unsafe impl Extends> - for PipelineRasterizationLineStateCreateInfoKHR<'_> + for PipelineRasterizationLineStateCreateInfo<'_> { } -impl<'a> PipelineRasterizationLineStateCreateInfoKHR<'a> { +impl<'a> PipelineRasterizationLineStateCreateInfo<'a> { #[inline] pub fn line_rasterization_mode( mut self, - line_rasterization_mode: LineRasterizationModeKHR, + line_rasterization_mode: LineRasterizationMode, ) -> Self { self.line_rasterization_mode = line_rasterization_mode; self @@ -32997,6 +34385,447 @@ impl<'a> PhysicalDeviceVulkan13Properties<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceVulkan14Features<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub global_priority_query: Bool32, + pub shader_subgroup_rotate: Bool32, + pub shader_subgroup_rotate_clustered: Bool32, + pub shader_float_controls2: Bool32, + pub shader_expect_assume: Bool32, + pub rectangular_lines: Bool32, + pub bresenham_lines: Bool32, + pub smooth_lines: Bool32, + pub stippled_rectangular_lines: Bool32, + pub stippled_bresenham_lines: Bool32, + pub stippled_smooth_lines: Bool32, + pub vertex_attribute_instance_rate_divisor: Bool32, + pub vertex_attribute_instance_rate_zero_divisor: Bool32, + pub index_type_uint8: Bool32, + pub dynamic_rendering_local_read: Bool32, + pub maintenance5: Bool32, + pub maintenance6: Bool32, + pub pipeline_protected_access: Bool32, + pub pipeline_robustness: Bool32, + pub host_image_copy: Bool32, + pub push_descriptor: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceVulkan14Features<'_> {} +unsafe impl Sync for PhysicalDeviceVulkan14Features<'_> {} +impl ::core::default::Default for PhysicalDeviceVulkan14Features<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + global_priority_query: Bool32::default(), + shader_subgroup_rotate: Bool32::default(), + shader_subgroup_rotate_clustered: Bool32::default(), + shader_float_controls2: Bool32::default(), + shader_expect_assume: Bool32::default(), + rectangular_lines: Bool32::default(), + bresenham_lines: Bool32::default(), + smooth_lines: Bool32::default(), + stippled_rectangular_lines: Bool32::default(), + stippled_bresenham_lines: Bool32::default(), + stippled_smooth_lines: Bool32::default(), + vertex_attribute_instance_rate_divisor: Bool32::default(), + vertex_attribute_instance_rate_zero_divisor: Bool32::default(), + index_type_uint8: Bool32::default(), + dynamic_rendering_local_read: Bool32::default(), + maintenance5: Bool32::default(), + maintenance6: Bool32::default(), + pipeline_protected_access: Bool32::default(), + pipeline_robustness: Bool32::default(), + host_image_copy: Bool32::default(), + push_descriptor: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVulkan14Features<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_4_FEATURES; +} +unsafe impl Extends> for PhysicalDeviceVulkan14Features<'_> {} +unsafe impl Extends> for PhysicalDeviceVulkan14Features<'_> {} +impl<'a> PhysicalDeviceVulkan14Features<'a> { + #[inline] + pub fn global_priority_query(mut self, global_priority_query: bool) -> Self { + self.global_priority_query = global_priority_query.into(); + self + } + #[inline] + pub fn shader_subgroup_rotate(mut self, shader_subgroup_rotate: bool) -> Self { + self.shader_subgroup_rotate = shader_subgroup_rotate.into(); + self + } + #[inline] + pub fn shader_subgroup_rotate_clustered( + mut self, + shader_subgroup_rotate_clustered: bool, + ) -> Self { + self.shader_subgroup_rotate_clustered = shader_subgroup_rotate_clustered.into(); + self + } + #[inline] + pub fn shader_float_controls2(mut self, shader_float_controls2: bool) -> Self { + self.shader_float_controls2 = shader_float_controls2.into(); + self + } + #[inline] + pub fn shader_expect_assume(mut self, shader_expect_assume: bool) -> Self { + self.shader_expect_assume = shader_expect_assume.into(); + self + } + #[inline] + pub fn rectangular_lines(mut self, rectangular_lines: bool) -> Self { + self.rectangular_lines = rectangular_lines.into(); + self + } + #[inline] + pub fn bresenham_lines(mut self, bresenham_lines: bool) -> Self { + self.bresenham_lines = bresenham_lines.into(); + self + } + #[inline] + pub fn smooth_lines(mut self, smooth_lines: bool) -> Self { + self.smooth_lines = smooth_lines.into(); + self + } + #[inline] + pub fn stippled_rectangular_lines(mut self, stippled_rectangular_lines: bool) -> Self { + self.stippled_rectangular_lines = stippled_rectangular_lines.into(); + self + } + #[inline] + pub fn stippled_bresenham_lines(mut self, stippled_bresenham_lines: bool) -> Self { + self.stippled_bresenham_lines = stippled_bresenham_lines.into(); + self + } + #[inline] + pub fn stippled_smooth_lines(mut self, stippled_smooth_lines: bool) -> Self { + self.stippled_smooth_lines = stippled_smooth_lines.into(); + self + } + #[inline] + pub fn vertex_attribute_instance_rate_divisor( + mut self, + vertex_attribute_instance_rate_divisor: bool, + ) -> Self { + self.vertex_attribute_instance_rate_divisor = vertex_attribute_instance_rate_divisor.into(); + self + } + #[inline] + pub fn vertex_attribute_instance_rate_zero_divisor( + mut self, + vertex_attribute_instance_rate_zero_divisor: bool, + ) -> Self { + self.vertex_attribute_instance_rate_zero_divisor = + vertex_attribute_instance_rate_zero_divisor.into(); + self + } + #[inline] + pub fn index_type_uint8(mut self, index_type_uint8: bool) -> Self { + self.index_type_uint8 = index_type_uint8.into(); + self + } + #[inline] + pub fn dynamic_rendering_local_read(mut self, dynamic_rendering_local_read: bool) -> Self { + self.dynamic_rendering_local_read = dynamic_rendering_local_read.into(); + self + } + #[inline] + pub fn maintenance5(mut self, maintenance5: bool) -> Self { + self.maintenance5 = maintenance5.into(); + self + } + #[inline] + pub fn maintenance6(mut self, maintenance6: bool) -> Self { + self.maintenance6 = maintenance6.into(); + self + } + #[inline] + pub fn pipeline_protected_access(mut self, pipeline_protected_access: bool) -> Self { + self.pipeline_protected_access = pipeline_protected_access.into(); + self + } + #[inline] + pub fn pipeline_robustness(mut self, pipeline_robustness: bool) -> Self { + self.pipeline_robustness = pipeline_robustness.into(); + self + } + #[inline] + pub fn host_image_copy(mut self, host_image_copy: bool) -> Self { + self.host_image_copy = host_image_copy.into(); + self + } + #[inline] + pub fn push_descriptor(mut self, push_descriptor: bool) -> Self { + self.push_descriptor = push_descriptor.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceVulkan14Properties<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub line_sub_pixel_precision_bits: u32, + pub max_vertex_attrib_divisor: u32, + pub supports_non_zero_first_instance: Bool32, + pub max_push_descriptors: u32, + pub dynamic_rendering_local_read_depth_stencil_attachments: Bool32, + pub dynamic_rendering_local_read_multisampled_attachments: Bool32, + pub early_fragment_multisample_coverage_after_sample_counting: Bool32, + pub early_fragment_sample_mask_test_before_sample_counting: Bool32, + pub depth_stencil_swizzle_one_support: Bool32, + pub polygon_mode_point_size: Bool32, + pub non_strict_single_pixel_wide_lines_use_parallelogram: Bool32, + pub non_strict_wide_lines_use_parallelogram: Bool32, + pub block_texel_view_compatible_multiple_layers: Bool32, + pub max_combined_image_sampler_descriptor_count: u32, + pub fragment_shading_rate_clamp_combiner_inputs: Bool32, + pub default_robustness_storage_buffers: PipelineRobustnessBufferBehavior, + pub default_robustness_uniform_buffers: PipelineRobustnessBufferBehavior, + pub default_robustness_vertex_inputs: PipelineRobustnessBufferBehavior, + pub default_robustness_images: PipelineRobustnessImageBehavior, + pub copy_src_layout_count: u32, + pub p_copy_src_layouts: *mut ImageLayout, + pub copy_dst_layout_count: u32, + pub p_copy_dst_layouts: *mut ImageLayout, + pub optimal_tiling_layout_uuid: [u8; UUID_SIZE], + pub identical_memory_type_requirements: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceVulkan14Properties<'_> {} +unsafe impl Sync for PhysicalDeviceVulkan14Properties<'_> {} +impl ::core::default::Default for PhysicalDeviceVulkan14Properties<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + line_sub_pixel_precision_bits: u32::default(), + max_vertex_attrib_divisor: u32::default(), + supports_non_zero_first_instance: Bool32::default(), + max_push_descriptors: u32::default(), + dynamic_rendering_local_read_depth_stencil_attachments: Bool32::default(), + dynamic_rendering_local_read_multisampled_attachments: Bool32::default(), + early_fragment_multisample_coverage_after_sample_counting: Bool32::default(), + early_fragment_sample_mask_test_before_sample_counting: Bool32::default(), + depth_stencil_swizzle_one_support: Bool32::default(), + polygon_mode_point_size: Bool32::default(), + non_strict_single_pixel_wide_lines_use_parallelogram: Bool32::default(), + non_strict_wide_lines_use_parallelogram: Bool32::default(), + block_texel_view_compatible_multiple_layers: Bool32::default(), + max_combined_image_sampler_descriptor_count: u32::default(), + fragment_shading_rate_clamp_combiner_inputs: Bool32::default(), + default_robustness_storage_buffers: PipelineRobustnessBufferBehavior::default(), + default_robustness_uniform_buffers: PipelineRobustnessBufferBehavior::default(), + default_robustness_vertex_inputs: PipelineRobustnessBufferBehavior::default(), + default_robustness_images: PipelineRobustnessImageBehavior::default(), + copy_src_layout_count: u32::default(), + p_copy_src_layouts: ::core::ptr::null_mut(), + copy_dst_layout_count: u32::default(), + p_copy_dst_layouts: ::core::ptr::null_mut(), + optimal_tiling_layout_uuid: unsafe { ::core::mem::zeroed() }, + identical_memory_type_requirements: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVulkan14Properties<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES; +} +unsafe impl Extends> for PhysicalDeviceVulkan14Properties<'_> {} +impl<'a> PhysicalDeviceVulkan14Properties<'a> { + #[inline] + pub fn line_sub_pixel_precision_bits(mut self, line_sub_pixel_precision_bits: u32) -> Self { + self.line_sub_pixel_precision_bits = line_sub_pixel_precision_bits; + self + } + #[inline] + pub fn max_vertex_attrib_divisor(mut self, max_vertex_attrib_divisor: u32) -> Self { + self.max_vertex_attrib_divisor = max_vertex_attrib_divisor; + self + } + #[inline] + pub fn supports_non_zero_first_instance( + mut self, + supports_non_zero_first_instance: bool, + ) -> Self { + self.supports_non_zero_first_instance = supports_non_zero_first_instance.into(); + self + } + #[inline] + pub fn max_push_descriptors(mut self, max_push_descriptors: u32) -> Self { + self.max_push_descriptors = max_push_descriptors; + self + } + #[inline] + pub fn dynamic_rendering_local_read_depth_stencil_attachments( + mut self, + dynamic_rendering_local_read_depth_stencil_attachments: bool, + ) -> Self { + self.dynamic_rendering_local_read_depth_stencil_attachments = + dynamic_rendering_local_read_depth_stencil_attachments.into(); + self + } + #[inline] + pub fn dynamic_rendering_local_read_multisampled_attachments( + mut self, + dynamic_rendering_local_read_multisampled_attachments: bool, + ) -> Self { + self.dynamic_rendering_local_read_multisampled_attachments = + dynamic_rendering_local_read_multisampled_attachments.into(); + self + } + #[inline] + pub fn early_fragment_multisample_coverage_after_sample_counting( + mut self, + early_fragment_multisample_coverage_after_sample_counting: bool, + ) -> Self { + self.early_fragment_multisample_coverage_after_sample_counting = + early_fragment_multisample_coverage_after_sample_counting.into(); + self + } + #[inline] + pub fn early_fragment_sample_mask_test_before_sample_counting( + mut self, + early_fragment_sample_mask_test_before_sample_counting: bool, + ) -> Self { + self.early_fragment_sample_mask_test_before_sample_counting = + early_fragment_sample_mask_test_before_sample_counting.into(); + self + } + #[inline] + pub fn depth_stencil_swizzle_one_support( + mut self, + depth_stencil_swizzle_one_support: bool, + ) -> Self { + self.depth_stencil_swizzle_one_support = depth_stencil_swizzle_one_support.into(); + self + } + #[inline] + pub fn polygon_mode_point_size(mut self, polygon_mode_point_size: bool) -> Self { + self.polygon_mode_point_size = polygon_mode_point_size.into(); + self + } + #[inline] + pub fn non_strict_single_pixel_wide_lines_use_parallelogram( + mut self, + non_strict_single_pixel_wide_lines_use_parallelogram: bool, + ) -> Self { + self.non_strict_single_pixel_wide_lines_use_parallelogram = + non_strict_single_pixel_wide_lines_use_parallelogram.into(); + self + } + #[inline] + pub fn non_strict_wide_lines_use_parallelogram( + mut self, + non_strict_wide_lines_use_parallelogram: bool, + ) -> Self { + self.non_strict_wide_lines_use_parallelogram = + non_strict_wide_lines_use_parallelogram.into(); + self + } + #[inline] + pub fn block_texel_view_compatible_multiple_layers( + mut self, + block_texel_view_compatible_multiple_layers: bool, + ) -> Self { + self.block_texel_view_compatible_multiple_layers = + block_texel_view_compatible_multiple_layers.into(); + self + } + #[inline] + pub fn max_combined_image_sampler_descriptor_count( + mut self, + max_combined_image_sampler_descriptor_count: u32, + ) -> Self { + self.max_combined_image_sampler_descriptor_count = + max_combined_image_sampler_descriptor_count; + self + } + #[inline] + pub fn fragment_shading_rate_clamp_combiner_inputs( + mut self, + fragment_shading_rate_clamp_combiner_inputs: bool, + ) -> Self { + self.fragment_shading_rate_clamp_combiner_inputs = + fragment_shading_rate_clamp_combiner_inputs.into(); + self + } + #[inline] + pub fn default_robustness_storage_buffers( + mut self, + default_robustness_storage_buffers: PipelineRobustnessBufferBehavior, + ) -> Self { + self.default_robustness_storage_buffers = default_robustness_storage_buffers; + self + } + #[inline] + pub fn default_robustness_uniform_buffers( + mut self, + default_robustness_uniform_buffers: PipelineRobustnessBufferBehavior, + ) -> Self { + self.default_robustness_uniform_buffers = default_robustness_uniform_buffers; + self + } + #[inline] + pub fn default_robustness_vertex_inputs( + mut self, + default_robustness_vertex_inputs: PipelineRobustnessBufferBehavior, + ) -> Self { + self.default_robustness_vertex_inputs = default_robustness_vertex_inputs; + self + } + #[inline] + pub fn default_robustness_images( + mut self, + default_robustness_images: PipelineRobustnessImageBehavior, + ) -> Self { + self.default_robustness_images = default_robustness_images; + self + } + #[inline] + pub fn copy_src_layouts(mut self, copy_src_layouts: &'a mut [ImageLayout]) -> Self { + self.copy_src_layout_count = copy_src_layouts.len() as _; + self.p_copy_src_layouts = copy_src_layouts.as_mut_ptr(); + self + } + #[inline] + pub fn copy_dst_layouts(mut self, copy_dst_layouts: &'a mut [ImageLayout]) -> Self { + self.copy_dst_layout_count = copy_dst_layouts.len() as _; + self.p_copy_dst_layouts = copy_dst_layouts.as_mut_ptr(); + self + } + #[inline] + pub fn optimal_tiling_layout_uuid( + mut self, + optimal_tiling_layout_uuid: [u8; UUID_SIZE], + ) -> Self { + self.optimal_tiling_layout_uuid = optimal_tiling_layout_uuid; + self + } + #[inline] + pub fn identical_memory_type_requirements( + mut self, + identical_memory_type_requirements: bool, + ) -> Self { + self.identical_memory_type_requirements = identical_memory_type_requirements.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct PipelineCompilerControlCreateInfoAMD<'a> { @@ -33642,6 +35471,246 @@ impl<'a> AccelerationStructureGeometryInstancesDataKHR<'a> { } #[repr(C)] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct AccelerationStructureGeometryLinearSweptSpheresDataNV<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub vertex_format: Format, + pub vertex_data: DeviceOrHostAddressConstKHR, + pub vertex_stride: DeviceSize, + pub radius_format: Format, + pub radius_data: DeviceOrHostAddressConstKHR, + pub radius_stride: DeviceSize, + pub index_type: IndexType, + pub index_data: DeviceOrHostAddressConstKHR, + pub index_stride: DeviceSize, + pub indexing_mode: RayTracingLssIndexingModeNV, + pub end_caps_mode: RayTracingLssPrimitiveEndCapsModeNV, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for AccelerationStructureGeometryLinearSweptSpheresDataNV<'_> {} +unsafe impl Sync for AccelerationStructureGeometryLinearSweptSpheresDataNV<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for AccelerationStructureGeometryLinearSweptSpheresDataNV<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("AccelerationStructureGeometryLinearSweptSpheresDataNV") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field("vertex_format", &self.vertex_format) + .field("vertex_data", &"union") + .field("vertex_stride", &self.vertex_stride) + .field("radius_format", &self.radius_format) + .field("radius_data", &"union") + .field("radius_stride", &self.radius_stride) + .field("index_type", &self.index_type) + .field("index_data", &"union") + .field("index_stride", &self.index_stride) + .field("indexing_mode", &self.indexing_mode) + .field("end_caps_mode", &self.end_caps_mode) + .finish() + } +} +impl ::core::default::Default for AccelerationStructureGeometryLinearSweptSpheresDataNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + vertex_format: Format::default(), + vertex_data: DeviceOrHostAddressConstKHR::default(), + vertex_stride: DeviceSize::default(), + radius_format: Format::default(), + radius_data: DeviceOrHostAddressConstKHR::default(), + radius_stride: DeviceSize::default(), + index_type: IndexType::default(), + index_data: DeviceOrHostAddressConstKHR::default(), + index_stride: DeviceSize::default(), + indexing_mode: RayTracingLssIndexingModeNV::default(), + end_caps_mode: RayTracingLssPrimitiveEndCapsModeNV::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureGeometryLinearSweptSpheresDataNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV; +} +unsafe impl Extends> + for AccelerationStructureGeometryLinearSweptSpheresDataNV<'_> +{ +} +impl<'a> AccelerationStructureGeometryLinearSweptSpheresDataNV<'a> { + #[inline] + pub fn vertex_format(mut self, vertex_format: Format) -> Self { + self.vertex_format = vertex_format; + self + } + #[inline] + pub fn vertex_data(mut self, vertex_data: DeviceOrHostAddressConstKHR) -> Self { + self.vertex_data = vertex_data; + self + } + #[inline] + pub fn vertex_stride(mut self, vertex_stride: DeviceSize) -> Self { + self.vertex_stride = vertex_stride; + self + } + #[inline] + pub fn radius_format(mut self, radius_format: Format) -> Self { + self.radius_format = radius_format; + self + } + #[inline] + pub fn radius_data(mut self, radius_data: DeviceOrHostAddressConstKHR) -> Self { + self.radius_data = radius_data; + self + } + #[inline] + pub fn radius_stride(mut self, radius_stride: DeviceSize) -> Self { + self.radius_stride = radius_stride; + self + } + #[inline] + pub fn index_type(mut self, index_type: IndexType) -> Self { + self.index_type = index_type; + self + } + #[inline] + pub fn index_data(mut self, index_data: DeviceOrHostAddressConstKHR) -> Self { + self.index_data = index_data; + self + } + #[inline] + pub fn index_stride(mut self, index_stride: DeviceSize) -> Self { + self.index_stride = index_stride; + self + } + #[inline] + pub fn indexing_mode(mut self, indexing_mode: RayTracingLssIndexingModeNV) -> Self { + self.indexing_mode = indexing_mode; + self + } + #[inline] + pub fn end_caps_mode(mut self, end_caps_mode: RayTracingLssPrimitiveEndCapsModeNV) -> Self { + self.end_caps_mode = end_caps_mode; + self + } +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct AccelerationStructureGeometrySpheresDataNV<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub vertex_format: Format, + pub vertex_data: DeviceOrHostAddressConstKHR, + pub vertex_stride: DeviceSize, + pub radius_format: Format, + pub radius_data: DeviceOrHostAddressConstKHR, + pub radius_stride: DeviceSize, + pub index_type: IndexType, + pub index_data: DeviceOrHostAddressConstKHR, + pub index_stride: DeviceSize, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for AccelerationStructureGeometrySpheresDataNV<'_> {} +unsafe impl Sync for AccelerationStructureGeometrySpheresDataNV<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for AccelerationStructureGeometrySpheresDataNV<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("AccelerationStructureGeometrySpheresDataNV") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field("vertex_format", &self.vertex_format) + .field("vertex_data", &"union") + .field("vertex_stride", &self.vertex_stride) + .field("radius_format", &self.radius_format) + .field("radius_data", &"union") + .field("radius_stride", &self.radius_stride) + .field("index_type", &self.index_type) + .field("index_data", &"union") + .field("index_stride", &self.index_stride) + .finish() + } +} +impl ::core::default::Default for AccelerationStructureGeometrySpheresDataNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + vertex_format: Format::default(), + vertex_data: DeviceOrHostAddressConstKHR::default(), + vertex_stride: DeviceSize::default(), + radius_format: Format::default(), + radius_data: DeviceOrHostAddressConstKHR::default(), + radius_stride: DeviceSize::default(), + index_type: IndexType::default(), + index_data: DeviceOrHostAddressConstKHR::default(), + index_stride: DeviceSize::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureGeometrySpheresDataNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV; +} +unsafe impl Extends> + for AccelerationStructureGeometrySpheresDataNV<'_> +{ +} +impl<'a> AccelerationStructureGeometrySpheresDataNV<'a> { + #[inline] + pub fn vertex_format(mut self, vertex_format: Format) -> Self { + self.vertex_format = vertex_format; + self + } + #[inline] + pub fn vertex_data(mut self, vertex_data: DeviceOrHostAddressConstKHR) -> Self { + self.vertex_data = vertex_data; + self + } + #[inline] + pub fn vertex_stride(mut self, vertex_stride: DeviceSize) -> Self { + self.vertex_stride = vertex_stride; + self + } + #[inline] + pub fn radius_format(mut self, radius_format: Format) -> Self { + self.radius_format = radius_format; + self + } + #[inline] + pub fn radius_data(mut self, radius_data: DeviceOrHostAddressConstKHR) -> Self { + self.radius_data = radius_data; + self + } + #[inline] + pub fn radius_stride(mut self, radius_stride: DeviceSize) -> Self { + self.radius_stride = radius_stride; + self + } + #[inline] + pub fn index_type(mut self, index_type: IndexType) -> Self { + self.index_type = index_type; + self + } + #[inline] + pub fn index_data(mut self, index_data: DeviceOrHostAddressConstKHR) -> Self { + self.index_data = index_data; + self + } + #[inline] + pub fn index_stride(mut self, index_stride: DeviceSize) -> Self { + self.index_stride = index_stride; + self + } +} +#[repr(C)] +#[derive(Copy, Clone)] #[doc = ""] pub union AccelerationStructureGeometryDataKHR<'a> { pub triangles: AccelerationStructureGeometryTrianglesDataKHR<'a>, @@ -33981,12 +36050,16 @@ impl AabbPositionsKHR { } } #[repr(C)] -#[derive(Copy, Clone)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] pub struct TransformMatrixKHR { - pub matrix: [f32; 12], + pub matrix: [[f32; 3]; 4], } #[repr(C)] #[derive(Copy, Clone)] +#[must_use] pub union AccelerationStructureReferenceKHR { pub device_handle: DeviceAddress, pub host_handle: AccelerationStructureKHR, @@ -33994,6 +36067,7 @@ pub union AccelerationStructureReferenceKHR { #[repr(C)] #[derive(Copy, Clone)] #[doc = ""] +#[must_use] pub struct AccelerationStructureInstanceKHR { pub transform: TransformMatrixKHR, #[doc = r" Use [`Packed24_8::new(instance_custom_index, mask)`][Packed24_8::new()] to construct this field"] @@ -34932,7 +37006,7 @@ impl ColorBlendAdvancedEXT { #[must_use] pub struct RenderPassTransformBeginInfoQCOM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, + pub p_next: *const c_void, pub transform: SurfaceTransformFlagsKHR, pub _marker: PhantomData<&'a ()>, } @@ -34943,7 +37017,7 @@ impl ::core::default::Default for RenderPassTransformBeginInfoQCOM<'_> { fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), + p_next: ::core::ptr::null(), transform: SurfaceTransformFlagsKHR::default(), _marker: PhantomData, } @@ -35003,7 +37077,7 @@ impl<'a> CopyCommandTransformInfoQCOM<'a> { #[must_use] pub struct CommandBufferInheritanceRenderPassTransformInfoQCOM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, + pub p_next: *const c_void, pub transform: SurfaceTransformFlagsKHR, pub render_area: Rect2D, pub _marker: PhantomData<&'a ()>, @@ -35015,7 +37089,7 @@ impl ::core::default::Default for CommandBufferInheritanceRenderPassTransformInf fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), + p_next: ::core::ptr::null(), transform: SurfaceTransformFlagsKHR::default(), render_area: Rect2D::default(), _marker: PhantomData, @@ -35045,6 +37119,493 @@ impl<'a> CommandBufferInheritanceRenderPassTransformInfoQCOM<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDevicePartitionedAccelerationStructureFeaturesNV<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub partitioned_acceleration_structure: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDevicePartitionedAccelerationStructureFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDevicePartitionedAccelerationStructureFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDevicePartitionedAccelerationStructureFeaturesNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + partitioned_acceleration_structure: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> + for PhysicalDevicePartitionedAccelerationStructureFeaturesNV<'a> +{ + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV; +} +unsafe impl Extends> + for PhysicalDevicePartitionedAccelerationStructureFeaturesNV<'_> +{ +} +unsafe impl Extends> + for PhysicalDevicePartitionedAccelerationStructureFeaturesNV<'_> +{ +} +impl<'a> PhysicalDevicePartitionedAccelerationStructureFeaturesNV<'a> { + #[inline] + pub fn partitioned_acceleration_structure( + mut self, + partitioned_acceleration_structure: bool, + ) -> Self { + self.partitioned_acceleration_structure = partitioned_acceleration_structure.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDevicePartitionedAccelerationStructurePropertiesNV<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub max_partition_count: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDevicePartitionedAccelerationStructurePropertiesNV<'_> {} +unsafe impl Sync for PhysicalDevicePartitionedAccelerationStructurePropertiesNV<'_> {} +impl ::core::default::Default for PhysicalDevicePartitionedAccelerationStructurePropertiesNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + max_partition_count: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> + for PhysicalDevicePartitionedAccelerationStructurePropertiesNV<'a> +{ + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV; +} +unsafe impl Extends> + for PhysicalDevicePartitionedAccelerationStructurePropertiesNV<'_> +{ +} +impl<'a> PhysicalDevicePartitionedAccelerationStructurePropertiesNV<'a> { + #[inline] + pub fn max_partition_count(mut self, max_partition_count: u32) -> Self { + self.max_partition_count = max_partition_count; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct BuildPartitionedAccelerationStructureIndirectCommandNV { + pub op_type: PartitionedAccelerationStructureOpTypeNV, + pub arg_count: u32, + pub arg_data: StridedDeviceAddressNV, +} +impl BuildPartitionedAccelerationStructureIndirectCommandNV { + #[inline] + pub fn op_type(mut self, op_type: PartitionedAccelerationStructureOpTypeNV) -> Self { + self.op_type = op_type; + self + } + #[inline] + pub fn arg_count(mut self, arg_count: u32) -> Self { + self.arg_count = arg_count; + self + } + #[inline] + pub fn arg_data(mut self, arg_data: StridedDeviceAddressNV) -> Self { + self.arg_data = arg_data; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PartitionedAccelerationStructureFlagsNV<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub enable_partition_translation: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PartitionedAccelerationStructureFlagsNV<'_> {} +unsafe impl Sync for PartitionedAccelerationStructureFlagsNV<'_> {} +impl ::core::default::Default for PartitionedAccelerationStructureFlagsNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + enable_partition_translation: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PartitionedAccelerationStructureFlagsNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV; +} +unsafe impl Extends> + for PartitionedAccelerationStructureFlagsNV<'_> +{ +} +impl<'a> PartitionedAccelerationStructureFlagsNV<'a> { + #[inline] + pub fn enable_partition_translation(mut self, enable_partition_translation: bool) -> Self { + self.enable_partition_translation = enable_partition_translation.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PartitionedAccelerationStructureWriteInstanceDataNV { + pub transform: TransformMatrixKHR, + pub explicit_aabb: [f32; 6], + pub instance_id: u32, + pub instance_mask: u32, + pub instance_contribution_to_hit_group_index: u32, + pub instance_flags: PartitionedAccelerationStructureInstanceFlagsNV, + pub instance_index: u32, + pub partition_index: u32, + pub acceleration_structure: DeviceAddress, +} +impl ::core::default::Default for PartitionedAccelerationStructureWriteInstanceDataNV { + #[inline] + fn default() -> Self { + Self { + transform: TransformMatrixKHR::default(), + explicit_aabb: unsafe { ::core::mem::zeroed() }, + instance_id: u32::default(), + instance_mask: u32::default(), + instance_contribution_to_hit_group_index: u32::default(), + instance_flags: PartitionedAccelerationStructureInstanceFlagsNV::default(), + instance_index: u32::default(), + partition_index: u32::default(), + acceleration_structure: DeviceAddress::default(), + } + } +} +impl PartitionedAccelerationStructureWriteInstanceDataNV { + #[inline] + pub fn transform(mut self, transform: TransformMatrixKHR) -> Self { + self.transform = transform; + self + } + #[inline] + pub fn explicit_aabb(mut self, explicit_aabb: [f32; 6]) -> Self { + self.explicit_aabb = explicit_aabb; + self + } + #[inline] + pub fn instance_id(mut self, instance_id: u32) -> Self { + self.instance_id = instance_id; + self + } + #[inline] + pub fn instance_mask(mut self, instance_mask: u32) -> Self { + self.instance_mask = instance_mask; + self + } + #[inline] + pub fn instance_contribution_to_hit_group_index( + mut self, + instance_contribution_to_hit_group_index: u32, + ) -> Self { + self.instance_contribution_to_hit_group_index = instance_contribution_to_hit_group_index; + self + } + #[inline] + pub fn instance_flags( + mut self, + instance_flags: PartitionedAccelerationStructureInstanceFlagsNV, + ) -> Self { + self.instance_flags = instance_flags; + self + } + #[inline] + pub fn instance_index(mut self, instance_index: u32) -> Self { + self.instance_index = instance_index; + self + } + #[inline] + pub fn partition_index(mut self, partition_index: u32) -> Self { + self.partition_index = partition_index; + self + } + #[inline] + pub fn acceleration_structure(mut self, acceleration_structure: DeviceAddress) -> Self { + self.acceleration_structure = acceleration_structure; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct PartitionedAccelerationStructureUpdateInstanceDataNV { + pub instance_index: u32, + pub instance_contribution_to_hit_group_index: u32, + pub acceleration_structure: DeviceAddress, +} +impl PartitionedAccelerationStructureUpdateInstanceDataNV { + #[inline] + pub fn instance_index(mut self, instance_index: u32) -> Self { + self.instance_index = instance_index; + self + } + #[inline] + pub fn instance_contribution_to_hit_group_index( + mut self, + instance_contribution_to_hit_group_index: u32, + ) -> Self { + self.instance_contribution_to_hit_group_index = instance_contribution_to_hit_group_index; + self + } + #[inline] + pub fn acceleration_structure(mut self, acceleration_structure: DeviceAddress) -> Self { + self.acceleration_structure = acceleration_structure; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PartitionedAccelerationStructureWritePartitionTranslationDataNV { + pub partition_index: u32, + pub partition_translation: [f32; 3], +} +impl ::core::default::Default for PartitionedAccelerationStructureWritePartitionTranslationDataNV { + #[inline] + fn default() -> Self { + Self { + partition_index: u32::default(), + partition_translation: unsafe { ::core::mem::zeroed() }, + } + } +} +impl PartitionedAccelerationStructureWritePartitionTranslationDataNV { + #[inline] + pub fn partition_index(mut self, partition_index: u32) -> Self { + self.partition_index = partition_index; + self + } + #[inline] + pub fn partition_translation(mut self, partition_translation: [f32; 3]) -> Self { + self.partition_translation = partition_translation; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct WriteDescriptorSetPartitionedAccelerationStructureNV<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub acceleration_structure_count: u32, + pub p_acceleration_structures: *const DeviceAddress, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for WriteDescriptorSetPartitionedAccelerationStructureNV<'_> {} +unsafe impl Sync for WriteDescriptorSetPartitionedAccelerationStructureNV<'_> {} +impl ::core::default::Default for WriteDescriptorSetPartitionedAccelerationStructureNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + acceleration_structure_count: u32::default(), + p_acceleration_structures: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for WriteDescriptorSetPartitionedAccelerationStructureNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV; +} +unsafe impl Extends> + for WriteDescriptorSetPartitionedAccelerationStructureNV<'_> +{ +} +impl<'a> WriteDescriptorSetPartitionedAccelerationStructureNV<'a> { + #[inline] + pub fn acceleration_structures(mut self, acceleration_structures: &'a [DeviceAddress]) -> Self { + self.acceleration_structure_count = acceleration_structures.len() as _; + self.p_acceleration_structures = acceleration_structures.as_ptr(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PartitionedAccelerationStructureInstancesInputNV<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub flags: BuildAccelerationStructureFlagsKHR, + pub instance_count: u32, + pub max_instance_per_partition_count: u32, + pub partition_count: u32, + pub max_instance_in_global_partition_count: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PartitionedAccelerationStructureInstancesInputNV<'_> {} +unsafe impl Sync for PartitionedAccelerationStructureInstancesInputNV<'_> {} +impl ::core::default::Default for PartitionedAccelerationStructureInstancesInputNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + flags: BuildAccelerationStructureFlagsKHR::default(), + instance_count: u32::default(), + max_instance_per_partition_count: u32::default(), + partition_count: u32::default(), + max_instance_in_global_partition_count: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PartitionedAccelerationStructureInstancesInputNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV; +} +impl<'a> PartitionedAccelerationStructureInstancesInputNV<'a> { + #[inline] + pub fn flags(mut self, flags: BuildAccelerationStructureFlagsKHR) -> Self { + self.flags = flags; + self + } + #[inline] + pub fn instance_count(mut self, instance_count: u32) -> Self { + self.instance_count = instance_count; + self + } + #[inline] + pub fn max_instance_per_partition_count( + mut self, + max_instance_per_partition_count: u32, + ) -> Self { + self.max_instance_per_partition_count = max_instance_per_partition_count; + self + } + #[inline] + pub fn partition_count(mut self, partition_count: u32) -> Self { + self.partition_count = partition_count; + self + } + #[inline] + pub fn max_instance_in_global_partition_count( + mut self, + max_instance_in_global_partition_count: u32, + ) -> Self { + self.max_instance_in_global_partition_count = max_instance_in_global_partition_count; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct BuildPartitionedAccelerationStructureInfoNV<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub input: PartitionedAccelerationStructureInstancesInputNV<'a>, + pub src_acceleration_structure_data: DeviceAddress, + pub dst_acceleration_structure_data: DeviceAddress, + pub scratch_data: DeviceAddress, + pub src_infos: DeviceAddress, + pub src_infos_count: DeviceAddress, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for BuildPartitionedAccelerationStructureInfoNV<'_> {} +unsafe impl Sync for BuildPartitionedAccelerationStructureInfoNV<'_> {} +impl ::core::default::Default for BuildPartitionedAccelerationStructureInfoNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + input: PartitionedAccelerationStructureInstancesInputNV::default(), + src_acceleration_structure_data: DeviceAddress::default(), + dst_acceleration_structure_data: DeviceAddress::default(), + scratch_data: DeviceAddress::default(), + src_infos: DeviceAddress::default(), + src_infos_count: DeviceAddress::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for BuildPartitionedAccelerationStructureInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV; +} +impl<'a> BuildPartitionedAccelerationStructureInfoNV<'a> { + #[inline] + pub fn input(mut self, input: PartitionedAccelerationStructureInstancesInputNV<'a>) -> Self { + self.input = input; + self + } + #[inline] + pub fn src_acceleration_structure_data( + mut self, + src_acceleration_structure_data: DeviceAddress, + ) -> Self { + self.src_acceleration_structure_data = src_acceleration_structure_data; + self + } + #[inline] + pub fn dst_acceleration_structure_data( + mut self, + dst_acceleration_structure_data: DeviceAddress, + ) -> Self { + self.dst_acceleration_structure_data = dst_acceleration_structure_data; + self + } + #[inline] + pub fn scratch_data(mut self, scratch_data: DeviceAddress) -> Self { + self.scratch_data = scratch_data; + self + } + #[inline] + pub fn src_infos(mut self, src_infos: DeviceAddress) -> Self { + self.src_infos = src_infos; + self + } + #[inline] + pub fn src_infos_count(mut self, src_infos_count: DeviceAddress) -> Self { + self.src_infos_count = src_infos_count; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct PhysicalDeviceDiagnosticsConfigFeaturesNV<'a> { @@ -35212,9 +37773,9 @@ impl<'a> PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceRobustness2FeaturesEXT<'a> { +pub struct PhysicalDeviceRobustness2FeaturesKHR<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub robust_buffer_access2: Bool32, @@ -35222,9 +37783,9 @@ pub struct PhysicalDeviceRobustness2FeaturesEXT<'a> { pub null_descriptor: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceRobustness2FeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceRobustness2FeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceRobustness2FeaturesEXT<'_> { +unsafe impl Send for PhysicalDeviceRobustness2FeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceRobustness2FeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceRobustness2FeaturesKHR<'_> { #[inline] fn default() -> Self { Self { @@ -35237,12 +37798,12 @@ impl ::core::default::Default for PhysicalDeviceRobustness2FeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRobustness2FeaturesEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRobustness2FeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR; } -unsafe impl Extends> for PhysicalDeviceRobustness2FeaturesEXT<'_> {} -unsafe impl Extends> for PhysicalDeviceRobustness2FeaturesEXT<'_> {} -impl<'a> PhysicalDeviceRobustness2FeaturesEXT<'a> { +unsafe impl Extends> for PhysicalDeviceRobustness2FeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceRobustness2FeaturesKHR<'_> {} +impl<'a> PhysicalDeviceRobustness2FeaturesKHR<'a> { #[inline] pub fn robust_buffer_access2(mut self, robust_buffer_access2: bool) -> Self { self.robust_buffer_access2 = robust_buffer_access2.into(); @@ -35262,18 +37823,18 @@ impl<'a> PhysicalDeviceRobustness2FeaturesEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceRobustness2PropertiesEXT<'a> { +pub struct PhysicalDeviceRobustness2PropertiesKHR<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub robust_storage_buffer_access_size_alignment: DeviceSize, pub robust_uniform_buffer_access_size_alignment: DeviceSize, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceRobustness2PropertiesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceRobustness2PropertiesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceRobustness2PropertiesEXT<'_> { +unsafe impl Send for PhysicalDeviceRobustness2PropertiesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceRobustness2PropertiesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceRobustness2PropertiesKHR<'_> { #[inline] fn default() -> Self { Self { @@ -35285,12 +37846,12 @@ impl ::core::default::Default for PhysicalDeviceRobustness2PropertiesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRobustness2PropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRobustness2PropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT; + StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR; } -unsafe impl Extends> for PhysicalDeviceRobustness2PropertiesEXT<'_> {} -impl<'a> PhysicalDeviceRobustness2PropertiesEXT<'a> { +unsafe impl Extends> for PhysicalDeviceRobustness2PropertiesKHR<'_> {} +impl<'a> PhysicalDeviceRobustness2PropertiesKHR<'a> { #[inline] pub fn robust_storage_buffer_access_size_alignment( mut self, @@ -37514,6 +40075,49 @@ impl<'a> PhysicalDeviceDepthClipControlFeaturesEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub zero_initialize_device_memory: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + zero_initialize_device_memory: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT; +} +unsafe impl Extends> + for PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT<'_> +{ +} +impl<'a> PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT<'a> { + #[inline] + pub fn zero_initialize_device_memory(mut self, zero_initialize_device_memory: bool) -> Self { + self.zero_initialize_device_memory = zero_initialize_device_memory.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> { @@ -37799,7 +40403,7 @@ impl<'a> GeneratedCommandsShaderInfoEXT<'a> { #[must_use] pub struct GeneratedCommandsMemoryRequirementsInfoEXT<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, + pub p_next: *const c_void, pub indirect_execution_set: IndirectExecutionSetEXT, pub indirect_commands_layout: IndirectCommandsLayoutEXT, pub max_sequence_count: u32, @@ -37813,7 +40417,7 @@ impl ::core::default::Default for GeneratedCommandsMemoryRequirementsInfoEXT<'_> fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), + p_next: ::core::ptr::null(), indirect_execution_set: IndirectExecutionSetEXT::default(), indirect_commands_layout: IndirectCommandsLayoutEXT::default(), max_sequence_count: u32::default(), @@ -39217,6 +41821,50 @@ impl<'a> BufferMemoryBarrier2<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct MemoryBarrierAccessFlags3KHR<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub src_access_mask3: AccessFlags3KHR, + pub dst_access_mask3: AccessFlags3KHR, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for MemoryBarrierAccessFlags3KHR<'_> {} +unsafe impl Sync for MemoryBarrierAccessFlags3KHR<'_> {} +impl ::core::default::Default for MemoryBarrierAccessFlags3KHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + src_access_mask3: AccessFlags3KHR::default(), + dst_access_mask3: AccessFlags3KHR::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for MemoryBarrierAccessFlags3KHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_BARRIER_ACCESS_FLAGS_3_KHR; +} +unsafe impl Extends> for MemoryBarrierAccessFlags3KHR<'_> {} +unsafe impl Extends> for MemoryBarrierAccessFlags3KHR<'_> {} +unsafe impl Extends> for MemoryBarrierAccessFlags3KHR<'_> {} +impl<'a> MemoryBarrierAccessFlags3KHR<'a> { + #[inline] + pub fn src_access_mask3(mut self, src_access_mask3: AccessFlags3KHR) -> Self { + self.src_access_mask3 = src_access_mask3; + self + } + #[inline] + pub fn dst_access_mask3(mut self, dst_access_mask3: AccessFlags3KHR) -> Self { + self.dst_access_mask3 = dst_access_mask3; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct DependencyInfo<'a> { @@ -39571,17 +42219,64 @@ impl<'a> PhysicalDeviceSynchronization2Features<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceUnifiedImageLayoutsFeaturesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub unified_image_layouts: Bool32, + pub unified_image_layouts_video: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceUnifiedImageLayoutsFeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceUnifiedImageLayoutsFeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceUnifiedImageLayoutsFeaturesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + unified_image_layouts: Bool32::default(), + unified_image_layouts_video: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceUnifiedImageLayoutsFeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR; +} +unsafe impl Extends> + for PhysicalDeviceUnifiedImageLayoutsFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceUnifiedImageLayoutsFeaturesKHR<'_> {} +impl<'a> PhysicalDeviceUnifiedImageLayoutsFeaturesKHR<'a> { + #[inline] + pub fn unified_image_layouts(mut self, unified_image_layouts: bool) -> Self { + self.unified_image_layouts = unified_image_layouts.into(); + self + } + #[inline] + pub fn unified_image_layouts_video(mut self, unified_image_layouts_video: bool) -> Self { + self.unified_image_layouts_video = unified_image_layouts_video.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceHostImageCopyFeaturesEXT<'a> { +pub struct PhysicalDeviceHostImageCopyFeatures<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub host_image_copy: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceHostImageCopyFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceHostImageCopyFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceHostImageCopyFeaturesEXT<'_> { +unsafe impl Send for PhysicalDeviceHostImageCopyFeatures<'_> {} +unsafe impl Sync for PhysicalDeviceHostImageCopyFeatures<'_> {} +impl ::core::default::Default for PhysicalDeviceHostImageCopyFeatures<'_> { #[inline] fn default() -> Self { Self { @@ -39592,13 +42287,12 @@ impl ::core::default::Default for PhysicalDeviceHostImageCopyFeaturesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceHostImageCopyFeaturesEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceHostImageCopyFeatures<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES; } -unsafe impl Extends> for PhysicalDeviceHostImageCopyFeaturesEXT<'_> {} -unsafe impl Extends> for PhysicalDeviceHostImageCopyFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceHostImageCopyFeaturesEXT<'a> { +unsafe impl Extends> for PhysicalDeviceHostImageCopyFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceHostImageCopyFeatures<'_> {} +impl<'a> PhysicalDeviceHostImageCopyFeatures<'a> { #[inline] pub fn host_image_copy(mut self, host_image_copy: bool) -> Self { self.host_image_copy = host_image_copy.into(); @@ -39608,9 +42302,9 @@ impl<'a> PhysicalDeviceHostImageCopyFeaturesEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceHostImageCopyPropertiesEXT<'a> { +pub struct PhysicalDeviceHostImageCopyProperties<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub copy_src_layout_count: u32, @@ -39621,9 +42315,9 @@ pub struct PhysicalDeviceHostImageCopyPropertiesEXT<'a> { pub identical_memory_type_requirements: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceHostImageCopyPropertiesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceHostImageCopyPropertiesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceHostImageCopyPropertiesEXT<'_> { +unsafe impl Send for PhysicalDeviceHostImageCopyProperties<'_> {} +unsafe impl Sync for PhysicalDeviceHostImageCopyProperties<'_> {} +impl ::core::default::Default for PhysicalDeviceHostImageCopyProperties<'_> { #[inline] fn default() -> Self { Self { @@ -39639,15 +42333,11 @@ impl ::core::default::Default for PhysicalDeviceHostImageCopyPropertiesEXT<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceHostImageCopyPropertiesEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT; -} -unsafe impl Extends> - for PhysicalDeviceHostImageCopyPropertiesEXT<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceHostImageCopyProperties<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES; } -impl<'a> PhysicalDeviceHostImageCopyPropertiesEXT<'a> { +unsafe impl Extends> for PhysicalDeviceHostImageCopyProperties<'_> {} +impl<'a> PhysicalDeviceHostImageCopyProperties<'a> { #[inline] pub fn copy_src_layouts(mut self, copy_src_layouts: &'a mut [ImageLayout]) -> Self { self.copy_src_layout_count = copy_src_layouts.len() as _; @@ -39680,9 +42370,9 @@ impl<'a> PhysicalDeviceHostImageCopyPropertiesEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct MemoryToImageCopyEXT<'a> { +pub struct MemoryToImageCopy<'a> { pub s_type: StructureType, pub p_next: *const c_void, pub p_host_pointer: *const c_void, @@ -39693,9 +42383,9 @@ pub struct MemoryToImageCopyEXT<'a> { pub image_extent: Extent3D, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for MemoryToImageCopyEXT<'_> {} -unsafe impl Sync for MemoryToImageCopyEXT<'_> {} -impl ::core::default::Default for MemoryToImageCopyEXT<'_> { +unsafe impl Send for MemoryToImageCopy<'_> {} +unsafe impl Sync for MemoryToImageCopy<'_> {} +impl ::core::default::Default for MemoryToImageCopy<'_> { #[inline] fn default() -> Self { Self { @@ -39711,10 +42401,10 @@ impl ::core::default::Default for MemoryToImageCopyEXT<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for MemoryToImageCopyEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_TO_IMAGE_COPY_EXT; +unsafe impl<'a> TaggedStructure<'a> for MemoryToImageCopy<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_TO_IMAGE_COPY; } -impl<'a> MemoryToImageCopyEXT<'a> { +impl<'a> MemoryToImageCopy<'a> { #[inline] pub fn host_pointer(mut self, host_pointer: *const c_void) -> Self { self.p_host_pointer = host_pointer; @@ -39749,9 +42439,9 @@ impl<'a> MemoryToImageCopyEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ImageToMemoryCopyEXT<'a> { +pub struct ImageToMemoryCopy<'a> { pub s_type: StructureType, pub p_next: *const c_void, pub p_host_pointer: *mut c_void, @@ -39762,9 +42452,9 @@ pub struct ImageToMemoryCopyEXT<'a> { pub image_extent: Extent3D, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ImageToMemoryCopyEXT<'_> {} -unsafe impl Sync for ImageToMemoryCopyEXT<'_> {} -impl ::core::default::Default for ImageToMemoryCopyEXT<'_> { +unsafe impl Send for ImageToMemoryCopy<'_> {} +unsafe impl Sync for ImageToMemoryCopy<'_> {} +impl ::core::default::Default for ImageToMemoryCopy<'_> { #[inline] fn default() -> Self { Self { @@ -39780,10 +42470,10 @@ impl ::core::default::Default for ImageToMemoryCopyEXT<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for ImageToMemoryCopyEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_TO_MEMORY_COPY_EXT; +unsafe impl<'a> TaggedStructure<'a> for ImageToMemoryCopy<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_TO_MEMORY_COPY; } -impl<'a> ImageToMemoryCopyEXT<'a> { +impl<'a> ImageToMemoryCopy<'a> { #[inline] pub fn host_pointer(mut self, host_pointer: *mut c_void) -> Self { self.p_host_pointer = host_pointer; @@ -39818,27 +42508,27 @@ impl<'a> ImageToMemoryCopyEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct CopyMemoryToImageInfoEXT<'a> { +pub struct CopyMemoryToImageInfo<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub flags: HostImageCopyFlagsEXT, + pub flags: HostImageCopyFlags, pub dst_image: Image, pub dst_image_layout: ImageLayout, pub region_count: u32, - pub p_regions: *const MemoryToImageCopyEXT<'a>, + pub p_regions: *const MemoryToImageCopy<'a>, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for CopyMemoryToImageInfoEXT<'_> {} -unsafe impl Sync for CopyMemoryToImageInfoEXT<'_> {} -impl ::core::default::Default for CopyMemoryToImageInfoEXT<'_> { +unsafe impl Send for CopyMemoryToImageInfo<'_> {} +unsafe impl Sync for CopyMemoryToImageInfo<'_> {} +impl ::core::default::Default for CopyMemoryToImageInfo<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - flags: HostImageCopyFlagsEXT::default(), + flags: HostImageCopyFlags::default(), dst_image: Image::default(), dst_image_layout: ImageLayout::default(), region_count: u32::default(), @@ -39847,12 +42537,12 @@ impl ::core::default::Default for CopyMemoryToImageInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for CopyMemoryToImageInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::COPY_MEMORY_TO_IMAGE_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for CopyMemoryToImageInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::COPY_MEMORY_TO_IMAGE_INFO; } -impl<'a> CopyMemoryToImageInfoEXT<'a> { +impl<'a> CopyMemoryToImageInfo<'a> { #[inline] - pub fn flags(mut self, flags: HostImageCopyFlagsEXT) -> Self { + pub fn flags(mut self, flags: HostImageCopyFlags) -> Self { self.flags = flags; self } @@ -39867,7 +42557,7 @@ impl<'a> CopyMemoryToImageInfoEXT<'a> { self } #[inline] - pub fn regions(mut self, regions: &'a [MemoryToImageCopyEXT<'a>]) -> Self { + pub fn regions(mut self, regions: &'a [MemoryToImageCopy<'a>]) -> Self { self.region_count = regions.len() as _; self.p_regions = regions.as_ptr(); self @@ -39876,27 +42566,27 @@ impl<'a> CopyMemoryToImageInfoEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct CopyImageToMemoryInfoEXT<'a> { +pub struct CopyImageToMemoryInfo<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub flags: HostImageCopyFlagsEXT, + pub flags: HostImageCopyFlags, pub src_image: Image, pub src_image_layout: ImageLayout, pub region_count: u32, - pub p_regions: *const ImageToMemoryCopyEXT<'a>, + pub p_regions: *const ImageToMemoryCopy<'a>, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for CopyImageToMemoryInfoEXT<'_> {} -unsafe impl Sync for CopyImageToMemoryInfoEXT<'_> {} -impl ::core::default::Default for CopyImageToMemoryInfoEXT<'_> { +unsafe impl Send for CopyImageToMemoryInfo<'_> {} +unsafe impl Sync for CopyImageToMemoryInfo<'_> {} +impl ::core::default::Default for CopyImageToMemoryInfo<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - flags: HostImageCopyFlagsEXT::default(), + flags: HostImageCopyFlags::default(), src_image: Image::default(), src_image_layout: ImageLayout::default(), region_count: u32::default(), @@ -39905,12 +42595,12 @@ impl ::core::default::Default for CopyImageToMemoryInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for CopyImageToMemoryInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::COPY_IMAGE_TO_MEMORY_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for CopyImageToMemoryInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::COPY_IMAGE_TO_MEMORY_INFO; } -impl<'a> CopyImageToMemoryInfoEXT<'a> { +impl<'a> CopyImageToMemoryInfo<'a> { #[inline] - pub fn flags(mut self, flags: HostImageCopyFlagsEXT) -> Self { + pub fn flags(mut self, flags: HostImageCopyFlags) -> Self { self.flags = flags; self } @@ -39925,7 +42615,7 @@ impl<'a> CopyImageToMemoryInfoEXT<'a> { self } #[inline] - pub fn regions(mut self, regions: &'a [ImageToMemoryCopyEXT<'a>]) -> Self { + pub fn regions(mut self, regions: &'a [ImageToMemoryCopy<'a>]) -> Self { self.region_count = regions.len() as _; self.p_regions = regions.as_ptr(); self @@ -39934,12 +42624,12 @@ impl<'a> CopyImageToMemoryInfoEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct CopyImageToImageInfoEXT<'a> { +pub struct CopyImageToImageInfo<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub flags: HostImageCopyFlagsEXT, + pub flags: HostImageCopyFlags, pub src_image: Image, pub src_image_layout: ImageLayout, pub dst_image: Image, @@ -39948,15 +42638,15 @@ pub struct CopyImageToImageInfoEXT<'a> { pub p_regions: *const ImageCopy2<'a>, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for CopyImageToImageInfoEXT<'_> {} -unsafe impl Sync for CopyImageToImageInfoEXT<'_> {} -impl ::core::default::Default for CopyImageToImageInfoEXT<'_> { +unsafe impl Send for CopyImageToImageInfo<'_> {} +unsafe impl Sync for CopyImageToImageInfo<'_> {} +impl ::core::default::Default for CopyImageToImageInfo<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - flags: HostImageCopyFlagsEXT::default(), + flags: HostImageCopyFlags::default(), src_image: Image::default(), src_image_layout: ImageLayout::default(), dst_image: Image::default(), @@ -39967,12 +42657,12 @@ impl ::core::default::Default for CopyImageToImageInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for CopyImageToImageInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::COPY_IMAGE_TO_IMAGE_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for CopyImageToImageInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::COPY_IMAGE_TO_IMAGE_INFO; } -impl<'a> CopyImageToImageInfoEXT<'a> { +impl<'a> CopyImageToImageInfo<'a> { #[inline] - pub fn flags(mut self, flags: HostImageCopyFlagsEXT) -> Self { + pub fn flags(mut self, flags: HostImageCopyFlags) -> Self { self.flags = flags; self } @@ -40006,9 +42696,9 @@ impl<'a> CopyImageToImageInfoEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct HostImageLayoutTransitionInfoEXT<'a> { +pub struct HostImageLayoutTransitionInfo<'a> { pub s_type: StructureType, pub p_next: *const c_void, pub image: Image, @@ -40017,9 +42707,9 @@ pub struct HostImageLayoutTransitionInfoEXT<'a> { pub subresource_range: ImageSubresourceRange, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for HostImageLayoutTransitionInfoEXT<'_> {} -unsafe impl Sync for HostImageLayoutTransitionInfoEXT<'_> {} -impl ::core::default::Default for HostImageLayoutTransitionInfoEXT<'_> { +unsafe impl Send for HostImageLayoutTransitionInfo<'_> {} +unsafe impl Sync for HostImageLayoutTransitionInfo<'_> {} +impl ::core::default::Default for HostImageLayoutTransitionInfo<'_> { #[inline] fn default() -> Self { Self { @@ -40033,10 +42723,10 @@ impl ::core::default::Default for HostImageLayoutTransitionInfoEXT<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for HostImageLayoutTransitionInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for HostImageLayoutTransitionInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::HOST_IMAGE_LAYOUT_TRANSITION_INFO; } -impl<'a> HostImageLayoutTransitionInfoEXT<'a> { +impl<'a> HostImageLayoutTransitionInfo<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { self.image = image; @@ -40061,17 +42751,17 @@ impl<'a> HostImageLayoutTransitionInfoEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct SubresourceHostMemcpySizeEXT<'a> { +pub struct SubresourceHostMemcpySize<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub size: DeviceSize, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for SubresourceHostMemcpySizeEXT<'_> {} -unsafe impl Sync for SubresourceHostMemcpySizeEXT<'_> {} -impl ::core::default::Default for SubresourceHostMemcpySizeEXT<'_> { +unsafe impl Send for SubresourceHostMemcpySize<'_> {} +unsafe impl Sync for SubresourceHostMemcpySize<'_> {} +impl ::core::default::Default for SubresourceHostMemcpySize<'_> { #[inline] fn default() -> Self { Self { @@ -40082,11 +42772,11 @@ impl ::core::default::Default for SubresourceHostMemcpySizeEXT<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for SubresourceHostMemcpySizeEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SUBRESOURCE_HOST_MEMCPY_SIZE_EXT; +unsafe impl<'a> TaggedStructure<'a> for SubresourceHostMemcpySize<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SUBRESOURCE_HOST_MEMCPY_SIZE; } -unsafe impl Extends> for SubresourceHostMemcpySizeEXT<'_> {} -impl<'a> SubresourceHostMemcpySizeEXT<'a> { +unsafe impl Extends> for SubresourceHostMemcpySize<'_> {} +impl<'a> SubresourceHostMemcpySize<'a> { #[inline] pub fn size(mut self, size: DeviceSize) -> Self { self.size = size; @@ -40096,18 +42786,18 @@ impl<'a> SubresourceHostMemcpySizeEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct HostImageCopyDevicePerformanceQueryEXT<'a> { +pub struct HostImageCopyDevicePerformanceQuery<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub optimal_device_access: Bool32, pub identical_memory_layout: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for HostImageCopyDevicePerformanceQueryEXT<'_> {} -unsafe impl Sync for HostImageCopyDevicePerformanceQueryEXT<'_> {} -impl ::core::default::Default for HostImageCopyDevicePerformanceQueryEXT<'_> { +unsafe impl Send for HostImageCopyDevicePerformanceQuery<'_> {} +unsafe impl Sync for HostImageCopyDevicePerformanceQuery<'_> {} +impl ::core::default::Default for HostImageCopyDevicePerformanceQuery<'_> { #[inline] fn default() -> Self { Self { @@ -40119,12 +42809,11 @@ impl ::core::default::Default for HostImageCopyDevicePerformanceQueryEXT<'_> { } } } -unsafe impl<'a> TaggedStructure<'a> for HostImageCopyDevicePerformanceQueryEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT; +unsafe impl<'a> TaggedStructure<'a> for HostImageCopyDevicePerformanceQuery<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY; } -unsafe impl Extends> for HostImageCopyDevicePerformanceQueryEXT<'_> {} -impl<'a> HostImageCopyDevicePerformanceQueryEXT<'a> { +unsafe impl Extends> for HostImageCopyDevicePerformanceQuery<'_> {} +impl<'a> HostImageCopyDevicePerformanceQuery<'a> { #[inline] pub fn optimal_device_access(mut self, optimal_device_access: bool) -> Self { self.optimal_device_access = optimal_device_access.into(); @@ -40289,6 +42978,76 @@ impl<'a> PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct SurfaceCapabilitiesPresentId2KHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub present_id2_supported: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for SurfaceCapabilitiesPresentId2KHR<'_> {} +unsafe impl Sync for SurfaceCapabilitiesPresentId2KHR<'_> {} +impl ::core::default::Default for SurfaceCapabilitiesPresentId2KHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + present_id2_supported: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for SurfaceCapabilitiesPresentId2KHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_PRESENT_ID_2_KHR; +} +unsafe impl Extends> for SurfaceCapabilitiesPresentId2KHR<'_> {} +impl<'a> SurfaceCapabilitiesPresentId2KHR<'a> { + #[inline] + pub fn present_id2_supported(mut self, present_id2_supported: bool) -> Self { + self.present_id2_supported = present_id2_supported.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct SurfaceCapabilitiesPresentWait2KHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub present_wait2_supported: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for SurfaceCapabilitiesPresentWait2KHR<'_> {} +unsafe impl Sync for SurfaceCapabilitiesPresentWait2KHR<'_> {} +impl ::core::default::Default for SurfaceCapabilitiesPresentWait2KHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + present_wait2_supported: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for SurfaceCapabilitiesPresentWait2KHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR; +} +unsafe impl Extends> for SurfaceCapabilitiesPresentWait2KHR<'_> {} +impl<'a> SurfaceCapabilitiesPresentWait2KHR<'a> { + #[inline] + pub fn present_wait2_supported(mut self, present_wait2_supported: bool) -> Self { + self.present_wait2_supported = present_wait2_supported.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct SubpassResolvePerformanceQueryEXT<'a> { @@ -40372,17 +43131,17 @@ impl<'a> MultisampledRenderToSingleSampledInfoEXT<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDevicePipelineProtectedAccessFeaturesEXT<'a> { +pub struct PhysicalDevicePipelineProtectedAccessFeatures<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub pipeline_protected_access: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDevicePipelineProtectedAccessFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDevicePipelineProtectedAccessFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDevicePipelineProtectedAccessFeaturesEXT<'_> { +unsafe impl Send for PhysicalDevicePipelineProtectedAccessFeatures<'_> {} +unsafe impl Sync for PhysicalDevicePipelineProtectedAccessFeatures<'_> {} +impl ::core::default::Default for PhysicalDevicePipelineProtectedAccessFeatures<'_> { #[inline] fn default() -> Self { Self { @@ -40393,16 +43152,16 @@ impl ::core::default::Default for PhysicalDevicePipelineProtectedAccessFeaturesE } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineProtectedAccessFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineProtectedAccessFeatures<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT; + StructureType::PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES; } unsafe impl Extends> - for PhysicalDevicePipelineProtectedAccessFeaturesEXT<'_> + for PhysicalDevicePipelineProtectedAccessFeatures<'_> { } -unsafe impl Extends> for PhysicalDevicePipelineProtectedAccessFeaturesEXT<'_> {} -impl<'a> PhysicalDevicePipelineProtectedAccessFeaturesEXT<'a> { +unsafe impl Extends> for PhysicalDevicePipelineProtectedAccessFeatures<'_> {} +impl<'a> PhysicalDevicePipelineProtectedAccessFeatures<'a> { #[inline] pub fn pipeline_protected_access(mut self, pipeline_protected_access: bool) -> Self { self.pipeline_protected_access = pipeline_protected_access.into(); @@ -40630,6 +43389,297 @@ impl<'a> VideoFormatPropertiesKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct VideoEncodeQuantizationMapCapabilitiesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub max_quantization_map_extent: Extent2D, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for VideoEncodeQuantizationMapCapabilitiesKHR<'_> {} +unsafe impl Sync for VideoEncodeQuantizationMapCapabilitiesKHR<'_> {} +impl ::core::default::Default for VideoEncodeQuantizationMapCapabilitiesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + max_quantization_map_extent: Extent2D::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeQuantizationMapCapabilitiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR; +} +unsafe impl Extends> for VideoEncodeQuantizationMapCapabilitiesKHR<'_> {} +impl<'a> VideoEncodeQuantizationMapCapabilitiesKHR<'a> { + #[inline] + pub fn max_quantization_map_extent(mut self, max_quantization_map_extent: Extent2D) -> Self { + self.max_quantization_map_extent = max_quantization_map_extent; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct VideoEncodeH264QuantizationMapCapabilitiesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub min_qp_delta: i32, + pub max_qp_delta: i32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for VideoEncodeH264QuantizationMapCapabilitiesKHR<'_> {} +unsafe impl Sync for VideoEncodeH264QuantizationMapCapabilitiesKHR<'_> {} +impl ::core::default::Default for VideoEncodeH264QuantizationMapCapabilitiesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + min_qp_delta: i32::default(), + max_qp_delta: i32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH264QuantizationMapCapabilitiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR; +} +unsafe impl Extends> + for VideoEncodeH264QuantizationMapCapabilitiesKHR<'_> +{ +} +impl<'a> VideoEncodeH264QuantizationMapCapabilitiesKHR<'a> { + #[inline] + pub fn min_qp_delta(mut self, min_qp_delta: i32) -> Self { + self.min_qp_delta = min_qp_delta; + self + } + #[inline] + pub fn max_qp_delta(mut self, max_qp_delta: i32) -> Self { + self.max_qp_delta = max_qp_delta; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct VideoEncodeH265QuantizationMapCapabilitiesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub min_qp_delta: i32, + pub max_qp_delta: i32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for VideoEncodeH265QuantizationMapCapabilitiesKHR<'_> {} +unsafe impl Sync for VideoEncodeH265QuantizationMapCapabilitiesKHR<'_> {} +impl ::core::default::Default for VideoEncodeH265QuantizationMapCapabilitiesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + min_qp_delta: i32::default(), + max_qp_delta: i32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeH265QuantizationMapCapabilitiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR; +} +unsafe impl Extends> + for VideoEncodeH265QuantizationMapCapabilitiesKHR<'_> +{ +} +impl<'a> VideoEncodeH265QuantizationMapCapabilitiesKHR<'a> { + #[inline] + pub fn min_qp_delta(mut self, min_qp_delta: i32) -> Self { + self.min_qp_delta = min_qp_delta; + self + } + #[inline] + pub fn max_qp_delta(mut self, max_qp_delta: i32) -> Self { + self.max_qp_delta = max_qp_delta; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct VideoEncodeAV1QuantizationMapCapabilitiesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub min_q_index_delta: i32, + pub max_q_index_delta: i32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for VideoEncodeAV1QuantizationMapCapabilitiesKHR<'_> {} +unsafe impl Sync for VideoEncodeAV1QuantizationMapCapabilitiesKHR<'_> {} +impl ::core::default::Default for VideoEncodeAV1QuantizationMapCapabilitiesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + min_q_index_delta: i32::default(), + max_q_index_delta: i32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeAV1QuantizationMapCapabilitiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR; +} +unsafe impl Extends> for VideoEncodeAV1QuantizationMapCapabilitiesKHR<'_> {} +impl<'a> VideoEncodeAV1QuantizationMapCapabilitiesKHR<'a> { + #[inline] + pub fn min_q_index_delta(mut self, min_q_index_delta: i32) -> Self { + self.min_q_index_delta = min_q_index_delta; + self + } + #[inline] + pub fn max_q_index_delta(mut self, max_q_index_delta: i32) -> Self { + self.max_q_index_delta = max_q_index_delta; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct VideoFormatQuantizationMapPropertiesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub quantization_map_texel_size: Extent2D, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for VideoFormatQuantizationMapPropertiesKHR<'_> {} +unsafe impl Sync for VideoFormatQuantizationMapPropertiesKHR<'_> {} +impl ::core::default::Default for VideoFormatQuantizationMapPropertiesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + quantization_map_texel_size: Extent2D::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for VideoFormatQuantizationMapPropertiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR; +} +unsafe impl Extends> for VideoFormatQuantizationMapPropertiesKHR<'_> {} +impl<'a> VideoFormatQuantizationMapPropertiesKHR<'a> { + #[inline] + pub fn quantization_map_texel_size(mut self, quantization_map_texel_size: Extent2D) -> Self { + self.quantization_map_texel_size = quantization_map_texel_size; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct VideoFormatH265QuantizationMapPropertiesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub compatible_ctb_sizes: VideoEncodeH265CtbSizeFlagsKHR, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for VideoFormatH265QuantizationMapPropertiesKHR<'_> {} +unsafe impl Sync for VideoFormatH265QuantizationMapPropertiesKHR<'_> {} +impl ::core::default::Default for VideoFormatH265QuantizationMapPropertiesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + compatible_ctb_sizes: VideoEncodeH265CtbSizeFlagsKHR::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for VideoFormatH265QuantizationMapPropertiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR; +} +unsafe impl Extends> + for VideoFormatH265QuantizationMapPropertiesKHR<'_> +{ +} +impl<'a> VideoFormatH265QuantizationMapPropertiesKHR<'a> { + #[inline] + pub fn compatible_ctb_sizes( + mut self, + compatible_ctb_sizes: VideoEncodeH265CtbSizeFlagsKHR, + ) -> Self { + self.compatible_ctb_sizes = compatible_ctb_sizes; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct VideoFormatAV1QuantizationMapPropertiesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub compatible_superblock_sizes: VideoEncodeAV1SuperblockSizeFlagsKHR, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for VideoFormatAV1QuantizationMapPropertiesKHR<'_> {} +unsafe impl Sync for VideoFormatAV1QuantizationMapPropertiesKHR<'_> {} +impl ::core::default::Default for VideoFormatAV1QuantizationMapPropertiesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + compatible_superblock_sizes: VideoEncodeAV1SuperblockSizeFlagsKHR::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for VideoFormatAV1QuantizationMapPropertiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR; +} +unsafe impl Extends> + for VideoFormatAV1QuantizationMapPropertiesKHR<'_> +{ +} +impl<'a> VideoFormatAV1QuantizationMapPropertiesKHR<'a> { + #[inline] + pub fn compatible_superblock_sizes( + mut self, + compatible_superblock_sizes: VideoEncodeAV1SuperblockSizeFlagsKHR, + ) -> Self { + self.compatible_superblock_sizes = compatible_superblock_sizes; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct VideoProfileInfoKHR<'a> { @@ -41179,6 +44229,46 @@ impl<'a> PhysicalDeviceVideoMaintenance1FeaturesKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceVideoMaintenance2FeaturesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub video_maintenance2: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceVideoMaintenance2FeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceVideoMaintenance2FeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceVideoMaintenance2FeaturesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + video_maintenance2: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVideoMaintenance2FeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR; +} +unsafe impl Extends> + for PhysicalDeviceVideoMaintenance2FeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceVideoMaintenance2FeaturesKHR<'_> {} +impl<'a> PhysicalDeviceVideoMaintenance2FeaturesKHR<'a> { + #[inline] + pub fn video_maintenance2(mut self, video_maintenance2: bool) -> Self { + self.video_maintenance2 = video_maintenance2.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct VideoInlineQueryInfoKHR<'a> { @@ -41422,6 +44512,49 @@ impl<'a> VideoDecodeH264SessionParametersCreateInfoKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct VideoDecodeH264InlineSessionParametersInfoKHR<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub p_std_sps: *const StdVideoH264SequenceParameterSet, + pub p_std_pps: *const StdVideoH264PictureParameterSet, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for VideoDecodeH264InlineSessionParametersInfoKHR<'_> {} +unsafe impl Sync for VideoDecodeH264InlineSessionParametersInfoKHR<'_> {} +impl ::core::default::Default for VideoDecodeH264InlineSessionParametersInfoKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + p_std_sps: ::core::ptr::null(), + p_std_pps: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeH264InlineSessionParametersInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR; +} +unsafe impl Extends> for VideoDecodeH264InlineSessionParametersInfoKHR<'_> {} +impl<'a> VideoDecodeH264InlineSessionParametersInfoKHR<'a> { + #[inline] + pub fn std_sps(mut self, std_sps: &'a StdVideoH264SequenceParameterSet) -> Self { + self.p_std_sps = std_sps; + self + } + #[inline] + pub fn std_pps(mut self, std_pps: &'a StdVideoH264PictureParameterSet) -> Self { + self.p_std_pps = std_pps; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct VideoDecodeH264PictureInfoKHR<'a> { @@ -41701,6 +44834,56 @@ impl<'a> VideoDecodeH265SessionParametersCreateInfoKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct VideoDecodeH265InlineSessionParametersInfoKHR<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub p_std_vps: *const StdVideoH265VideoParameterSet, + pub p_std_sps: *const StdVideoH265SequenceParameterSet, + pub p_std_pps: *const StdVideoH265PictureParameterSet, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for VideoDecodeH265InlineSessionParametersInfoKHR<'_> {} +unsafe impl Sync for VideoDecodeH265InlineSessionParametersInfoKHR<'_> {} +impl ::core::default::Default for VideoDecodeH265InlineSessionParametersInfoKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + p_std_vps: ::core::ptr::null(), + p_std_sps: ::core::ptr::null(), + p_std_pps: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeH265InlineSessionParametersInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR; +} +unsafe impl Extends> for VideoDecodeH265InlineSessionParametersInfoKHR<'_> {} +impl<'a> VideoDecodeH265InlineSessionParametersInfoKHR<'a> { + #[inline] + pub fn std_vps(mut self, std_vps: &'a StdVideoH265VideoParameterSet) -> Self { + self.p_std_vps = std_vps; + self + } + #[inline] + pub fn std_sps(mut self, std_sps: &'a StdVideoH265SequenceParameterSet) -> Self { + self.p_std_sps = std_sps; + self + } + #[inline] + pub fn std_pps(mut self, std_pps: &'a StdVideoH265PictureParameterSet) -> Self { + self.p_std_pps = std_pps; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct VideoDecodeH265PictureInfoKHR<'a> { @@ -41784,6 +44967,180 @@ impl<'a> VideoDecodeH265DpbSlotInfoKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceVideoDecodeVP9FeaturesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub video_decode_vp9: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceVideoDecodeVP9FeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceVideoDecodeVP9FeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceVideoDecodeVP9FeaturesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + video_decode_vp9: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVideoDecodeVP9FeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR; +} +unsafe impl Extends> for PhysicalDeviceVideoDecodeVP9FeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceVideoDecodeVP9FeaturesKHR<'_> {} +impl<'a> PhysicalDeviceVideoDecodeVP9FeaturesKHR<'a> { + #[inline] + pub fn video_decode_vp9(mut self, video_decode_vp9: bool) -> Self { + self.video_decode_vp9 = video_decode_vp9.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct VideoDecodeVP9ProfileInfoKHR<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub std_profile: StdVideoVP9Profile, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for VideoDecodeVP9ProfileInfoKHR<'_> {} +unsafe impl Sync for VideoDecodeVP9ProfileInfoKHR<'_> {} +impl ::core::default::Default for VideoDecodeVP9ProfileInfoKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + std_profile: StdVideoVP9Profile::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeVP9ProfileInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_VP9_PROFILE_INFO_KHR; +} +unsafe impl Extends> for VideoDecodeVP9ProfileInfoKHR<'_> {} +unsafe impl Extends> for VideoDecodeVP9ProfileInfoKHR<'_> {} +impl<'a> VideoDecodeVP9ProfileInfoKHR<'a> { + #[inline] + pub fn std_profile(mut self, std_profile: StdVideoVP9Profile) -> Self { + self.std_profile = std_profile; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct VideoDecodeVP9CapabilitiesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub max_level: StdVideoVP9Level, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for VideoDecodeVP9CapabilitiesKHR<'_> {} +unsafe impl Sync for VideoDecodeVP9CapabilitiesKHR<'_> {} +impl ::core::default::Default for VideoDecodeVP9CapabilitiesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + max_level: StdVideoVP9Level::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeVP9CapabilitiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_VP9_CAPABILITIES_KHR; +} +unsafe impl Extends> for VideoDecodeVP9CapabilitiesKHR<'_> {} +impl<'a> VideoDecodeVP9CapabilitiesKHR<'a> { + #[inline] + pub fn max_level(mut self, max_level: StdVideoVP9Level) -> Self { + self.max_level = max_level; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct VideoDecodeVP9PictureInfoKHR<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub p_std_picture_info: *const StdVideoDecodeVP9PictureInfo, + pub reference_name_slot_indices: [i32; MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR], + pub uncompressed_header_offset: u32, + pub compressed_header_offset: u32, + pub tiles_offset: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for VideoDecodeVP9PictureInfoKHR<'_> {} +unsafe impl Sync for VideoDecodeVP9PictureInfoKHR<'_> {} +impl ::core::default::Default for VideoDecodeVP9PictureInfoKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + p_std_picture_info: ::core::ptr::null(), + reference_name_slot_indices: unsafe { ::core::mem::zeroed() }, + uncompressed_header_offset: u32::default(), + compressed_header_offset: u32::default(), + tiles_offset: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeVP9PictureInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_VP9_PICTURE_INFO_KHR; +} +unsafe impl Extends> for VideoDecodeVP9PictureInfoKHR<'_> {} +impl<'a> VideoDecodeVP9PictureInfoKHR<'a> { + #[inline] + pub fn std_picture_info(mut self, std_picture_info: &'a StdVideoDecodeVP9PictureInfo) -> Self { + self.p_std_picture_info = std_picture_info; + self + } + #[inline] + pub fn reference_name_slot_indices( + mut self, + reference_name_slot_indices: [i32; MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR], + ) -> Self { + self.reference_name_slot_indices = reference_name_slot_indices; + self + } + #[inline] + pub fn uncompressed_header_offset(mut self, uncompressed_header_offset: u32) -> Self { + self.uncompressed_header_offset = uncompressed_header_offset; + self + } + #[inline] + pub fn compressed_header_offset(mut self, compressed_header_offset: u32) -> Self { + self.compressed_header_offset = compressed_header_offset; + self + } + #[inline] + pub fn tiles_offset(mut self, tiles_offset: u32) -> Self { + self.tiles_offset = tiles_offset; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct VideoDecodeAV1ProfileInfoKHR<'a> { @@ -41904,6 +45261,45 @@ impl<'a> VideoDecodeAV1SessionParametersCreateInfoKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct VideoDecodeAV1InlineSessionParametersInfoKHR<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub p_std_sequence_header: *const StdVideoAV1SequenceHeader, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for VideoDecodeAV1InlineSessionParametersInfoKHR<'_> {} +unsafe impl Sync for VideoDecodeAV1InlineSessionParametersInfoKHR<'_> {} +impl ::core::default::Default for VideoDecodeAV1InlineSessionParametersInfoKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + p_std_sequence_header: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for VideoDecodeAV1InlineSessionParametersInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR; +} +unsafe impl Extends> for VideoDecodeAV1InlineSessionParametersInfoKHR<'_> {} +impl<'a> VideoDecodeAV1InlineSessionParametersInfoKHR<'a> { + #[inline] + pub fn std_sequence_header( + mut self, + std_sequence_header: &'a StdVideoAV1SequenceHeader, + ) -> Self { + self.p_std_sequence_header = std_sequence_header; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct VideoDecodeAV1PictureInfoKHR<'a> { @@ -42534,6 +45930,132 @@ impl<'a> VideoEncodeInfoKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct VideoEncodeQuantizationMapInfoKHR<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub quantization_map: ImageView, + pub quantization_map_extent: Extent2D, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for VideoEncodeQuantizationMapInfoKHR<'_> {} +unsafe impl Sync for VideoEncodeQuantizationMapInfoKHR<'_> {} +impl ::core::default::Default for VideoEncodeQuantizationMapInfoKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + quantization_map: ImageView::default(), + quantization_map_extent: Extent2D::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeQuantizationMapInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR; +} +unsafe impl Extends> for VideoEncodeQuantizationMapInfoKHR<'_> {} +impl<'a> VideoEncodeQuantizationMapInfoKHR<'a> { + #[inline] + pub fn quantization_map(mut self, quantization_map: ImageView) -> Self { + self.quantization_map = quantization_map; + self + } + #[inline] + pub fn quantization_map_extent(mut self, quantization_map_extent: Extent2D) -> Self { + self.quantization_map_extent = quantization_map_extent; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct VideoEncodeQuantizationMapSessionParametersCreateInfoKHR<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub quantization_map_texel_size: Extent2D, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for VideoEncodeQuantizationMapSessionParametersCreateInfoKHR<'_> {} +unsafe impl Sync for VideoEncodeQuantizationMapSessionParametersCreateInfoKHR<'_> {} +impl ::core::default::Default for VideoEncodeQuantizationMapSessionParametersCreateInfoKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + quantization_map_texel_size: Extent2D::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> + for VideoEncodeQuantizationMapSessionParametersCreateInfoKHR<'a> +{ + const STRUCTURE_TYPE: StructureType = + StructureType::VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR; +} +unsafe impl Extends> + for VideoEncodeQuantizationMapSessionParametersCreateInfoKHR<'_> +{ +} +impl<'a> VideoEncodeQuantizationMapSessionParametersCreateInfoKHR<'a> { + #[inline] + pub fn quantization_map_texel_size(mut self, quantization_map_texel_size: Extent2D) -> Self { + self.quantization_map_texel_size = quantization_map_texel_size; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub video_encode_quantization_map: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + video_encode_quantization_map: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR; +} +unsafe impl Extends> + for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR<'_> +{ +} +impl<'a> PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR<'a> { + #[inline] + pub fn video_encode_quantization_map(mut self, video_encode_quantization_map: bool) -> Self { + self.video_encode_quantization_map = video_encode_quantization_map.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] #[doc = ""] #[must_use] pub struct QueryPoolVideoEncodeFeedbackCreateInfoKHR<'a> { @@ -44791,5359 +48313,11206 @@ impl<'a> VideoEncodeH265DpbSlotInfoKHR<'a> { #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceInheritedViewportScissorFeaturesNV<'a> { +pub struct VideoEncodeAV1CapabilitiesKHR<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub inherited_viewport_scissor2_d: Bool32, + pub flags: VideoEncodeAV1CapabilityFlagsKHR, + pub max_level: StdVideoAV1Level, + pub coded_picture_alignment: Extent2D, + pub max_tiles: Extent2D, + pub min_tile_size: Extent2D, + pub max_tile_size: Extent2D, + pub superblock_sizes: VideoEncodeAV1SuperblockSizeFlagsKHR, + pub max_single_reference_count: u32, + pub single_reference_name_mask: u32, + pub max_unidirectional_compound_reference_count: u32, + pub max_unidirectional_compound_group1_reference_count: u32, + pub unidirectional_compound_reference_name_mask: u32, + pub max_bidirectional_compound_reference_count: u32, + pub max_bidirectional_compound_group1_reference_count: u32, + pub max_bidirectional_compound_group2_reference_count: u32, + pub bidirectional_compound_reference_name_mask: u32, + pub max_temporal_layer_count: u32, + pub max_spatial_layer_count: u32, + pub max_operating_points: u32, + pub min_q_index: u32, + pub max_q_index: u32, + pub prefers_gop_remaining_frames: Bool32, + pub requires_gop_remaining_frames: Bool32, + pub std_syntax_flags: VideoEncodeAV1StdFlagsKHR, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceInheritedViewportScissorFeaturesNV<'_> {} -unsafe impl Sync for PhysicalDeviceInheritedViewportScissorFeaturesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceInheritedViewportScissorFeaturesNV<'_> { +unsafe impl Send for VideoEncodeAV1CapabilitiesKHR<'_> {} +unsafe impl Sync for VideoEncodeAV1CapabilitiesKHR<'_> {} +impl ::core::default::Default for VideoEncodeAV1CapabilitiesKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - inherited_viewport_scissor2_d: Bool32::default(), + flags: VideoEncodeAV1CapabilityFlagsKHR::default(), + max_level: StdVideoAV1Level::default(), + coded_picture_alignment: Extent2D::default(), + max_tiles: Extent2D::default(), + min_tile_size: Extent2D::default(), + max_tile_size: Extent2D::default(), + superblock_sizes: VideoEncodeAV1SuperblockSizeFlagsKHR::default(), + max_single_reference_count: u32::default(), + single_reference_name_mask: u32::default(), + max_unidirectional_compound_reference_count: u32::default(), + max_unidirectional_compound_group1_reference_count: u32::default(), + unidirectional_compound_reference_name_mask: u32::default(), + max_bidirectional_compound_reference_count: u32::default(), + max_bidirectional_compound_group1_reference_count: u32::default(), + max_bidirectional_compound_group2_reference_count: u32::default(), + bidirectional_compound_reference_name_mask: u32::default(), + max_temporal_layer_count: u32::default(), + max_spatial_layer_count: u32::default(), + max_operating_points: u32::default(), + min_q_index: u32::default(), + max_q_index: u32::default(), + prefers_gop_remaining_frames: Bool32::default(), + requires_gop_remaining_frames: Bool32::default(), + std_syntax_flags: VideoEncodeAV1StdFlagsKHR::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceInheritedViewportScissorFeaturesNV<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV; -} -unsafe impl Extends> - for PhysicalDeviceInheritedViewportScissorFeaturesNV<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeAV1CapabilitiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_CAPABILITIES_KHR; } -unsafe impl Extends> for PhysicalDeviceInheritedViewportScissorFeaturesNV<'_> {} -impl<'a> PhysicalDeviceInheritedViewportScissorFeaturesNV<'a> { +unsafe impl Extends> for VideoEncodeAV1CapabilitiesKHR<'_> {} +impl<'a> VideoEncodeAV1CapabilitiesKHR<'a> { #[inline] - pub fn inherited_viewport_scissor2_d(mut self, inherited_viewport_scissor2_d: bool) -> Self { - self.inherited_viewport_scissor2_d = inherited_viewport_scissor2_d.into(); + pub fn flags(mut self, flags: VideoEncodeAV1CapabilityFlagsKHR) -> Self { + self.flags = flags; + self + } + #[inline] + pub fn max_level(mut self, max_level: StdVideoAV1Level) -> Self { + self.max_level = max_level; + self + } + #[inline] + pub fn coded_picture_alignment(mut self, coded_picture_alignment: Extent2D) -> Self { + self.coded_picture_alignment = coded_picture_alignment; + self + } + #[inline] + pub fn max_tiles(mut self, max_tiles: Extent2D) -> Self { + self.max_tiles = max_tiles; + self + } + #[inline] + pub fn min_tile_size(mut self, min_tile_size: Extent2D) -> Self { + self.min_tile_size = min_tile_size; + self + } + #[inline] + pub fn max_tile_size(mut self, max_tile_size: Extent2D) -> Self { + self.max_tile_size = max_tile_size; + self + } + #[inline] + pub fn superblock_sizes( + mut self, + superblock_sizes: VideoEncodeAV1SuperblockSizeFlagsKHR, + ) -> Self { + self.superblock_sizes = superblock_sizes; + self + } + #[inline] + pub fn max_single_reference_count(mut self, max_single_reference_count: u32) -> Self { + self.max_single_reference_count = max_single_reference_count; + self + } + #[inline] + pub fn single_reference_name_mask(mut self, single_reference_name_mask: u32) -> Self { + self.single_reference_name_mask = single_reference_name_mask; + self + } + #[inline] + pub fn max_unidirectional_compound_reference_count( + mut self, + max_unidirectional_compound_reference_count: u32, + ) -> Self { + self.max_unidirectional_compound_reference_count = + max_unidirectional_compound_reference_count; + self + } + #[inline] + pub fn max_unidirectional_compound_group1_reference_count( + mut self, + max_unidirectional_compound_group1_reference_count: u32, + ) -> Self { + self.max_unidirectional_compound_group1_reference_count = + max_unidirectional_compound_group1_reference_count; + self + } + #[inline] + pub fn unidirectional_compound_reference_name_mask( + mut self, + unidirectional_compound_reference_name_mask: u32, + ) -> Self { + self.unidirectional_compound_reference_name_mask = + unidirectional_compound_reference_name_mask; + self + } + #[inline] + pub fn max_bidirectional_compound_reference_count( + mut self, + max_bidirectional_compound_reference_count: u32, + ) -> Self { + self.max_bidirectional_compound_reference_count = + max_bidirectional_compound_reference_count; + self + } + #[inline] + pub fn max_bidirectional_compound_group1_reference_count( + mut self, + max_bidirectional_compound_group1_reference_count: u32, + ) -> Self { + self.max_bidirectional_compound_group1_reference_count = + max_bidirectional_compound_group1_reference_count; + self + } + #[inline] + pub fn max_bidirectional_compound_group2_reference_count( + mut self, + max_bidirectional_compound_group2_reference_count: u32, + ) -> Self { + self.max_bidirectional_compound_group2_reference_count = + max_bidirectional_compound_group2_reference_count; + self + } + #[inline] + pub fn bidirectional_compound_reference_name_mask( + mut self, + bidirectional_compound_reference_name_mask: u32, + ) -> Self { + self.bidirectional_compound_reference_name_mask = + bidirectional_compound_reference_name_mask; + self + } + #[inline] + pub fn max_temporal_layer_count(mut self, max_temporal_layer_count: u32) -> Self { + self.max_temporal_layer_count = max_temporal_layer_count; + self + } + #[inline] + pub fn max_spatial_layer_count(mut self, max_spatial_layer_count: u32) -> Self { + self.max_spatial_layer_count = max_spatial_layer_count; + self + } + #[inline] + pub fn max_operating_points(mut self, max_operating_points: u32) -> Self { + self.max_operating_points = max_operating_points; + self + } + #[inline] + pub fn min_q_index(mut self, min_q_index: u32) -> Self { + self.min_q_index = min_q_index; + self + } + #[inline] + pub fn max_q_index(mut self, max_q_index: u32) -> Self { + self.max_q_index = max_q_index; + self + } + #[inline] + pub fn prefers_gop_remaining_frames(mut self, prefers_gop_remaining_frames: bool) -> Self { + self.prefers_gop_remaining_frames = prefers_gop_remaining_frames.into(); + self + } + #[inline] + pub fn requires_gop_remaining_frames(mut self, requires_gop_remaining_frames: bool) -> Self { + self.requires_gop_remaining_frames = requires_gop_remaining_frames.into(); + self + } + #[inline] + pub fn std_syntax_flags(mut self, std_syntax_flags: VideoEncodeAV1StdFlagsKHR) -> Self { + self.std_syntax_flags = std_syntax_flags; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct CommandBufferInheritanceViewportScissorInfoNV<'a> { +pub struct VideoEncodeAV1QualityLevelPropertiesKHR<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub viewport_scissor2_d: Bool32, - pub viewport_depth_count: u32, - pub p_viewport_depths: *const Viewport, + pub p_next: *mut c_void, + pub preferred_rate_control_flags: VideoEncodeAV1RateControlFlagsKHR, + pub preferred_gop_frame_count: u32, + pub preferred_key_frame_period: u32, + pub preferred_consecutive_bipredictive_frame_count: u32, + pub preferred_temporal_layer_count: u32, + pub preferred_constant_q_index: VideoEncodeAV1QIndexKHR, + pub preferred_max_single_reference_count: u32, + pub preferred_single_reference_name_mask: u32, + pub preferred_max_unidirectional_compound_reference_count: u32, + pub preferred_max_unidirectional_compound_group1_reference_count: u32, + pub preferred_unidirectional_compound_reference_name_mask: u32, + pub preferred_max_bidirectional_compound_reference_count: u32, + pub preferred_max_bidirectional_compound_group1_reference_count: u32, + pub preferred_max_bidirectional_compound_group2_reference_count: u32, + pub preferred_bidirectional_compound_reference_name_mask: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for CommandBufferInheritanceViewportScissorInfoNV<'_> {} -unsafe impl Sync for CommandBufferInheritanceViewportScissorInfoNV<'_> {} -impl ::core::default::Default for CommandBufferInheritanceViewportScissorInfoNV<'_> { +unsafe impl Send for VideoEncodeAV1QualityLevelPropertiesKHR<'_> {} +unsafe impl Sync for VideoEncodeAV1QualityLevelPropertiesKHR<'_> {} +impl ::core::default::Default for VideoEncodeAV1QualityLevelPropertiesKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - viewport_scissor2_d: Bool32::default(), - viewport_depth_count: u32::default(), - p_viewport_depths: ::core::ptr::null(), + p_next: ::core::ptr::null_mut(), + preferred_rate_control_flags: VideoEncodeAV1RateControlFlagsKHR::default(), + preferred_gop_frame_count: u32::default(), + preferred_key_frame_period: u32::default(), + preferred_consecutive_bipredictive_frame_count: u32::default(), + preferred_temporal_layer_count: u32::default(), + preferred_constant_q_index: VideoEncodeAV1QIndexKHR::default(), + preferred_max_single_reference_count: u32::default(), + preferred_single_reference_name_mask: u32::default(), + preferred_max_unidirectional_compound_reference_count: u32::default(), + preferred_max_unidirectional_compound_group1_reference_count: u32::default(), + preferred_unidirectional_compound_reference_name_mask: u32::default(), + preferred_max_bidirectional_compound_reference_count: u32::default(), + preferred_max_bidirectional_compound_group1_reference_count: u32::default(), + preferred_max_bidirectional_compound_group2_reference_count: u32::default(), + preferred_bidirectional_compound_reference_name_mask: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for CommandBufferInheritanceViewportScissorInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeAV1QualityLevelPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV; + StructureType::VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR; } -unsafe impl Extends> - for CommandBufferInheritanceViewportScissorInfoNV<'_> +unsafe impl Extends> + for VideoEncodeAV1QualityLevelPropertiesKHR<'_> { } -impl<'a> CommandBufferInheritanceViewportScissorInfoNV<'a> { +impl<'a> VideoEncodeAV1QualityLevelPropertiesKHR<'a> { #[inline] - pub fn viewport_scissor2_d(mut self, viewport_scissor2_d: bool) -> Self { - self.viewport_scissor2_d = viewport_scissor2_d.into(); + pub fn preferred_rate_control_flags( + mut self, + preferred_rate_control_flags: VideoEncodeAV1RateControlFlagsKHR, + ) -> Self { + self.preferred_rate_control_flags = preferred_rate_control_flags; self } #[inline] - pub fn viewport_depth_count(mut self, viewport_depth_count: u32) -> Self { - self.viewport_depth_count = viewport_depth_count; + pub fn preferred_gop_frame_count(mut self, preferred_gop_frame_count: u32) -> Self { + self.preferred_gop_frame_count = preferred_gop_frame_count; self } #[inline] - pub fn viewport_depths(mut self, viewport_depths: &'a Viewport) -> Self { - self.p_viewport_depths = viewport_depths; + pub fn preferred_key_frame_period(mut self, preferred_key_frame_period: u32) -> Self { + self.preferred_key_frame_period = preferred_key_frame_period; + self + } + #[inline] + pub fn preferred_consecutive_bipredictive_frame_count( + mut self, + preferred_consecutive_bipredictive_frame_count: u32, + ) -> Self { + self.preferred_consecutive_bipredictive_frame_count = + preferred_consecutive_bipredictive_frame_count; + self + } + #[inline] + pub fn preferred_temporal_layer_count(mut self, preferred_temporal_layer_count: u32) -> Self { + self.preferred_temporal_layer_count = preferred_temporal_layer_count; + self + } + #[inline] + pub fn preferred_constant_q_index( + mut self, + preferred_constant_q_index: VideoEncodeAV1QIndexKHR, + ) -> Self { + self.preferred_constant_q_index = preferred_constant_q_index; + self + } + #[inline] + pub fn preferred_max_single_reference_count( + mut self, + preferred_max_single_reference_count: u32, + ) -> Self { + self.preferred_max_single_reference_count = preferred_max_single_reference_count; + self + } + #[inline] + pub fn preferred_single_reference_name_mask( + mut self, + preferred_single_reference_name_mask: u32, + ) -> Self { + self.preferred_single_reference_name_mask = preferred_single_reference_name_mask; + self + } + #[inline] + pub fn preferred_max_unidirectional_compound_reference_count( + mut self, + preferred_max_unidirectional_compound_reference_count: u32, + ) -> Self { + self.preferred_max_unidirectional_compound_reference_count = + preferred_max_unidirectional_compound_reference_count; + self + } + #[inline] + pub fn preferred_max_unidirectional_compound_group1_reference_count( + mut self, + preferred_max_unidirectional_compound_group1_reference_count: u32, + ) -> Self { + self.preferred_max_unidirectional_compound_group1_reference_count = + preferred_max_unidirectional_compound_group1_reference_count; + self + } + #[inline] + pub fn preferred_unidirectional_compound_reference_name_mask( + mut self, + preferred_unidirectional_compound_reference_name_mask: u32, + ) -> Self { + self.preferred_unidirectional_compound_reference_name_mask = + preferred_unidirectional_compound_reference_name_mask; + self + } + #[inline] + pub fn preferred_max_bidirectional_compound_reference_count( + mut self, + preferred_max_bidirectional_compound_reference_count: u32, + ) -> Self { + self.preferred_max_bidirectional_compound_reference_count = + preferred_max_bidirectional_compound_reference_count; + self + } + #[inline] + pub fn preferred_max_bidirectional_compound_group1_reference_count( + mut self, + preferred_max_bidirectional_compound_group1_reference_count: u32, + ) -> Self { + self.preferred_max_bidirectional_compound_group1_reference_count = + preferred_max_bidirectional_compound_group1_reference_count; + self + } + #[inline] + pub fn preferred_max_bidirectional_compound_group2_reference_count( + mut self, + preferred_max_bidirectional_compound_group2_reference_count: u32, + ) -> Self { + self.preferred_max_bidirectional_compound_group2_reference_count = + preferred_max_bidirectional_compound_group2_reference_count; + self + } + #[inline] + pub fn preferred_bidirectional_compound_reference_name_mask( + mut self, + preferred_bidirectional_compound_reference_name_mask: u32, + ) -> Self { + self.preferred_bidirectional_compound_reference_name_mask = + preferred_bidirectional_compound_reference_name_mask; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'a> { +pub struct PhysicalDeviceVideoEncodeAV1FeaturesKHR<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub ycbcr2plane444_formats: Bool32, + pub video_encode_av1: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'_> { +unsafe impl Send for PhysicalDeviceVideoEncodeAV1FeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceVideoEncodeAV1FeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceVideoEncodeAV1FeaturesKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - ycbcr2plane444_formats: Bool32::default(), + video_encode_av1: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVideoEncodeAV1FeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT; -} -unsafe impl Extends> - for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'_> -{ + StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR; } -unsafe impl Extends> for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'a> { +unsafe impl Extends> for PhysicalDeviceVideoEncodeAV1FeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceVideoEncodeAV1FeaturesKHR<'_> {} +impl<'a> PhysicalDeviceVideoEncodeAV1FeaturesKHR<'a> { #[inline] - pub fn ycbcr2plane444_formats(mut self, ycbcr2plane444_formats: bool) -> Self { - self.ycbcr2plane444_formats = ycbcr2plane444_formats.into(); + pub fn video_encode_av1(mut self, video_encode_av1: bool) -> Self { + self.video_encode_av1 = video_encode_av1.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceProvokingVertexFeaturesEXT<'a> { +pub struct VideoEncodeAV1SessionCreateInfoKHR<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub provoking_vertex_last: Bool32, - pub transform_feedback_preserves_provoking_vertex: Bool32, + pub p_next: *const c_void, + pub use_max_level: Bool32, + pub max_level: StdVideoAV1Level, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceProvokingVertexFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceProvokingVertexFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceProvokingVertexFeaturesEXT<'_> { +unsafe impl Send for VideoEncodeAV1SessionCreateInfoKHR<'_> {} +unsafe impl Sync for VideoEncodeAV1SessionCreateInfoKHR<'_> {} +impl ::core::default::Default for VideoEncodeAV1SessionCreateInfoKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - provoking_vertex_last: Bool32::default(), - transform_feedback_preserves_provoking_vertex: Bool32::default(), + p_next: ::core::ptr::null(), + use_max_level: Bool32::default(), + max_level: StdVideoAV1Level::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceProvokingVertexFeaturesEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT; +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeAV1SessionCreateInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR; } -unsafe impl Extends> for PhysicalDeviceProvokingVertexFeaturesEXT<'_> {} -unsafe impl Extends> for PhysicalDeviceProvokingVertexFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceProvokingVertexFeaturesEXT<'a> { +unsafe impl Extends> for VideoEncodeAV1SessionCreateInfoKHR<'_> {} +impl<'a> VideoEncodeAV1SessionCreateInfoKHR<'a> { #[inline] - pub fn provoking_vertex_last(mut self, provoking_vertex_last: bool) -> Self { - self.provoking_vertex_last = provoking_vertex_last.into(); + pub fn use_max_level(mut self, use_max_level: bool) -> Self { + self.use_max_level = use_max_level.into(); self } #[inline] - pub fn transform_feedback_preserves_provoking_vertex( - mut self, - transform_feedback_preserves_provoking_vertex: bool, - ) -> Self { - self.transform_feedback_preserves_provoking_vertex = - transform_feedback_preserves_provoking_vertex.into(); + pub fn max_level(mut self, max_level: StdVideoAV1Level) -> Self { + self.max_level = max_level; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceProvokingVertexPropertiesEXT<'a> { +pub struct VideoEncodeAV1SessionParametersCreateInfoKHR<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub provoking_vertex_mode_per_pipeline: Bool32, - pub transform_feedback_preserves_triangle_fan_provoking_vertex: Bool32, + pub p_next: *const c_void, + pub p_std_sequence_header: *const StdVideoAV1SequenceHeader, + pub p_std_decoder_model_info: *const StdVideoEncodeAV1DecoderModelInfo, + pub std_operating_point_count: u32, + pub p_std_operating_points: *const StdVideoEncodeAV1OperatingPointInfo, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceProvokingVertexPropertiesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceProvokingVertexPropertiesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceProvokingVertexPropertiesEXT<'_> { +unsafe impl Send for VideoEncodeAV1SessionParametersCreateInfoKHR<'_> {} +unsafe impl Sync for VideoEncodeAV1SessionParametersCreateInfoKHR<'_> {} +impl ::core::default::Default for VideoEncodeAV1SessionParametersCreateInfoKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - provoking_vertex_mode_per_pipeline: Bool32::default(), - transform_feedback_preserves_triangle_fan_provoking_vertex: Bool32::default(), + p_next: ::core::ptr::null(), + p_std_sequence_header: ::core::ptr::null(), + p_std_decoder_model_info: ::core::ptr::null(), + std_operating_point_count: u32::default(), + p_std_operating_points: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceProvokingVertexPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeAV1SessionParametersCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT; + StructureType::VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR; } -unsafe impl Extends> - for PhysicalDeviceProvokingVertexPropertiesEXT<'_> +unsafe impl Extends> + for VideoEncodeAV1SessionParametersCreateInfoKHR<'_> { } -impl<'a> PhysicalDeviceProvokingVertexPropertiesEXT<'a> { +impl<'a> VideoEncodeAV1SessionParametersCreateInfoKHR<'a> { #[inline] - pub fn provoking_vertex_mode_per_pipeline( + pub fn std_sequence_header( mut self, - provoking_vertex_mode_per_pipeline: bool, + std_sequence_header: &'a StdVideoAV1SequenceHeader, ) -> Self { - self.provoking_vertex_mode_per_pipeline = provoking_vertex_mode_per_pipeline.into(); + self.p_std_sequence_header = std_sequence_header; self } #[inline] - pub fn transform_feedback_preserves_triangle_fan_provoking_vertex( + pub fn std_decoder_model_info( mut self, - transform_feedback_preserves_triangle_fan_provoking_vertex: bool, + std_decoder_model_info: &'a StdVideoEncodeAV1DecoderModelInfo, ) -> Self { - self.transform_feedback_preserves_triangle_fan_provoking_vertex = - transform_feedback_preserves_triangle_fan_provoking_vertex.into(); + self.p_std_decoder_model_info = std_decoder_model_info; + self + } + #[inline] + pub fn std_operating_points( + mut self, + std_operating_points: &'a [StdVideoEncodeAV1OperatingPointInfo], + ) -> Self { + self.std_operating_point_count = std_operating_points.len() as _; + self.p_std_operating_points = std_operating_points.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PipelineRasterizationProvokingVertexStateCreateInfoEXT<'a> { +pub struct VideoEncodeAV1DpbSlotInfoKHR<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub provoking_vertex_mode: ProvokingVertexModeEXT, + pub p_std_reference_info: *const StdVideoEncodeAV1ReferenceInfo, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PipelineRasterizationProvokingVertexStateCreateInfoEXT<'_> {} -unsafe impl Sync for PipelineRasterizationProvokingVertexStateCreateInfoEXT<'_> {} -impl ::core::default::Default for PipelineRasterizationProvokingVertexStateCreateInfoEXT<'_> { +unsafe impl Send for VideoEncodeAV1DpbSlotInfoKHR<'_> {} +unsafe impl Sync for VideoEncodeAV1DpbSlotInfoKHR<'_> {} +impl ::core::default::Default for VideoEncodeAV1DpbSlotInfoKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - provoking_vertex_mode: ProvokingVertexModeEXT::default(), + p_std_reference_info: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PipelineRasterizationProvokingVertexStateCreateInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT; -} -unsafe impl Extends> - for PipelineRasterizationProvokingVertexStateCreateInfoEXT<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeAV1DpbSlotInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR; } -impl<'a> PipelineRasterizationProvokingVertexStateCreateInfoEXT<'a> { +unsafe impl Extends> for VideoEncodeAV1DpbSlotInfoKHR<'_> {} +impl<'a> VideoEncodeAV1DpbSlotInfoKHR<'a> { #[inline] - pub fn provoking_vertex_mode(mut self, provoking_vertex_mode: ProvokingVertexModeEXT) -> Self { - self.provoking_vertex_mode = provoking_vertex_mode; + pub fn std_reference_info( + mut self, + std_reference_info: &'a StdVideoEncodeAV1ReferenceInfo, + ) -> Self { + self.p_std_reference_info = std_reference_info; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct CuModuleCreateInfoNVX<'a> { +pub struct VideoEncodeAV1PictureInfoKHR<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub data_size: usize, - pub p_data: *const c_void, + pub prediction_mode: VideoEncodeAV1PredictionModeKHR, + pub rate_control_group: VideoEncodeAV1RateControlGroupKHR, + pub constant_q_index: u32, + pub p_std_picture_info: *const StdVideoEncodeAV1PictureInfo, + pub reference_name_slot_indices: [i32; MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR], + pub primary_reference_cdf_only: Bool32, + pub generate_obu_extension_header: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for CuModuleCreateInfoNVX<'_> {} -unsafe impl Sync for CuModuleCreateInfoNVX<'_> {} -impl ::core::default::Default for CuModuleCreateInfoNVX<'_> { +unsafe impl Send for VideoEncodeAV1PictureInfoKHR<'_> {} +unsafe impl Sync for VideoEncodeAV1PictureInfoKHR<'_> {} +impl ::core::default::Default for VideoEncodeAV1PictureInfoKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - data_size: usize::default(), - p_data: ::core::ptr::null(), + prediction_mode: VideoEncodeAV1PredictionModeKHR::default(), + rate_control_group: VideoEncodeAV1RateControlGroupKHR::default(), + constant_q_index: u32::default(), + p_std_picture_info: ::core::ptr::null(), + reference_name_slot_indices: unsafe { ::core::mem::zeroed() }, + primary_reference_cdf_only: Bool32::default(), + generate_obu_extension_header: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for CuModuleCreateInfoNVX<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::CU_MODULE_CREATE_INFO_NVX; +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeAV1PictureInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_PICTURE_INFO_KHR; } -impl<'a> CuModuleCreateInfoNVX<'a> { +unsafe impl Extends> for VideoEncodeAV1PictureInfoKHR<'_> {} +impl<'a> VideoEncodeAV1PictureInfoKHR<'a> { #[inline] - pub fn data(mut self, data: &'a [u8]) -> Self { - self.data_size = data.len(); - self.p_data = data.as_ptr().cast(); + pub fn prediction_mode(mut self, prediction_mode: VideoEncodeAV1PredictionModeKHR) -> Self { + self.prediction_mode = prediction_mode; + self + } + #[inline] + pub fn rate_control_group( + mut self, + rate_control_group: VideoEncodeAV1RateControlGroupKHR, + ) -> Self { + self.rate_control_group = rate_control_group; + self + } + #[inline] + pub fn constant_q_index(mut self, constant_q_index: u32) -> Self { + self.constant_q_index = constant_q_index; + self + } + #[inline] + pub fn std_picture_info(mut self, std_picture_info: &'a StdVideoEncodeAV1PictureInfo) -> Self { + self.p_std_picture_info = std_picture_info; + self + } + #[inline] + pub fn reference_name_slot_indices( + mut self, + reference_name_slot_indices: [i32; MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR], + ) -> Self { + self.reference_name_slot_indices = reference_name_slot_indices; + self + } + #[inline] + pub fn primary_reference_cdf_only(mut self, primary_reference_cdf_only: bool) -> Self { + self.primary_reference_cdf_only = primary_reference_cdf_only.into(); + self + } + #[inline] + pub fn generate_obu_extension_header(mut self, generate_obu_extension_header: bool) -> Self { + self.generate_obu_extension_header = generate_obu_extension_header.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct CuFunctionCreateInfoNVX<'a> { +pub struct VideoEncodeAV1ProfileInfoKHR<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub module: CuModuleNVX, - pub p_name: *const c_char, + pub std_profile: StdVideoAV1Profile, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for CuFunctionCreateInfoNVX<'_> {} -unsafe impl Sync for CuFunctionCreateInfoNVX<'_> {} -impl ::core::default::Default for CuFunctionCreateInfoNVX<'_> { +unsafe impl Send for VideoEncodeAV1ProfileInfoKHR<'_> {} +unsafe impl Sync for VideoEncodeAV1ProfileInfoKHR<'_> {} +impl ::core::default::Default for VideoEncodeAV1ProfileInfoKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - module: CuModuleNVX::default(), - p_name: ::core::ptr::null(), + std_profile: StdVideoAV1Profile::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for CuFunctionCreateInfoNVX<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::CU_FUNCTION_CREATE_INFO_NVX; +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeAV1ProfileInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_PROFILE_INFO_KHR; } -impl<'a> CuFunctionCreateInfoNVX<'a> { - #[inline] - pub fn module(mut self, module: CuModuleNVX) -> Self { - self.module = module; - self - } +unsafe impl Extends> for VideoEncodeAV1ProfileInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeAV1ProfileInfoKHR<'_> {} +impl<'a> VideoEncodeAV1ProfileInfoKHR<'a> { #[inline] - pub fn name(mut self, name: &'a CStr) -> Self { - self.p_name = name.as_ptr(); + pub fn std_profile(mut self, std_profile: StdVideoAV1Profile) -> Self { + self.std_profile = std_profile; self } - #[inline] - pub unsafe fn name_as_c_str(&self) -> Option<&CStr> { - if self.p_name.is_null() { - None - } else { - Some(CStr::from_ptr(self.p_name)) - } - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct CuLaunchInfoNVX<'a> { +pub struct VideoEncodeAV1RateControlInfoKHR<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub function: CuFunctionNVX, - pub grid_dim_x: u32, - pub grid_dim_y: u32, - pub grid_dim_z: u32, - pub block_dim_x: u32, - pub block_dim_y: u32, - pub block_dim_z: u32, - pub shared_mem_bytes: u32, - pub param_count: usize, - pub p_params: *const *const c_void, - pub extra_count: usize, - pub p_extras: *const *const c_void, + pub flags: VideoEncodeAV1RateControlFlagsKHR, + pub gop_frame_count: u32, + pub key_frame_period: u32, + pub consecutive_bipredictive_frame_count: u32, + pub temporal_layer_count: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for CuLaunchInfoNVX<'_> {} -unsafe impl Sync for CuLaunchInfoNVX<'_> {} -impl ::core::default::Default for CuLaunchInfoNVX<'_> { +unsafe impl Send for VideoEncodeAV1RateControlInfoKHR<'_> {} +unsafe impl Sync for VideoEncodeAV1RateControlInfoKHR<'_> {} +impl ::core::default::Default for VideoEncodeAV1RateControlInfoKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - function: CuFunctionNVX::default(), - grid_dim_x: u32::default(), - grid_dim_y: u32::default(), - grid_dim_z: u32::default(), - block_dim_x: u32::default(), - block_dim_y: u32::default(), - block_dim_z: u32::default(), - shared_mem_bytes: u32::default(), - param_count: usize::default(), - p_params: ::core::ptr::null(), - extra_count: usize::default(), - p_extras: ::core::ptr::null(), + flags: VideoEncodeAV1RateControlFlagsKHR::default(), + gop_frame_count: u32::default(), + key_frame_period: u32::default(), + consecutive_bipredictive_frame_count: u32::default(), + temporal_layer_count: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for CuLaunchInfoNVX<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::CU_LAUNCH_INFO_NVX; +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeAV1RateControlInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR; } -impl<'a> CuLaunchInfoNVX<'a> { +unsafe impl Extends> for VideoEncodeAV1RateControlInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeAV1RateControlInfoKHR<'_> {} +impl<'a> VideoEncodeAV1RateControlInfoKHR<'a> { #[inline] - pub fn function(mut self, function: CuFunctionNVX) -> Self { - self.function = function; + pub fn flags(mut self, flags: VideoEncodeAV1RateControlFlagsKHR) -> Self { + self.flags = flags; self } #[inline] - pub fn grid_dim_x(mut self, grid_dim_x: u32) -> Self { - self.grid_dim_x = grid_dim_x; + pub fn gop_frame_count(mut self, gop_frame_count: u32) -> Self { + self.gop_frame_count = gop_frame_count; self } #[inline] - pub fn grid_dim_y(mut self, grid_dim_y: u32) -> Self { - self.grid_dim_y = grid_dim_y; + pub fn key_frame_period(mut self, key_frame_period: u32) -> Self { + self.key_frame_period = key_frame_period; self } #[inline] - pub fn grid_dim_z(mut self, grid_dim_z: u32) -> Self { - self.grid_dim_z = grid_dim_z; + pub fn consecutive_bipredictive_frame_count( + mut self, + consecutive_bipredictive_frame_count: u32, + ) -> Self { + self.consecutive_bipredictive_frame_count = consecutive_bipredictive_frame_count; self } #[inline] - pub fn block_dim_x(mut self, block_dim_x: u32) -> Self { - self.block_dim_x = block_dim_x; + pub fn temporal_layer_count(mut self, temporal_layer_count: u32) -> Self { + self.temporal_layer_count = temporal_layer_count; self } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct VideoEncodeAV1QIndexKHR { + pub intra_q_index: u32, + pub predictive_q_index: u32, + pub bipredictive_q_index: u32, +} +impl VideoEncodeAV1QIndexKHR { #[inline] - pub fn block_dim_y(mut self, block_dim_y: u32) -> Self { - self.block_dim_y = block_dim_y; + pub fn intra_q_index(mut self, intra_q_index: u32) -> Self { + self.intra_q_index = intra_q_index; self } #[inline] - pub fn block_dim_z(mut self, block_dim_z: u32) -> Self { - self.block_dim_z = block_dim_z; + pub fn predictive_q_index(mut self, predictive_q_index: u32) -> Self { + self.predictive_q_index = predictive_q_index; self } #[inline] - pub fn shared_mem_bytes(mut self, shared_mem_bytes: u32) -> Self { - self.shared_mem_bytes = shared_mem_bytes; + pub fn bipredictive_q_index(mut self, bipredictive_q_index: u32) -> Self { + self.bipredictive_q_index = bipredictive_q_index; self } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct VideoEncodeAV1FrameSizeKHR { + pub intra_frame_size: u32, + pub predictive_frame_size: u32, + pub bipredictive_frame_size: u32, +} +impl VideoEncodeAV1FrameSizeKHR { #[inline] - pub fn params(mut self, params: &'a [*const c_void]) -> Self { - self.param_count = params.len(); - self.p_params = params.as_ptr(); + pub fn intra_frame_size(mut self, intra_frame_size: u32) -> Self { + self.intra_frame_size = intra_frame_size; self } #[inline] - pub fn extras(mut self, extras: &'a [*const c_void]) -> Self { - self.extra_count = extras.len(); - self.p_extras = extras.as_ptr(); + pub fn predictive_frame_size(mut self, predictive_frame_size: u32) -> Self { + self.predictive_frame_size = predictive_frame_size; + self + } + #[inline] + pub fn bipredictive_frame_size(mut self, bipredictive_frame_size: u32) -> Self { + self.bipredictive_frame_size = bipredictive_frame_size; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceDescriptorBufferFeaturesEXT<'a> { +pub struct VideoEncodeAV1GopRemainingFrameInfoKHR<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub descriptor_buffer: Bool32, - pub descriptor_buffer_capture_replay: Bool32, - pub descriptor_buffer_image_layout_ignored: Bool32, - pub descriptor_buffer_push_descriptors: Bool32, + pub p_next: *const c_void, + pub use_gop_remaining_frames: Bool32, + pub gop_remaining_intra: u32, + pub gop_remaining_predictive: u32, + pub gop_remaining_bipredictive: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceDescriptorBufferFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceDescriptorBufferFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceDescriptorBufferFeaturesEXT<'_> { +unsafe impl Send for VideoEncodeAV1GopRemainingFrameInfoKHR<'_> {} +unsafe impl Sync for VideoEncodeAV1GopRemainingFrameInfoKHR<'_> {} +impl ::core::default::Default for VideoEncodeAV1GopRemainingFrameInfoKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - descriptor_buffer: Bool32::default(), - descriptor_buffer_capture_replay: Bool32::default(), - descriptor_buffer_image_layout_ignored: Bool32::default(), - descriptor_buffer_push_descriptors: Bool32::default(), + p_next: ::core::ptr::null(), + use_gop_remaining_frames: Bool32::default(), + gop_remaining_intra: u32::default(), + gop_remaining_predictive: u32::default(), + gop_remaining_bipredictive: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorBufferFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeAV1GopRemainingFrameInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT; + StructureType::VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR; } -unsafe impl Extends> for PhysicalDeviceDescriptorBufferFeaturesEXT<'_> {} -unsafe impl Extends> for PhysicalDeviceDescriptorBufferFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceDescriptorBufferFeaturesEXT<'a> { +unsafe impl Extends> for VideoEncodeAV1GopRemainingFrameInfoKHR<'_> {} +impl<'a> VideoEncodeAV1GopRemainingFrameInfoKHR<'a> { #[inline] - pub fn descriptor_buffer(mut self, descriptor_buffer: bool) -> Self { - self.descriptor_buffer = descriptor_buffer.into(); + pub fn use_gop_remaining_frames(mut self, use_gop_remaining_frames: bool) -> Self { + self.use_gop_remaining_frames = use_gop_remaining_frames.into(); self } #[inline] - pub fn descriptor_buffer_capture_replay( - mut self, - descriptor_buffer_capture_replay: bool, - ) -> Self { - self.descriptor_buffer_capture_replay = descriptor_buffer_capture_replay.into(); + pub fn gop_remaining_intra(mut self, gop_remaining_intra: u32) -> Self { + self.gop_remaining_intra = gop_remaining_intra; self } #[inline] - pub fn descriptor_buffer_image_layout_ignored( - mut self, - descriptor_buffer_image_layout_ignored: bool, - ) -> Self { - self.descriptor_buffer_image_layout_ignored = descriptor_buffer_image_layout_ignored.into(); + pub fn gop_remaining_predictive(mut self, gop_remaining_predictive: u32) -> Self { + self.gop_remaining_predictive = gop_remaining_predictive; self } #[inline] - pub fn descriptor_buffer_push_descriptors( - mut self, - descriptor_buffer_push_descriptors: bool, - ) -> Self { - self.descriptor_buffer_push_descriptors = descriptor_buffer_push_descriptors.into(); + pub fn gop_remaining_bipredictive(mut self, gop_remaining_bipredictive: u32) -> Self { + self.gop_remaining_bipredictive = gop_remaining_bipredictive; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceDescriptorBufferPropertiesEXT<'a> { +pub struct VideoEncodeAV1RateControlLayerInfoKHR<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub combined_image_sampler_descriptor_single_array: Bool32, - pub bufferless_push_descriptors: Bool32, - pub allow_sampler_image_view_post_submit_creation: Bool32, - pub descriptor_buffer_offset_alignment: DeviceSize, - pub max_descriptor_buffer_bindings: u32, - pub max_resource_descriptor_buffer_bindings: u32, - pub max_sampler_descriptor_buffer_bindings: u32, - pub max_embedded_immutable_sampler_bindings: u32, - pub max_embedded_immutable_samplers: u32, - pub buffer_capture_replay_descriptor_data_size: usize, - pub image_capture_replay_descriptor_data_size: usize, - pub image_view_capture_replay_descriptor_data_size: usize, - pub sampler_capture_replay_descriptor_data_size: usize, - pub acceleration_structure_capture_replay_descriptor_data_size: usize, - pub sampler_descriptor_size: usize, - pub combined_image_sampler_descriptor_size: usize, - pub sampled_image_descriptor_size: usize, - pub storage_image_descriptor_size: usize, - pub uniform_texel_buffer_descriptor_size: usize, - pub robust_uniform_texel_buffer_descriptor_size: usize, - pub storage_texel_buffer_descriptor_size: usize, - pub robust_storage_texel_buffer_descriptor_size: usize, - pub uniform_buffer_descriptor_size: usize, - pub robust_uniform_buffer_descriptor_size: usize, - pub storage_buffer_descriptor_size: usize, - pub robust_storage_buffer_descriptor_size: usize, - pub input_attachment_descriptor_size: usize, - pub acceleration_structure_descriptor_size: usize, - pub max_sampler_descriptor_buffer_range: DeviceSize, - pub max_resource_descriptor_buffer_range: DeviceSize, - pub sampler_descriptor_buffer_address_space_size: DeviceSize, - pub resource_descriptor_buffer_address_space_size: DeviceSize, - pub descriptor_buffer_address_space_size: DeviceSize, + pub p_next: *const c_void, + pub use_min_q_index: Bool32, + pub min_q_index: VideoEncodeAV1QIndexKHR, + pub use_max_q_index: Bool32, + pub max_q_index: VideoEncodeAV1QIndexKHR, + pub use_max_frame_size: Bool32, + pub max_frame_size: VideoEncodeAV1FrameSizeKHR, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceDescriptorBufferPropertiesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceDescriptorBufferPropertiesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceDescriptorBufferPropertiesEXT<'_> { +unsafe impl Send for VideoEncodeAV1RateControlLayerInfoKHR<'_> {} +unsafe impl Sync for VideoEncodeAV1RateControlLayerInfoKHR<'_> {} +impl ::core::default::Default for VideoEncodeAV1RateControlLayerInfoKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - combined_image_sampler_descriptor_single_array: Bool32::default(), - bufferless_push_descriptors: Bool32::default(), - allow_sampler_image_view_post_submit_creation: Bool32::default(), - descriptor_buffer_offset_alignment: DeviceSize::default(), - max_descriptor_buffer_bindings: u32::default(), - max_resource_descriptor_buffer_bindings: u32::default(), - max_sampler_descriptor_buffer_bindings: u32::default(), - max_embedded_immutable_sampler_bindings: u32::default(), - max_embedded_immutable_samplers: u32::default(), - buffer_capture_replay_descriptor_data_size: usize::default(), - image_capture_replay_descriptor_data_size: usize::default(), - image_view_capture_replay_descriptor_data_size: usize::default(), - sampler_capture_replay_descriptor_data_size: usize::default(), - acceleration_structure_capture_replay_descriptor_data_size: usize::default(), - sampler_descriptor_size: usize::default(), - combined_image_sampler_descriptor_size: usize::default(), - sampled_image_descriptor_size: usize::default(), - storage_image_descriptor_size: usize::default(), - uniform_texel_buffer_descriptor_size: usize::default(), - robust_uniform_texel_buffer_descriptor_size: usize::default(), - storage_texel_buffer_descriptor_size: usize::default(), - robust_storage_texel_buffer_descriptor_size: usize::default(), - uniform_buffer_descriptor_size: usize::default(), - robust_uniform_buffer_descriptor_size: usize::default(), - storage_buffer_descriptor_size: usize::default(), - robust_storage_buffer_descriptor_size: usize::default(), - input_attachment_descriptor_size: usize::default(), - acceleration_structure_descriptor_size: usize::default(), - max_sampler_descriptor_buffer_range: DeviceSize::default(), - max_resource_descriptor_buffer_range: DeviceSize::default(), - sampler_descriptor_buffer_address_space_size: DeviceSize::default(), - resource_descriptor_buffer_address_space_size: DeviceSize::default(), - descriptor_buffer_address_space_size: DeviceSize::default(), + p_next: ::core::ptr::null(), + use_min_q_index: Bool32::default(), + min_q_index: VideoEncodeAV1QIndexKHR::default(), + use_max_q_index: Bool32::default(), + max_q_index: VideoEncodeAV1QIndexKHR::default(), + use_max_frame_size: Bool32::default(), + max_frame_size: VideoEncodeAV1FrameSizeKHR::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorBufferPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeAV1RateControlLayerInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT; + StructureType::VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR; } -unsafe impl Extends> - for PhysicalDeviceDescriptorBufferPropertiesEXT<'_> +unsafe impl Extends> + for VideoEncodeAV1RateControlLayerInfoKHR<'_> { } -impl<'a> PhysicalDeviceDescriptorBufferPropertiesEXT<'a> { - #[inline] - pub fn combined_image_sampler_descriptor_single_array( - mut self, - combined_image_sampler_descriptor_single_array: bool, - ) -> Self { - self.combined_image_sampler_descriptor_single_array = - combined_image_sampler_descriptor_single_array.into(); - self - } - #[inline] - pub fn bufferless_push_descriptors(mut self, bufferless_push_descriptors: bool) -> Self { - self.bufferless_push_descriptors = bufferless_push_descriptors.into(); - self - } - #[inline] - pub fn allow_sampler_image_view_post_submit_creation( - mut self, - allow_sampler_image_view_post_submit_creation: bool, - ) -> Self { - self.allow_sampler_image_view_post_submit_creation = - allow_sampler_image_view_post_submit_creation.into(); - self - } - #[inline] - pub fn descriptor_buffer_offset_alignment( - mut self, - descriptor_buffer_offset_alignment: DeviceSize, - ) -> Self { - self.descriptor_buffer_offset_alignment = descriptor_buffer_offset_alignment; - self - } - #[inline] - pub fn max_descriptor_buffer_bindings(mut self, max_descriptor_buffer_bindings: u32) -> Self { - self.max_descriptor_buffer_bindings = max_descriptor_buffer_bindings; - self - } - #[inline] - pub fn max_resource_descriptor_buffer_bindings( - mut self, - max_resource_descriptor_buffer_bindings: u32, - ) -> Self { - self.max_resource_descriptor_buffer_bindings = max_resource_descriptor_buffer_bindings; - self - } - #[inline] - pub fn max_sampler_descriptor_buffer_bindings( - mut self, - max_sampler_descriptor_buffer_bindings: u32, - ) -> Self { - self.max_sampler_descriptor_buffer_bindings = max_sampler_descriptor_buffer_bindings; - self - } - #[inline] - pub fn max_embedded_immutable_sampler_bindings( - mut self, - max_embedded_immutable_sampler_bindings: u32, - ) -> Self { - self.max_embedded_immutable_sampler_bindings = max_embedded_immutable_sampler_bindings; - self - } - #[inline] - pub fn max_embedded_immutable_samplers(mut self, max_embedded_immutable_samplers: u32) -> Self { - self.max_embedded_immutable_samplers = max_embedded_immutable_samplers; - self - } - #[inline] - pub fn buffer_capture_replay_descriptor_data_size( - mut self, - buffer_capture_replay_descriptor_data_size: usize, - ) -> Self { - self.buffer_capture_replay_descriptor_data_size = - buffer_capture_replay_descriptor_data_size; - self - } - #[inline] - pub fn image_capture_replay_descriptor_data_size( - mut self, - image_capture_replay_descriptor_data_size: usize, - ) -> Self { - self.image_capture_replay_descriptor_data_size = image_capture_replay_descriptor_data_size; - self - } - #[inline] - pub fn image_view_capture_replay_descriptor_data_size( - mut self, - image_view_capture_replay_descriptor_data_size: usize, - ) -> Self { - self.image_view_capture_replay_descriptor_data_size = - image_view_capture_replay_descriptor_data_size; - self - } - #[inline] - pub fn sampler_capture_replay_descriptor_data_size( - mut self, - sampler_capture_replay_descriptor_data_size: usize, - ) -> Self { - self.sampler_capture_replay_descriptor_data_size = - sampler_capture_replay_descriptor_data_size; - self - } - #[inline] - pub fn acceleration_structure_capture_replay_descriptor_data_size( - mut self, - acceleration_structure_capture_replay_descriptor_data_size: usize, - ) -> Self { - self.acceleration_structure_capture_replay_descriptor_data_size = - acceleration_structure_capture_replay_descriptor_data_size; - self - } - #[inline] - pub fn sampler_descriptor_size(mut self, sampler_descriptor_size: usize) -> Self { - self.sampler_descriptor_size = sampler_descriptor_size; - self - } - #[inline] - pub fn combined_image_sampler_descriptor_size( - mut self, - combined_image_sampler_descriptor_size: usize, - ) -> Self { - self.combined_image_sampler_descriptor_size = combined_image_sampler_descriptor_size; - self - } - #[inline] - pub fn sampled_image_descriptor_size(mut self, sampled_image_descriptor_size: usize) -> Self { - self.sampled_image_descriptor_size = sampled_image_descriptor_size; - self - } - #[inline] - pub fn storage_image_descriptor_size(mut self, storage_image_descriptor_size: usize) -> Self { - self.storage_image_descriptor_size = storage_image_descriptor_size; - self - } - #[inline] - pub fn uniform_texel_buffer_descriptor_size( - mut self, - uniform_texel_buffer_descriptor_size: usize, - ) -> Self { - self.uniform_texel_buffer_descriptor_size = uniform_texel_buffer_descriptor_size; - self - } - #[inline] - pub fn robust_uniform_texel_buffer_descriptor_size( - mut self, - robust_uniform_texel_buffer_descriptor_size: usize, - ) -> Self { - self.robust_uniform_texel_buffer_descriptor_size = - robust_uniform_texel_buffer_descriptor_size; - self - } - #[inline] - pub fn storage_texel_buffer_descriptor_size( - mut self, - storage_texel_buffer_descriptor_size: usize, - ) -> Self { - self.storage_texel_buffer_descriptor_size = storage_texel_buffer_descriptor_size; - self - } - #[inline] - pub fn robust_storage_texel_buffer_descriptor_size( - mut self, - robust_storage_texel_buffer_descriptor_size: usize, - ) -> Self { - self.robust_storage_texel_buffer_descriptor_size = - robust_storage_texel_buffer_descriptor_size; - self - } - #[inline] - pub fn uniform_buffer_descriptor_size(mut self, uniform_buffer_descriptor_size: usize) -> Self { - self.uniform_buffer_descriptor_size = uniform_buffer_descriptor_size; - self - } - #[inline] - pub fn robust_uniform_buffer_descriptor_size( - mut self, - robust_uniform_buffer_descriptor_size: usize, - ) -> Self { - self.robust_uniform_buffer_descriptor_size = robust_uniform_buffer_descriptor_size; - self - } - #[inline] - pub fn storage_buffer_descriptor_size(mut self, storage_buffer_descriptor_size: usize) -> Self { - self.storage_buffer_descriptor_size = storage_buffer_descriptor_size; - self - } - #[inline] - pub fn robust_storage_buffer_descriptor_size( - mut self, - robust_storage_buffer_descriptor_size: usize, - ) -> Self { - self.robust_storage_buffer_descriptor_size = robust_storage_buffer_descriptor_size; - self - } - #[inline] - pub fn input_attachment_descriptor_size( - mut self, - input_attachment_descriptor_size: usize, - ) -> Self { - self.input_attachment_descriptor_size = input_attachment_descriptor_size; - self - } +impl<'a> VideoEncodeAV1RateControlLayerInfoKHR<'a> { #[inline] - pub fn acceleration_structure_descriptor_size( - mut self, - acceleration_structure_descriptor_size: usize, - ) -> Self { - self.acceleration_structure_descriptor_size = acceleration_structure_descriptor_size; + pub fn use_min_q_index(mut self, use_min_q_index: bool) -> Self { + self.use_min_q_index = use_min_q_index.into(); self } #[inline] - pub fn max_sampler_descriptor_buffer_range( - mut self, - max_sampler_descriptor_buffer_range: DeviceSize, - ) -> Self { - self.max_sampler_descriptor_buffer_range = max_sampler_descriptor_buffer_range; + pub fn min_q_index(mut self, min_q_index: VideoEncodeAV1QIndexKHR) -> Self { + self.min_q_index = min_q_index; self } #[inline] - pub fn max_resource_descriptor_buffer_range( - mut self, - max_resource_descriptor_buffer_range: DeviceSize, - ) -> Self { - self.max_resource_descriptor_buffer_range = max_resource_descriptor_buffer_range; + pub fn use_max_q_index(mut self, use_max_q_index: bool) -> Self { + self.use_max_q_index = use_max_q_index.into(); self } #[inline] - pub fn sampler_descriptor_buffer_address_space_size( - mut self, - sampler_descriptor_buffer_address_space_size: DeviceSize, - ) -> Self { - self.sampler_descriptor_buffer_address_space_size = - sampler_descriptor_buffer_address_space_size; + pub fn max_q_index(mut self, max_q_index: VideoEncodeAV1QIndexKHR) -> Self { + self.max_q_index = max_q_index; self } #[inline] - pub fn resource_descriptor_buffer_address_space_size( - mut self, - resource_descriptor_buffer_address_space_size: DeviceSize, - ) -> Self { - self.resource_descriptor_buffer_address_space_size = - resource_descriptor_buffer_address_space_size; + pub fn use_max_frame_size(mut self, use_max_frame_size: bool) -> Self { + self.use_max_frame_size = use_max_frame_size.into(); self } #[inline] - pub fn descriptor_buffer_address_space_size( - mut self, - descriptor_buffer_address_space_size: DeviceSize, - ) -> Self { - self.descriptor_buffer_address_space_size = descriptor_buffer_address_space_size; + pub fn max_frame_size(mut self, max_frame_size: VideoEncodeAV1FrameSizeKHR) -> Self { + self.max_frame_size = max_frame_size; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'a> { +pub struct PhysicalDeviceInheritedViewportScissorFeaturesNV<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub combined_image_sampler_density_map_descriptor_size: usize, + pub inherited_viewport_scissor2_d: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'_> { +unsafe impl Send for PhysicalDeviceInheritedViewportScissorFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDeviceInheritedViewportScissorFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceInheritedViewportScissorFeaturesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - combined_image_sampler_density_map_descriptor_size: usize::default(), + inherited_viewport_scissor2_d: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceInheritedViewportScissorFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT; + StructureType::PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV; } -unsafe impl Extends> - for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'_> +unsafe impl Extends> + for PhysicalDeviceInheritedViewportScissorFeaturesNV<'_> { } -impl<'a> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'a> { +unsafe impl Extends> for PhysicalDeviceInheritedViewportScissorFeaturesNV<'_> {} +impl<'a> PhysicalDeviceInheritedViewportScissorFeaturesNV<'a> { #[inline] - pub fn combined_image_sampler_density_map_descriptor_size( - mut self, - combined_image_sampler_density_map_descriptor_size: usize, - ) -> Self { - self.combined_image_sampler_density_map_descriptor_size = - combined_image_sampler_density_map_descriptor_size; + pub fn inherited_viewport_scissor2_d(mut self, inherited_viewport_scissor2_d: bool) -> Self { + self.inherited_viewport_scissor2_d = inherited_viewport_scissor2_d.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DescriptorAddressInfoEXT<'a> { +pub struct CommandBufferInheritanceViewportScissorInfoNV<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub address: DeviceAddress, - pub range: DeviceSize, - pub format: Format, + pub p_next: *const c_void, + pub viewport_scissor2_d: Bool32, + pub viewport_depth_count: u32, + pub p_viewport_depths: *const Viewport, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for DescriptorAddressInfoEXT<'_> {} -unsafe impl Sync for DescriptorAddressInfoEXT<'_> {} -impl ::core::default::Default for DescriptorAddressInfoEXT<'_> { +unsafe impl Send for CommandBufferInheritanceViewportScissorInfoNV<'_> {} +unsafe impl Sync for CommandBufferInheritanceViewportScissorInfoNV<'_> {} +impl ::core::default::Default for CommandBufferInheritanceViewportScissorInfoNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - address: DeviceAddress::default(), - range: DeviceSize::default(), - format: Format::default(), + p_next: ::core::ptr::null(), + viewport_scissor2_d: Bool32::default(), + viewport_depth_count: u32::default(), + p_viewport_depths: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for DescriptorAddressInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_ADDRESS_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for CommandBufferInheritanceViewportScissorInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV; } -impl<'a> DescriptorAddressInfoEXT<'a> { +unsafe impl Extends> + for CommandBufferInheritanceViewportScissorInfoNV<'_> +{ +} +impl<'a> CommandBufferInheritanceViewportScissorInfoNV<'a> { #[inline] - pub fn address(mut self, address: DeviceAddress) -> Self { - self.address = address; + pub fn viewport_scissor2_d(mut self, viewport_scissor2_d: bool) -> Self { + self.viewport_scissor2_d = viewport_scissor2_d.into(); self } #[inline] - pub fn range(mut self, range: DeviceSize) -> Self { - self.range = range; + pub fn viewport_depth_count(mut self, viewport_depth_count: u32) -> Self { + self.viewport_depth_count = viewport_depth_count; self } #[inline] - pub fn format(mut self, format: Format) -> Self { - self.format = format; + pub fn viewport_depths(mut self, viewport_depths: &'a Viewport) -> Self { + self.p_viewport_depths = viewport_depths; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DescriptorBufferBindingInfoEXT<'a> { +pub struct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub address: DeviceAddress, - pub usage: BufferUsageFlags, + pub p_next: *mut c_void, + pub ycbcr2plane444_formats: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for DescriptorBufferBindingInfoEXT<'_> {} -unsafe impl Sync for DescriptorBufferBindingInfoEXT<'_> {} -impl ::core::default::Default for DescriptorBufferBindingInfoEXT<'_> { +unsafe impl Send for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - address: DeviceAddress::default(), - usage: BufferUsageFlags::default(), + p_next: ::core::ptr::null_mut(), + ycbcr2plane444_formats: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for DescriptorBufferBindingInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_BUFFER_BINDING_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT; } -impl<'a> DescriptorBufferBindingInfoEXT<'a> { - #[inline] - pub fn address(mut self, address: DeviceAddress) -> Self { - self.address = address; - self - } +unsafe impl Extends> + for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'a> { #[inline] - pub fn usage(mut self, usage: BufferUsageFlags) -> Self { - self.usage = usage; + pub fn ycbcr2plane444_formats(mut self, ycbcr2plane444_formats: bool) -> Self { + self.ycbcr2plane444_formats = ycbcr2plane444_formats.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DescriptorBufferBindingPushDescriptorBufferHandleEXT<'a> { +pub struct PhysicalDeviceProvokingVertexFeaturesEXT<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub buffer: Buffer, + pub p_next: *mut c_void, + pub provoking_vertex_last: Bool32, + pub transform_feedback_preserves_provoking_vertex: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for DescriptorBufferBindingPushDescriptorBufferHandleEXT<'_> {} -unsafe impl Sync for DescriptorBufferBindingPushDescriptorBufferHandleEXT<'_> {} -impl ::core::default::Default for DescriptorBufferBindingPushDescriptorBufferHandleEXT<'_> { +unsafe impl Send for PhysicalDeviceProvokingVertexFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceProvokingVertexFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceProvokingVertexFeaturesEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - buffer: Buffer::default(), + p_next: ::core::ptr::null_mut(), + provoking_vertex_last: Bool32::default(), + transform_feedback_preserves_provoking_vertex: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for DescriptorBufferBindingPushDescriptorBufferHandleEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceProvokingVertexFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT; -} -unsafe impl Extends> - for DescriptorBufferBindingPushDescriptorBufferHandleEXT<'_> -{ + StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT; } -impl<'a> DescriptorBufferBindingPushDescriptorBufferHandleEXT<'a> { +unsafe impl Extends> for PhysicalDeviceProvokingVertexFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceProvokingVertexFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceProvokingVertexFeaturesEXT<'a> { #[inline] - pub fn buffer(mut self, buffer: Buffer) -> Self { - self.buffer = buffer; + pub fn provoking_vertex_last(mut self, provoking_vertex_last: bool) -> Self { + self.provoking_vertex_last = provoking_vertex_last.into(); + self + } + #[inline] + pub fn transform_feedback_preserves_provoking_vertex( + mut self, + transform_feedback_preserves_provoking_vertex: bool, + ) -> Self { + self.transform_feedback_preserves_provoking_vertex = + transform_feedback_preserves_provoking_vertex.into(); self } } #[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] -pub union DescriptorDataEXT<'a> { - pub p_sampler: *const Sampler, - pub p_combined_image_sampler: *const DescriptorImageInfo, - pub p_input_attachment_image: *const DescriptorImageInfo, - pub p_sampled_image: *const DescriptorImageInfo, - pub p_storage_image: *const DescriptorImageInfo, - pub p_uniform_texel_buffer: *const DescriptorAddressInfoEXT<'a>, - pub p_storage_texel_buffer: *const DescriptorAddressInfoEXT<'a>, - pub p_uniform_buffer: *const DescriptorAddressInfoEXT<'a>, - pub p_storage_buffer: *const DescriptorAddressInfoEXT<'a>, - pub acceleration_structure: DeviceAddress, +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceProvokingVertexPropertiesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub provoking_vertex_mode_per_pipeline: Bool32, + pub transform_feedback_preserves_triangle_fan_provoking_vertex: Bool32, + pub _marker: PhantomData<&'a ()>, } -impl<'a> ::core::default::Default for DescriptorDataEXT<'a> { +unsafe impl Send for PhysicalDeviceProvokingVertexPropertiesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceProvokingVertexPropertiesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceProvokingVertexPropertiesEXT<'_> { #[inline] fn default() -> Self { - unsafe { ::core::mem::zeroed() } + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + provoking_vertex_mode_per_pipeline: Bool32::default(), + transform_feedback_preserves_triangle_fan_provoking_vertex: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceProvokingVertexPropertiesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT; +} +unsafe impl Extends> + for PhysicalDeviceProvokingVertexPropertiesEXT<'_> +{ +} +impl<'a> PhysicalDeviceProvokingVertexPropertiesEXT<'a> { + #[inline] + pub fn provoking_vertex_mode_per_pipeline( + mut self, + provoking_vertex_mode_per_pipeline: bool, + ) -> Self { + self.provoking_vertex_mode_per_pipeline = provoking_vertex_mode_per_pipeline.into(); + self + } + #[inline] + pub fn transform_feedback_preserves_triangle_fan_provoking_vertex( + mut self, + transform_feedback_preserves_triangle_fan_provoking_vertex: bool, + ) -> Self { + self.transform_feedback_preserves_triangle_fan_provoking_vertex = + transform_feedback_preserves_triangle_fan_provoking_vertex.into(); + self } } #[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DescriptorGetInfoEXT<'a> { +pub struct PipelineRasterizationProvokingVertexStateCreateInfoEXT<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub ty: DescriptorType, - pub data: DescriptorDataEXT<'a>, + pub provoking_vertex_mode: ProvokingVertexModeEXT, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for DescriptorGetInfoEXT<'_> {} -unsafe impl Sync for DescriptorGetInfoEXT<'_> {} -#[cfg(feature = "debug")] -impl fmt::Debug for DescriptorGetInfoEXT<'_> { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("DescriptorGetInfoEXT") - .field("s_type", &self.s_type) - .field("p_next", &self.p_next) - .field("ty", &self.ty) - .field("data", &"union") - .finish() - } -} -impl ::core::default::Default for DescriptorGetInfoEXT<'_> { +unsafe impl Send for PipelineRasterizationProvokingVertexStateCreateInfoEXT<'_> {} +unsafe impl Sync for PipelineRasterizationProvokingVertexStateCreateInfoEXT<'_> {} +impl ::core::default::Default for PipelineRasterizationProvokingVertexStateCreateInfoEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - ty: DescriptorType::default(), - data: DescriptorDataEXT::default(), + provoking_vertex_mode: ProvokingVertexModeEXT::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for DescriptorGetInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_GET_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for PipelineRasterizationProvokingVertexStateCreateInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT; } -impl<'a> DescriptorGetInfoEXT<'a> { - #[inline] - pub fn ty(mut self, ty: DescriptorType) -> Self { - self.ty = ty; - self - } +unsafe impl Extends> + for PipelineRasterizationProvokingVertexStateCreateInfoEXT<'_> +{ +} +impl<'a> PipelineRasterizationProvokingVertexStateCreateInfoEXT<'a> { #[inline] - pub fn data(mut self, data: DescriptorDataEXT<'a>) -> Self { - self.data = data; + pub fn provoking_vertex_mode(mut self, provoking_vertex_mode: ProvokingVertexModeEXT) -> Self { + self.provoking_vertex_mode = provoking_vertex_mode; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct BufferCaptureDescriptorDataInfoEXT<'a> { +pub struct VideoEncodeIntraRefreshCapabilitiesKHR<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub buffer: Buffer, + pub p_next: *mut c_void, + pub intra_refresh_modes: VideoEncodeIntraRefreshModeFlagsKHR, + pub max_intra_refresh_cycle_duration: u32, + pub max_intra_refresh_active_reference_pictures: u32, + pub partition_independent_intra_refresh_regions: Bool32, + pub non_rectangular_intra_refresh_regions: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for BufferCaptureDescriptorDataInfoEXT<'_> {} -unsafe impl Sync for BufferCaptureDescriptorDataInfoEXT<'_> {} -impl ::core::default::Default for BufferCaptureDescriptorDataInfoEXT<'_> { +unsafe impl Send for VideoEncodeIntraRefreshCapabilitiesKHR<'_> {} +unsafe impl Sync for VideoEncodeIntraRefreshCapabilitiesKHR<'_> {} +impl ::core::default::Default for VideoEncodeIntraRefreshCapabilitiesKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - buffer: Buffer::default(), + p_next: ::core::ptr::null_mut(), + intra_refresh_modes: VideoEncodeIntraRefreshModeFlagsKHR::default(), + max_intra_refresh_cycle_duration: u32::default(), + max_intra_refresh_active_reference_pictures: u32::default(), + partition_independent_intra_refresh_regions: Bool32::default(), + non_rectangular_intra_refresh_regions: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for BufferCaptureDescriptorDataInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeIntraRefreshCapabilitiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR; } -impl<'a> BufferCaptureDescriptorDataInfoEXT<'a> { +unsafe impl Extends> for VideoEncodeIntraRefreshCapabilitiesKHR<'_> {} +impl<'a> VideoEncodeIntraRefreshCapabilitiesKHR<'a> { #[inline] - pub fn buffer(mut self, buffer: Buffer) -> Self { - self.buffer = buffer; + pub fn intra_refresh_modes( + mut self, + intra_refresh_modes: VideoEncodeIntraRefreshModeFlagsKHR, + ) -> Self { + self.intra_refresh_modes = intra_refresh_modes; + self + } + #[inline] + pub fn max_intra_refresh_cycle_duration( + mut self, + max_intra_refresh_cycle_duration: u32, + ) -> Self { + self.max_intra_refresh_cycle_duration = max_intra_refresh_cycle_duration; + self + } + #[inline] + pub fn max_intra_refresh_active_reference_pictures( + mut self, + max_intra_refresh_active_reference_pictures: u32, + ) -> Self { + self.max_intra_refresh_active_reference_pictures = + max_intra_refresh_active_reference_pictures; + self + } + #[inline] + pub fn partition_independent_intra_refresh_regions( + mut self, + partition_independent_intra_refresh_regions: bool, + ) -> Self { + self.partition_independent_intra_refresh_regions = + partition_independent_intra_refresh_regions.into(); + self + } + #[inline] + pub fn non_rectangular_intra_refresh_regions( + mut self, + non_rectangular_intra_refresh_regions: bool, + ) -> Self { + self.non_rectangular_intra_refresh_regions = non_rectangular_intra_refresh_regions.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ImageCaptureDescriptorDataInfoEXT<'a> { +pub struct VideoEncodeSessionIntraRefreshCreateInfoKHR<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub image: Image, + pub intra_refresh_mode: VideoEncodeIntraRefreshModeFlagsKHR, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ImageCaptureDescriptorDataInfoEXT<'_> {} -unsafe impl Sync for ImageCaptureDescriptorDataInfoEXT<'_> {} -impl ::core::default::Default for ImageCaptureDescriptorDataInfoEXT<'_> { +unsafe impl Send for VideoEncodeSessionIntraRefreshCreateInfoKHR<'_> {} +unsafe impl Sync for VideoEncodeSessionIntraRefreshCreateInfoKHR<'_> {} +impl ::core::default::Default for VideoEncodeSessionIntraRefreshCreateInfoKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - image: Image::default(), + intra_refresh_mode: VideoEncodeIntraRefreshModeFlagsKHR::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ImageCaptureDescriptorDataInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeSessionIntraRefreshCreateInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR; } -impl<'a> ImageCaptureDescriptorDataInfoEXT<'a> { +unsafe impl Extends> + for VideoEncodeSessionIntraRefreshCreateInfoKHR<'_> +{ +} +impl<'a> VideoEncodeSessionIntraRefreshCreateInfoKHR<'a> { #[inline] - pub fn image(mut self, image: Image) -> Self { - self.image = image; + pub fn intra_refresh_mode( + mut self, + intra_refresh_mode: VideoEncodeIntraRefreshModeFlagsKHR, + ) -> Self { + self.intra_refresh_mode = intra_refresh_mode; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ImageViewCaptureDescriptorDataInfoEXT<'a> { +pub struct VideoEncodeIntraRefreshInfoKHR<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub image_view: ImageView, + pub intra_refresh_cycle_duration: u32, + pub intra_refresh_index: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ImageViewCaptureDescriptorDataInfoEXT<'_> {} -unsafe impl Sync for ImageViewCaptureDescriptorDataInfoEXT<'_> {} -impl ::core::default::Default for ImageViewCaptureDescriptorDataInfoEXT<'_> { +unsafe impl Send for VideoEncodeIntraRefreshInfoKHR<'_> {} +unsafe impl Sync for VideoEncodeIntraRefreshInfoKHR<'_> {} +impl ::core::default::Default for VideoEncodeIntraRefreshInfoKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - image_view: ImageView::default(), + intra_refresh_cycle_duration: u32::default(), + intra_refresh_index: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ImageViewCaptureDescriptorDataInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeIntraRefreshInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR; } -impl<'a> ImageViewCaptureDescriptorDataInfoEXT<'a> { +unsafe impl Extends> for VideoEncodeIntraRefreshInfoKHR<'_> {} +impl<'a> VideoEncodeIntraRefreshInfoKHR<'a> { #[inline] - pub fn image_view(mut self, image_view: ImageView) -> Self { - self.image_view = image_view; + pub fn intra_refresh_cycle_duration(mut self, intra_refresh_cycle_duration: u32) -> Self { + self.intra_refresh_cycle_duration = intra_refresh_cycle_duration; + self + } + #[inline] + pub fn intra_refresh_index(mut self, intra_refresh_index: u32) -> Self { + self.intra_refresh_index = intra_refresh_index; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct SamplerCaptureDescriptorDataInfoEXT<'a> { +pub struct VideoReferenceIntraRefreshInfoKHR<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub sampler: Sampler, + pub dirty_intra_refresh_regions: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for SamplerCaptureDescriptorDataInfoEXT<'_> {} -unsafe impl Sync for SamplerCaptureDescriptorDataInfoEXT<'_> {} -impl ::core::default::Default for SamplerCaptureDescriptorDataInfoEXT<'_> { +unsafe impl Send for VideoReferenceIntraRefreshInfoKHR<'_> {} +unsafe impl Sync for VideoReferenceIntraRefreshInfoKHR<'_> {} +impl ::core::default::Default for VideoReferenceIntraRefreshInfoKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - sampler: Sampler::default(), + dirty_intra_refresh_regions: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for SamplerCaptureDescriptorDataInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for VideoReferenceIntraRefreshInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR; } -impl<'a> SamplerCaptureDescriptorDataInfoEXT<'a> { +unsafe impl Extends> for VideoReferenceIntraRefreshInfoKHR<'_> {} +impl<'a> VideoReferenceIntraRefreshInfoKHR<'a> { #[inline] - pub fn sampler(mut self, sampler: Sampler) -> Self { - self.sampler = sampler; + pub fn dirty_intra_refresh_regions(mut self, dirty_intra_refresh_regions: u32) -> Self { + self.dirty_intra_refresh_regions = dirty_intra_refresh_regions; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct AccelerationStructureCaptureDescriptorDataInfoEXT<'a> { +pub struct PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub acceleration_structure: AccelerationStructureKHR, - pub acceleration_structure_nv: AccelerationStructureNV, + pub p_next: *mut c_void, + pub video_encode_intra_refresh: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for AccelerationStructureCaptureDescriptorDataInfoEXT<'_> {} -unsafe impl Sync for AccelerationStructureCaptureDescriptorDataInfoEXT<'_> {} -impl ::core::default::Default for AccelerationStructureCaptureDescriptorDataInfoEXT<'_> { +unsafe impl Send for PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - acceleration_structure: AccelerationStructureKHR::default(), - acceleration_structure_nv: AccelerationStructureNV::default(), + p_next: ::core::ptr::null_mut(), + video_encode_intra_refresh: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureCaptureDescriptorDataInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT; + StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR; } -impl<'a> AccelerationStructureCaptureDescriptorDataInfoEXT<'a> { - #[inline] - pub fn acceleration_structure( - mut self, - acceleration_structure: AccelerationStructureKHR, - ) -> Self { - self.acceleration_structure = acceleration_structure; - self - } +unsafe impl Extends> + for PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR<'_> {} +impl<'a> PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR<'a> { #[inline] - pub fn acceleration_structure_nv( - mut self, - acceleration_structure_nv: AccelerationStructureNV, - ) -> Self { - self.acceleration_structure_nv = acceleration_structure_nv; + pub fn video_encode_intra_refresh(mut self, video_encode_intra_refresh: bool) -> Self { + self.video_encode_intra_refresh = video_encode_intra_refresh.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct OpaqueCaptureDescriptorDataCreateInfoEXT<'a> { +pub struct CuModuleCreateInfoNVX<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub opaque_capture_descriptor_data: *const c_void, + pub data_size: usize, + pub p_data: *const c_void, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} -unsafe impl Sync for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} -impl ::core::default::Default for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> { +unsafe impl Send for CuModuleCreateInfoNVX<'_> {} +unsafe impl Sync for CuModuleCreateInfoNVX<'_> {} +impl ::core::default::Default for CuModuleCreateInfoNVX<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - opaque_capture_descriptor_data: ::core::ptr::null(), + data_size: usize::default(), + p_data: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT; -} -unsafe impl Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} -unsafe impl Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} -unsafe impl Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} -unsafe impl Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} -unsafe impl Extends> - for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> -{ -} -unsafe impl Extends> - for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for CuModuleCreateInfoNVX<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::CU_MODULE_CREATE_INFO_NVX; } -impl<'a> OpaqueCaptureDescriptorDataCreateInfoEXT<'a> { +impl<'a> CuModuleCreateInfoNVX<'a> { #[inline] - pub fn opaque_capture_descriptor_data( - mut self, - opaque_capture_descriptor_data: *const c_void, - ) -> Self { - self.opaque_capture_descriptor_data = opaque_capture_descriptor_data; + pub fn data(mut self, data: &'a [u8]) -> Self { + self.data_size = data.len(); + self.p_data = data.as_ptr().cast(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderIntegerDotProductFeatures<'a> { +pub struct CuModuleTexturingModeCreateInfoNVX<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub shader_integer_dot_product: Bool32, + pub p_next: *const c_void, + pub use64bit_texturing: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderIntegerDotProductFeatures<'_> {} -unsafe impl Sync for PhysicalDeviceShaderIntegerDotProductFeatures<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderIntegerDotProductFeatures<'_> { +unsafe impl Send for CuModuleTexturingModeCreateInfoNVX<'_> {} +unsafe impl Sync for CuModuleTexturingModeCreateInfoNVX<'_> {} +impl ::core::default::Default for CuModuleTexturingModeCreateInfoNVX<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - shader_integer_dot_product: Bool32::default(), + p_next: ::core::ptr::null(), + use64bit_texturing: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderIntegerDotProductFeatures<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES; -} -unsafe impl Extends> - for PhysicalDeviceShaderIntegerDotProductFeatures<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for CuModuleTexturingModeCreateInfoNVX<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX; } -unsafe impl Extends> for PhysicalDeviceShaderIntegerDotProductFeatures<'_> {} -impl<'a> PhysicalDeviceShaderIntegerDotProductFeatures<'a> { +unsafe impl Extends> for CuModuleTexturingModeCreateInfoNVX<'_> {} +impl<'a> CuModuleTexturingModeCreateInfoNVX<'a> { #[inline] - pub fn shader_integer_dot_product(mut self, shader_integer_dot_product: bool) -> Self { - self.shader_integer_dot_product = shader_integer_dot_product.into(); + pub fn use64bit_texturing(mut self, use64bit_texturing: bool) -> Self { + self.use64bit_texturing = use64bit_texturing.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderIntegerDotProductProperties<'a> { +pub struct CuFunctionCreateInfoNVX<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub integer_dot_product8_bit_unsigned_accelerated: Bool32, - pub integer_dot_product8_bit_signed_accelerated: Bool32, - pub integer_dot_product8_bit_mixed_signedness_accelerated: Bool32, - pub integer_dot_product4x8_bit_packed_unsigned_accelerated: Bool32, - pub integer_dot_product4x8_bit_packed_signed_accelerated: Bool32, - pub integer_dot_product4x8_bit_packed_mixed_signedness_accelerated: Bool32, - pub integer_dot_product16_bit_unsigned_accelerated: Bool32, - pub integer_dot_product16_bit_signed_accelerated: Bool32, - pub integer_dot_product16_bit_mixed_signedness_accelerated: Bool32, - pub integer_dot_product32_bit_unsigned_accelerated: Bool32, - pub integer_dot_product32_bit_signed_accelerated: Bool32, - pub integer_dot_product32_bit_mixed_signedness_accelerated: Bool32, - pub integer_dot_product64_bit_unsigned_accelerated: Bool32, - pub integer_dot_product64_bit_signed_accelerated: Bool32, - pub integer_dot_product64_bit_mixed_signedness_accelerated: Bool32, - pub integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated: Bool32, - pub integer_dot_product_accumulating_saturating8_bit_signed_accelerated: Bool32, - pub integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated: Bool32, - pub integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated: Bool32, - pub integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated: Bool32, - pub integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated: - Bool32, - pub integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated: Bool32, - pub integer_dot_product_accumulating_saturating16_bit_signed_accelerated: Bool32, - pub integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated: Bool32, - pub integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated: Bool32, - pub integer_dot_product_accumulating_saturating32_bit_signed_accelerated: Bool32, - pub integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated: Bool32, - pub integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated: Bool32, - pub integer_dot_product_accumulating_saturating64_bit_signed_accelerated: Bool32, - pub integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated: Bool32, + pub p_next: *const c_void, + pub module: CuModuleNVX, + pub p_name: *const c_char, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderIntegerDotProductProperties<'_> {} -unsafe impl Sync for PhysicalDeviceShaderIntegerDotProductProperties<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderIntegerDotProductProperties<'_> { +unsafe impl Send for CuFunctionCreateInfoNVX<'_> {} +unsafe impl Sync for CuFunctionCreateInfoNVX<'_> {} +impl ::core::default::Default for CuFunctionCreateInfoNVX<'_> { #[inline] fn default() -> Self { - 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 , } + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + module: CuModuleNVX::default(), + p_name: ::core::ptr::null(), + _marker: PhantomData, + } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderIntegerDotProductProperties<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES; -} -unsafe impl Extends> - for PhysicalDeviceShaderIntegerDotProductProperties<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for CuFunctionCreateInfoNVX<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::CU_FUNCTION_CREATE_INFO_NVX; } -impl<'a> PhysicalDeviceShaderIntegerDotProductProperties<'a> { +impl<'a> CuFunctionCreateInfoNVX<'a> { #[inline] - pub fn integer_dot_product8_bit_unsigned_accelerated( - mut self, - integer_dot_product8_bit_unsigned_accelerated: bool, - ) -> Self { - self.integer_dot_product8_bit_unsigned_accelerated = - integer_dot_product8_bit_unsigned_accelerated.into(); + pub fn module(mut self, module: CuModuleNVX) -> Self { + self.module = module; self } #[inline] - pub fn integer_dot_product8_bit_signed_accelerated( - mut self, - integer_dot_product8_bit_signed_accelerated: bool, - ) -> Self { - self.integer_dot_product8_bit_signed_accelerated = - integer_dot_product8_bit_signed_accelerated.into(); + pub fn name(mut self, name: &'a CStr) -> Self { + self.p_name = name.as_ptr(); self } #[inline] - pub fn integer_dot_product8_bit_mixed_signedness_accelerated( - mut self, - integer_dot_product8_bit_mixed_signedness_accelerated: bool, - ) -> Self { - self.integer_dot_product8_bit_mixed_signedness_accelerated = - integer_dot_product8_bit_mixed_signedness_accelerated.into(); - self + pub unsafe fn name_as_c_str(&self) -> Option<&CStr> { + if self.p_name.is_null() { + None + } else { + Some(CStr::from_ptr(self.p_name)) + } } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct CuLaunchInfoNVX<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub function: CuFunctionNVX, + pub grid_dim_x: u32, + pub grid_dim_y: u32, + pub grid_dim_z: u32, + pub block_dim_x: u32, + pub block_dim_y: u32, + pub block_dim_z: u32, + pub shared_mem_bytes: u32, + pub param_count: usize, + pub p_params: *const *const c_void, + pub extra_count: usize, + pub p_extras: *const *const c_void, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for CuLaunchInfoNVX<'_> {} +unsafe impl Sync for CuLaunchInfoNVX<'_> {} +impl ::core::default::Default for CuLaunchInfoNVX<'_> { #[inline] - pub fn integer_dot_product4x8_bit_packed_unsigned_accelerated( - mut self, - integer_dot_product4x8_bit_packed_unsigned_accelerated: bool, - ) -> Self { - self.integer_dot_product4x8_bit_packed_unsigned_accelerated = - integer_dot_product4x8_bit_packed_unsigned_accelerated.into(); - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + function: CuFunctionNVX::default(), + grid_dim_x: u32::default(), + grid_dim_y: u32::default(), + grid_dim_z: u32::default(), + block_dim_x: u32::default(), + block_dim_y: u32::default(), + block_dim_z: u32::default(), + shared_mem_bytes: u32::default(), + param_count: usize::default(), + p_params: ::core::ptr::null(), + extra_count: usize::default(), + p_extras: ::core::ptr::null(), + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for CuLaunchInfoNVX<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::CU_LAUNCH_INFO_NVX; +} +impl<'a> CuLaunchInfoNVX<'a> { #[inline] - pub fn integer_dot_product4x8_bit_packed_signed_accelerated( - mut self, - integer_dot_product4x8_bit_packed_signed_accelerated: bool, - ) -> Self { - self.integer_dot_product4x8_bit_packed_signed_accelerated = - integer_dot_product4x8_bit_packed_signed_accelerated.into(); + pub fn function(mut self, function: CuFunctionNVX) -> Self { + self.function = function; self } #[inline] - pub fn integer_dot_product4x8_bit_packed_mixed_signedness_accelerated( - mut self, - integer_dot_product4x8_bit_packed_mixed_signedness_accelerated: bool, - ) -> Self { - self.integer_dot_product4x8_bit_packed_mixed_signedness_accelerated = - integer_dot_product4x8_bit_packed_mixed_signedness_accelerated.into(); + pub fn grid_dim_x(mut self, grid_dim_x: u32) -> Self { + self.grid_dim_x = grid_dim_x; self } #[inline] - pub fn integer_dot_product16_bit_unsigned_accelerated( - mut self, - integer_dot_product16_bit_unsigned_accelerated: bool, - ) -> Self { - self.integer_dot_product16_bit_unsigned_accelerated = - integer_dot_product16_bit_unsigned_accelerated.into(); + pub fn grid_dim_y(mut self, grid_dim_y: u32) -> Self { + self.grid_dim_y = grid_dim_y; self } #[inline] - pub fn integer_dot_product16_bit_signed_accelerated( - mut self, - integer_dot_product16_bit_signed_accelerated: bool, - ) -> Self { - self.integer_dot_product16_bit_signed_accelerated = - integer_dot_product16_bit_signed_accelerated.into(); + pub fn grid_dim_z(mut self, grid_dim_z: u32) -> Self { + self.grid_dim_z = grid_dim_z; self } #[inline] - pub fn integer_dot_product16_bit_mixed_signedness_accelerated( - mut self, - integer_dot_product16_bit_mixed_signedness_accelerated: bool, - ) -> Self { - self.integer_dot_product16_bit_mixed_signedness_accelerated = - integer_dot_product16_bit_mixed_signedness_accelerated.into(); + pub fn block_dim_x(mut self, block_dim_x: u32) -> Self { + self.block_dim_x = block_dim_x; self } #[inline] - pub fn integer_dot_product32_bit_unsigned_accelerated( - mut self, - integer_dot_product32_bit_unsigned_accelerated: bool, - ) -> Self { - self.integer_dot_product32_bit_unsigned_accelerated = - integer_dot_product32_bit_unsigned_accelerated.into(); + pub fn block_dim_y(mut self, block_dim_y: u32) -> Self { + self.block_dim_y = block_dim_y; self } #[inline] - pub fn integer_dot_product32_bit_signed_accelerated( - mut self, - integer_dot_product32_bit_signed_accelerated: bool, - ) -> Self { - self.integer_dot_product32_bit_signed_accelerated = - integer_dot_product32_bit_signed_accelerated.into(); + pub fn block_dim_z(mut self, block_dim_z: u32) -> Self { + self.block_dim_z = block_dim_z; self } #[inline] - pub fn integer_dot_product32_bit_mixed_signedness_accelerated( - mut self, - integer_dot_product32_bit_mixed_signedness_accelerated: bool, - ) -> Self { - self.integer_dot_product32_bit_mixed_signedness_accelerated = - integer_dot_product32_bit_mixed_signedness_accelerated.into(); + pub fn shared_mem_bytes(mut self, shared_mem_bytes: u32) -> Self { + self.shared_mem_bytes = shared_mem_bytes; self } #[inline] - pub fn integer_dot_product64_bit_unsigned_accelerated( - mut self, - integer_dot_product64_bit_unsigned_accelerated: bool, - ) -> Self { - self.integer_dot_product64_bit_unsigned_accelerated = - integer_dot_product64_bit_unsigned_accelerated.into(); + pub fn params(mut self, params: &'a [*const c_void]) -> Self { + self.param_count = params.len(); + self.p_params = params.as_ptr(); self } #[inline] - pub fn integer_dot_product64_bit_signed_accelerated( - mut self, - integer_dot_product64_bit_signed_accelerated: bool, - ) -> Self { - self.integer_dot_product64_bit_signed_accelerated = - integer_dot_product64_bit_signed_accelerated.into(); + pub fn extras(mut self, extras: &'a [*const c_void]) -> Self { + self.extra_count = extras.len(); + self.p_extras = extras.as_ptr(); self } - #[inline] - pub fn integer_dot_product64_bit_mixed_signedness_accelerated( - mut self, - integer_dot_product64_bit_mixed_signedness_accelerated: bool, +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceDescriptorBufferFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub descriptor_buffer: Bool32, + pub descriptor_buffer_capture_replay: Bool32, + pub descriptor_buffer_image_layout_ignored: Bool32, + pub descriptor_buffer_push_descriptors: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceDescriptorBufferFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceDescriptorBufferFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceDescriptorBufferFeaturesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + descriptor_buffer: Bool32::default(), + descriptor_buffer_capture_replay: Bool32::default(), + descriptor_buffer_image_layout_ignored: Bool32::default(), + descriptor_buffer_push_descriptors: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorBufferFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT; +} +unsafe impl Extends> for PhysicalDeviceDescriptorBufferFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceDescriptorBufferFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceDescriptorBufferFeaturesEXT<'a> { + #[inline] + pub fn descriptor_buffer(mut self, descriptor_buffer: bool) -> Self { + self.descriptor_buffer = descriptor_buffer.into(); + self + } + #[inline] + pub fn descriptor_buffer_capture_replay( + mut self, + descriptor_buffer_capture_replay: bool, ) -> Self { - self.integer_dot_product64_bit_mixed_signedness_accelerated = - integer_dot_product64_bit_mixed_signedness_accelerated.into(); + self.descriptor_buffer_capture_replay = descriptor_buffer_capture_replay.into(); self } #[inline] - pub fn integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated( + pub fn descriptor_buffer_image_layout_ignored( mut self, - integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated: bool, + descriptor_buffer_image_layout_ignored: bool, ) -> Self { - self.integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated = - integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated.into(); + self.descriptor_buffer_image_layout_ignored = descriptor_buffer_image_layout_ignored.into(); self } #[inline] - pub fn integer_dot_product_accumulating_saturating8_bit_signed_accelerated( + pub fn descriptor_buffer_push_descriptors( mut self, - integer_dot_product_accumulating_saturating8_bit_signed_accelerated: bool, + descriptor_buffer_push_descriptors: bool, ) -> Self { - self.integer_dot_product_accumulating_saturating8_bit_signed_accelerated = - integer_dot_product_accumulating_saturating8_bit_signed_accelerated.into(); + self.descriptor_buffer_push_descriptors = descriptor_buffer_push_descriptors.into(); self } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceDescriptorBufferPropertiesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub combined_image_sampler_descriptor_single_array: Bool32, + pub bufferless_push_descriptors: Bool32, + pub allow_sampler_image_view_post_submit_creation: Bool32, + pub descriptor_buffer_offset_alignment: DeviceSize, + pub max_descriptor_buffer_bindings: u32, + pub max_resource_descriptor_buffer_bindings: u32, + pub max_sampler_descriptor_buffer_bindings: u32, + pub max_embedded_immutable_sampler_bindings: u32, + pub max_embedded_immutable_samplers: u32, + pub buffer_capture_replay_descriptor_data_size: usize, + pub image_capture_replay_descriptor_data_size: usize, + pub image_view_capture_replay_descriptor_data_size: usize, + pub sampler_capture_replay_descriptor_data_size: usize, + pub acceleration_structure_capture_replay_descriptor_data_size: usize, + pub sampler_descriptor_size: usize, + pub combined_image_sampler_descriptor_size: usize, + pub sampled_image_descriptor_size: usize, + pub storage_image_descriptor_size: usize, + pub uniform_texel_buffer_descriptor_size: usize, + pub robust_uniform_texel_buffer_descriptor_size: usize, + pub storage_texel_buffer_descriptor_size: usize, + pub robust_storage_texel_buffer_descriptor_size: usize, + pub uniform_buffer_descriptor_size: usize, + pub robust_uniform_buffer_descriptor_size: usize, + pub storage_buffer_descriptor_size: usize, + pub robust_storage_buffer_descriptor_size: usize, + pub input_attachment_descriptor_size: usize, + pub acceleration_structure_descriptor_size: usize, + pub max_sampler_descriptor_buffer_range: DeviceSize, + pub max_resource_descriptor_buffer_range: DeviceSize, + pub sampler_descriptor_buffer_address_space_size: DeviceSize, + pub resource_descriptor_buffer_address_space_size: DeviceSize, + pub descriptor_buffer_address_space_size: DeviceSize, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceDescriptorBufferPropertiesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceDescriptorBufferPropertiesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceDescriptorBufferPropertiesEXT<'_> { #[inline] - pub fn integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated( + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + combined_image_sampler_descriptor_single_array: Bool32::default(), + bufferless_push_descriptors: Bool32::default(), + allow_sampler_image_view_post_submit_creation: Bool32::default(), + descriptor_buffer_offset_alignment: DeviceSize::default(), + max_descriptor_buffer_bindings: u32::default(), + max_resource_descriptor_buffer_bindings: u32::default(), + max_sampler_descriptor_buffer_bindings: u32::default(), + max_embedded_immutable_sampler_bindings: u32::default(), + max_embedded_immutable_samplers: u32::default(), + buffer_capture_replay_descriptor_data_size: usize::default(), + image_capture_replay_descriptor_data_size: usize::default(), + image_view_capture_replay_descriptor_data_size: usize::default(), + sampler_capture_replay_descriptor_data_size: usize::default(), + acceleration_structure_capture_replay_descriptor_data_size: usize::default(), + sampler_descriptor_size: usize::default(), + combined_image_sampler_descriptor_size: usize::default(), + sampled_image_descriptor_size: usize::default(), + storage_image_descriptor_size: usize::default(), + uniform_texel_buffer_descriptor_size: usize::default(), + robust_uniform_texel_buffer_descriptor_size: usize::default(), + storage_texel_buffer_descriptor_size: usize::default(), + robust_storage_texel_buffer_descriptor_size: usize::default(), + uniform_buffer_descriptor_size: usize::default(), + robust_uniform_buffer_descriptor_size: usize::default(), + storage_buffer_descriptor_size: usize::default(), + robust_storage_buffer_descriptor_size: usize::default(), + input_attachment_descriptor_size: usize::default(), + acceleration_structure_descriptor_size: usize::default(), + max_sampler_descriptor_buffer_range: DeviceSize::default(), + max_resource_descriptor_buffer_range: DeviceSize::default(), + sampler_descriptor_buffer_address_space_size: DeviceSize::default(), + resource_descriptor_buffer_address_space_size: DeviceSize::default(), + descriptor_buffer_address_space_size: DeviceSize::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorBufferPropertiesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT; +} +unsafe impl Extends> + for PhysicalDeviceDescriptorBufferPropertiesEXT<'_> +{ +} +impl<'a> PhysicalDeviceDescriptorBufferPropertiesEXT<'a> { + #[inline] + pub fn combined_image_sampler_descriptor_single_array( mut self, - integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated: bool, + combined_image_sampler_descriptor_single_array: bool, ) -> Self { - self.integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated = - integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated.into(); + self.combined_image_sampler_descriptor_single_array = + combined_image_sampler_descriptor_single_array.into(); self } #[inline] - pub fn integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated( + pub fn bufferless_push_descriptors(mut self, bufferless_push_descriptors: bool) -> Self { + self.bufferless_push_descriptors = bufferless_push_descriptors.into(); + self + } + #[inline] + pub fn allow_sampler_image_view_post_submit_creation( mut self, - integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated: bool, + allow_sampler_image_view_post_submit_creation: bool, ) -> Self { - self.integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated = - integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated.into(); + self.allow_sampler_image_view_post_submit_creation = + allow_sampler_image_view_post_submit_creation.into(); self } #[inline] - pub fn integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated( + pub fn descriptor_buffer_offset_alignment( mut self, - integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated: bool, + descriptor_buffer_offset_alignment: DeviceSize, ) -> Self { - self.integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated = - integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated.into(); + self.descriptor_buffer_offset_alignment = descriptor_buffer_offset_alignment; self } #[inline] - pub fn integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated( + pub fn max_descriptor_buffer_bindings(mut self, max_descriptor_buffer_bindings: u32) -> Self { + self.max_descriptor_buffer_bindings = max_descriptor_buffer_bindings; + self + } + #[inline] + pub fn max_resource_descriptor_buffer_bindings( mut self, - integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated : bool, + max_resource_descriptor_buffer_bindings: u32, ) -> Self { - self . integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated = integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated . into () ; + self.max_resource_descriptor_buffer_bindings = max_resource_descriptor_buffer_bindings; self } #[inline] - pub fn integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated( + pub fn max_sampler_descriptor_buffer_bindings( mut self, - integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated: bool, + max_sampler_descriptor_buffer_bindings: u32, ) -> Self { - self.integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated = - integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated.into(); + self.max_sampler_descriptor_buffer_bindings = max_sampler_descriptor_buffer_bindings; self } #[inline] - pub fn integer_dot_product_accumulating_saturating16_bit_signed_accelerated( + pub fn max_embedded_immutable_sampler_bindings( mut self, - integer_dot_product_accumulating_saturating16_bit_signed_accelerated: bool, + max_embedded_immutable_sampler_bindings: u32, ) -> Self { - self.integer_dot_product_accumulating_saturating16_bit_signed_accelerated = - integer_dot_product_accumulating_saturating16_bit_signed_accelerated.into(); + self.max_embedded_immutable_sampler_bindings = max_embedded_immutable_sampler_bindings; self } #[inline] - pub fn integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated( + pub fn max_embedded_immutable_samplers(mut self, max_embedded_immutable_samplers: u32) -> Self { + self.max_embedded_immutable_samplers = max_embedded_immutable_samplers; + self + } + #[inline] + pub fn buffer_capture_replay_descriptor_data_size( mut self, - integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated: bool, + buffer_capture_replay_descriptor_data_size: usize, ) -> Self { - self.integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated = - integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated.into(); + self.buffer_capture_replay_descriptor_data_size = + buffer_capture_replay_descriptor_data_size; self } #[inline] - pub fn integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated( + pub fn image_capture_replay_descriptor_data_size( mut self, - integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated: bool, + image_capture_replay_descriptor_data_size: usize, ) -> Self { - self.integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated = - integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated.into(); + self.image_capture_replay_descriptor_data_size = image_capture_replay_descriptor_data_size; self } #[inline] - pub fn integer_dot_product_accumulating_saturating32_bit_signed_accelerated( + pub fn image_view_capture_replay_descriptor_data_size( mut self, - integer_dot_product_accumulating_saturating32_bit_signed_accelerated: bool, + image_view_capture_replay_descriptor_data_size: usize, ) -> Self { - self.integer_dot_product_accumulating_saturating32_bit_signed_accelerated = - integer_dot_product_accumulating_saturating32_bit_signed_accelerated.into(); + self.image_view_capture_replay_descriptor_data_size = + image_view_capture_replay_descriptor_data_size; self } #[inline] - pub fn integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated( + pub fn sampler_capture_replay_descriptor_data_size( mut self, - integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated: bool, + sampler_capture_replay_descriptor_data_size: usize, ) -> Self { - self.integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated = - integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated.into(); + self.sampler_capture_replay_descriptor_data_size = + sampler_capture_replay_descriptor_data_size; self } #[inline] - pub fn integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated( + pub fn acceleration_structure_capture_replay_descriptor_data_size( mut self, - integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated: bool, + acceleration_structure_capture_replay_descriptor_data_size: usize, ) -> Self { - self.integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated = - integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated.into(); + self.acceleration_structure_capture_replay_descriptor_data_size = + acceleration_structure_capture_replay_descriptor_data_size; + self + } + #[inline] + pub fn sampler_descriptor_size(mut self, sampler_descriptor_size: usize) -> Self { + self.sampler_descriptor_size = sampler_descriptor_size; + self + } + #[inline] + pub fn combined_image_sampler_descriptor_size( + mut self, + combined_image_sampler_descriptor_size: usize, + ) -> Self { + self.combined_image_sampler_descriptor_size = combined_image_sampler_descriptor_size; + self + } + #[inline] + pub fn sampled_image_descriptor_size(mut self, sampled_image_descriptor_size: usize) -> Self { + self.sampled_image_descriptor_size = sampled_image_descriptor_size; + self + } + #[inline] + pub fn storage_image_descriptor_size(mut self, storage_image_descriptor_size: usize) -> Self { + self.storage_image_descriptor_size = storage_image_descriptor_size; + self + } + #[inline] + pub fn uniform_texel_buffer_descriptor_size( + mut self, + uniform_texel_buffer_descriptor_size: usize, + ) -> Self { + self.uniform_texel_buffer_descriptor_size = uniform_texel_buffer_descriptor_size; + self + } + #[inline] + pub fn robust_uniform_texel_buffer_descriptor_size( + mut self, + robust_uniform_texel_buffer_descriptor_size: usize, + ) -> Self { + self.robust_uniform_texel_buffer_descriptor_size = + robust_uniform_texel_buffer_descriptor_size; + self + } + #[inline] + pub fn storage_texel_buffer_descriptor_size( + mut self, + storage_texel_buffer_descriptor_size: usize, + ) -> Self { + self.storage_texel_buffer_descriptor_size = storage_texel_buffer_descriptor_size; + self + } + #[inline] + pub fn robust_storage_texel_buffer_descriptor_size( + mut self, + robust_storage_texel_buffer_descriptor_size: usize, + ) -> Self { + self.robust_storage_texel_buffer_descriptor_size = + robust_storage_texel_buffer_descriptor_size; + self + } + #[inline] + pub fn uniform_buffer_descriptor_size(mut self, uniform_buffer_descriptor_size: usize) -> Self { + self.uniform_buffer_descriptor_size = uniform_buffer_descriptor_size; + self + } + #[inline] + pub fn robust_uniform_buffer_descriptor_size( + mut self, + robust_uniform_buffer_descriptor_size: usize, + ) -> Self { + self.robust_uniform_buffer_descriptor_size = robust_uniform_buffer_descriptor_size; + self + } + #[inline] + pub fn storage_buffer_descriptor_size(mut self, storage_buffer_descriptor_size: usize) -> Self { + self.storage_buffer_descriptor_size = storage_buffer_descriptor_size; + self + } + #[inline] + pub fn robust_storage_buffer_descriptor_size( + mut self, + robust_storage_buffer_descriptor_size: usize, + ) -> Self { + self.robust_storage_buffer_descriptor_size = robust_storage_buffer_descriptor_size; + self + } + #[inline] + pub fn input_attachment_descriptor_size( + mut self, + input_attachment_descriptor_size: usize, + ) -> Self { + self.input_attachment_descriptor_size = input_attachment_descriptor_size; + self + } + #[inline] + pub fn acceleration_structure_descriptor_size( + mut self, + acceleration_structure_descriptor_size: usize, + ) -> Self { + self.acceleration_structure_descriptor_size = acceleration_structure_descriptor_size; + self + } + #[inline] + pub fn max_sampler_descriptor_buffer_range( + mut self, + max_sampler_descriptor_buffer_range: DeviceSize, + ) -> Self { + self.max_sampler_descriptor_buffer_range = max_sampler_descriptor_buffer_range; + self + } + #[inline] + pub fn max_resource_descriptor_buffer_range( + mut self, + max_resource_descriptor_buffer_range: DeviceSize, + ) -> Self { + self.max_resource_descriptor_buffer_range = max_resource_descriptor_buffer_range; + self + } + #[inline] + pub fn sampler_descriptor_buffer_address_space_size( + mut self, + sampler_descriptor_buffer_address_space_size: DeviceSize, + ) -> Self { + self.sampler_descriptor_buffer_address_space_size = + sampler_descriptor_buffer_address_space_size; + self + } + #[inline] + pub fn resource_descriptor_buffer_address_space_size( + mut self, + resource_descriptor_buffer_address_space_size: DeviceSize, + ) -> Self { + self.resource_descriptor_buffer_address_space_size = + resource_descriptor_buffer_address_space_size; + self + } + #[inline] + pub fn descriptor_buffer_address_space_size( + mut self, + descriptor_buffer_address_space_size: DeviceSize, + ) -> Self { + self.descriptor_buffer_address_space_size = descriptor_buffer_address_space_size; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub combined_image_sampler_density_map_descriptor_size: usize, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + combined_image_sampler_density_map_descriptor_size: usize::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT; +} +unsafe impl Extends> + for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'_> +{ +} +impl<'a> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'a> { + #[inline] + pub fn combined_image_sampler_density_map_descriptor_size( + mut self, + combined_image_sampler_density_map_descriptor_size: usize, + ) -> Self { + self.combined_image_sampler_density_map_descriptor_size = + combined_image_sampler_density_map_descriptor_size; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct DescriptorAddressInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub address: DeviceAddress, + pub range: DeviceSize, + pub format: Format, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for DescriptorAddressInfoEXT<'_> {} +unsafe impl Sync for DescriptorAddressInfoEXT<'_> {} +impl ::core::default::Default for DescriptorAddressInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + address: DeviceAddress::default(), + range: DeviceSize::default(), + format: Format::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for DescriptorAddressInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_ADDRESS_INFO_EXT; +} +impl<'a> DescriptorAddressInfoEXT<'a> { + #[inline] + pub fn address(mut self, address: DeviceAddress) -> Self { + self.address = address; + self + } + #[inline] + pub fn range(mut self, range: DeviceSize) -> Self { + self.range = range; + self + } + #[inline] + pub fn format(mut self, format: Format) -> Self { + self.format = format; self } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct DescriptorBufferBindingInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub address: DeviceAddress, + pub usage: BufferUsageFlags, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for DescriptorBufferBindingInfoEXT<'_> {} +unsafe impl Sync for DescriptorBufferBindingInfoEXT<'_> {} +impl ::core::default::Default for DescriptorBufferBindingInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + address: DeviceAddress::default(), + usage: BufferUsageFlags::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for DescriptorBufferBindingInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_BUFFER_BINDING_INFO_EXT; +} +impl<'a> DescriptorBufferBindingInfoEXT<'a> { + #[inline] + pub fn address(mut self, address: DeviceAddress) -> Self { + self.address = address; + self + } + #[inline] + pub fn usage(mut self, usage: BufferUsageFlags) -> Self { + self.usage = usage; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct DescriptorBufferBindingPushDescriptorBufferHandleEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub buffer: Buffer, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for DescriptorBufferBindingPushDescriptorBufferHandleEXT<'_> {} +unsafe impl Sync for DescriptorBufferBindingPushDescriptorBufferHandleEXT<'_> {} +impl ::core::default::Default for DescriptorBufferBindingPushDescriptorBufferHandleEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + buffer: Buffer::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for DescriptorBufferBindingPushDescriptorBufferHandleEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT; +} +unsafe impl Extends> + for DescriptorBufferBindingPushDescriptorBufferHandleEXT<'_> +{ +} +impl<'a> DescriptorBufferBindingPushDescriptorBufferHandleEXT<'a> { + #[inline] + pub fn buffer(mut self, buffer: Buffer) -> Self { + self.buffer = buffer; + self + } +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +pub union DescriptorDataEXT<'a> { + pub p_sampler: *const Sampler, + pub p_combined_image_sampler: *const DescriptorImageInfo, + pub p_input_attachment_image: *const DescriptorImageInfo, + pub p_sampled_image: *const DescriptorImageInfo, + pub p_storage_image: *const DescriptorImageInfo, + pub p_uniform_texel_buffer: *const DescriptorAddressInfoEXT<'a>, + pub p_storage_texel_buffer: *const DescriptorAddressInfoEXT<'a>, + pub p_uniform_buffer: *const DescriptorAddressInfoEXT<'a>, + pub p_storage_buffer: *const DescriptorAddressInfoEXT<'a>, + pub acceleration_structure: DeviceAddress, +} +impl<'a> ::core::default::Default for DescriptorDataEXT<'a> { + #[inline] + fn default() -> Self { + unsafe { ::core::mem::zeroed() } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct DescriptorGetInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub ty: DescriptorType, + pub data: DescriptorDataEXT<'a>, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for DescriptorGetInfoEXT<'_> {} +unsafe impl Sync for DescriptorGetInfoEXT<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for DescriptorGetInfoEXT<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("DescriptorGetInfoEXT") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field("ty", &self.ty) + .field("data", &"union") + .finish() + } +} +impl ::core::default::Default for DescriptorGetInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + ty: DescriptorType::default(), + data: DescriptorDataEXT::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for DescriptorGetInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_GET_INFO_EXT; +} +impl<'a> DescriptorGetInfoEXT<'a> { + #[inline] + pub fn ty(mut self, ty: DescriptorType) -> Self { + self.ty = ty; + self + } + #[inline] + pub fn data(mut self, data: DescriptorDataEXT<'a>) -> Self { + self.data = data; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct BufferCaptureDescriptorDataInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub buffer: Buffer, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for BufferCaptureDescriptorDataInfoEXT<'_> {} +unsafe impl Sync for BufferCaptureDescriptorDataInfoEXT<'_> {} +impl ::core::default::Default for BufferCaptureDescriptorDataInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + buffer: Buffer::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for BufferCaptureDescriptorDataInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT; +} +impl<'a> BufferCaptureDescriptorDataInfoEXT<'a> { + #[inline] + pub fn buffer(mut self, buffer: Buffer) -> Self { + self.buffer = buffer; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ImageCaptureDescriptorDataInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub image: Image, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ImageCaptureDescriptorDataInfoEXT<'_> {} +unsafe impl Sync for ImageCaptureDescriptorDataInfoEXT<'_> {} +impl ::core::default::Default for ImageCaptureDescriptorDataInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + image: Image::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for ImageCaptureDescriptorDataInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT; +} +impl<'a> ImageCaptureDescriptorDataInfoEXT<'a> { + #[inline] + pub fn image(mut self, image: Image) -> Self { + self.image = image; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ImageViewCaptureDescriptorDataInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub image_view: ImageView, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ImageViewCaptureDescriptorDataInfoEXT<'_> {} +unsafe impl Sync for ImageViewCaptureDescriptorDataInfoEXT<'_> {} +impl ::core::default::Default for ImageViewCaptureDescriptorDataInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + image_view: ImageView::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for ImageViewCaptureDescriptorDataInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT; +} +impl<'a> ImageViewCaptureDescriptorDataInfoEXT<'a> { + #[inline] + pub fn image_view(mut self, image_view: ImageView) -> Self { + self.image_view = image_view; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct SamplerCaptureDescriptorDataInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub sampler: Sampler, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for SamplerCaptureDescriptorDataInfoEXT<'_> {} +unsafe impl Sync for SamplerCaptureDescriptorDataInfoEXT<'_> {} +impl ::core::default::Default for SamplerCaptureDescriptorDataInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + sampler: Sampler::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for SamplerCaptureDescriptorDataInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT; +} +impl<'a> SamplerCaptureDescriptorDataInfoEXT<'a> { + #[inline] + pub fn sampler(mut self, sampler: Sampler) -> Self { + self.sampler = sampler; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct AccelerationStructureCaptureDescriptorDataInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub acceleration_structure: AccelerationStructureKHR, + pub acceleration_structure_nv: AccelerationStructureNV, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for AccelerationStructureCaptureDescriptorDataInfoEXT<'_> {} +unsafe impl Sync for AccelerationStructureCaptureDescriptorDataInfoEXT<'_> {} +impl ::core::default::Default for AccelerationStructureCaptureDescriptorDataInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + acceleration_structure: AccelerationStructureKHR::default(), + acceleration_structure_nv: AccelerationStructureNV::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureCaptureDescriptorDataInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT; +} +impl<'a> AccelerationStructureCaptureDescriptorDataInfoEXT<'a> { + #[inline] + pub fn acceleration_structure( + mut self, + acceleration_structure: AccelerationStructureKHR, + ) -> Self { + self.acceleration_structure = acceleration_structure; + self + } + #[inline] + pub fn acceleration_structure_nv( + mut self, + acceleration_structure_nv: AccelerationStructureNV, + ) -> Self { + self.acceleration_structure_nv = acceleration_structure_nv; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct OpaqueCaptureDescriptorDataCreateInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub opaque_capture_descriptor_data: *const c_void, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} +unsafe impl Sync for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} +impl ::core::default::Default for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + opaque_capture_descriptor_data: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT; +} +unsafe impl Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} +unsafe impl Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} +unsafe impl Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} +unsafe impl Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} +unsafe impl Extends> + for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> +{ +} +unsafe impl Extends> + for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> +{ +} +unsafe impl Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} +unsafe impl Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} +impl<'a> OpaqueCaptureDescriptorDataCreateInfoEXT<'a> { + #[inline] + pub fn opaque_capture_descriptor_data( + mut self, + opaque_capture_descriptor_data: *const c_void, + ) -> Self { + self.opaque_capture_descriptor_data = opaque_capture_descriptor_data; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceShaderIntegerDotProductFeatures<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub shader_integer_dot_product: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceShaderIntegerDotProductFeatures<'_> {} +unsafe impl Sync for PhysicalDeviceShaderIntegerDotProductFeatures<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderIntegerDotProductFeatures<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + shader_integer_dot_product: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderIntegerDotProductFeatures<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES; +} +unsafe impl Extends> + for PhysicalDeviceShaderIntegerDotProductFeatures<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderIntegerDotProductFeatures<'_> {} +impl<'a> PhysicalDeviceShaderIntegerDotProductFeatures<'a> { + #[inline] + pub fn shader_integer_dot_product(mut self, shader_integer_dot_product: bool) -> Self { + self.shader_integer_dot_product = shader_integer_dot_product.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceShaderIntegerDotProductProperties<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub integer_dot_product8_bit_unsigned_accelerated: Bool32, + pub integer_dot_product8_bit_signed_accelerated: Bool32, + pub integer_dot_product8_bit_mixed_signedness_accelerated: Bool32, + pub integer_dot_product4x8_bit_packed_unsigned_accelerated: Bool32, + pub integer_dot_product4x8_bit_packed_signed_accelerated: Bool32, + pub integer_dot_product4x8_bit_packed_mixed_signedness_accelerated: Bool32, + pub integer_dot_product16_bit_unsigned_accelerated: Bool32, + pub integer_dot_product16_bit_signed_accelerated: Bool32, + pub integer_dot_product16_bit_mixed_signedness_accelerated: Bool32, + pub integer_dot_product32_bit_unsigned_accelerated: Bool32, + pub integer_dot_product32_bit_signed_accelerated: Bool32, + pub integer_dot_product32_bit_mixed_signedness_accelerated: Bool32, + pub integer_dot_product64_bit_unsigned_accelerated: Bool32, + pub integer_dot_product64_bit_signed_accelerated: Bool32, + pub integer_dot_product64_bit_mixed_signedness_accelerated: Bool32, + pub integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated: Bool32, + pub integer_dot_product_accumulating_saturating8_bit_signed_accelerated: Bool32, + pub integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated: Bool32, + pub integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated: Bool32, + pub integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated: Bool32, + pub integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated: + Bool32, + pub integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated: Bool32, + pub integer_dot_product_accumulating_saturating16_bit_signed_accelerated: Bool32, + pub integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated: Bool32, + pub integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated: Bool32, + pub integer_dot_product_accumulating_saturating32_bit_signed_accelerated: Bool32, + pub integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated: Bool32, + pub integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated: Bool32, + pub integer_dot_product_accumulating_saturating64_bit_signed_accelerated: Bool32, + pub integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceShaderIntegerDotProductProperties<'_> {} +unsafe impl Sync for PhysicalDeviceShaderIntegerDotProductProperties<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderIntegerDotProductProperties<'_> { + #[inline] + fn default() -> Self { + 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<'a> for PhysicalDeviceShaderIntegerDotProductProperties<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES; +} +unsafe impl Extends> + for PhysicalDeviceShaderIntegerDotProductProperties<'_> +{ +} +impl<'a> PhysicalDeviceShaderIntegerDotProductProperties<'a> { + #[inline] + pub fn integer_dot_product8_bit_unsigned_accelerated( + mut self, + integer_dot_product8_bit_unsigned_accelerated: bool, + ) -> Self { + self.integer_dot_product8_bit_unsigned_accelerated = + integer_dot_product8_bit_unsigned_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product8_bit_signed_accelerated( + mut self, + integer_dot_product8_bit_signed_accelerated: bool, + ) -> Self { + self.integer_dot_product8_bit_signed_accelerated = + integer_dot_product8_bit_signed_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product8_bit_mixed_signedness_accelerated( + mut self, + integer_dot_product8_bit_mixed_signedness_accelerated: bool, + ) -> Self { + self.integer_dot_product8_bit_mixed_signedness_accelerated = + integer_dot_product8_bit_mixed_signedness_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product4x8_bit_packed_unsigned_accelerated( + mut self, + integer_dot_product4x8_bit_packed_unsigned_accelerated: bool, + ) -> Self { + self.integer_dot_product4x8_bit_packed_unsigned_accelerated = + integer_dot_product4x8_bit_packed_unsigned_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product4x8_bit_packed_signed_accelerated( + mut self, + integer_dot_product4x8_bit_packed_signed_accelerated: bool, + ) -> Self { + self.integer_dot_product4x8_bit_packed_signed_accelerated = + integer_dot_product4x8_bit_packed_signed_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product4x8_bit_packed_mixed_signedness_accelerated( + mut self, + integer_dot_product4x8_bit_packed_mixed_signedness_accelerated: bool, + ) -> Self { + self.integer_dot_product4x8_bit_packed_mixed_signedness_accelerated = + integer_dot_product4x8_bit_packed_mixed_signedness_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product16_bit_unsigned_accelerated( + mut self, + integer_dot_product16_bit_unsigned_accelerated: bool, + ) -> Self { + self.integer_dot_product16_bit_unsigned_accelerated = + integer_dot_product16_bit_unsigned_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product16_bit_signed_accelerated( + mut self, + integer_dot_product16_bit_signed_accelerated: bool, + ) -> Self { + self.integer_dot_product16_bit_signed_accelerated = + integer_dot_product16_bit_signed_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product16_bit_mixed_signedness_accelerated( + mut self, + integer_dot_product16_bit_mixed_signedness_accelerated: bool, + ) -> Self { + self.integer_dot_product16_bit_mixed_signedness_accelerated = + integer_dot_product16_bit_mixed_signedness_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product32_bit_unsigned_accelerated( + mut self, + integer_dot_product32_bit_unsigned_accelerated: bool, + ) -> Self { + self.integer_dot_product32_bit_unsigned_accelerated = + integer_dot_product32_bit_unsigned_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product32_bit_signed_accelerated( + mut self, + integer_dot_product32_bit_signed_accelerated: bool, + ) -> Self { + self.integer_dot_product32_bit_signed_accelerated = + integer_dot_product32_bit_signed_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product32_bit_mixed_signedness_accelerated( + mut self, + integer_dot_product32_bit_mixed_signedness_accelerated: bool, + ) -> Self { + self.integer_dot_product32_bit_mixed_signedness_accelerated = + integer_dot_product32_bit_mixed_signedness_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product64_bit_unsigned_accelerated( + mut self, + integer_dot_product64_bit_unsigned_accelerated: bool, + ) -> Self { + self.integer_dot_product64_bit_unsigned_accelerated = + integer_dot_product64_bit_unsigned_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product64_bit_signed_accelerated( + mut self, + integer_dot_product64_bit_signed_accelerated: bool, + ) -> Self { + self.integer_dot_product64_bit_signed_accelerated = + integer_dot_product64_bit_signed_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product64_bit_mixed_signedness_accelerated( + mut self, + integer_dot_product64_bit_mixed_signedness_accelerated: bool, + ) -> Self { + self.integer_dot_product64_bit_mixed_signedness_accelerated = + integer_dot_product64_bit_mixed_signedness_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated( + mut self, + integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated: bool, + ) -> Self { + self.integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated = + integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product_accumulating_saturating8_bit_signed_accelerated( + mut self, + integer_dot_product_accumulating_saturating8_bit_signed_accelerated: bool, + ) -> Self { + self.integer_dot_product_accumulating_saturating8_bit_signed_accelerated = + integer_dot_product_accumulating_saturating8_bit_signed_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated( + mut self, + integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated: bool, + ) -> Self { + self.integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated = + integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated( + mut self, + integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated: bool, + ) -> Self { + self.integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated = + integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated( + mut self, + integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated: bool, + ) -> Self { + self.integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated = + integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated( + mut self, + integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated : bool, + ) -> Self { + self . integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated = integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated . into () ; + self + } + #[inline] + pub fn integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated( + mut self, + integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated: bool, + ) -> Self { + self.integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated = + integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product_accumulating_saturating16_bit_signed_accelerated( + mut self, + integer_dot_product_accumulating_saturating16_bit_signed_accelerated: bool, + ) -> Self { + self.integer_dot_product_accumulating_saturating16_bit_signed_accelerated = + integer_dot_product_accumulating_saturating16_bit_signed_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated( + mut self, + integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated: bool, + ) -> Self { + self.integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated = + integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated( + mut self, + integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated: bool, + ) -> Self { + self.integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated = + integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product_accumulating_saturating32_bit_signed_accelerated( + mut self, + integer_dot_product_accumulating_saturating32_bit_signed_accelerated: bool, + ) -> Self { + self.integer_dot_product_accumulating_saturating32_bit_signed_accelerated = + integer_dot_product_accumulating_saturating32_bit_signed_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated( + mut self, + integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated: bool, + ) -> Self { + self.integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated = + integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated( + mut self, + integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated: bool, + ) -> Self { + self.integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated = + integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product_accumulating_saturating64_bit_signed_accelerated( + mut self, + integer_dot_product_accumulating_saturating64_bit_signed_accelerated: bool, + ) -> Self { + self.integer_dot_product_accumulating_saturating64_bit_signed_accelerated = + integer_dot_product_accumulating_saturating64_bit_signed_accelerated.into(); + self + } + #[inline] + pub fn integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated( + mut self, + integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated: bool, + ) -> Self { + self.integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated = + integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceDrmPropertiesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub has_primary: Bool32, + pub has_render: Bool32, + pub primary_major: i64, + pub primary_minor: i64, + pub render_major: i64, + pub render_minor: i64, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceDrmPropertiesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceDrmPropertiesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceDrmPropertiesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + has_primary: Bool32::default(), + has_render: Bool32::default(), + primary_major: i64::default(), + primary_minor: i64::default(), + render_major: i64::default(), + render_minor: i64::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDrmPropertiesEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DRM_PROPERTIES_EXT; +} +unsafe impl Extends> for PhysicalDeviceDrmPropertiesEXT<'_> {} +impl<'a> PhysicalDeviceDrmPropertiesEXT<'a> { + #[inline] + pub fn has_primary(mut self, has_primary: bool) -> Self { + self.has_primary = has_primary.into(); + self + } + #[inline] + pub fn has_render(mut self, has_render: bool) -> Self { + self.has_render = has_render.into(); + self + } + #[inline] + pub fn primary_major(mut self, primary_major: i64) -> Self { + self.primary_major = primary_major; + self + } + #[inline] + pub fn primary_minor(mut self, primary_minor: i64) -> Self { + self.primary_minor = primary_minor; + self + } + #[inline] + pub fn render_major(mut self, render_major: i64) -> Self { + self.render_major = render_major; + self + } + #[inline] + pub fn render_minor(mut self, render_minor: i64) -> Self { + self.render_minor = render_minor; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub fragment_shader_barycentric: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + fragment_shader_barycentric: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR; +} +unsafe impl Extends> + for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'_> +{ +} +impl<'a> PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a> { + #[inline] + pub fn fragment_shader_barycentric(mut self, fragment_shader_barycentric: bool) -> Self { + self.fragment_shader_barycentric = fragment_shader_barycentric.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub tri_strip_vertex_order_independent_of_provoking_vertex: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + tri_strip_vertex_order_independent_of_provoking_vertex: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR; +} +unsafe impl Extends> + for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'_> +{ +} +impl<'a> PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'a> { + #[inline] + pub fn tri_strip_vertex_order_independent_of_provoking_vertex( + mut self, + tri_strip_vertex_order_independent_of_provoking_vertex: bool, + ) -> Self { + self.tri_strip_vertex_order_independent_of_provoking_vertex = + tri_strip_vertex_order_independent_of_provoking_vertex.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceShaderFmaFeaturesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub shader_fma_float16: Bool32, + pub shader_fma_float32: Bool32, + pub shader_fma_float64: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceShaderFmaFeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceShaderFmaFeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderFmaFeaturesKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + shader_fma_float16: Bool32::default(), + shader_fma_float32: Bool32::default(), + shader_fma_float64: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderFmaFeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR; +} +unsafe impl Extends> for PhysicalDeviceShaderFmaFeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderFmaFeaturesKHR<'_> {} +impl<'a> PhysicalDeviceShaderFmaFeaturesKHR<'a> { + #[inline] + pub fn shader_fma_float16(mut self, shader_fma_float16: bool) -> Self { + self.shader_fma_float16 = shader_fma_float16.into(); + self + } + #[inline] + pub fn shader_fma_float32(mut self, shader_fma_float32: bool) -> Self { + self.shader_fma_float32 = shader_fma_float32.into(); + self + } + #[inline] + pub fn shader_fma_float64(mut self, shader_fma_float64: bool) -> Self { + self.shader_fma_float64 = shader_fma_float64.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub ray_tracing_motion_blur: Bool32, + pub ray_tracing_motion_blur_pipeline_trace_rays_indirect: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + ray_tracing_motion_blur: Bool32::default(), + ray_tracing_motion_blur_pipeline_trace_rays_indirect: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV; +} +unsafe impl Extends> + for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'_> {} +impl<'a> PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a> { + #[inline] + pub fn ray_tracing_motion_blur(mut self, ray_tracing_motion_blur: bool) -> Self { + self.ray_tracing_motion_blur = ray_tracing_motion_blur.into(); + self + } + #[inline] + pub fn ray_tracing_motion_blur_pipeline_trace_rays_indirect( + mut self, + ray_tracing_motion_blur_pipeline_trace_rays_indirect: bool, + ) -> Self { + self.ray_tracing_motion_blur_pipeline_trace_rays_indirect = + ray_tracing_motion_blur_pipeline_trace_rays_indirect.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceRayTracingValidationFeaturesNV<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub ray_tracing_validation: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceRayTracingValidationFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDeviceRayTracingValidationFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceRayTracingValidationFeaturesNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + ray_tracing_validation: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingValidationFeaturesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV; +} +unsafe impl Extends> + for PhysicalDeviceRayTracingValidationFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceRayTracingValidationFeaturesNV<'_> {} +impl<'a> PhysicalDeviceRayTracingValidationFeaturesNV<'a> { + #[inline] + pub fn ray_tracing_validation(mut self, ray_tracing_validation: bool) -> Self { + self.ray_tracing_validation = ray_tracing_validation.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub spheres: Bool32, + pub linear_swept_spheres: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + spheres: Bool32::default(), + linear_swept_spheres: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV; +} +unsafe impl Extends> + for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV<'_> +{ +} +impl<'a> PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV<'a> { + #[inline] + pub fn spheres(mut self, spheres: bool) -> Self { + self.spheres = spheres.into(); + self + } + #[inline] + pub fn linear_swept_spheres(mut self, linear_swept_spheres: bool) -> Self { + self.linear_swept_spheres = linear_swept_spheres.into(); + self + } +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct AccelerationStructureGeometryMotionTrianglesDataNV<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub vertex_data: DeviceOrHostAddressConstKHR, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for AccelerationStructureGeometryMotionTrianglesDataNV<'_> {} +unsafe impl Sync for AccelerationStructureGeometryMotionTrianglesDataNV<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for AccelerationStructureGeometryMotionTrianglesDataNV<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("AccelerationStructureGeometryMotionTrianglesDataNV") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field("vertex_data", &"union") + .finish() + } +} +impl ::core::default::Default for AccelerationStructureGeometryMotionTrianglesDataNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + vertex_data: DeviceOrHostAddressConstKHR::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureGeometryMotionTrianglesDataNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV; +} +unsafe impl Extends> + for AccelerationStructureGeometryMotionTrianglesDataNV<'_> +{ +} +impl<'a> AccelerationStructureGeometryMotionTrianglesDataNV<'a> { + #[inline] + pub fn vertex_data(mut self, vertex_data: DeviceOrHostAddressConstKHR) -> Self { + self.vertex_data = vertex_data; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct AccelerationStructureMotionInfoNV<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub max_instances: u32, + pub flags: AccelerationStructureMotionInfoFlagsNV, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for AccelerationStructureMotionInfoNV<'_> {} +unsafe impl Sync for AccelerationStructureMotionInfoNV<'_> {} +impl ::core::default::Default for AccelerationStructureMotionInfoNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + max_instances: u32::default(), + flags: AccelerationStructureMotionInfoFlagsNV::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureMotionInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_MOTION_INFO_NV; +} +unsafe impl Extends> + for AccelerationStructureMotionInfoNV<'_> +{ +} +impl<'a> AccelerationStructureMotionInfoNV<'a> { + #[inline] + pub fn max_instances(mut self, max_instances: u32) -> Self { + self.max_instances = max_instances; + self + } + #[inline] + pub fn flags(mut self, flags: AccelerationStructureMotionInfoFlagsNV) -> Self { + self.flags = flags; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct SRTDataNV { + pub sx: f32, + pub a: f32, + pub b: f32, + pub pvx: f32, + pub sy: f32, + pub c: f32, + pub pvy: f32, + pub sz: f32, + pub pvz: f32, + pub qx: f32, + pub qy: f32, + pub qz: f32, + pub qw: f32, + pub tx: f32, + pub ty: f32, + pub tz: f32, +} +impl SRTDataNV { + #[inline] + pub fn sx(mut self, sx: f32) -> Self { + self.sx = sx; + self + } + #[inline] + pub fn a(mut self, a: f32) -> Self { + self.a = a; + self + } + #[inline] + pub fn b(mut self, b: f32) -> Self { + self.b = b; + self + } + #[inline] + pub fn pvx(mut self, pvx: f32) -> Self { + self.pvx = pvx; + self + } + #[inline] + pub fn sy(mut self, sy: f32) -> Self { + self.sy = sy; + self + } + #[inline] + pub fn c(mut self, c: f32) -> Self { + self.c = c; + self + } + #[inline] + pub fn pvy(mut self, pvy: f32) -> Self { + self.pvy = pvy; + self + } + #[inline] + pub fn sz(mut self, sz: f32) -> Self { + self.sz = sz; + self + } + #[inline] + pub fn pvz(mut self, pvz: f32) -> Self { + self.pvz = pvz; + self + } + #[inline] + pub fn qx(mut self, qx: f32) -> Self { + self.qx = qx; + self + } + #[inline] + pub fn qy(mut self, qy: f32) -> Self { + self.qy = qy; + self + } + #[inline] + pub fn qz(mut self, qz: f32) -> Self { + self.qz = qz; + self + } + #[inline] + pub fn qw(mut self, qw: f32) -> Self { + self.qw = qw; + self + } + #[inline] + pub fn tx(mut self, tx: f32) -> Self { + self.tx = tx; + self + } + #[inline] + pub fn ty(mut self, ty: f32) -> Self { + self.ty = ty; + self + } + #[inline] + pub fn tz(mut self, tz: f32) -> Self { + self.tz = tz; + self + } +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct AccelerationStructureSRTMotionInstanceNV { + pub transform_t0: SRTDataNV, + pub transform_t1: SRTDataNV, + #[doc = r" Use [`Packed24_8::new(instance_custom_index, mask)`][Packed24_8::new()] to construct this field"] + pub instance_custom_index_and_mask: Packed24_8, + #[doc = r" Use [`Packed24_8::new(instance_shader_binding_table_record_offset, flags)`][Packed24_8::new()] to construct this field"] + pub instance_shader_binding_table_record_offset_and_flags: Packed24_8, + pub acceleration_structure_reference: AccelerationStructureReferenceKHR, +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct AccelerationStructureMatrixMotionInstanceNV { + pub transform_t0: TransformMatrixKHR, + pub transform_t1: TransformMatrixKHR, + #[doc = r" Use [`Packed24_8::new(instance_custom_index, mask)`][Packed24_8::new()] to construct this field"] + pub instance_custom_index_and_mask: Packed24_8, + #[doc = r" Use [`Packed24_8::new(instance_shader_binding_table_record_offset, flags)`][Packed24_8::new()] to construct this field"] + pub instance_shader_binding_table_record_offset_and_flags: Packed24_8, + pub acceleration_structure_reference: AccelerationStructureReferenceKHR, +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +pub union AccelerationStructureMotionInstanceDataNV { + pub static_instance: AccelerationStructureInstanceKHR, + pub matrix_motion_instance: AccelerationStructureMatrixMotionInstanceNV, + pub srt_motion_instance: AccelerationStructureSRTMotionInstanceNV, +} +impl ::core::default::Default for AccelerationStructureMotionInstanceDataNV { + #[inline] + fn default() -> Self { + unsafe { ::core::mem::zeroed() } + } +} +#[repr(C)] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct AccelerationStructureMotionInstanceNV { + pub ty: AccelerationStructureMotionInstanceTypeNV, + pub flags: AccelerationStructureMotionInstanceFlagsNV, + pub data: AccelerationStructureMotionInstanceDataNV, +} +#[cfg(feature = "debug")] +impl fmt::Debug for AccelerationStructureMotionInstanceNV { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("AccelerationStructureMotionInstanceNV") + .field("ty", &self.ty) + .field("flags", &self.flags) + .field("data", &"union") + .finish() + } +} +impl AccelerationStructureMotionInstanceNV { + #[inline] + pub fn ty(mut self, ty: AccelerationStructureMotionInstanceTypeNV) -> Self { + self.ty = ty; + self + } + #[inline] + pub fn flags(mut self, flags: AccelerationStructureMotionInstanceFlagsNV) -> Self { + self.flags = flags; + self + } + #[inline] + pub fn data(mut self, data: AccelerationStructureMotionInstanceDataNV) -> Self { + self.data = data; + self + } +} +#[doc = ""] +pub type RemoteAddressNV = c_void; +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct MemoryGetRemoteAddressInfoNV<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub memory: DeviceMemory, + pub handle_type: ExternalMemoryHandleTypeFlags, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for MemoryGetRemoteAddressInfoNV<'_> {} +unsafe impl Sync for MemoryGetRemoteAddressInfoNV<'_> {} +impl ::core::default::Default for MemoryGetRemoteAddressInfoNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + memory: DeviceMemory::default(), + handle_type: ExternalMemoryHandleTypeFlags::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for MemoryGetRemoteAddressInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_GET_REMOTE_ADDRESS_INFO_NV; +} +impl<'a> MemoryGetRemoteAddressInfoNV<'a> { + #[inline] + pub fn memory(mut self, memory: DeviceMemory) -> Self { + self.memory = memory; + self + } + #[inline] + pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { + self.handle_type = handle_type; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ImportMemoryBufferCollectionFUCHSIA<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub collection: BufferCollectionFUCHSIA, + pub index: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ImportMemoryBufferCollectionFUCHSIA<'_> {} +unsafe impl Sync for ImportMemoryBufferCollectionFUCHSIA<'_> {} +impl ::core::default::Default for ImportMemoryBufferCollectionFUCHSIA<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + collection: BufferCollectionFUCHSIA::default(), + index: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for ImportMemoryBufferCollectionFUCHSIA<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA; +} +unsafe impl Extends> for ImportMemoryBufferCollectionFUCHSIA<'_> {} +impl<'a> ImportMemoryBufferCollectionFUCHSIA<'a> { + #[inline] + pub fn collection(mut self, collection: BufferCollectionFUCHSIA) -> Self { + self.collection = collection; + self + } + #[inline] + pub fn index(mut self, index: u32) -> Self { + self.index = index; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct BufferCollectionImageCreateInfoFUCHSIA<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub collection: BufferCollectionFUCHSIA, + pub index: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for BufferCollectionImageCreateInfoFUCHSIA<'_> {} +unsafe impl Sync for BufferCollectionImageCreateInfoFUCHSIA<'_> {} +impl ::core::default::Default for BufferCollectionImageCreateInfoFUCHSIA<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + collection: BufferCollectionFUCHSIA::default(), + index: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for BufferCollectionImageCreateInfoFUCHSIA<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA; +} +unsafe impl Extends> for BufferCollectionImageCreateInfoFUCHSIA<'_> {} +impl<'a> BufferCollectionImageCreateInfoFUCHSIA<'a> { + #[inline] + pub fn collection(mut self, collection: BufferCollectionFUCHSIA) -> Self { + self.collection = collection; + self + } + #[inline] + pub fn index(mut self, index: u32) -> Self { + self.index = index; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct BufferCollectionBufferCreateInfoFUCHSIA<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub collection: BufferCollectionFUCHSIA, + pub index: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for BufferCollectionBufferCreateInfoFUCHSIA<'_> {} +unsafe impl Sync for BufferCollectionBufferCreateInfoFUCHSIA<'_> {} +impl ::core::default::Default for BufferCollectionBufferCreateInfoFUCHSIA<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + collection: BufferCollectionFUCHSIA::default(), + index: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for BufferCollectionBufferCreateInfoFUCHSIA<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA; +} +unsafe impl Extends> for BufferCollectionBufferCreateInfoFUCHSIA<'_> {} +impl<'a> BufferCollectionBufferCreateInfoFUCHSIA<'a> { + #[inline] + pub fn collection(mut self, collection: BufferCollectionFUCHSIA) -> Self { + self.collection = collection; + self + } + #[inline] + pub fn index(mut self, index: u32) -> Self { + self.index = index; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct BufferCollectionCreateInfoFUCHSIA<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub collection_token: zx_handle_t, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for BufferCollectionCreateInfoFUCHSIA<'_> {} +unsafe impl Sync for BufferCollectionCreateInfoFUCHSIA<'_> {} +impl ::core::default::Default for BufferCollectionCreateInfoFUCHSIA<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + collection_token: zx_handle_t::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for BufferCollectionCreateInfoFUCHSIA<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_COLLECTION_CREATE_INFO_FUCHSIA; +} +impl<'a> BufferCollectionCreateInfoFUCHSIA<'a> { + #[inline] + pub fn collection_token(mut self, collection_token: zx_handle_t) -> Self { + self.collection_token = collection_token; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct BufferCollectionPropertiesFUCHSIA<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub memory_type_bits: u32, + pub buffer_count: u32, + pub create_info_index: u32, + pub sysmem_pixel_format: u64, + pub format_features: FormatFeatureFlags, + pub sysmem_color_space_index: SysmemColorSpaceFUCHSIA<'a>, + pub sampler_ycbcr_conversion_components: ComponentMapping, + pub suggested_ycbcr_model: SamplerYcbcrModelConversion, + pub suggested_ycbcr_range: SamplerYcbcrRange, + pub suggested_x_chroma_offset: ChromaLocation, + pub suggested_y_chroma_offset: ChromaLocation, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for BufferCollectionPropertiesFUCHSIA<'_> {} +unsafe impl Sync for BufferCollectionPropertiesFUCHSIA<'_> {} +impl ::core::default::Default for BufferCollectionPropertiesFUCHSIA<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + memory_type_bits: u32::default(), + buffer_count: u32::default(), + create_info_index: u32::default(), + sysmem_pixel_format: u64::default(), + format_features: FormatFeatureFlags::default(), + sysmem_color_space_index: SysmemColorSpaceFUCHSIA::default(), + sampler_ycbcr_conversion_components: ComponentMapping::default(), + suggested_ycbcr_model: SamplerYcbcrModelConversion::default(), + suggested_ycbcr_range: SamplerYcbcrRange::default(), + suggested_x_chroma_offset: ChromaLocation::default(), + suggested_y_chroma_offset: ChromaLocation::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for BufferCollectionPropertiesFUCHSIA<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_COLLECTION_PROPERTIES_FUCHSIA; +} +impl<'a> BufferCollectionPropertiesFUCHSIA<'a> { + #[inline] + pub fn memory_type_bits(mut self, memory_type_bits: u32) -> Self { + self.memory_type_bits = memory_type_bits; + self + } + #[inline] + pub fn buffer_count(mut self, buffer_count: u32) -> Self { + self.buffer_count = buffer_count; + self + } + #[inline] + pub fn create_info_index(mut self, create_info_index: u32) -> Self { + self.create_info_index = create_info_index; + self + } + #[inline] + pub fn sysmem_pixel_format(mut self, sysmem_pixel_format: u64) -> Self { + self.sysmem_pixel_format = sysmem_pixel_format; + self + } + #[inline] + pub fn format_features(mut self, format_features: FormatFeatureFlags) -> Self { + self.format_features = format_features; + self + } + #[inline] + pub fn sysmem_color_space_index( + mut self, + sysmem_color_space_index: SysmemColorSpaceFUCHSIA<'a>, + ) -> Self { + self.sysmem_color_space_index = sysmem_color_space_index; + self + } + #[inline] + pub fn sampler_ycbcr_conversion_components( + mut self, + sampler_ycbcr_conversion_components: ComponentMapping, + ) -> Self { + self.sampler_ycbcr_conversion_components = sampler_ycbcr_conversion_components; + self + } + #[inline] + pub fn suggested_ycbcr_model( + mut self, + suggested_ycbcr_model: SamplerYcbcrModelConversion, + ) -> Self { + self.suggested_ycbcr_model = suggested_ycbcr_model; + self + } + #[inline] + pub fn suggested_ycbcr_range(mut self, suggested_ycbcr_range: SamplerYcbcrRange) -> Self { + self.suggested_ycbcr_range = suggested_ycbcr_range; + self + } + #[inline] + pub fn suggested_x_chroma_offset(mut self, suggested_x_chroma_offset: ChromaLocation) -> Self { + self.suggested_x_chroma_offset = suggested_x_chroma_offset; + self + } + #[inline] + pub fn suggested_y_chroma_offset(mut self, suggested_y_chroma_offset: ChromaLocation) -> Self { + self.suggested_y_chroma_offset = suggested_y_chroma_offset; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct BufferConstraintsInfoFUCHSIA<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub create_info: BufferCreateInfo<'a>, + pub required_format_features: FormatFeatureFlags, + pub buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA<'a>, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for BufferConstraintsInfoFUCHSIA<'_> {} +unsafe impl Sync for BufferConstraintsInfoFUCHSIA<'_> {} +impl ::core::default::Default for BufferConstraintsInfoFUCHSIA<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + create_info: BufferCreateInfo::default(), + required_format_features: FormatFeatureFlags::default(), + buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for BufferConstraintsInfoFUCHSIA<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_CONSTRAINTS_INFO_FUCHSIA; +} +impl<'a> BufferConstraintsInfoFUCHSIA<'a> { + #[inline] + pub fn create_info(mut self, create_info: BufferCreateInfo<'a>) -> Self { + self.create_info = create_info; + self + } + #[inline] + pub fn required_format_features( + mut self, + required_format_features: FormatFeatureFlags, + ) -> Self { + self.required_format_features = required_format_features; + self + } + #[inline] + pub fn buffer_collection_constraints( + mut self, + buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA<'a>, + ) -> Self { + self.buffer_collection_constraints = buffer_collection_constraints; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct SysmemColorSpaceFUCHSIA<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub color_space: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for SysmemColorSpaceFUCHSIA<'_> {} +unsafe impl Sync for SysmemColorSpaceFUCHSIA<'_> {} +impl ::core::default::Default for SysmemColorSpaceFUCHSIA<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + color_space: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for SysmemColorSpaceFUCHSIA<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SYSMEM_COLOR_SPACE_FUCHSIA; +} +impl<'a> SysmemColorSpaceFUCHSIA<'a> { + #[inline] + pub fn color_space(mut self, color_space: u32) -> Self { + self.color_space = color_space; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ImageFormatConstraintsInfoFUCHSIA<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub image_create_info: ImageCreateInfo<'a>, + pub required_format_features: FormatFeatureFlags, + pub flags: ImageFormatConstraintsFlagsFUCHSIA, + pub sysmem_pixel_format: u64, + pub color_space_count: u32, + pub p_color_spaces: *const SysmemColorSpaceFUCHSIA<'a>, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ImageFormatConstraintsInfoFUCHSIA<'_> {} +unsafe impl Sync for ImageFormatConstraintsInfoFUCHSIA<'_> {} +impl ::core::default::Default for ImageFormatConstraintsInfoFUCHSIA<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + image_create_info: ImageCreateInfo::default(), + required_format_features: FormatFeatureFlags::default(), + flags: ImageFormatConstraintsFlagsFUCHSIA::default(), + sysmem_pixel_format: u64::default(), + color_space_count: u32::default(), + p_color_spaces: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for ImageFormatConstraintsInfoFUCHSIA<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA; +} +impl<'a> ImageFormatConstraintsInfoFUCHSIA<'a> { + #[inline] + pub fn image_create_info(mut self, image_create_info: ImageCreateInfo<'a>) -> Self { + self.image_create_info = image_create_info; + self + } + #[inline] + pub fn required_format_features( + mut self, + required_format_features: FormatFeatureFlags, + ) -> Self { + self.required_format_features = required_format_features; + self + } + #[inline] + pub fn flags(mut self, flags: ImageFormatConstraintsFlagsFUCHSIA) -> Self { + self.flags = flags; + self + } + #[inline] + pub fn sysmem_pixel_format(mut self, sysmem_pixel_format: u64) -> Self { + self.sysmem_pixel_format = sysmem_pixel_format; + self + } + #[inline] + pub fn color_spaces(mut self, color_spaces: &'a [SysmemColorSpaceFUCHSIA<'a>]) -> Self { + self.color_space_count = color_spaces.len() as _; + self.p_color_spaces = color_spaces.as_ptr(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ImageConstraintsInfoFUCHSIA<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub format_constraints_count: u32, + pub p_format_constraints: *const ImageFormatConstraintsInfoFUCHSIA<'a>, + pub buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA<'a>, + pub flags: ImageConstraintsInfoFlagsFUCHSIA, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ImageConstraintsInfoFUCHSIA<'_> {} +unsafe impl Sync for ImageConstraintsInfoFUCHSIA<'_> {} +impl ::core::default::Default for ImageConstraintsInfoFUCHSIA<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + format_constraints_count: u32::default(), + p_format_constraints: ::core::ptr::null(), + buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA::default(), + flags: ImageConstraintsInfoFlagsFUCHSIA::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for ImageConstraintsInfoFUCHSIA<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_CONSTRAINTS_INFO_FUCHSIA; +} +impl<'a> ImageConstraintsInfoFUCHSIA<'a> { + #[inline] + pub fn format_constraints( + mut self, + format_constraints: &'a [ImageFormatConstraintsInfoFUCHSIA<'a>], + ) -> Self { + self.format_constraints_count = format_constraints.len() as _; + self.p_format_constraints = format_constraints.as_ptr(); + self + } + #[inline] + pub fn buffer_collection_constraints( + mut self, + buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA<'a>, + ) -> Self { + self.buffer_collection_constraints = buffer_collection_constraints; + self + } + #[inline] + pub fn flags(mut self, flags: ImageConstraintsInfoFlagsFUCHSIA) -> Self { + self.flags = flags; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct BufferCollectionConstraintsInfoFUCHSIA<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub min_buffer_count: u32, + pub max_buffer_count: u32, + pub min_buffer_count_for_camping: u32, + pub min_buffer_count_for_dedicated_slack: u32, + pub min_buffer_count_for_shared_slack: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for BufferCollectionConstraintsInfoFUCHSIA<'_> {} +unsafe impl Sync for BufferCollectionConstraintsInfoFUCHSIA<'_> {} +impl ::core::default::Default for BufferCollectionConstraintsInfoFUCHSIA<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + min_buffer_count: u32::default(), + max_buffer_count: u32::default(), + min_buffer_count_for_camping: u32::default(), + min_buffer_count_for_dedicated_slack: u32::default(), + min_buffer_count_for_shared_slack: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for BufferCollectionConstraintsInfoFUCHSIA<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA; +} +impl<'a> BufferCollectionConstraintsInfoFUCHSIA<'a> { + #[inline] + pub fn min_buffer_count(mut self, min_buffer_count: u32) -> Self { + self.min_buffer_count = min_buffer_count; + self + } + #[inline] + pub fn max_buffer_count(mut self, max_buffer_count: u32) -> Self { + self.max_buffer_count = max_buffer_count; + self + } + #[inline] + pub fn min_buffer_count_for_camping(mut self, min_buffer_count_for_camping: u32) -> Self { + self.min_buffer_count_for_camping = min_buffer_count_for_camping; + self + } + #[inline] + pub fn min_buffer_count_for_dedicated_slack( + mut self, + min_buffer_count_for_dedicated_slack: u32, + ) -> Self { + self.min_buffer_count_for_dedicated_slack = min_buffer_count_for_dedicated_slack; + self + } + #[inline] + pub fn min_buffer_count_for_shared_slack( + mut self, + min_buffer_count_for_shared_slack: u32, + ) -> Self { + self.min_buffer_count_for_shared_slack = min_buffer_count_for_shared_slack; + self + } +} +handle_nondispatchable!( + CudaModuleNV, + CUDA_MODULE_NV, + doc = "" +); +handle_nondispatchable!( + CudaFunctionNV, + CUDA_FUNCTION_NV, + doc = + "" +); +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct CudaModuleCreateInfoNV<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub data_size: usize, + pub p_data: *const c_void, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for CudaModuleCreateInfoNV<'_> {} +unsafe impl Sync for CudaModuleCreateInfoNV<'_> {} +impl ::core::default::Default for CudaModuleCreateInfoNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + data_size: usize::default(), + p_data: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for CudaModuleCreateInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::CUDA_MODULE_CREATE_INFO_NV; +} +impl<'a> CudaModuleCreateInfoNV<'a> { + #[inline] + pub fn data(mut self, data: &'a [u8]) -> Self { + self.data_size = data.len(); + self.p_data = data.as_ptr().cast(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct CudaFunctionCreateInfoNV<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub module: CudaModuleNV, + pub p_name: *const c_char, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for CudaFunctionCreateInfoNV<'_> {} +unsafe impl Sync for CudaFunctionCreateInfoNV<'_> {} +impl ::core::default::Default for CudaFunctionCreateInfoNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + module: CudaModuleNV::default(), + p_name: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for CudaFunctionCreateInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::CUDA_FUNCTION_CREATE_INFO_NV; +} +impl<'a> CudaFunctionCreateInfoNV<'a> { + #[inline] + pub fn module(mut self, module: CudaModuleNV) -> Self { + self.module = module; + self + } + #[inline] + pub fn name(mut self, name: &'a CStr) -> Self { + self.p_name = name.as_ptr(); + self + } + #[inline] + pub unsafe fn name_as_c_str(&self) -> Option<&CStr> { + if self.p_name.is_null() { + None + } else { + Some(CStr::from_ptr(self.p_name)) + } + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct CudaLaunchInfoNV<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub function: CudaFunctionNV, + pub grid_dim_x: u32, + pub grid_dim_y: u32, + pub grid_dim_z: u32, + pub block_dim_x: u32, + pub block_dim_y: u32, + pub block_dim_z: u32, + pub shared_mem_bytes: u32, + pub param_count: usize, + pub p_params: *const *const c_void, + pub extra_count: usize, + pub p_extras: *const *const c_void, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for CudaLaunchInfoNV<'_> {} +unsafe impl Sync for CudaLaunchInfoNV<'_> {} +impl ::core::default::Default for CudaLaunchInfoNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + function: CudaFunctionNV::default(), + grid_dim_x: u32::default(), + grid_dim_y: u32::default(), + grid_dim_z: u32::default(), + block_dim_x: u32::default(), + block_dim_y: u32::default(), + block_dim_z: u32::default(), + shared_mem_bytes: u32::default(), + param_count: usize::default(), + p_params: ::core::ptr::null(), + extra_count: usize::default(), + p_extras: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for CudaLaunchInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::CUDA_LAUNCH_INFO_NV; +} +impl<'a> CudaLaunchInfoNV<'a> { + #[inline] + pub fn function(mut self, function: CudaFunctionNV) -> Self { + self.function = function; + self + } + #[inline] + pub fn grid_dim_x(mut self, grid_dim_x: u32) -> Self { + self.grid_dim_x = grid_dim_x; + self + } + #[inline] + pub fn grid_dim_y(mut self, grid_dim_y: u32) -> Self { + self.grid_dim_y = grid_dim_y; + self + } + #[inline] + pub fn grid_dim_z(mut self, grid_dim_z: u32) -> Self { + self.grid_dim_z = grid_dim_z; + self + } + #[inline] + pub fn block_dim_x(mut self, block_dim_x: u32) -> Self { + self.block_dim_x = block_dim_x; + self + } + #[inline] + pub fn block_dim_y(mut self, block_dim_y: u32) -> Self { + self.block_dim_y = block_dim_y; + self + } + #[inline] + pub fn block_dim_z(mut self, block_dim_z: u32) -> Self { + self.block_dim_z = block_dim_z; + self + } + #[inline] + pub fn shared_mem_bytes(mut self, shared_mem_bytes: u32) -> Self { + self.shared_mem_bytes = shared_mem_bytes; + self + } + #[inline] + pub fn params(mut self, params: &'a [*const c_void]) -> Self { + self.param_count = params.len(); + self.p_params = params.as_ptr(); + self + } + #[inline] + pub fn extras(mut self, extras: &'a [*const c_void]) -> Self { + self.extra_count = extras.len(); + self.p_extras = extras.as_ptr(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub format_rgba10x6_without_y_cb_cr_sampler: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + format_rgba10x6_without_y_cb_cr_sampler: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT; +} +unsafe impl Extends> for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a> { + #[inline] + pub fn format_rgba10x6_without_y_cb_cr_sampler( + mut self, + format_rgba10x6_without_y_cb_cr_sampler: bool, + ) -> Self { + self.format_rgba10x6_without_y_cb_cr_sampler = + format_rgba10x6_without_y_cb_cr_sampler.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct FormatProperties3<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub linear_tiling_features: FormatFeatureFlags2, + pub optimal_tiling_features: FormatFeatureFlags2, + pub buffer_features: FormatFeatureFlags2, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for FormatProperties3<'_> {} +unsafe impl Sync for FormatProperties3<'_> {} +impl ::core::default::Default for FormatProperties3<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + linear_tiling_features: FormatFeatureFlags2::default(), + optimal_tiling_features: FormatFeatureFlags2::default(), + buffer_features: FormatFeatureFlags2::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for FormatProperties3<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::FORMAT_PROPERTIES_3; +} +unsafe impl Extends> for FormatProperties3<'_> {} +impl<'a> FormatProperties3<'a> { + #[inline] + pub fn linear_tiling_features(mut self, linear_tiling_features: FormatFeatureFlags2) -> Self { + self.linear_tiling_features = linear_tiling_features; + self + } + #[inline] + pub fn optimal_tiling_features(mut self, optimal_tiling_features: FormatFeatureFlags2) -> Self { + self.optimal_tiling_features = optimal_tiling_features; + self + } + #[inline] + pub fn buffer_features(mut self, buffer_features: FormatFeatureFlags2) -> Self { + self.buffer_features = buffer_features; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct DrmFormatModifierPropertiesList2EXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub drm_format_modifier_count: u32, + pub p_drm_format_modifier_properties: *mut DrmFormatModifierProperties2EXT, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for DrmFormatModifierPropertiesList2EXT<'_> {} +unsafe impl Sync for DrmFormatModifierPropertiesList2EXT<'_> {} +impl ::core::default::Default for DrmFormatModifierPropertiesList2EXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + drm_format_modifier_count: u32::default(), + p_drm_format_modifier_properties: ::core::ptr::null_mut(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for DrmFormatModifierPropertiesList2EXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT; +} +unsafe impl Extends> for DrmFormatModifierPropertiesList2EXT<'_> {} +impl<'a> DrmFormatModifierPropertiesList2EXT<'a> { + #[inline] + pub fn drm_format_modifier_properties( + mut self, + drm_format_modifier_properties: &'a mut [DrmFormatModifierProperties2EXT], + ) -> Self { + self.drm_format_modifier_count = drm_format_modifier_properties.len() as _; + self.p_drm_format_modifier_properties = drm_format_modifier_properties.as_mut_ptr(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct DrmFormatModifierProperties2EXT { + pub drm_format_modifier: u64, + pub drm_format_modifier_plane_count: u32, + pub drm_format_modifier_tiling_features: FormatFeatureFlags2, +} +impl DrmFormatModifierProperties2EXT { + #[inline] + pub fn drm_format_modifier(mut self, drm_format_modifier: u64) -> Self { + self.drm_format_modifier = drm_format_modifier; + self + } + #[inline] + pub fn drm_format_modifier_plane_count(mut self, drm_format_modifier_plane_count: u32) -> Self { + self.drm_format_modifier_plane_count = drm_format_modifier_plane_count; + self + } + #[inline] + pub fn drm_format_modifier_tiling_features( + mut self, + drm_format_modifier_tiling_features: FormatFeatureFlags2, + ) -> Self { + self.drm_format_modifier_tiling_features = drm_format_modifier_tiling_features; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct AndroidHardwareBufferFormatProperties2ANDROID<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub format: Format, + pub external_format: u64, + pub format_features: FormatFeatureFlags2, + pub sampler_ycbcr_conversion_components: ComponentMapping, + pub suggested_ycbcr_model: SamplerYcbcrModelConversion, + pub suggested_ycbcr_range: SamplerYcbcrRange, + pub suggested_x_chroma_offset: ChromaLocation, + pub suggested_y_chroma_offset: ChromaLocation, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for AndroidHardwareBufferFormatProperties2ANDROID<'_> {} +unsafe impl Sync for AndroidHardwareBufferFormatProperties2ANDROID<'_> {} +impl ::core::default::Default for AndroidHardwareBufferFormatProperties2ANDROID<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + format: Format::default(), + external_format: u64::default(), + format_features: FormatFeatureFlags2::default(), + sampler_ycbcr_conversion_components: ComponentMapping::default(), + suggested_ycbcr_model: SamplerYcbcrModelConversion::default(), + suggested_ycbcr_range: SamplerYcbcrRange::default(), + suggested_x_chroma_offset: ChromaLocation::default(), + suggested_y_chroma_offset: ChromaLocation::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for AndroidHardwareBufferFormatProperties2ANDROID<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID; +} +unsafe impl Extends> + for AndroidHardwareBufferFormatProperties2ANDROID<'_> +{ +} +impl<'a> AndroidHardwareBufferFormatProperties2ANDROID<'a> { + #[inline] + pub fn format(mut self, format: Format) -> Self { + self.format = format; + self + } + #[inline] + pub fn external_format(mut self, external_format: u64) -> Self { + self.external_format = external_format; + self + } + #[inline] + pub fn format_features(mut self, format_features: FormatFeatureFlags2) -> Self { + self.format_features = format_features; + self + } + #[inline] + pub fn sampler_ycbcr_conversion_components( + mut self, + sampler_ycbcr_conversion_components: ComponentMapping, + ) -> Self { + self.sampler_ycbcr_conversion_components = sampler_ycbcr_conversion_components; + self + } + #[inline] + pub fn suggested_ycbcr_model( + mut self, + suggested_ycbcr_model: SamplerYcbcrModelConversion, + ) -> Self { + self.suggested_ycbcr_model = suggested_ycbcr_model; + self + } + #[inline] + pub fn suggested_ycbcr_range(mut self, suggested_ycbcr_range: SamplerYcbcrRange) -> Self { + self.suggested_ycbcr_range = suggested_ycbcr_range; + self + } + #[inline] + pub fn suggested_x_chroma_offset(mut self, suggested_x_chroma_offset: ChromaLocation) -> Self { + self.suggested_x_chroma_offset = suggested_x_chroma_offset; + self + } + #[inline] + pub fn suggested_y_chroma_offset(mut self, suggested_y_chroma_offset: ChromaLocation) -> Self { + self.suggested_y_chroma_offset = suggested_y_chroma_offset; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PipelineRenderingCreateInfo<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub view_mask: u32, + pub color_attachment_count: u32, + pub p_color_attachment_formats: *const Format, + pub depth_attachment_format: Format, + pub stencil_attachment_format: Format, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PipelineRenderingCreateInfo<'_> {} +unsafe impl Sync for PipelineRenderingCreateInfo<'_> {} +impl ::core::default::Default for PipelineRenderingCreateInfo<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + view_mask: u32::default(), + color_attachment_count: u32::default(), + p_color_attachment_formats: ::core::ptr::null(), + depth_attachment_format: Format::default(), + stencil_attachment_format: Format::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PipelineRenderingCreateInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RENDERING_CREATE_INFO; +} +unsafe impl Extends> for PipelineRenderingCreateInfo<'_> {} +impl<'a> PipelineRenderingCreateInfo<'a> { + #[inline] + pub fn view_mask(mut self, view_mask: u32) -> Self { + self.view_mask = view_mask; + self + } + #[inline] + pub fn color_attachment_formats(mut self, color_attachment_formats: &'a [Format]) -> Self { + self.color_attachment_count = color_attachment_formats.len() as _; + self.p_color_attachment_formats = color_attachment_formats.as_ptr(); + self + } + #[inline] + pub fn depth_attachment_format(mut self, depth_attachment_format: Format) -> Self { + self.depth_attachment_format = depth_attachment_format; + self + } + #[inline] + pub fn stencil_attachment_format(mut self, stencil_attachment_format: Format) -> Self { + self.stencil_attachment_format = stencil_attachment_format; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct RenderingInfo<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub flags: RenderingFlags, + pub render_area: Rect2D, + pub layer_count: u32, + pub view_mask: u32, + pub color_attachment_count: u32, + pub p_color_attachments: *const RenderingAttachmentInfo<'a>, + pub p_depth_attachment: *const RenderingAttachmentInfo<'a>, + pub p_stencil_attachment: *const RenderingAttachmentInfo<'a>, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for RenderingInfo<'_> {} +unsafe impl Sync for RenderingInfo<'_> {} +impl ::core::default::Default for RenderingInfo<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + flags: RenderingFlags::default(), + render_area: Rect2D::default(), + layer_count: u32::default(), + view_mask: u32::default(), + color_attachment_count: u32::default(), + p_color_attachments: ::core::ptr::null(), + p_depth_attachment: ::core::ptr::null(), + p_stencil_attachment: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for RenderingInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_INFO; +} +impl<'a> RenderingInfo<'a> { + #[inline] + pub fn flags(mut self, flags: RenderingFlags) -> Self { + self.flags = flags; + self + } + #[inline] + pub fn render_area(mut self, render_area: Rect2D) -> Self { + self.render_area = render_area; + self + } + #[inline] + pub fn layer_count(mut self, layer_count: u32) -> Self { + self.layer_count = layer_count; + self + } + #[inline] + pub fn view_mask(mut self, view_mask: u32) -> Self { + self.view_mask = view_mask; + self + } + #[inline] + pub fn color_attachments( + mut self, + color_attachments: &'a [RenderingAttachmentInfo<'a>], + ) -> Self { + self.color_attachment_count = color_attachments.len() as _; + self.p_color_attachments = color_attachments.as_ptr(); + self + } + #[inline] + pub fn depth_attachment(mut self, depth_attachment: &'a RenderingAttachmentInfo<'a>) -> Self { + self.p_depth_attachment = depth_attachment; + self + } + #[inline] + pub fn stencil_attachment( + mut self, + stencil_attachment: &'a RenderingAttachmentInfo<'a>, + ) -> Self { + self.p_stencil_attachment = stencil_attachment; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct RenderingEndInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for RenderingEndInfoEXT<'_> {} +unsafe impl Sync for RenderingEndInfoEXT<'_> {} +impl ::core::default::Default for RenderingEndInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for RenderingEndInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_END_INFO_EXT; +} +impl<'a> RenderingEndInfoEXT<'a> {} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct RenderingAttachmentInfo<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub image_view: ImageView, + pub image_layout: ImageLayout, + pub resolve_mode: ResolveModeFlags, + pub resolve_image_view: ImageView, + pub resolve_image_layout: ImageLayout, + pub load_op: AttachmentLoadOp, + pub store_op: AttachmentStoreOp, + pub clear_value: ClearValue, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for RenderingAttachmentInfo<'_> {} +unsafe impl Sync for RenderingAttachmentInfo<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for RenderingAttachmentInfo<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("RenderingAttachmentInfo") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field("image_view", &self.image_view) + .field("image_layout", &self.image_layout) + .field("resolve_mode", &self.resolve_mode) + .field("resolve_image_view", &self.resolve_image_view) + .field("resolve_image_layout", &self.resolve_image_layout) + .field("load_op", &self.load_op) + .field("store_op", &self.store_op) + .field("clear_value", &"union") + .finish() + } +} +impl ::core::default::Default for RenderingAttachmentInfo<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + image_view: ImageView::default(), + image_layout: ImageLayout::default(), + resolve_mode: ResolveModeFlags::default(), + resolve_image_view: ImageView::default(), + resolve_image_layout: ImageLayout::default(), + load_op: AttachmentLoadOp::default(), + store_op: AttachmentStoreOp::default(), + clear_value: ClearValue::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for RenderingAttachmentInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_ATTACHMENT_INFO; +} +impl<'a> RenderingAttachmentInfo<'a> { + #[inline] + pub fn image_view(mut self, image_view: ImageView) -> Self { + self.image_view = image_view; + self + } + #[inline] + pub fn image_layout(mut self, image_layout: ImageLayout) -> Self { + self.image_layout = image_layout; + self + } + #[inline] + pub fn resolve_mode(mut self, resolve_mode: ResolveModeFlags) -> Self { + self.resolve_mode = resolve_mode; + self + } + #[inline] + pub fn resolve_image_view(mut self, resolve_image_view: ImageView) -> Self { + self.resolve_image_view = resolve_image_view; + self + } + #[inline] + pub fn resolve_image_layout(mut self, resolve_image_layout: ImageLayout) -> Self { + self.resolve_image_layout = resolve_image_layout; + self + } + #[inline] + pub fn load_op(mut self, load_op: AttachmentLoadOp) -> Self { + self.load_op = load_op; + self + } + #[inline] + pub fn store_op(mut self, store_op: AttachmentStoreOp) -> Self { + self.store_op = store_op; + self + } + #[inline] + pub fn clear_value(mut self, clear_value: ClearValue) -> Self { + self.clear_value = clear_value; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct RenderingFragmentShadingRateAttachmentInfoKHR<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub image_view: ImageView, + pub image_layout: ImageLayout, + pub shading_rate_attachment_texel_size: Extent2D, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for RenderingFragmentShadingRateAttachmentInfoKHR<'_> {} +unsafe impl Sync for RenderingFragmentShadingRateAttachmentInfoKHR<'_> {} +impl ::core::default::Default for RenderingFragmentShadingRateAttachmentInfoKHR<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + image_view: ImageView::default(), + image_layout: ImageLayout::default(), + shading_rate_attachment_texel_size: Extent2D::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for RenderingFragmentShadingRateAttachmentInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR; +} +unsafe impl Extends> for RenderingFragmentShadingRateAttachmentInfoKHR<'_> {} +impl<'a> RenderingFragmentShadingRateAttachmentInfoKHR<'a> { + #[inline] + pub fn image_view(mut self, image_view: ImageView) -> Self { + self.image_view = image_view; + self + } + #[inline] + pub fn image_layout(mut self, image_layout: ImageLayout) -> Self { + self.image_layout = image_layout; + self + } + #[inline] + pub fn shading_rate_attachment_texel_size( + mut self, + shading_rate_attachment_texel_size: Extent2D, + ) -> Self { + self.shading_rate_attachment_texel_size = shading_rate_attachment_texel_size; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct RenderingFragmentDensityMapAttachmentInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub image_view: ImageView, + pub image_layout: ImageLayout, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for RenderingFragmentDensityMapAttachmentInfoEXT<'_> {} +unsafe impl Sync for RenderingFragmentDensityMapAttachmentInfoEXT<'_> {} +impl ::core::default::Default for RenderingFragmentDensityMapAttachmentInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + image_view: ImageView::default(), + image_layout: ImageLayout::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for RenderingFragmentDensityMapAttachmentInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT; +} +unsafe impl Extends> for RenderingFragmentDensityMapAttachmentInfoEXT<'_> {} +impl<'a> RenderingFragmentDensityMapAttachmentInfoEXT<'a> { + #[inline] + pub fn image_view(mut self, image_view: ImageView) -> Self { + self.image_view = image_view; + self + } + #[inline] + pub fn image_layout(mut self, image_layout: ImageLayout) -> Self { + self.image_layout = image_layout; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceDynamicRenderingFeatures<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub dynamic_rendering: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceDynamicRenderingFeatures<'_> {} +unsafe impl Sync for PhysicalDeviceDynamicRenderingFeatures<'_> {} +impl ::core::default::Default for PhysicalDeviceDynamicRenderingFeatures<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + dynamic_rendering: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDynamicRenderingFeatures<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES; +} +unsafe impl Extends> for PhysicalDeviceDynamicRenderingFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceDynamicRenderingFeatures<'_> {} +impl<'a> PhysicalDeviceDynamicRenderingFeatures<'a> { + #[inline] + pub fn dynamic_rendering(mut self, dynamic_rendering: bool) -> Self { + self.dynamic_rendering = dynamic_rendering.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct CommandBufferInheritanceRenderingInfo<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub flags: RenderingFlags, + pub view_mask: u32, + pub color_attachment_count: u32, + pub p_color_attachment_formats: *const Format, + pub depth_attachment_format: Format, + pub stencil_attachment_format: Format, + pub rasterization_samples: SampleCountFlags, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for CommandBufferInheritanceRenderingInfo<'_> {} +unsafe impl Sync for CommandBufferInheritanceRenderingInfo<'_> {} +impl ::core::default::Default for CommandBufferInheritanceRenderingInfo<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + flags: RenderingFlags::default(), + view_mask: u32::default(), + color_attachment_count: u32::default(), + p_color_attachment_formats: ::core::ptr::null(), + depth_attachment_format: Format::default(), + stencil_attachment_format: Format::default(), + rasterization_samples: SampleCountFlags::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for CommandBufferInheritanceRenderingInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_RENDERING_INFO; +} +unsafe impl Extends> + for CommandBufferInheritanceRenderingInfo<'_> +{ +} +impl<'a> CommandBufferInheritanceRenderingInfo<'a> { + #[inline] + pub fn flags(mut self, flags: RenderingFlags) -> Self { + self.flags = flags; + self + } + #[inline] + pub fn view_mask(mut self, view_mask: u32) -> Self { + self.view_mask = view_mask; + self + } + #[inline] + pub fn color_attachment_formats(mut self, color_attachment_formats: &'a [Format]) -> Self { + self.color_attachment_count = color_attachment_formats.len() as _; + self.p_color_attachment_formats = color_attachment_formats.as_ptr(); + self + } + #[inline] + pub fn depth_attachment_format(mut self, depth_attachment_format: Format) -> Self { + self.depth_attachment_format = depth_attachment_format; + self + } + #[inline] + pub fn stencil_attachment_format(mut self, stencil_attachment_format: Format) -> Self { + self.stencil_attachment_format = stencil_attachment_format; + self + } + #[inline] + pub fn rasterization_samples(mut self, rasterization_samples: SampleCountFlags) -> Self { + self.rasterization_samples = rasterization_samples; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct AttachmentSampleCountInfoAMD<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub color_attachment_count: u32, + pub p_color_attachment_samples: *const SampleCountFlags, + pub depth_stencil_attachment_samples: SampleCountFlags, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for AttachmentSampleCountInfoAMD<'_> {} +unsafe impl Sync for AttachmentSampleCountInfoAMD<'_> {} +impl ::core::default::Default for AttachmentSampleCountInfoAMD<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + color_attachment_count: u32::default(), + p_color_attachment_samples: ::core::ptr::null(), + depth_stencil_attachment_samples: SampleCountFlags::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for AttachmentSampleCountInfoAMD<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_SAMPLE_COUNT_INFO_AMD; +} +unsafe impl Extends> for AttachmentSampleCountInfoAMD<'_> {} +unsafe impl Extends> for AttachmentSampleCountInfoAMD<'_> {} +impl<'a> AttachmentSampleCountInfoAMD<'a> { + #[inline] + pub fn color_attachment_samples( + mut self, + color_attachment_samples: &'a [SampleCountFlags], + ) -> Self { + self.color_attachment_count = color_attachment_samples.len() as _; + self.p_color_attachment_samples = color_attachment_samples.as_ptr(); + self + } + #[inline] + pub fn depth_stencil_attachment_samples( + mut self, + depth_stencil_attachment_samples: SampleCountFlags, + ) -> Self { + self.depth_stencil_attachment_samples = depth_stencil_attachment_samples; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct MultiviewPerViewAttributesInfoNVX<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub per_view_attributes: Bool32, + pub per_view_attributes_position_x_only: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for MultiviewPerViewAttributesInfoNVX<'_> {} +unsafe impl Sync for MultiviewPerViewAttributesInfoNVX<'_> {} +impl ::core::default::Default for MultiviewPerViewAttributesInfoNVX<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + per_view_attributes: Bool32::default(), + per_view_attributes_position_x_only: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for MultiviewPerViewAttributesInfoNVX<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX; +} +unsafe impl Extends> for MultiviewPerViewAttributesInfoNVX<'_> {} +unsafe impl Extends> for MultiviewPerViewAttributesInfoNVX<'_> {} +unsafe impl Extends> for MultiviewPerViewAttributesInfoNVX<'_> {} +impl<'a> MultiviewPerViewAttributesInfoNVX<'a> { + #[inline] + pub fn per_view_attributes(mut self, per_view_attributes: bool) -> Self { + self.per_view_attributes = per_view_attributes.into(); + self + } + #[inline] + pub fn per_view_attributes_position_x_only( + mut self, + per_view_attributes_position_x_only: bool, + ) -> Self { + self.per_view_attributes_position_x_only = per_view_attributes_position_x_only.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceImageViewMinLodFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub min_lod: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceImageViewMinLodFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceImageViewMinLodFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceImageViewMinLodFeaturesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + min_lod: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageViewMinLodFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT; +} +unsafe impl Extends> for PhysicalDeviceImageViewMinLodFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceImageViewMinLodFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceImageViewMinLodFeaturesEXT<'a> { + #[inline] + pub fn min_lod(mut self, min_lod: bool) -> Self { + self.min_lod = min_lod.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ImageViewMinLodCreateInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub min_lod: f32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ImageViewMinLodCreateInfoEXT<'_> {} +unsafe impl Sync for ImageViewMinLodCreateInfoEXT<'_> {} +impl ::core::default::Default for ImageViewMinLodCreateInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + min_lod: f32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for ImageViewMinLodCreateInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT; +} +unsafe impl Extends> for ImageViewMinLodCreateInfoEXT<'_> {} +impl<'a> ImageViewMinLodCreateInfoEXT<'a> { + #[inline] + pub fn min_lod(mut self, min_lod: f32) -> Self { + self.min_lod = min_lod; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub rasterization_order_color_attachment_access: Bool32, + pub rasterization_order_depth_attachment_access: Bool32, + pub rasterization_order_stencil_attachment_access: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + rasterization_order_color_attachment_access: Bool32::default(), + rasterization_order_depth_attachment_access: Bool32::default(), + rasterization_order_stencil_attachment_access: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> + for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'a> +{ + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT; +} +unsafe impl Extends> + for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'_> +{ +} +impl<'a> PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'a> { + #[inline] + pub fn rasterization_order_color_attachment_access( + mut self, + rasterization_order_color_attachment_access: bool, + ) -> Self { + self.rasterization_order_color_attachment_access = + rasterization_order_color_attachment_access.into(); + self + } + #[inline] + pub fn rasterization_order_depth_attachment_access( + mut self, + rasterization_order_depth_attachment_access: bool, + ) -> Self { + self.rasterization_order_depth_attachment_access = + rasterization_order_depth_attachment_access.into(); + self + } + #[inline] + pub fn rasterization_order_stencil_attachment_access( + mut self, + rasterization_order_stencil_attachment_access: bool, + ) -> Self { + self.rasterization_order_stencil_attachment_access = + rasterization_order_stencil_attachment_access.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceLinearColorAttachmentFeaturesNV<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub linear_color_attachment: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceLinearColorAttachmentFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDeviceLinearColorAttachmentFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceLinearColorAttachmentFeaturesNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + linear_color_attachment: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceLinearColorAttachmentFeaturesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV; +} +unsafe impl Extends> + for PhysicalDeviceLinearColorAttachmentFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceLinearColorAttachmentFeaturesNV<'_> {} +impl<'a> PhysicalDeviceLinearColorAttachmentFeaturesNV<'a> { + #[inline] + pub fn linear_color_attachment(mut self, linear_color_attachment: bool) -> Self { + self.linear_color_attachment = linear_color_attachment.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub graphics_pipeline_library: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + graphics_pipeline_library: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT; +} +unsafe impl Extends> + for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a> { + #[inline] + pub fn graphics_pipeline_library(mut self, graphics_pipeline_library: bool) -> Self { + self.graphics_pipeline_library = graphics_pipeline_library.into(); + self + } +} +#[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<'a> for PhysicalDevicePipelineBinaryFeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR; +} +unsafe impl Extends> for PhysicalDevicePipelineBinaryFeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDevicePipelineBinaryFeaturesKHR<'_> {} +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<'a> for DevicePipelineBinaryInternalCacheControlKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR; +} +unsafe impl Extends> for DevicePipelineBinaryInternalCacheControlKHR<'_> {} +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<'a> for PhysicalDevicePipelineBinaryPropertiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR; +} +unsafe impl Extends> + for PhysicalDevicePipelineBinaryPropertiesKHR<'_> +{ +} +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> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub graphics_pipeline_library_fast_linking: Bool32, + pub graphics_pipeline_library_independent_interpolation_decoration: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + graphics_pipeline_library_fast_linking: Bool32::default(), + graphics_pipeline_library_independent_interpolation_decoration: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT; +} +unsafe impl Extends> + for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'_> +{ +} +impl<'a> PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'a> { + #[inline] + pub fn graphics_pipeline_library_fast_linking( + mut self, + graphics_pipeline_library_fast_linking: bool, + ) -> Self { + self.graphics_pipeline_library_fast_linking = graphics_pipeline_library_fast_linking.into(); + self + } + #[inline] + pub fn graphics_pipeline_library_independent_interpolation_decoration( + mut self, + graphics_pipeline_library_independent_interpolation_decoration: bool, + ) -> Self { + self.graphics_pipeline_library_independent_interpolation_decoration = + graphics_pipeline_library_independent_interpolation_decoration.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct GraphicsPipelineLibraryCreateInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub flags: GraphicsPipelineLibraryFlagsEXT, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for GraphicsPipelineLibraryCreateInfoEXT<'_> {} +unsafe impl Sync for GraphicsPipelineLibraryCreateInfoEXT<'_> {} +impl ::core::default::Default for GraphicsPipelineLibraryCreateInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + flags: GraphicsPipelineLibraryFlagsEXT::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for GraphicsPipelineLibraryCreateInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT; +} +unsafe impl Extends> for GraphicsPipelineLibraryCreateInfoEXT<'_> {} +impl<'a> GraphicsPipelineLibraryCreateInfoEXT<'a> { + #[inline] + pub fn flags(mut self, flags: GraphicsPipelineLibraryFlagsEXT) -> Self { + self.flags = flags; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub descriptor_set_host_mapping: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'_> {} +unsafe impl Sync for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'_> {} +impl ::core::default::Default for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + descriptor_set_host_mapping: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE; +} +unsafe impl Extends> + for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'_> +{ +} +impl<'a> PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'a> { + #[inline] + pub fn descriptor_set_host_mapping(mut self, descriptor_set_host_mapping: bool) -> Self { + self.descriptor_set_host_mapping = descriptor_set_host_mapping.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct DescriptorSetBindingReferenceVALVE<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub descriptor_set_layout: DescriptorSetLayout, + pub binding: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for DescriptorSetBindingReferenceVALVE<'_> {} +unsafe impl Sync for DescriptorSetBindingReferenceVALVE<'_> {} +impl ::core::default::Default for DescriptorSetBindingReferenceVALVE<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + descriptor_set_layout: DescriptorSetLayout::default(), + binding: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for DescriptorSetBindingReferenceVALVE<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_BINDING_REFERENCE_VALVE; +} +impl<'a> DescriptorSetBindingReferenceVALVE<'a> { + #[inline] + pub fn descriptor_set_layout(mut self, descriptor_set_layout: DescriptorSetLayout) -> Self { + self.descriptor_set_layout = descriptor_set_layout; + self + } + #[inline] + pub fn binding(mut self, binding: u32) -> Self { + self.binding = binding; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct DescriptorSetLayoutHostMappingInfoVALVE<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub descriptor_offset: usize, + pub descriptor_size: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for DescriptorSetLayoutHostMappingInfoVALVE<'_> {} +unsafe impl Sync for DescriptorSetLayoutHostMappingInfoVALVE<'_> {} +impl ::core::default::Default for DescriptorSetLayoutHostMappingInfoVALVE<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + descriptor_offset: usize::default(), + descriptor_size: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for DescriptorSetLayoutHostMappingInfoVALVE<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE; +} +impl<'a> DescriptorSetLayoutHostMappingInfoVALVE<'a> { + #[inline] + pub fn descriptor_offset(mut self, descriptor_offset: usize) -> Self { + self.descriptor_offset = descriptor_offset; + self + } + #[inline] + pub fn descriptor_size(mut self, descriptor_size: u32) -> Self { + self.descriptor_size = descriptor_size; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceNestedCommandBufferFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub nested_command_buffer: Bool32, + pub nested_command_buffer_rendering: Bool32, + pub nested_command_buffer_simultaneous_use: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceNestedCommandBufferFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceNestedCommandBufferFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceNestedCommandBufferFeaturesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + nested_command_buffer: Bool32::default(), + nested_command_buffer_rendering: Bool32::default(), + nested_command_buffer_simultaneous_use: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceNestedCommandBufferFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT; +} +unsafe impl Extends> + for PhysicalDeviceNestedCommandBufferFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceNestedCommandBufferFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceNestedCommandBufferFeaturesEXT<'a> { + #[inline] + pub fn nested_command_buffer(mut self, nested_command_buffer: bool) -> Self { + self.nested_command_buffer = nested_command_buffer.into(); + self + } + #[inline] + pub fn nested_command_buffer_rendering( + mut self, + nested_command_buffer_rendering: bool, + ) -> Self { + self.nested_command_buffer_rendering = nested_command_buffer_rendering.into(); + self + } + #[inline] + pub fn nested_command_buffer_simultaneous_use( + mut self, + nested_command_buffer_simultaneous_use: bool, + ) -> Self { + self.nested_command_buffer_simultaneous_use = nested_command_buffer_simultaneous_use.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceNestedCommandBufferPropertiesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub max_command_buffer_nesting_level: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceNestedCommandBufferPropertiesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceNestedCommandBufferPropertiesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceNestedCommandBufferPropertiesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + max_command_buffer_nesting_level: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceNestedCommandBufferPropertiesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT; +} +unsafe impl Extends> + for PhysicalDeviceNestedCommandBufferPropertiesEXT<'_> +{ +} +impl<'a> PhysicalDeviceNestedCommandBufferPropertiesEXT<'a> { + #[inline] + pub fn max_command_buffer_nesting_level( + mut self, + max_command_buffer_nesting_level: u32, + ) -> Self { + self.max_command_buffer_nesting_level = max_command_buffer_nesting_level; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub shader_module_identifier: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + shader_module_identifier: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT; +} +unsafe impl Extends> + for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'a> { + #[inline] + pub fn shader_module_identifier(mut self, shader_module_identifier: bool) -> Self { + self.shader_module_identifier = shader_module_identifier.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub shader_module_identifier_algorithm_uuid: [u8; UUID_SIZE], + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + shader_module_identifier_algorithm_uuid: unsafe { ::core::mem::zeroed() }, + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT; +} +unsafe impl Extends> + for PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'_> +{ +} +impl<'a> PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'a> { + #[inline] + pub fn shader_module_identifier_algorithm_uuid( + mut self, + shader_module_identifier_algorithm_uuid: [u8; UUID_SIZE], + ) -> Self { + self.shader_module_identifier_algorithm_uuid = shader_module_identifier_algorithm_uuid; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PipelineShaderStageModuleIdentifierCreateInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub identifier_size: u32, + pub p_identifier: *const u8, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PipelineShaderStageModuleIdentifierCreateInfoEXT<'_> {} +unsafe impl Sync for PipelineShaderStageModuleIdentifierCreateInfoEXT<'_> {} +impl ::core::default::Default for PipelineShaderStageModuleIdentifierCreateInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + identifier_size: u32::default(), + p_identifier: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PipelineShaderStageModuleIdentifierCreateInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT; +} +unsafe impl Extends> + for PipelineShaderStageModuleIdentifierCreateInfoEXT<'_> +{ +} +impl<'a> PipelineShaderStageModuleIdentifierCreateInfoEXT<'a> { + #[inline] + pub fn identifier(mut self, identifier: &'a [u8]) -> Self { + self.identifier_size = identifier.len() as _; + self.p_identifier = identifier.as_ptr(); + self + } +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ShaderModuleIdentifierEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub identifier_size: u32, + pub identifier: [u8; MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT], + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ShaderModuleIdentifierEXT<'_> {} +unsafe impl Sync for ShaderModuleIdentifierEXT<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for ShaderModuleIdentifierEXT<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("ShaderModuleIdentifierEXT") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field("identifier_size", &self.identifier_size) + .field("identifier", &self.identifier_as_slice()) + .finish() + } +} +impl ::core::default::Default for ShaderModuleIdentifierEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + identifier_size: u32::default(), + identifier: unsafe { ::core::mem::zeroed() }, + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for ShaderModuleIdentifierEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SHADER_MODULE_IDENTIFIER_EXT; +} +impl<'a> ShaderModuleIdentifierEXT<'a> { + #[inline] + pub fn identifier(mut self, identifier: &'_ [u8]) -> Self { + self.identifier_size = identifier.len() as _; + self.identifier[..identifier.len()].copy_from_slice(identifier); + self + } + #[inline] + pub fn identifier_as_slice(&self) -> &[u8] { + &self.identifier[..self.identifier_size as _] + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ImageCompressionControlEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub flags: ImageCompressionFlagsEXT, + pub compression_control_plane_count: u32, + pub p_fixed_rate_flags: *mut ImageCompressionFixedRateFlagsEXT, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ImageCompressionControlEXT<'_> {} +unsafe impl Sync for ImageCompressionControlEXT<'_> {} +impl ::core::default::Default for ImageCompressionControlEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + flags: ImageCompressionFlagsEXT::default(), + compression_control_plane_count: u32::default(), + p_fixed_rate_flags: ::core::ptr::null_mut(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for ImageCompressionControlEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_COMPRESSION_CONTROL_EXT; +} +unsafe impl Extends> for ImageCompressionControlEXT<'_> {} +unsafe impl Extends> for ImageCompressionControlEXT<'_> {} +unsafe impl Extends> for ImageCompressionControlEXT<'_> {} +impl<'a> ImageCompressionControlEXT<'a> { + #[inline] + pub fn flags(mut self, flags: ImageCompressionFlagsEXT) -> Self { + self.flags = flags; + self + } + #[inline] + pub fn fixed_rate_flags( + mut self, + fixed_rate_flags: &'a mut [ImageCompressionFixedRateFlagsEXT], + ) -> Self { + self.compression_control_plane_count = fixed_rate_flags.len() as _; + self.p_fixed_rate_flags = fixed_rate_flags.as_mut_ptr(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceImageCompressionControlFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub image_compression_control: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceImageCompressionControlFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceImageCompressionControlFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceImageCompressionControlFeaturesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + image_compression_control: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageCompressionControlFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT; +} +unsafe impl Extends> + for PhysicalDeviceImageCompressionControlFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceImageCompressionControlFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceImageCompressionControlFeaturesEXT<'a> { + #[inline] + pub fn image_compression_control(mut self, image_compression_control: bool) -> Self { + self.image_compression_control = image_compression_control.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ImageCompressionPropertiesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub image_compression_flags: ImageCompressionFlagsEXT, + pub image_compression_fixed_rate_flags: ImageCompressionFixedRateFlagsEXT, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ImageCompressionPropertiesEXT<'_> {} +unsafe impl Sync for ImageCompressionPropertiesEXT<'_> {} +impl ::core::default::Default for ImageCompressionPropertiesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + image_compression_flags: ImageCompressionFlagsEXT::default(), + image_compression_fixed_rate_flags: ImageCompressionFixedRateFlagsEXT::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for ImageCompressionPropertiesEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_COMPRESSION_PROPERTIES_EXT; +} +unsafe impl Extends> for ImageCompressionPropertiesEXT<'_> {} +unsafe impl Extends> for ImageCompressionPropertiesEXT<'_> {} +unsafe impl Extends> for ImageCompressionPropertiesEXT<'_> {} +impl<'a> ImageCompressionPropertiesEXT<'a> { + #[inline] + pub fn image_compression_flags( + mut self, + image_compression_flags: ImageCompressionFlagsEXT, + ) -> Self { + self.image_compression_flags = image_compression_flags; + self + } + #[inline] + pub fn image_compression_fixed_rate_flags( + mut self, + image_compression_fixed_rate_flags: ImageCompressionFixedRateFlagsEXT, + ) -> Self { + self.image_compression_fixed_rate_flags = image_compression_fixed_rate_flags; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub image_compression_control_swapchain: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + image_compression_control_swapchain: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> + for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'a> +{ + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT; +} +unsafe impl Extends> + for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'_> +{ +} +impl<'a> PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'a> { + #[inline] + pub fn image_compression_control_swapchain( + mut self, + image_compression_control_swapchain: bool, + ) -> Self { + self.image_compression_control_swapchain = image_compression_control_swapchain.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ImageSubresource2<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub image_subresource: ImageSubresource, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ImageSubresource2<'_> {} +unsafe impl Sync for ImageSubresource2<'_> {} +impl ::core::default::Default for ImageSubresource2<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + image_subresource: ImageSubresource::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for ImageSubresource2<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_SUBRESOURCE_2; +} +impl<'a> ImageSubresource2<'a> { + #[inline] + pub fn image_subresource(mut self, image_subresource: ImageSubresource) -> Self { + self.image_subresource = image_subresource; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct SubresourceLayout2<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub subresource_layout: SubresourceLayout, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for SubresourceLayout2<'_> {} +unsafe impl Sync for SubresourceLayout2<'_> {} +impl ::core::default::Default for SubresourceLayout2<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + subresource_layout: SubresourceLayout::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for SubresourceLayout2<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SUBRESOURCE_LAYOUT_2; +} +impl<'a> SubresourceLayout2<'a> { + #[inline] + pub fn subresource_layout(mut self, subresource_layout: SubresourceLayout) -> Self { + self.subresource_layout = subresource_layout; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct RenderPassCreationControlEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub disallow_merging: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for RenderPassCreationControlEXT<'_> {} +unsafe impl Sync for RenderPassCreationControlEXT<'_> {} +impl ::core::default::Default for RenderPassCreationControlEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + disallow_merging: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for RenderPassCreationControlEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_CREATION_CONTROL_EXT; +} +unsafe impl Extends> for RenderPassCreationControlEXT<'_> {} +unsafe impl Extends> for RenderPassCreationControlEXT<'_> {} +impl<'a> RenderPassCreationControlEXT<'a> { + #[inline] + pub fn disallow_merging(mut self, disallow_merging: bool) -> Self { + self.disallow_merging = disallow_merging.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct RenderPassCreationFeedbackInfoEXT { + pub post_merge_subpass_count: u32, +} +impl RenderPassCreationFeedbackInfoEXT { + #[inline] + pub fn post_merge_subpass_count(mut self, post_merge_subpass_count: u32) -> Self { + self.post_merge_subpass_count = post_merge_subpass_count; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct RenderPassCreationFeedbackCreateInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub p_render_pass_feedback: *mut RenderPassCreationFeedbackInfoEXT, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for RenderPassCreationFeedbackCreateInfoEXT<'_> {} +unsafe impl Sync for RenderPassCreationFeedbackCreateInfoEXT<'_> {} +impl ::core::default::Default for RenderPassCreationFeedbackCreateInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + p_render_pass_feedback: ::core::ptr::null_mut(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for RenderPassCreationFeedbackCreateInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT; +} +unsafe impl Extends> for RenderPassCreationFeedbackCreateInfoEXT<'_> {} +impl<'a> RenderPassCreationFeedbackCreateInfoEXT<'a> { + #[inline] + pub fn render_pass_feedback( + mut self, + render_pass_feedback: &'a mut RenderPassCreationFeedbackInfoEXT, + ) -> Self { + self.p_render_pass_feedback = render_pass_feedback; + self + } +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct RenderPassSubpassFeedbackInfoEXT { + pub subpass_merge_status: SubpassMergeStatusEXT, + pub description: [c_char; MAX_DESCRIPTION_SIZE], + pub post_merge_index: u32, +} +#[cfg(feature = "debug")] +impl fmt::Debug for RenderPassSubpassFeedbackInfoEXT { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("RenderPassSubpassFeedbackInfoEXT") + .field("subpass_merge_status", &self.subpass_merge_status) + .field("description", &self.description_as_c_str()) + .field("post_merge_index", &self.post_merge_index) + .finish() + } +} +impl ::core::default::Default for RenderPassSubpassFeedbackInfoEXT { + #[inline] + fn default() -> Self { + Self { + subpass_merge_status: SubpassMergeStatusEXT::default(), + description: unsafe { ::core::mem::zeroed() }, + post_merge_index: u32::default(), + } + } +} +impl RenderPassSubpassFeedbackInfoEXT { + #[inline] + pub fn subpass_merge_status(mut self, subpass_merge_status: SubpassMergeStatusEXT) -> Self { + self.subpass_merge_status = subpass_merge_status; + self + } + #[inline] + pub fn description( + mut self, + description: &CStr, + ) -> core::result::Result { + write_c_str_slice_with_nul(&mut self.description, description).map(|()| self) + } + #[inline] + pub fn description_as_c_str(&self) -> core::result::Result<&CStr, FromBytesUntilNulError> { + wrap_c_str_slice_until_nul(&self.description) + } + #[inline] + pub fn post_merge_index(mut self, post_merge_index: u32) -> Self { + self.post_merge_index = post_merge_index; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct RenderPassSubpassFeedbackCreateInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub p_subpass_feedback: *mut RenderPassSubpassFeedbackInfoEXT, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for RenderPassSubpassFeedbackCreateInfoEXT<'_> {} +unsafe impl Sync for RenderPassSubpassFeedbackCreateInfoEXT<'_> {} +impl ::core::default::Default for RenderPassSubpassFeedbackCreateInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + p_subpass_feedback: ::core::ptr::null_mut(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for RenderPassSubpassFeedbackCreateInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT; +} +unsafe impl Extends> for RenderPassSubpassFeedbackCreateInfoEXT<'_> {} +impl<'a> RenderPassSubpassFeedbackCreateInfoEXT<'a> { + #[inline] + pub fn subpass_feedback( + mut self, + subpass_feedback: &'a mut RenderPassSubpassFeedbackInfoEXT, + ) -> Self { + self.p_subpass_feedback = subpass_feedback; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub subpass_merge_feedback: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + subpass_merge_feedback: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT; +} +unsafe impl Extends> + for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'a> { + #[inline] + pub fn subpass_merge_feedback(mut self, subpass_merge_feedback: bool) -> Self { + self.subpass_merge_feedback = subpass_merge_feedback.into(); + self + } +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct MicromapBuildInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub ty: MicromapTypeEXT, + pub flags: BuildMicromapFlagsEXT, + pub mode: BuildMicromapModeEXT, + pub dst_micromap: MicromapEXT, + pub usage_counts_count: u32, + pub p_usage_counts: *const MicromapUsageEXT, + pub pp_usage_counts: *const *const MicromapUsageEXT, + pub data: DeviceOrHostAddressConstKHR, + pub scratch_data: DeviceOrHostAddressKHR, + pub triangle_array: DeviceOrHostAddressConstKHR, + pub triangle_array_stride: DeviceSize, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for MicromapBuildInfoEXT<'_> {} +unsafe impl Sync for MicromapBuildInfoEXT<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for MicromapBuildInfoEXT<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("MicromapBuildInfoEXT") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field("ty", &self.ty) + .field("flags", &self.flags) + .field("mode", &self.mode) + .field("dst_micromap", &self.dst_micromap) + .field("usage_counts_count", &self.usage_counts_count) + .field("p_usage_counts", &self.p_usage_counts) + .field("pp_usage_counts", &self.pp_usage_counts) + .field("data", &"union") + .field("scratch_data", &"union") + .field("triangle_array", &"union") + .field("triangle_array_stride", &self.triangle_array_stride) + .finish() + } +} +impl ::core::default::Default for MicromapBuildInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + ty: MicromapTypeEXT::default(), + flags: BuildMicromapFlagsEXT::default(), + mode: BuildMicromapModeEXT::default(), + dst_micromap: MicromapEXT::default(), + usage_counts_count: u32::default(), + p_usage_counts: ::core::ptr::null(), + pp_usage_counts: ::core::ptr::null(), + data: DeviceOrHostAddressConstKHR::default(), + scratch_data: DeviceOrHostAddressKHR::default(), + triangle_array: DeviceOrHostAddressConstKHR::default(), + triangle_array_stride: DeviceSize::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for MicromapBuildInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::MICROMAP_BUILD_INFO_EXT; +} +impl<'a> MicromapBuildInfoEXT<'a> { + #[inline] + pub fn ty(mut self, ty: MicromapTypeEXT) -> Self { + self.ty = ty; + self + } + #[inline] + pub fn flags(mut self, flags: BuildMicromapFlagsEXT) -> Self { + self.flags = flags; + self + } + #[inline] + pub fn mode(mut self, mode: BuildMicromapModeEXT) -> Self { + self.mode = mode; + self + } + #[inline] + pub fn dst_micromap(mut self, dst_micromap: MicromapEXT) -> Self { + self.dst_micromap = dst_micromap; + self + } + #[inline] + pub fn usage_counts(mut self, usage_counts: &'a [MicromapUsageEXT]) -> Self { + self.usage_counts_count = usage_counts.len() as _; + self.p_usage_counts = usage_counts.as_ptr(); + self + } + #[inline] + pub fn usage_counts_ptrs(mut self, usage_counts_ptrs: &'a [&'a MicromapUsageEXT]) -> Self { + self.usage_counts_count = usage_counts_ptrs.len() as _; + self.pp_usage_counts = usage_counts_ptrs.as_ptr().cast(); + self + } + #[inline] + pub fn data(mut self, data: DeviceOrHostAddressConstKHR) -> Self { + self.data = data; + self + } + #[inline] + pub fn scratch_data(mut self, scratch_data: DeviceOrHostAddressKHR) -> Self { + self.scratch_data = scratch_data; + self + } + #[inline] + pub fn triangle_array(mut self, triangle_array: DeviceOrHostAddressConstKHR) -> Self { + self.triangle_array = triangle_array; + self + } + #[inline] + pub fn triangle_array_stride(mut self, triangle_array_stride: DeviceSize) -> Self { + self.triangle_array_stride = triangle_array_stride; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct MicromapCreateInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub create_flags: MicromapCreateFlagsEXT, + pub buffer: Buffer, + pub offset: DeviceSize, + pub size: DeviceSize, + pub ty: MicromapTypeEXT, + pub device_address: DeviceAddress, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for MicromapCreateInfoEXT<'_> {} +unsafe impl Sync for MicromapCreateInfoEXT<'_> {} +impl ::core::default::Default for MicromapCreateInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + create_flags: MicromapCreateFlagsEXT::default(), + buffer: Buffer::default(), + offset: DeviceSize::default(), + size: DeviceSize::default(), + ty: MicromapTypeEXT::default(), + device_address: DeviceAddress::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for MicromapCreateInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::MICROMAP_CREATE_INFO_EXT; +} +impl<'a> MicromapCreateInfoEXT<'a> { + #[inline] + pub fn create_flags(mut self, create_flags: MicromapCreateFlagsEXT) -> Self { + self.create_flags = create_flags; + self + } + #[inline] + pub fn buffer(mut self, buffer: Buffer) -> Self { + self.buffer = buffer; + self + } + #[inline] + pub fn offset(mut self, offset: DeviceSize) -> Self { + self.offset = offset; + self + } + #[inline] + pub fn size(mut self, size: DeviceSize) -> Self { + self.size = size; + self + } + #[inline] + pub fn ty(mut self, ty: MicromapTypeEXT) -> Self { + self.ty = ty; + self + } + #[inline] + pub fn device_address(mut self, device_address: DeviceAddress) -> Self { + self.device_address = device_address; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct MicromapVersionInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub p_version_data: *const [u8; 2 * UUID_SIZE], + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for MicromapVersionInfoEXT<'_> {} +unsafe impl Sync for MicromapVersionInfoEXT<'_> {} +impl ::core::default::Default for MicromapVersionInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + p_version_data: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for MicromapVersionInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::MICROMAP_VERSION_INFO_EXT; +} +impl<'a> MicromapVersionInfoEXT<'a> { + #[inline] + pub fn version_data(mut self, version_data: &'a [u8; 2 * UUID_SIZE]) -> Self { + self.p_version_data = version_data; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct CopyMicromapInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub src: MicromapEXT, + pub dst: MicromapEXT, + pub mode: CopyMicromapModeEXT, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for CopyMicromapInfoEXT<'_> {} +unsafe impl Sync for CopyMicromapInfoEXT<'_> {} +impl ::core::default::Default for CopyMicromapInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + src: MicromapEXT::default(), + dst: MicromapEXT::default(), + mode: CopyMicromapModeEXT::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for CopyMicromapInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::COPY_MICROMAP_INFO_EXT; +} +impl<'a> CopyMicromapInfoEXT<'a> { + #[inline] + pub fn src(mut self, src: MicromapEXT) -> Self { + self.src = src; + self + } + #[inline] + pub fn dst(mut self, dst: MicromapEXT) -> Self { + self.dst = dst; + self + } + #[inline] + pub fn mode(mut self, mode: CopyMicromapModeEXT) -> Self { + self.mode = mode; + self + } +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct CopyMicromapToMemoryInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub src: MicromapEXT, + pub dst: DeviceOrHostAddressKHR, + pub mode: CopyMicromapModeEXT, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for CopyMicromapToMemoryInfoEXT<'_> {} +unsafe impl Sync for CopyMicromapToMemoryInfoEXT<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for CopyMicromapToMemoryInfoEXT<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("CopyMicromapToMemoryInfoEXT") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field("src", &self.src) + .field("dst", &"union") + .field("mode", &self.mode) + .finish() + } +} +impl ::core::default::Default for CopyMicromapToMemoryInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + src: MicromapEXT::default(), + dst: DeviceOrHostAddressKHR::default(), + mode: CopyMicromapModeEXT::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for CopyMicromapToMemoryInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::COPY_MICROMAP_TO_MEMORY_INFO_EXT; +} +impl<'a> CopyMicromapToMemoryInfoEXT<'a> { + #[inline] + pub fn src(mut self, src: MicromapEXT) -> Self { + self.src = src; + self + } + #[inline] + pub fn dst(mut self, dst: DeviceOrHostAddressKHR) -> Self { + self.dst = dst; + self + } + #[inline] + pub fn mode(mut self, mode: CopyMicromapModeEXT) -> Self { + self.mode = mode; + self + } +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct CopyMemoryToMicromapInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub src: DeviceOrHostAddressConstKHR, + pub dst: MicromapEXT, + pub mode: CopyMicromapModeEXT, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for CopyMemoryToMicromapInfoEXT<'_> {} +unsafe impl Sync for CopyMemoryToMicromapInfoEXT<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for CopyMemoryToMicromapInfoEXT<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("CopyMemoryToMicromapInfoEXT") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field("src", &"union") + .field("dst", &self.dst) + .field("mode", &self.mode) + .finish() + } +} +impl ::core::default::Default for CopyMemoryToMicromapInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + src: DeviceOrHostAddressConstKHR::default(), + dst: MicromapEXT::default(), + mode: CopyMicromapModeEXT::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for CopyMemoryToMicromapInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::COPY_MEMORY_TO_MICROMAP_INFO_EXT; +} +impl<'a> CopyMemoryToMicromapInfoEXT<'a> { + #[inline] + pub fn src(mut self, src: DeviceOrHostAddressConstKHR) -> Self { + self.src = src; + self + } + #[inline] + pub fn dst(mut self, dst: MicromapEXT) -> Self { + self.dst = dst; + self + } + #[inline] + pub fn mode(mut self, mode: CopyMicromapModeEXT) -> Self { + self.mode = mode; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct MicromapBuildSizesInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub micromap_size: DeviceSize, + pub build_scratch_size: DeviceSize, + pub discardable: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for MicromapBuildSizesInfoEXT<'_> {} +unsafe impl Sync for MicromapBuildSizesInfoEXT<'_> {} +impl ::core::default::Default for MicromapBuildSizesInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + micromap_size: DeviceSize::default(), + build_scratch_size: DeviceSize::default(), + discardable: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for MicromapBuildSizesInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::MICROMAP_BUILD_SIZES_INFO_EXT; +} +impl<'a> MicromapBuildSizesInfoEXT<'a> { + #[inline] + pub fn micromap_size(mut self, micromap_size: DeviceSize) -> Self { + self.micromap_size = micromap_size; + self + } + #[inline] + pub fn build_scratch_size(mut self, build_scratch_size: DeviceSize) -> Self { + self.build_scratch_size = build_scratch_size; + self + } + #[inline] + pub fn discardable(mut self, discardable: bool) -> Self { + self.discardable = discardable.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct MicromapUsageEXT { + pub count: u32, + pub subdivision_level: u32, + pub format: u32, +} +impl MicromapUsageEXT { + #[inline] + pub fn count(mut self, count: u32) -> Self { + self.count = count; + self + } + #[inline] + pub fn subdivision_level(mut self, subdivision_level: u32) -> Self { + self.subdivision_level = subdivision_level; + self + } + #[inline] + pub fn format(mut self, format: u32) -> Self { + self.format = format; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct MicromapTriangleEXT { + pub data_offset: u32, + pub subdivision_level: u16, + pub format: u16, +} +impl MicromapTriangleEXT { + #[inline] + pub fn data_offset(mut self, data_offset: u32) -> Self { + self.data_offset = data_offset; + self + } + #[inline] + pub fn subdivision_level(mut self, subdivision_level: u16) -> Self { + self.subdivision_level = subdivision_level; + self + } + #[inline] + pub fn format(mut self, format: u16) -> Self { + self.format = format; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceOpacityMicromapFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub micromap: Bool32, + pub micromap_capture_replay: Bool32, + pub micromap_host_commands: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceOpacityMicromapFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceOpacityMicromapFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceOpacityMicromapFeaturesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + micromap: Bool32::default(), + micromap_capture_replay: Bool32::default(), + micromap_host_commands: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceOpacityMicromapFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT; +} +unsafe impl Extends> for PhysicalDeviceOpacityMicromapFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceOpacityMicromapFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceOpacityMicromapFeaturesEXT<'a> { + #[inline] + pub fn micromap(mut self, micromap: bool) -> Self { + self.micromap = micromap.into(); + self + } + #[inline] + pub fn micromap_capture_replay(mut self, micromap_capture_replay: bool) -> Self { + self.micromap_capture_replay = micromap_capture_replay.into(); + self + } + #[inline] + pub fn micromap_host_commands(mut self, micromap_host_commands: bool) -> Self { + self.micromap_host_commands = micromap_host_commands.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceOpacityMicromapPropertiesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub max_opacity2_state_subdivision_level: u32, + pub max_opacity4_state_subdivision_level: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceOpacityMicromapPropertiesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceOpacityMicromapPropertiesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceOpacityMicromapPropertiesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + max_opacity2_state_subdivision_level: u32::default(), + max_opacity4_state_subdivision_level: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceOpacityMicromapPropertiesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT; +} +unsafe impl Extends> + for PhysicalDeviceOpacityMicromapPropertiesEXT<'_> +{ +} +impl<'a> PhysicalDeviceOpacityMicromapPropertiesEXT<'a> { + #[inline] + pub fn max_opacity2_state_subdivision_level( + mut self, + max_opacity2_state_subdivision_level: u32, + ) -> Self { + self.max_opacity2_state_subdivision_level = max_opacity2_state_subdivision_level; + self + } + #[inline] + pub fn max_opacity4_state_subdivision_level( + mut self, + max_opacity4_state_subdivision_level: u32, + ) -> Self { + self.max_opacity4_state_subdivision_level = max_opacity4_state_subdivision_level; + self + } +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct AccelerationStructureTrianglesOpacityMicromapEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub index_type: IndexType, + pub index_buffer: DeviceOrHostAddressConstKHR, + pub index_stride: DeviceSize, + pub base_triangle: u32, + pub usage_counts_count: u32, + pub p_usage_counts: *const MicromapUsageEXT, + pub pp_usage_counts: *const *const MicromapUsageEXT, + pub micromap: MicromapEXT, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for AccelerationStructureTrianglesOpacityMicromapEXT<'_> {} +unsafe impl Sync for AccelerationStructureTrianglesOpacityMicromapEXT<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for AccelerationStructureTrianglesOpacityMicromapEXT<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("AccelerationStructureTrianglesOpacityMicromapEXT") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field("index_type", &self.index_type) + .field("index_buffer", &"union") + .field("index_stride", &self.index_stride) + .field("base_triangle", &self.base_triangle) + .field("usage_counts_count", &self.usage_counts_count) + .field("p_usage_counts", &self.p_usage_counts) + .field("pp_usage_counts", &self.pp_usage_counts) + .field("micromap", &self.micromap) + .finish() + } +} +impl ::core::default::Default for AccelerationStructureTrianglesOpacityMicromapEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + index_type: IndexType::default(), + index_buffer: DeviceOrHostAddressConstKHR::default(), + index_stride: DeviceSize::default(), + base_triangle: u32::default(), + usage_counts_count: u32::default(), + p_usage_counts: ::core::ptr::null(), + pp_usage_counts: ::core::ptr::null(), + micromap: MicromapEXT::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureTrianglesOpacityMicromapEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT; +} +unsafe impl Extends> + for AccelerationStructureTrianglesOpacityMicromapEXT<'_> +{ +} +unsafe impl Extends> + for AccelerationStructureTrianglesOpacityMicromapEXT<'_> +{ +} +impl<'a> AccelerationStructureTrianglesOpacityMicromapEXT<'a> { + #[inline] + pub fn index_type(mut self, index_type: IndexType) -> Self { + self.index_type = index_type; + self + } + #[inline] + pub fn index_buffer(mut self, index_buffer: DeviceOrHostAddressConstKHR) -> Self { + self.index_buffer = index_buffer; + self + } + #[inline] + pub fn index_stride(mut self, index_stride: DeviceSize) -> Self { + self.index_stride = index_stride; + self + } + #[inline] + pub fn base_triangle(mut self, base_triangle: u32) -> Self { + self.base_triangle = base_triangle; + self + } + #[inline] + pub fn usage_counts(mut self, usage_counts: &'a [MicromapUsageEXT]) -> Self { + self.usage_counts_count = usage_counts.len() as _; + self.p_usage_counts = usage_counts.as_ptr(); + self + } + #[inline] + pub fn usage_counts_ptrs(mut self, usage_counts_ptrs: &'a [&'a MicromapUsageEXT]) -> Self { + self.usage_counts_count = usage_counts_ptrs.len() as _; + self.pp_usage_counts = usage_counts_ptrs.as_ptr().cast(); + self + } + #[inline] + pub fn micromap(mut self, micromap: MicromapEXT) -> Self { + self.micromap = micromap; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceDisplacementMicromapFeaturesNV<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub displacement_micromap: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceDisplacementMicromapFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDeviceDisplacementMicromapFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceDisplacementMicromapFeaturesNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + displacement_micromap: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDisplacementMicromapFeaturesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV; +} +unsafe impl Extends> + for PhysicalDeviceDisplacementMicromapFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceDisplacementMicromapFeaturesNV<'_> {} +impl<'a> PhysicalDeviceDisplacementMicromapFeaturesNV<'a> { + #[inline] + pub fn displacement_micromap(mut self, displacement_micromap: bool) -> Self { + self.displacement_micromap = displacement_micromap.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceDisplacementMicromapPropertiesNV<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub max_displacement_micromap_subdivision_level: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceDisplacementMicromapPropertiesNV<'_> {} +unsafe impl Sync for PhysicalDeviceDisplacementMicromapPropertiesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceDisplacementMicromapPropertiesNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + max_displacement_micromap_subdivision_level: u32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDisplacementMicromapPropertiesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV; +} +unsafe impl Extends> + for PhysicalDeviceDisplacementMicromapPropertiesNV<'_> +{ +} +impl<'a> PhysicalDeviceDisplacementMicromapPropertiesNV<'a> { + #[inline] + pub fn max_displacement_micromap_subdivision_level( + mut self, + max_displacement_micromap_subdivision_level: u32, + ) -> Self { + self.max_displacement_micromap_subdivision_level = + max_displacement_micromap_subdivision_level; + self + } +} +#[repr(C)] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct AccelerationStructureTrianglesDisplacementMicromapNV<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub displacement_bias_and_scale_format: Format, + pub displacement_vector_format: Format, + pub displacement_bias_and_scale_buffer: DeviceOrHostAddressConstKHR, + pub displacement_bias_and_scale_stride: DeviceSize, + pub displacement_vector_buffer: DeviceOrHostAddressConstKHR, + pub displacement_vector_stride: DeviceSize, + pub displaced_micromap_primitive_flags: DeviceOrHostAddressConstKHR, + pub displaced_micromap_primitive_flags_stride: DeviceSize, + pub index_type: IndexType, + pub index_buffer: DeviceOrHostAddressConstKHR, + pub index_stride: DeviceSize, + pub base_triangle: u32, + pub usage_counts_count: u32, + pub p_usage_counts: *const MicromapUsageEXT, + pub pp_usage_counts: *const *const MicromapUsageEXT, + pub micromap: MicromapEXT, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for AccelerationStructureTrianglesDisplacementMicromapNV<'_> {} +unsafe impl Sync for AccelerationStructureTrianglesDisplacementMicromapNV<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for AccelerationStructureTrianglesDisplacementMicromapNV<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("AccelerationStructureTrianglesDisplacementMicromapNV") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field( + "displacement_bias_and_scale_format", + &self.displacement_bias_and_scale_format, + ) + .field( + "displacement_vector_format", + &self.displacement_vector_format, + ) + .field("displacement_bias_and_scale_buffer", &"union") + .field( + "displacement_bias_and_scale_stride", + &self.displacement_bias_and_scale_stride, + ) + .field("displacement_vector_buffer", &"union") + .field( + "displacement_vector_stride", + &self.displacement_vector_stride, + ) + .field("displaced_micromap_primitive_flags", &"union") + .field( + "displaced_micromap_primitive_flags_stride", + &self.displaced_micromap_primitive_flags_stride, + ) + .field("index_type", &self.index_type) + .field("index_buffer", &"union") + .field("index_stride", &self.index_stride) + .field("base_triangle", &self.base_triangle) + .field("usage_counts_count", &self.usage_counts_count) + .field("p_usage_counts", &self.p_usage_counts) + .field("pp_usage_counts", &self.pp_usage_counts) + .field("micromap", &self.micromap) + .finish() + } +} +impl ::core::default::Default for AccelerationStructureTrianglesDisplacementMicromapNV<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + displacement_bias_and_scale_format: Format::default(), + displacement_vector_format: Format::default(), + displacement_bias_and_scale_buffer: DeviceOrHostAddressConstKHR::default(), + displacement_bias_and_scale_stride: DeviceSize::default(), + displacement_vector_buffer: DeviceOrHostAddressConstKHR::default(), + displacement_vector_stride: DeviceSize::default(), + displaced_micromap_primitive_flags: DeviceOrHostAddressConstKHR::default(), + displaced_micromap_primitive_flags_stride: DeviceSize::default(), + index_type: IndexType::default(), + index_buffer: DeviceOrHostAddressConstKHR::default(), + index_stride: DeviceSize::default(), + base_triangle: u32::default(), + usage_counts_count: u32::default(), + p_usage_counts: ::core::ptr::null(), + pp_usage_counts: ::core::ptr::null(), + micromap: MicromapEXT::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureTrianglesDisplacementMicromapNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV; +} +unsafe impl Extends> + for AccelerationStructureTrianglesDisplacementMicromapNV<'_> +{ +} +impl<'a> AccelerationStructureTrianglesDisplacementMicromapNV<'a> { + #[inline] + pub fn displacement_bias_and_scale_format( + mut self, + displacement_bias_and_scale_format: Format, + ) -> Self { + self.displacement_bias_and_scale_format = displacement_bias_and_scale_format; + self + } + #[inline] + pub fn displacement_vector_format(mut self, displacement_vector_format: Format) -> Self { + self.displacement_vector_format = displacement_vector_format; + self + } + #[inline] + pub fn displacement_bias_and_scale_buffer( + mut self, + displacement_bias_and_scale_buffer: DeviceOrHostAddressConstKHR, + ) -> Self { + self.displacement_bias_and_scale_buffer = displacement_bias_and_scale_buffer; + self + } + #[inline] + pub fn displacement_bias_and_scale_stride( + mut self, + displacement_bias_and_scale_stride: DeviceSize, + ) -> Self { + self.displacement_bias_and_scale_stride = displacement_bias_and_scale_stride; + self + } + #[inline] + pub fn displacement_vector_buffer( + mut self, + displacement_vector_buffer: DeviceOrHostAddressConstKHR, + ) -> Self { + self.displacement_vector_buffer = displacement_vector_buffer; + self + } + #[inline] + pub fn displacement_vector_stride(mut self, displacement_vector_stride: DeviceSize) -> Self { + self.displacement_vector_stride = displacement_vector_stride; + self + } + #[inline] + pub fn displaced_micromap_primitive_flags( + mut self, + displaced_micromap_primitive_flags: DeviceOrHostAddressConstKHR, + ) -> Self { + self.displaced_micromap_primitive_flags = displaced_micromap_primitive_flags; + self + } + #[inline] + pub fn displaced_micromap_primitive_flags_stride( + mut self, + displaced_micromap_primitive_flags_stride: DeviceSize, + ) -> Self { + self.displaced_micromap_primitive_flags_stride = displaced_micromap_primitive_flags_stride; + self + } + #[inline] + pub fn index_type(mut self, index_type: IndexType) -> Self { + self.index_type = index_type; + self + } + #[inline] + pub fn index_buffer(mut self, index_buffer: DeviceOrHostAddressConstKHR) -> Self { + self.index_buffer = index_buffer; + self + } + #[inline] + pub fn index_stride(mut self, index_stride: DeviceSize) -> Self { + self.index_stride = index_stride; + self + } + #[inline] + pub fn base_triangle(mut self, base_triangle: u32) -> Self { + self.base_triangle = base_triangle; + self + } + #[inline] + pub fn usage_counts(mut self, usage_counts: &'a [MicromapUsageEXT]) -> Self { + self.usage_counts_count = usage_counts.len() as _; + self.p_usage_counts = usage_counts.as_ptr(); + self + } + #[inline] + pub fn usage_counts_ptrs(mut self, usage_counts_ptrs: &'a [&'a MicromapUsageEXT]) -> Self { + self.usage_counts_count = usage_counts_ptrs.len() as _; + self.pp_usage_counts = usage_counts_ptrs.as_ptr().cast(); + self + } + #[inline] + pub fn micromap(mut self, micromap: MicromapEXT) -> Self { + self.micromap = micromap; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PipelinePropertiesIdentifierEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub pipeline_identifier: [u8; UUID_SIZE], + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PipelinePropertiesIdentifierEXT<'_> {} +unsafe impl Sync for PipelinePropertiesIdentifierEXT<'_> {} +impl ::core::default::Default for PipelinePropertiesIdentifierEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + pipeline_identifier: unsafe { ::core::mem::zeroed() }, + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PipelinePropertiesIdentifierEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_PROPERTIES_IDENTIFIER_EXT; +} +impl<'a> PipelinePropertiesIdentifierEXT<'a> { + #[inline] + pub fn pipeline_identifier(mut self, pipeline_identifier: [u8; UUID_SIZE]) -> Self { + self.pipeline_identifier = pipeline_identifier; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDevicePipelinePropertiesFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub pipeline_properties_identifier: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDevicePipelinePropertiesFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDevicePipelinePropertiesFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDevicePipelinePropertiesFeaturesEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + pipeline_properties_identifier: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelinePropertiesFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT; +} +unsafe impl Extends> + for PhysicalDevicePipelinePropertiesFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDevicePipelinePropertiesFeaturesEXT<'_> {} +impl<'a> PhysicalDevicePipelinePropertiesFeaturesEXT<'a> { + #[inline] + pub fn pipeline_properties_identifier(mut self, pipeline_properties_identifier: bool) -> Self { + self.pipeline_properties_identifier = pipeline_properties_identifier.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub shader_early_and_late_fragment_tests: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'_> {} +unsafe impl Sync for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + shader_early_and_late_fragment_tests: Bool32::default(), + _marker: PhantomData, + } + } +} +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 Extends> + for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'_> +{ +} +impl<'a> PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'a> { + #[inline] + pub fn shader_early_and_late_fragment_tests( + mut self, + shader_early_and_late_fragment_tests: bool, + ) -> Self { + self.shader_early_and_late_fragment_tests = shader_early_and_late_fragment_tests.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ExternalMemoryAcquireUnmodifiedEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub acquire_unmodified_memory: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ExternalMemoryAcquireUnmodifiedEXT<'_> {} +unsafe impl Sync for ExternalMemoryAcquireUnmodifiedEXT<'_> {} +impl ::core::default::Default for ExternalMemoryAcquireUnmodifiedEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + acquire_unmodified_memory: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for ExternalMemoryAcquireUnmodifiedEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT; +} +unsafe impl Extends> for ExternalMemoryAcquireUnmodifiedEXT<'_> {} +unsafe impl Extends> for ExternalMemoryAcquireUnmodifiedEXT<'_> {} +unsafe impl Extends> for ExternalMemoryAcquireUnmodifiedEXT<'_> {} +unsafe impl Extends> for ExternalMemoryAcquireUnmodifiedEXT<'_> {} +impl<'a> ExternalMemoryAcquireUnmodifiedEXT<'a> { + #[inline] + pub fn acquire_unmodified_memory(mut self, acquire_unmodified_memory: bool) -> Self { + self.acquire_unmodified_memory = acquire_unmodified_memory.into(); + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ExportMetalObjectCreateInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub export_object_type: ExportMetalObjectTypeFlagsEXT, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ExportMetalObjectCreateInfoEXT<'_> {} +unsafe impl Sync for ExportMetalObjectCreateInfoEXT<'_> {} +impl ::core::default::Default for ExportMetalObjectCreateInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + export_object_type: ExportMetalObjectTypeFlagsEXT::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for ExportMetalObjectCreateInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_OBJECT_CREATE_INFO_EXT; +} +unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} +impl<'a> ExportMetalObjectCreateInfoEXT<'a> { + #[inline] + pub fn export_object_type(mut self, export_object_type: ExportMetalObjectTypeFlagsEXT) -> Self { + self.export_object_type = export_object_type; + self + } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ExportMetalObjectsInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ExportMetalObjectsInfoEXT<'_> {} +unsafe impl Sync for ExportMetalObjectsInfoEXT<'_> {} +impl ::core::default::Default for ExportMetalObjectsInfoEXT<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for ExportMetalObjectsInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_OBJECTS_INFO_EXT; +} +impl<'a> ExportMetalObjectsInfoEXT<'a> {} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ExportMetalDeviceInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub mtl_device: MTLDevice_id, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ExportMetalDeviceInfoEXT<'_> {} +unsafe impl Sync for ExportMetalDeviceInfoEXT<'_> {} +impl ::core::default::Default for ExportMetalDeviceInfoEXT<'_> { #[inline] - pub fn integer_dot_product_accumulating_saturating64_bit_signed_accelerated( - mut self, - integer_dot_product_accumulating_saturating64_bit_signed_accelerated: bool, - ) -> Self { - self.integer_dot_product_accumulating_saturating64_bit_signed_accelerated = - integer_dot_product_accumulating_saturating64_bit_signed_accelerated.into(); - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + mtl_device: unsafe { ::core::mem::zeroed() }, + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for ExportMetalDeviceInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_DEVICE_INFO_EXT; +} +unsafe impl Extends> for ExportMetalDeviceInfoEXT<'_> {} +impl<'a> ExportMetalDeviceInfoEXT<'a> { #[inline] - pub fn integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated( - mut self, - integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated: bool, - ) -> Self { - self.integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated = - integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated.into(); + pub fn mtl_device(mut self, mtl_device: MTLDevice_id) -> Self { + self.mtl_device = mtl_device; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceDrmPropertiesEXT<'a> { +pub struct ExportMetalCommandQueueInfoEXT<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub has_primary: Bool32, - pub has_render: Bool32, - pub primary_major: i64, - pub primary_minor: i64, - pub render_major: i64, - pub render_minor: i64, + pub p_next: *const c_void, + pub queue: Queue, + pub mtl_command_queue: MTLCommandQueue_id, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceDrmPropertiesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceDrmPropertiesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceDrmPropertiesEXT<'_> { +unsafe impl Send for ExportMetalCommandQueueInfoEXT<'_> {} +unsafe impl Sync for ExportMetalCommandQueueInfoEXT<'_> {} +impl ::core::default::Default for ExportMetalCommandQueueInfoEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - has_primary: Bool32::default(), - has_render: Bool32::default(), - primary_major: i64::default(), - primary_minor: i64::default(), - render_major: i64::default(), - render_minor: i64::default(), + p_next: ::core::ptr::null(), + queue: Queue::default(), + mtl_command_queue: unsafe { ::core::mem::zeroed() }, _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDrmPropertiesEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DRM_PROPERTIES_EXT; +unsafe impl<'a> TaggedStructure<'a> for ExportMetalCommandQueueInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_COMMAND_QUEUE_INFO_EXT; } -unsafe impl Extends> for PhysicalDeviceDrmPropertiesEXT<'_> {} -impl<'a> PhysicalDeviceDrmPropertiesEXT<'a> { - #[inline] - pub fn has_primary(mut self, has_primary: bool) -> Self { - self.has_primary = has_primary.into(); - self - } +unsafe impl Extends> for ExportMetalCommandQueueInfoEXT<'_> {} +impl<'a> ExportMetalCommandQueueInfoEXT<'a> { #[inline] - pub fn has_render(mut self, has_render: bool) -> Self { - self.has_render = has_render.into(); + pub fn queue(mut self, queue: Queue) -> Self { + self.queue = queue; self } #[inline] - pub fn primary_major(mut self, primary_major: i64) -> Self { - self.primary_major = primary_major; + pub fn mtl_command_queue(mut self, mtl_command_queue: MTLCommandQueue_id) -> Self { + self.mtl_command_queue = mtl_command_queue; self } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct ExportMetalBufferInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub memory: DeviceMemory, + pub mtl_buffer: MTLBuffer_id, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ExportMetalBufferInfoEXT<'_> {} +unsafe impl Sync for ExportMetalBufferInfoEXT<'_> {} +impl ::core::default::Default for ExportMetalBufferInfoEXT<'_> { #[inline] - pub fn primary_minor(mut self, primary_minor: i64) -> Self { - self.primary_minor = primary_minor; - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + memory: DeviceMemory::default(), + mtl_buffer: unsafe { ::core::mem::zeroed() }, + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for ExportMetalBufferInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_BUFFER_INFO_EXT; +} +unsafe impl Extends> for ExportMetalBufferInfoEXT<'_> {} +impl<'a> ExportMetalBufferInfoEXT<'a> { #[inline] - pub fn render_major(mut self, render_major: i64) -> Self { - self.render_major = render_major; + pub fn memory(mut self, memory: DeviceMemory) -> Self { + self.memory = memory; self } #[inline] - pub fn render_minor(mut self, render_minor: i64) -> Self { - self.render_minor = render_minor; + pub fn mtl_buffer(mut self, mtl_buffer: MTLBuffer_id) -> Self { + self.mtl_buffer = mtl_buffer; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a> { +pub struct ImportMetalBufferInfoEXT<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub fragment_shader_barycentric: Bool32, + pub p_next: *const c_void, + pub mtl_buffer: MTLBuffer_id, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'_> { +unsafe impl Send for ImportMetalBufferInfoEXT<'_> {} +unsafe impl Sync for ImportMetalBufferInfoEXT<'_> {} +impl ::core::default::Default for ImportMetalBufferInfoEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - fragment_shader_barycentric: Bool32::default(), + p_next: ::core::ptr::null(), + mtl_buffer: unsafe { ::core::mem::zeroed() }, _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR; -} -unsafe impl Extends> - for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'_> -{ -} -unsafe impl Extends> - for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for ImportMetalBufferInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_BUFFER_INFO_EXT; } -impl<'a> PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a> { +unsafe impl Extends> for ImportMetalBufferInfoEXT<'_> {} +impl<'a> ImportMetalBufferInfoEXT<'a> { #[inline] - pub fn fragment_shader_barycentric(mut self, fragment_shader_barycentric: bool) -> Self { - self.fragment_shader_barycentric = fragment_shader_barycentric.into(); + pub fn mtl_buffer(mut self, mtl_buffer: MTLBuffer_id) -> Self { + self.mtl_buffer = mtl_buffer; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'a> { +pub struct ExportMetalTextureInfoEXT<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub tri_strip_vertex_order_independent_of_provoking_vertex: Bool32, + pub p_next: *const c_void, + pub image: Image, + pub image_view: ImageView, + pub buffer_view: BufferView, + pub plane: ImageAspectFlags, + pub mtl_texture: MTLTexture_id, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'_> { +unsafe impl Send for ExportMetalTextureInfoEXT<'_> {} +unsafe impl Sync for ExportMetalTextureInfoEXT<'_> {} +impl ::core::default::Default for ExportMetalTextureInfoEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - tri_strip_vertex_order_independent_of_provoking_vertex: Bool32::default(), + p_next: ::core::ptr::null(), + image: Image::default(), + image_view: ImageView::default(), + buffer_view: BufferView::default(), + plane: ImageAspectFlags::default(), + mtl_texture: unsafe { ::core::mem::zeroed() }, _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR; -} -unsafe impl Extends> - for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for ExportMetalTextureInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_TEXTURE_INFO_EXT; } -impl<'a> PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'a> { +unsafe impl Extends> for ExportMetalTextureInfoEXT<'_> {} +impl<'a> ExportMetalTextureInfoEXT<'a> { #[inline] - pub fn tri_strip_vertex_order_independent_of_provoking_vertex( - mut self, - tri_strip_vertex_order_independent_of_provoking_vertex: bool, - ) -> Self { - self.tri_strip_vertex_order_independent_of_provoking_vertex = - tri_strip_vertex_order_independent_of_provoking_vertex.into(); + pub fn image(mut self, image: Image) -> Self { + self.image = image; + self + } + #[inline] + pub fn image_view(mut self, image_view: ImageView) -> Self { + self.image_view = image_view; + self + } + #[inline] + pub fn buffer_view(mut self, buffer_view: BufferView) -> Self { + self.buffer_view = buffer_view; + self + } + #[inline] + pub fn plane(mut self, plane: ImageAspectFlags) -> Self { + self.plane = plane; + self + } + #[inline] + pub fn mtl_texture(mut self, mtl_texture: MTLTexture_id) -> Self { + self.mtl_texture = mtl_texture; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a> { +pub struct ImportMetalTextureInfoEXT<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub ray_tracing_motion_blur: Bool32, - pub ray_tracing_motion_blur_pipeline_trace_rays_indirect: Bool32, + pub p_next: *const c_void, + pub plane: ImageAspectFlags, + pub mtl_texture: MTLTexture_id, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'_> {} -unsafe impl Sync for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'_> { +unsafe impl Send for ImportMetalTextureInfoEXT<'_> {} +unsafe impl Sync for ImportMetalTextureInfoEXT<'_> {} +impl ::core::default::Default for ImportMetalTextureInfoEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - ray_tracing_motion_blur: Bool32::default(), - ray_tracing_motion_blur_pipeline_trace_rays_indirect: Bool32::default(), + p_next: ::core::ptr::null(), + plane: ImageAspectFlags::default(), + mtl_texture: unsafe { ::core::mem::zeroed() }, _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV; -} -unsafe impl Extends> - for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for ImportMetalTextureInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_TEXTURE_INFO_EXT; } -unsafe impl Extends> for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'_> {} -impl<'a> PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a> { +unsafe impl Extends> for ImportMetalTextureInfoEXT<'_> {} +impl<'a> ImportMetalTextureInfoEXT<'a> { #[inline] - pub fn ray_tracing_motion_blur(mut self, ray_tracing_motion_blur: bool) -> Self { - self.ray_tracing_motion_blur = ray_tracing_motion_blur.into(); + pub fn plane(mut self, plane: ImageAspectFlags) -> Self { + self.plane = plane; self } #[inline] - pub fn ray_tracing_motion_blur_pipeline_trace_rays_indirect( - mut self, - ray_tracing_motion_blur_pipeline_trace_rays_indirect: bool, - ) -> Self { - self.ray_tracing_motion_blur_pipeline_trace_rays_indirect = - ray_tracing_motion_blur_pipeline_trace_rays_indirect.into(); + pub fn mtl_texture(mut self, mtl_texture: MTLTexture_id) -> Self { + self.mtl_texture = mtl_texture; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceRayTracingValidationFeaturesNV<'a> { +pub struct ExportMetalIOSurfaceInfoEXT<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub ray_tracing_validation: Bool32, + pub p_next: *const c_void, + pub image: Image, + pub io_surface: IOSurfaceRef, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceRayTracingValidationFeaturesNV<'_> {} -unsafe impl Sync for PhysicalDeviceRayTracingValidationFeaturesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceRayTracingValidationFeaturesNV<'_> { +unsafe impl Send for ExportMetalIOSurfaceInfoEXT<'_> {} +unsafe impl Sync for ExportMetalIOSurfaceInfoEXT<'_> {} +impl ::core::default::Default for ExportMetalIOSurfaceInfoEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - ray_tracing_validation: Bool32::default(), + p_next: ::core::ptr::null(), + image: Image::default(), + io_surface: unsafe { ::core::mem::zeroed() }, _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingValidationFeaturesNV<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV; -} -unsafe impl Extends> - for PhysicalDeviceRayTracingValidationFeaturesNV<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for ExportMetalIOSurfaceInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_IO_SURFACE_INFO_EXT; } -unsafe impl Extends> for PhysicalDeviceRayTracingValidationFeaturesNV<'_> {} -impl<'a> PhysicalDeviceRayTracingValidationFeaturesNV<'a> { +unsafe impl Extends> for ExportMetalIOSurfaceInfoEXT<'_> {} +impl<'a> ExportMetalIOSurfaceInfoEXT<'a> { #[inline] - pub fn ray_tracing_validation(mut self, ray_tracing_validation: bool) -> Self { - self.ray_tracing_validation = ray_tracing_validation.into(); + pub fn image(mut self, image: Image) -> Self { + self.image = image; + self + } + #[inline] + pub fn io_surface(mut self, io_surface: IOSurfaceRef) -> Self { + self.io_surface = io_surface; self } } #[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct AccelerationStructureGeometryMotionTrianglesDataNV<'a> { +pub struct ImportMetalIOSurfaceInfoEXT<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub vertex_data: DeviceOrHostAddressConstKHR, + pub io_surface: IOSurfaceRef, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for AccelerationStructureGeometryMotionTrianglesDataNV<'_> {} -unsafe impl Sync for AccelerationStructureGeometryMotionTrianglesDataNV<'_> {} -#[cfg(feature = "debug")] -impl fmt::Debug for AccelerationStructureGeometryMotionTrianglesDataNV<'_> { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("AccelerationStructureGeometryMotionTrianglesDataNV") - .field("s_type", &self.s_type) - .field("p_next", &self.p_next) - .field("vertex_data", &"union") - .finish() - } -} -impl ::core::default::Default for AccelerationStructureGeometryMotionTrianglesDataNV<'_> { +unsafe impl Send for ImportMetalIOSurfaceInfoEXT<'_> {} +unsafe impl Sync for ImportMetalIOSurfaceInfoEXT<'_> {} +impl ::core::default::Default for ImportMetalIOSurfaceInfoEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - vertex_data: DeviceOrHostAddressConstKHR::default(), + io_surface: unsafe { ::core::mem::zeroed() }, _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureGeometryMotionTrianglesDataNV<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV; -} -unsafe impl Extends> - for AccelerationStructureGeometryMotionTrianglesDataNV<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for ImportMetalIOSurfaceInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_IO_SURFACE_INFO_EXT; } -impl<'a> AccelerationStructureGeometryMotionTrianglesDataNV<'a> { +unsafe impl Extends> for ImportMetalIOSurfaceInfoEXT<'_> {} +impl<'a> ImportMetalIOSurfaceInfoEXT<'a> { #[inline] - pub fn vertex_data(mut self, vertex_data: DeviceOrHostAddressConstKHR) -> Self { - self.vertex_data = vertex_data; + pub fn io_surface(mut self, io_surface: IOSurfaceRef) -> Self { + self.io_surface = io_surface; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct AccelerationStructureMotionInfoNV<'a> { +pub struct ExportMetalSharedEventInfoEXT<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub max_instances: u32, - pub flags: AccelerationStructureMotionInfoFlagsNV, + pub semaphore: Semaphore, + pub event: Event, + pub mtl_shared_event: MTLSharedEvent_id, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for AccelerationStructureMotionInfoNV<'_> {} -unsafe impl Sync for AccelerationStructureMotionInfoNV<'_> {} -impl ::core::default::Default for AccelerationStructureMotionInfoNV<'_> { +unsafe impl Send for ExportMetalSharedEventInfoEXT<'_> {} +unsafe impl Sync for ExportMetalSharedEventInfoEXT<'_> {} +impl ::core::default::Default for ExportMetalSharedEventInfoEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - max_instances: u32::default(), - flags: AccelerationStructureMotionInfoFlagsNV::default(), + semaphore: Semaphore::default(), + event: Event::default(), + mtl_shared_event: unsafe { ::core::mem::zeroed() }, _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureMotionInfoNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_MOTION_INFO_NV; -} -unsafe impl Extends> - for AccelerationStructureMotionInfoNV<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for ExportMetalSharedEventInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_SHARED_EVENT_INFO_EXT; } -impl<'a> AccelerationStructureMotionInfoNV<'a> { +unsafe impl Extends> for ExportMetalSharedEventInfoEXT<'_> {} +impl<'a> ExportMetalSharedEventInfoEXT<'a> { #[inline] - pub fn max_instances(mut self, max_instances: u32) -> Self { - self.max_instances = max_instances; + pub fn semaphore(mut self, semaphore: Semaphore) -> Self { + self.semaphore = semaphore; self } #[inline] - pub fn flags(mut self, flags: AccelerationStructureMotionInfoFlagsNV) -> Self { - self.flags = flags; + pub fn event(mut self, event: Event) -> Self { + self.event = event; + self + } + #[inline] + pub fn mtl_shared_event(mut self, mtl_shared_event: MTLSharedEvent_id) -> Self { + self.mtl_shared_event = mtl_shared_event; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone, Default)] -#[doc = ""] +#[derive(Copy, Clone)] +#[doc = ""] #[must_use] -pub struct SRTDataNV { - pub sx: f32, - pub a: f32, - pub b: f32, - pub pvx: f32, - pub sy: f32, - pub c: f32, - pub pvy: f32, - pub sz: f32, - pub pvz: f32, - pub qx: f32, - pub qy: f32, - pub qz: f32, - pub qw: f32, - pub tx: f32, - pub ty: f32, - pub tz: f32, +pub struct ImportMetalSharedEventInfoEXT<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub mtl_shared_event: MTLSharedEvent_id, + pub _marker: PhantomData<&'a ()>, } -impl SRTDataNV { +unsafe impl Send for ImportMetalSharedEventInfoEXT<'_> {} +unsafe impl Sync for ImportMetalSharedEventInfoEXT<'_> {} +impl ::core::default::Default for ImportMetalSharedEventInfoEXT<'_> { #[inline] - pub fn sx(mut self, sx: f32) -> Self { - self.sx = sx; - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + mtl_shared_event: unsafe { ::core::mem::zeroed() }, + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for ImportMetalSharedEventInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_SHARED_EVENT_INFO_EXT; +} +unsafe impl Extends> for ImportMetalSharedEventInfoEXT<'_> {} +unsafe impl Extends> for ImportMetalSharedEventInfoEXT<'_> {} +impl<'a> ImportMetalSharedEventInfoEXT<'a> { #[inline] - pub fn a(mut self, a: f32) -> Self { - self.a = a; + pub fn mtl_shared_event(mut self, mtl_shared_event: MTLSharedEvent_id) -> Self { + self.mtl_shared_event = mtl_shared_event; self } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub non_seamless_cube_map: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'_> { #[inline] - pub fn b(mut self, b: f32) -> Self { - self.b = b; - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + non_seamless_cube_map: Bool32::default(), + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT; +} +unsafe impl Extends> + for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a> { #[inline] - pub fn pvx(mut self, pvx: f32) -> Self { - self.pvx = pvx; + pub fn non_seamless_cube_map(mut self, non_seamless_cube_map: bool) -> Self { + self.non_seamless_cube_map = non_seamless_cube_map.into(); self } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDevicePipelineRobustnessFeatures<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub pipeline_robustness: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDevicePipelineRobustnessFeatures<'_> {} +unsafe impl Sync for PhysicalDevicePipelineRobustnessFeatures<'_> {} +impl ::core::default::Default for PhysicalDevicePipelineRobustnessFeatures<'_> { #[inline] - pub fn sy(mut self, sy: f32) -> Self { - self.sy = sy; - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + pipeline_robustness: Bool32::default(), + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineRobustnessFeatures<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES; +} +unsafe impl Extends> for PhysicalDevicePipelineRobustnessFeatures<'_> {} +unsafe impl Extends> for PhysicalDevicePipelineRobustnessFeatures<'_> {} +impl<'a> PhysicalDevicePipelineRobustnessFeatures<'a> { #[inline] - pub fn c(mut self, c: f32) -> Self { - self.c = c; + pub fn pipeline_robustness(mut self, pipeline_robustness: bool) -> Self { + self.pipeline_robustness = pipeline_robustness.into(); self } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PipelineRobustnessCreateInfo<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub storage_buffers: PipelineRobustnessBufferBehavior, + pub uniform_buffers: PipelineRobustnessBufferBehavior, + pub vertex_inputs: PipelineRobustnessBufferBehavior, + pub images: PipelineRobustnessImageBehavior, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PipelineRobustnessCreateInfo<'_> {} +unsafe impl Sync for PipelineRobustnessCreateInfo<'_> {} +impl ::core::default::Default for PipelineRobustnessCreateInfo<'_> { #[inline] - pub fn pvy(mut self, pvy: f32) -> Self { - self.pvy = pvy; - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + storage_buffers: PipelineRobustnessBufferBehavior::default(), + uniform_buffers: PipelineRobustnessBufferBehavior::default(), + vertex_inputs: PipelineRobustnessBufferBehavior::default(), + images: PipelineRobustnessImageBehavior::default(), + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for PipelineRobustnessCreateInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_ROBUSTNESS_CREATE_INFO; +} +unsafe impl Extends> for PipelineRobustnessCreateInfo<'_> {} +unsafe impl Extends> for PipelineRobustnessCreateInfo<'_> {} +unsafe impl Extends> for PipelineRobustnessCreateInfo<'_> {} +unsafe impl Extends> for PipelineRobustnessCreateInfo<'_> {} +impl<'a> PipelineRobustnessCreateInfo<'a> { #[inline] - pub fn sz(mut self, sz: f32) -> Self { - self.sz = sz; + pub fn storage_buffers(mut self, storage_buffers: PipelineRobustnessBufferBehavior) -> Self { + self.storage_buffers = storage_buffers; self } #[inline] - pub fn pvz(mut self, pvz: f32) -> Self { - self.pvz = pvz; + pub fn uniform_buffers(mut self, uniform_buffers: PipelineRobustnessBufferBehavior) -> Self { + self.uniform_buffers = uniform_buffers; self } #[inline] - pub fn qx(mut self, qx: f32) -> Self { - self.qx = qx; + pub fn vertex_inputs(mut self, vertex_inputs: PipelineRobustnessBufferBehavior) -> Self { + self.vertex_inputs = vertex_inputs; self } #[inline] - pub fn qy(mut self, qy: f32) -> Self { - self.qy = qy; + pub fn images(mut self, images: PipelineRobustnessImageBehavior) -> Self { + self.images = images; self } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDevicePipelineRobustnessProperties<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub default_robustness_storage_buffers: PipelineRobustnessBufferBehavior, + pub default_robustness_uniform_buffers: PipelineRobustnessBufferBehavior, + pub default_robustness_vertex_inputs: PipelineRobustnessBufferBehavior, + pub default_robustness_images: PipelineRobustnessImageBehavior, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDevicePipelineRobustnessProperties<'_> {} +unsafe impl Sync for PhysicalDevicePipelineRobustnessProperties<'_> {} +impl ::core::default::Default for PhysicalDevicePipelineRobustnessProperties<'_> { #[inline] - pub fn qz(mut self, qz: f32) -> Self { - self.qz = qz; - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + default_robustness_storage_buffers: PipelineRobustnessBufferBehavior::default(), + default_robustness_uniform_buffers: PipelineRobustnessBufferBehavior::default(), + default_robustness_vertex_inputs: PipelineRobustnessBufferBehavior::default(), + default_robustness_images: PipelineRobustnessImageBehavior::default(), + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineRobustnessProperties<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES; +} +unsafe impl Extends> + for PhysicalDevicePipelineRobustnessProperties<'_> +{ +} +impl<'a> PhysicalDevicePipelineRobustnessProperties<'a> { #[inline] - pub fn qw(mut self, qw: f32) -> Self { - self.qw = qw; + pub fn default_robustness_storage_buffers( + mut self, + default_robustness_storage_buffers: PipelineRobustnessBufferBehavior, + ) -> Self { + self.default_robustness_storage_buffers = default_robustness_storage_buffers; self } #[inline] - pub fn tx(mut self, tx: f32) -> Self { - self.tx = tx; + pub fn default_robustness_uniform_buffers( + mut self, + default_robustness_uniform_buffers: PipelineRobustnessBufferBehavior, + ) -> Self { + self.default_robustness_uniform_buffers = default_robustness_uniform_buffers; self } #[inline] - pub fn ty(mut self, ty: f32) -> Self { - self.ty = ty; + pub fn default_robustness_vertex_inputs( + mut self, + default_robustness_vertex_inputs: PipelineRobustnessBufferBehavior, + ) -> Self { + self.default_robustness_vertex_inputs = default_robustness_vertex_inputs; self } #[inline] - pub fn tz(mut self, tz: f32) -> Self { - self.tz = tz; + pub fn default_robustness_images( + mut self, + default_robustness_images: PipelineRobustnessImageBehavior, + ) -> Self { + self.default_robustness_images = default_robustness_images; self } } #[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] -pub struct AccelerationStructureSRTMotionInstanceNV { - pub transform_t0: SRTDataNV, - pub transform_t1: SRTDataNV, - #[doc = r" Use [`Packed24_8::new(instance_custom_index, mask)`][Packed24_8::new()] to construct this field"] - pub instance_custom_index_and_mask: Packed24_8, - #[doc = r" Use [`Packed24_8::new(instance_shader_binding_table_record_offset, flags)`][Packed24_8::new()] to construct this field"] - pub instance_shader_binding_table_record_offset_and_flags: Packed24_8, - pub acceleration_structure_reference: AccelerationStructureReferenceKHR, -} -#[repr(C)] -#[derive(Copy, Clone)] -#[doc = ""] -pub struct AccelerationStructureMatrixMotionInstanceNV { - pub transform_t0: TransformMatrixKHR, - pub transform_t1: TransformMatrixKHR, - #[doc = r" Use [`Packed24_8::new(instance_custom_index, mask)`][Packed24_8::new()] to construct this field"] - pub instance_custom_index_and_mask: Packed24_8, - #[doc = r" Use [`Packed24_8::new(instance_shader_binding_table_record_offset, flags)`][Packed24_8::new()] to construct this field"] - pub instance_shader_binding_table_record_offset_and_flags: Packed24_8, - pub acceleration_structure_reference: AccelerationStructureReferenceKHR, -} -#[repr(C)] -#[derive(Copy, Clone)] -#[doc = ""] -pub union AccelerationStructureMotionInstanceDataNV { - pub static_instance: AccelerationStructureInstanceKHR, - pub matrix_motion_instance: AccelerationStructureMatrixMotionInstanceNV, - pub srt_motion_instance: AccelerationStructureSRTMotionInstanceNV, +#[doc = ""] +#[must_use] +pub struct ImageViewSampleWeightCreateInfoQCOM<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub filter_center: Offset2D, + pub filter_size: Extent2D, + pub num_phases: u32, + pub _marker: PhantomData<&'a ()>, } -impl ::core::default::Default for AccelerationStructureMotionInstanceDataNV { +unsafe impl Send for ImageViewSampleWeightCreateInfoQCOM<'_> {} +unsafe impl Sync for ImageViewSampleWeightCreateInfoQCOM<'_> {} +impl ::core::default::Default for ImageViewSampleWeightCreateInfoQCOM<'_> { #[inline] fn default() -> Self { - unsafe { ::core::mem::zeroed() } + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + filter_center: Offset2D::default(), + filter_size: Extent2D::default(), + num_phases: u32::default(), + _marker: PhantomData, + } } } -#[repr(C)] -#[derive(Copy, Clone, Default)] -#[doc = ""] -#[must_use] -pub struct AccelerationStructureMotionInstanceNV { - pub ty: AccelerationStructureMotionInstanceTypeNV, - pub flags: AccelerationStructureMotionInstanceFlagsNV, - pub data: AccelerationStructureMotionInstanceDataNV, -} -#[cfg(feature = "debug")] -impl fmt::Debug for AccelerationStructureMotionInstanceNV { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("AccelerationStructureMotionInstanceNV") - .field("ty", &self.ty) - .field("flags", &self.flags) - .field("data", &"union") - .finish() - } +unsafe impl<'a> TaggedStructure<'a> for ImageViewSampleWeightCreateInfoQCOM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM; } -impl AccelerationStructureMotionInstanceNV { +unsafe impl Extends> for ImageViewSampleWeightCreateInfoQCOM<'_> {} +impl<'a> ImageViewSampleWeightCreateInfoQCOM<'a> { #[inline] - pub fn ty(mut self, ty: AccelerationStructureMotionInstanceTypeNV) -> Self { - self.ty = ty; + pub fn filter_center(mut self, filter_center: Offset2D) -> Self { + self.filter_center = filter_center; self } #[inline] - pub fn flags(mut self, flags: AccelerationStructureMotionInstanceFlagsNV) -> Self { - self.flags = flags; + pub fn filter_size(mut self, filter_size: Extent2D) -> Self { + self.filter_size = filter_size; self } #[inline] - pub fn data(mut self, data: AccelerationStructureMotionInstanceDataNV) -> Self { - self.data = data; + pub fn num_phases(mut self, num_phases: u32) -> Self { + self.num_phases = num_phases; self } } -#[doc = ""] -pub type RemoteAddressNV = c_void; #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct MemoryGetRemoteAddressInfoNV<'a> { +pub struct PhysicalDeviceImageProcessingFeaturesQCOM<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub memory: DeviceMemory, - pub handle_type: ExternalMemoryHandleTypeFlags, + pub p_next: *mut c_void, + pub texture_sample_weighted: Bool32, + pub texture_box_filter: Bool32, + pub texture_block_match: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for MemoryGetRemoteAddressInfoNV<'_> {} -unsafe impl Sync for MemoryGetRemoteAddressInfoNV<'_> {} -impl ::core::default::Default for MemoryGetRemoteAddressInfoNV<'_> { +unsafe impl Send for PhysicalDeviceImageProcessingFeaturesQCOM<'_> {} +unsafe impl Sync for PhysicalDeviceImageProcessingFeaturesQCOM<'_> {} +impl ::core::default::Default for PhysicalDeviceImageProcessingFeaturesQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - memory: DeviceMemory::default(), - handle_type: ExternalMemoryHandleTypeFlags::default(), + p_next: ::core::ptr::null_mut(), + texture_sample_weighted: Bool32::default(), + texture_box_filter: Bool32::default(), + texture_block_match: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for MemoryGetRemoteAddressInfoNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_GET_REMOTE_ADDRESS_INFO_NV; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageProcessingFeaturesQCOM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM; } -impl<'a> MemoryGetRemoteAddressInfoNV<'a> { +unsafe impl Extends> for PhysicalDeviceImageProcessingFeaturesQCOM<'_> {} +unsafe impl Extends> for PhysicalDeviceImageProcessingFeaturesQCOM<'_> {} +impl<'a> PhysicalDeviceImageProcessingFeaturesQCOM<'a> { #[inline] - pub fn memory(mut self, memory: DeviceMemory) -> Self { - self.memory = memory; + pub fn texture_sample_weighted(mut self, texture_sample_weighted: bool) -> Self { + self.texture_sample_weighted = texture_sample_weighted.into(); self } #[inline] - pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { - self.handle_type = handle_type; + pub fn texture_box_filter(mut self, texture_box_filter: bool) -> Self { + self.texture_box_filter = texture_box_filter.into(); + self + } + #[inline] + pub fn texture_block_match(mut self, texture_block_match: bool) -> Self { + self.texture_block_match = texture_block_match.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ImportMemoryBufferCollectionFUCHSIA<'a> { +pub struct PhysicalDeviceImageProcessingPropertiesQCOM<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub collection: BufferCollectionFUCHSIA, - pub index: u32, + pub p_next: *mut c_void, + pub max_weight_filter_phases: u32, + pub max_weight_filter_dimension: Extent2D, + pub max_block_match_region: Extent2D, + pub max_box_filter_block_size: Extent2D, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ImportMemoryBufferCollectionFUCHSIA<'_> {} -unsafe impl Sync for ImportMemoryBufferCollectionFUCHSIA<'_> {} -impl ::core::default::Default for ImportMemoryBufferCollectionFUCHSIA<'_> { +unsafe impl Send for PhysicalDeviceImageProcessingPropertiesQCOM<'_> {} +unsafe impl Sync for PhysicalDeviceImageProcessingPropertiesQCOM<'_> {} +impl ::core::default::Default for PhysicalDeviceImageProcessingPropertiesQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - collection: BufferCollectionFUCHSIA::default(), - index: u32::default(), + p_next: ::core::ptr::null_mut(), + max_weight_filter_phases: u32::default(), + max_weight_filter_dimension: Extent2D::default(), + max_block_match_region: Extent2D::default(), + max_box_filter_block_size: Extent2D::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ImportMemoryBufferCollectionFUCHSIA<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageProcessingPropertiesQCOM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM; } -unsafe impl Extends> for ImportMemoryBufferCollectionFUCHSIA<'_> {} -impl<'a> ImportMemoryBufferCollectionFUCHSIA<'a> { +unsafe impl Extends> + for PhysicalDeviceImageProcessingPropertiesQCOM<'_> +{ +} +impl<'a> PhysicalDeviceImageProcessingPropertiesQCOM<'a> { #[inline] - pub fn collection(mut self, collection: BufferCollectionFUCHSIA) -> Self { - self.collection = collection; + pub fn max_weight_filter_phases(mut self, max_weight_filter_phases: u32) -> Self { + self.max_weight_filter_phases = max_weight_filter_phases; self } #[inline] - pub fn index(mut self, index: u32) -> Self { - self.index = index; + pub fn max_weight_filter_dimension(mut self, max_weight_filter_dimension: Extent2D) -> Self { + self.max_weight_filter_dimension = max_weight_filter_dimension; + self + } + #[inline] + pub fn max_block_match_region(mut self, max_block_match_region: Extent2D) -> Self { + self.max_block_match_region = max_block_match_region; + self + } + #[inline] + pub fn max_box_filter_block_size(mut self, max_box_filter_block_size: Extent2D) -> Self { + self.max_box_filter_block_size = max_box_filter_block_size; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct BufferCollectionImageCreateInfoFUCHSIA<'a> { +pub struct PhysicalDeviceTilePropertiesFeaturesQCOM<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub collection: BufferCollectionFUCHSIA, - pub index: u32, + pub p_next: *mut c_void, + pub tile_properties: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for BufferCollectionImageCreateInfoFUCHSIA<'_> {} -unsafe impl Sync for BufferCollectionImageCreateInfoFUCHSIA<'_> {} -impl ::core::default::Default for BufferCollectionImageCreateInfoFUCHSIA<'_> { +unsafe impl Send for PhysicalDeviceTilePropertiesFeaturesQCOM<'_> {} +unsafe impl Sync for PhysicalDeviceTilePropertiesFeaturesQCOM<'_> {} +impl ::core::default::Default for PhysicalDeviceTilePropertiesFeaturesQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - collection: BufferCollectionFUCHSIA::default(), - index: u32::default(), + p_next: ::core::ptr::null_mut(), + tile_properties: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for BufferCollectionImageCreateInfoFUCHSIA<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceTilePropertiesFeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA; + StructureType::PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM; } -unsafe impl Extends> for BufferCollectionImageCreateInfoFUCHSIA<'_> {} -impl<'a> BufferCollectionImageCreateInfoFUCHSIA<'a> { - #[inline] - pub fn collection(mut self, collection: BufferCollectionFUCHSIA) -> Self { - self.collection = collection; - self - } +unsafe impl Extends> for PhysicalDeviceTilePropertiesFeaturesQCOM<'_> {} +unsafe impl Extends> for PhysicalDeviceTilePropertiesFeaturesQCOM<'_> {} +impl<'a> PhysicalDeviceTilePropertiesFeaturesQCOM<'a> { #[inline] - pub fn index(mut self, index: u32) -> Self { - self.index = index; + pub fn tile_properties(mut self, tile_properties: bool) -> Self { + self.tile_properties = tile_properties.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct BufferCollectionBufferCreateInfoFUCHSIA<'a> { +pub struct TilePropertiesQCOM<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub collection: BufferCollectionFUCHSIA, - pub index: u32, + pub p_next: *mut c_void, + pub tile_size: Extent3D, + pub apron_size: Extent2D, + pub origin: Offset2D, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for BufferCollectionBufferCreateInfoFUCHSIA<'_> {} -unsafe impl Sync for BufferCollectionBufferCreateInfoFUCHSIA<'_> {} -impl ::core::default::Default for BufferCollectionBufferCreateInfoFUCHSIA<'_> { +unsafe impl Send for TilePropertiesQCOM<'_> {} +unsafe impl Sync for TilePropertiesQCOM<'_> {} +impl ::core::default::Default for TilePropertiesQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - collection: BufferCollectionFUCHSIA::default(), - index: u32::default(), + p_next: ::core::ptr::null_mut(), + tile_size: Extent3D::default(), + apron_size: Extent2D::default(), + origin: Offset2D::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for BufferCollectionBufferCreateInfoFUCHSIA<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA; +unsafe impl<'a> TaggedStructure<'a> for TilePropertiesQCOM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::TILE_PROPERTIES_QCOM; } -unsafe impl Extends> for BufferCollectionBufferCreateInfoFUCHSIA<'_> {} -impl<'a> BufferCollectionBufferCreateInfoFUCHSIA<'a> { +impl<'a> TilePropertiesQCOM<'a> { #[inline] - pub fn collection(mut self, collection: BufferCollectionFUCHSIA) -> Self { - self.collection = collection; + pub fn tile_size(mut self, tile_size: Extent3D) -> Self { + self.tile_size = tile_size; self } #[inline] - pub fn index(mut self, index: u32) -> Self { - self.index = index; + pub fn apron_size(mut self, apron_size: Extent2D) -> Self { + self.apron_size = apron_size; + self + } + #[inline] + pub fn origin(mut self, origin: Offset2D) -> Self { + self.origin = origin; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct BufferCollectionCreateInfoFUCHSIA<'a> { +pub struct TileMemoryBindInfoQCOM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub collection_token: zx_handle_t, + pub memory: DeviceMemory, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for BufferCollectionCreateInfoFUCHSIA<'_> {} -unsafe impl Sync for BufferCollectionCreateInfoFUCHSIA<'_> {} -impl ::core::default::Default for BufferCollectionCreateInfoFUCHSIA<'_> { +unsafe impl Send for TileMemoryBindInfoQCOM<'_> {} +unsafe impl Sync for TileMemoryBindInfoQCOM<'_> {} +impl ::core::default::Default for TileMemoryBindInfoQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - collection_token: zx_handle_t::default(), + memory: DeviceMemory::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for BufferCollectionCreateInfoFUCHSIA<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_COLLECTION_CREATE_INFO_FUCHSIA; +unsafe impl<'a> TaggedStructure<'a> for TileMemoryBindInfoQCOM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::TILE_MEMORY_BIND_INFO_QCOM; } -impl<'a> BufferCollectionCreateInfoFUCHSIA<'a> { +unsafe impl Extends> for TileMemoryBindInfoQCOM<'_> {} +impl<'a> TileMemoryBindInfoQCOM<'a> { #[inline] - pub fn collection_token(mut self, collection_token: zx_handle_t) -> Self { - self.collection_token = collection_token; + pub fn memory(mut self, memory: DeviceMemory) -> Self { + self.memory = memory; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct BufferCollectionPropertiesFUCHSIA<'a> { +pub struct PhysicalDeviceAmigoProfilingFeaturesSEC<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub memory_type_bits: u32, - pub buffer_count: u32, - pub create_info_index: u32, - pub sysmem_pixel_format: u64, - pub format_features: FormatFeatureFlags, - pub sysmem_color_space_index: SysmemColorSpaceFUCHSIA<'a>, - pub sampler_ycbcr_conversion_components: ComponentMapping, - pub suggested_ycbcr_model: SamplerYcbcrModelConversion, - pub suggested_ycbcr_range: SamplerYcbcrRange, - pub suggested_x_chroma_offset: ChromaLocation, - pub suggested_y_chroma_offset: ChromaLocation, + pub amigo_profiling: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for BufferCollectionPropertiesFUCHSIA<'_> {} -unsafe impl Sync for BufferCollectionPropertiesFUCHSIA<'_> {} -impl ::core::default::Default for BufferCollectionPropertiesFUCHSIA<'_> { +unsafe impl Send for PhysicalDeviceAmigoProfilingFeaturesSEC<'_> {} +unsafe impl Sync for PhysicalDeviceAmigoProfilingFeaturesSEC<'_> {} +impl ::core::default::Default for PhysicalDeviceAmigoProfilingFeaturesSEC<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - memory_type_bits: u32::default(), - buffer_count: u32::default(), - create_info_index: u32::default(), - sysmem_pixel_format: u64::default(), - format_features: FormatFeatureFlags::default(), - sysmem_color_space_index: SysmemColorSpaceFUCHSIA::default(), - sampler_ycbcr_conversion_components: ComponentMapping::default(), - suggested_ycbcr_model: SamplerYcbcrModelConversion::default(), - suggested_ycbcr_range: SamplerYcbcrRange::default(), - suggested_x_chroma_offset: ChromaLocation::default(), - suggested_y_chroma_offset: ChromaLocation::default(), + amigo_profiling: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for BufferCollectionPropertiesFUCHSIA<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_COLLECTION_PROPERTIES_FUCHSIA; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceAmigoProfilingFeaturesSEC<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC; } -impl<'a> BufferCollectionPropertiesFUCHSIA<'a> { - #[inline] - pub fn memory_type_bits(mut self, memory_type_bits: u32) -> Self { - self.memory_type_bits = memory_type_bits; - self - } - #[inline] - pub fn buffer_count(mut self, buffer_count: u32) -> Self { - self.buffer_count = buffer_count; - self - } +unsafe impl Extends> for PhysicalDeviceAmigoProfilingFeaturesSEC<'_> {} +unsafe impl Extends> for PhysicalDeviceAmigoProfilingFeaturesSEC<'_> {} +impl<'a> PhysicalDeviceAmigoProfilingFeaturesSEC<'a> { #[inline] - pub fn create_info_index(mut self, create_info_index: u32) -> Self { - self.create_info_index = create_info_index; + pub fn amigo_profiling(mut self, amigo_profiling: bool) -> Self { + self.amigo_profiling = amigo_profiling.into(); self } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct AmigoProfilingSubmitInfoSEC<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub first_draw_timestamp: u64, + pub swap_buffer_timestamp: u64, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for AmigoProfilingSubmitInfoSEC<'_> {} +unsafe impl Sync for AmigoProfilingSubmitInfoSEC<'_> {} +impl ::core::default::Default for AmigoProfilingSubmitInfoSEC<'_> { #[inline] - pub fn sysmem_pixel_format(mut self, sysmem_pixel_format: u64) -> Self { - self.sysmem_pixel_format = sysmem_pixel_format; - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + first_draw_timestamp: u64::default(), + swap_buffer_timestamp: u64::default(), + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for AmigoProfilingSubmitInfoSEC<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::AMIGO_PROFILING_SUBMIT_INFO_SEC; +} +unsafe impl Extends> for AmigoProfilingSubmitInfoSEC<'_> {} +impl<'a> AmigoProfilingSubmitInfoSEC<'a> { #[inline] - pub fn format_features(mut self, format_features: FormatFeatureFlags) -> Self { - self.format_features = format_features; + pub fn first_draw_timestamp(mut self, first_draw_timestamp: u64) -> Self { + self.first_draw_timestamp = first_draw_timestamp; self } #[inline] - pub fn sysmem_color_space_index( - mut self, - sysmem_color_space_index: SysmemColorSpaceFUCHSIA<'a>, - ) -> Self { - self.sysmem_color_space_index = sysmem_color_space_index; + pub fn swap_buffer_timestamp(mut self, swap_buffer_timestamp: u64) -> Self { + self.swap_buffer_timestamp = swap_buffer_timestamp; self } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub attachment_feedback_loop_layout: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'_> { #[inline] - pub fn sampler_ycbcr_conversion_components( - mut self, - sampler_ycbcr_conversion_components: ComponentMapping, - ) -> Self { - self.sampler_ycbcr_conversion_components = sampler_ycbcr_conversion_components; - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + attachment_feedback_loop_layout: Bool32::default(), + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT; +} +unsafe impl Extends> + for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'_> +{ +} +impl<'a> PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'a> { #[inline] - pub fn suggested_ycbcr_model( + pub fn attachment_feedback_loop_layout( mut self, - suggested_ycbcr_model: SamplerYcbcrModelConversion, + attachment_feedback_loop_layout: bool, ) -> Self { - self.suggested_ycbcr_model = suggested_ycbcr_model; - self - } - #[inline] - pub fn suggested_ycbcr_range(mut self, suggested_ycbcr_range: SamplerYcbcrRange) -> Self { - self.suggested_ycbcr_range = suggested_ycbcr_range; - self - } - #[inline] - pub fn suggested_x_chroma_offset(mut self, suggested_x_chroma_offset: ChromaLocation) -> Self { - self.suggested_x_chroma_offset = suggested_x_chroma_offset; - self - } - #[inline] - pub fn suggested_y_chroma_offset(mut self, suggested_y_chroma_offset: ChromaLocation) -> Self { - self.suggested_y_chroma_offset = suggested_y_chroma_offset; + self.attachment_feedback_loop_layout = attachment_feedback_loop_layout.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct BufferConstraintsInfoFUCHSIA<'a> { +pub struct AttachmentFeedbackLoopInfoEXT<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub create_info: BufferCreateInfo<'a>, - pub required_format_features: FormatFeatureFlags, - pub buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA<'a>, + pub feedback_loop_enable: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for BufferConstraintsInfoFUCHSIA<'_> {} -unsafe impl Sync for BufferConstraintsInfoFUCHSIA<'_> {} -impl ::core::default::Default for BufferConstraintsInfoFUCHSIA<'_> { +unsafe impl Send for AttachmentFeedbackLoopInfoEXT<'_> {} +unsafe impl Sync for AttachmentFeedbackLoopInfoEXT<'_> {} +impl ::core::default::Default for AttachmentFeedbackLoopInfoEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - create_info: BufferCreateInfo::default(), - required_format_features: FormatFeatureFlags::default(), - buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA::default(), + feedback_loop_enable: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for BufferConstraintsInfoFUCHSIA<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_CONSTRAINTS_INFO_FUCHSIA; +unsafe impl<'a> TaggedStructure<'a> for AttachmentFeedbackLoopInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_FEEDBACK_LOOP_INFO_EXT; } -impl<'a> BufferConstraintsInfoFUCHSIA<'a> { - #[inline] - pub fn create_info(mut self, create_info: BufferCreateInfo<'a>) -> Self { - self.create_info = create_info; - self - } - #[inline] - pub fn required_format_features( - mut self, - required_format_features: FormatFeatureFlags, - ) -> Self { - self.required_format_features = required_format_features; - self - } +unsafe impl Extends> for AttachmentFeedbackLoopInfoEXT<'_> {} +impl<'a> AttachmentFeedbackLoopInfoEXT<'a> { #[inline] - pub fn buffer_collection_constraints( - mut self, - buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA<'a>, - ) -> Self { - self.buffer_collection_constraints = buffer_collection_constraints; + pub fn feedback_loop_enable(mut self, feedback_loop_enable: bool) -> Self { + self.feedback_loop_enable = feedback_loop_enable.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct SysmemColorSpaceFUCHSIA<'a> { +pub struct PhysicalDeviceAddressBindingReportFeaturesEXT<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub color_space: u32, + pub p_next: *mut c_void, + pub report_address_binding: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for SysmemColorSpaceFUCHSIA<'_> {} -unsafe impl Sync for SysmemColorSpaceFUCHSIA<'_> {} -impl ::core::default::Default for SysmemColorSpaceFUCHSIA<'_> { +unsafe impl Send for PhysicalDeviceAddressBindingReportFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceAddressBindingReportFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceAddressBindingReportFeaturesEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - color_space: u32::default(), + p_next: ::core::ptr::null_mut(), + report_address_binding: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for SysmemColorSpaceFUCHSIA<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SYSMEM_COLOR_SPACE_FUCHSIA; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceAddressBindingReportFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT; } -impl<'a> SysmemColorSpaceFUCHSIA<'a> { +unsafe impl Extends> + for PhysicalDeviceAddressBindingReportFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceAddressBindingReportFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceAddressBindingReportFeaturesEXT<'a> { #[inline] - pub fn color_space(mut self, color_space: u32) -> Self { - self.color_space = color_space; + pub fn report_address_binding(mut self, report_address_binding: bool) -> Self { + self.report_address_binding = report_address_binding.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ImageFormatConstraintsInfoFUCHSIA<'a> { +pub struct DeviceAddressBindingCallbackDataEXT<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub image_create_info: ImageCreateInfo<'a>, - pub required_format_features: FormatFeatureFlags, - pub flags: ImageFormatConstraintsFlagsFUCHSIA, - pub sysmem_pixel_format: u64, - pub color_space_count: u32, - pub p_color_spaces: *const SysmemColorSpaceFUCHSIA<'a>, + pub p_next: *mut c_void, + pub flags: DeviceAddressBindingFlagsEXT, + pub base_address: DeviceAddress, + pub size: DeviceSize, + pub binding_type: DeviceAddressBindingTypeEXT, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ImageFormatConstraintsInfoFUCHSIA<'_> {} -unsafe impl Sync for ImageFormatConstraintsInfoFUCHSIA<'_> {} -impl ::core::default::Default for ImageFormatConstraintsInfoFUCHSIA<'_> { +unsafe impl Send for DeviceAddressBindingCallbackDataEXT<'_> {} +unsafe impl Sync for DeviceAddressBindingCallbackDataEXT<'_> {} +impl ::core::default::Default for DeviceAddressBindingCallbackDataEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - image_create_info: ImageCreateInfo::default(), - required_format_features: FormatFeatureFlags::default(), - flags: ImageFormatConstraintsFlagsFUCHSIA::default(), - sysmem_pixel_format: u64::default(), - color_space_count: u32::default(), - p_color_spaces: ::core::ptr::null(), + p_next: ::core::ptr::null_mut(), + flags: DeviceAddressBindingFlagsEXT::default(), + base_address: DeviceAddress::default(), + size: DeviceSize::default(), + binding_type: DeviceAddressBindingTypeEXT::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ImageFormatConstraintsInfoFUCHSIA<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA; +unsafe impl<'a> TaggedStructure<'a> for DeviceAddressBindingCallbackDataEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT; } -impl<'a> ImageFormatConstraintsInfoFUCHSIA<'a> { - #[inline] - pub fn image_create_info(mut self, image_create_info: ImageCreateInfo<'a>) -> Self { - self.image_create_info = image_create_info; - self - } +unsafe impl Extends> + for DeviceAddressBindingCallbackDataEXT<'_> +{ +} +impl<'a> DeviceAddressBindingCallbackDataEXT<'a> { #[inline] - pub fn required_format_features( - mut self, - required_format_features: FormatFeatureFlags, - ) -> Self { - self.required_format_features = required_format_features; + pub fn flags(mut self, flags: DeviceAddressBindingFlagsEXT) -> Self { + self.flags = flags; self } #[inline] - pub fn flags(mut self, flags: ImageFormatConstraintsFlagsFUCHSIA) -> Self { - self.flags = flags; + pub fn base_address(mut self, base_address: DeviceAddress) -> Self { + self.base_address = base_address; self } #[inline] - pub fn sysmem_pixel_format(mut self, sysmem_pixel_format: u64) -> Self { - self.sysmem_pixel_format = sysmem_pixel_format; + pub fn size(mut self, size: DeviceSize) -> Self { + self.size = size; self } #[inline] - pub fn color_spaces(mut self, color_spaces: &'a [SysmemColorSpaceFUCHSIA<'a>]) -> Self { - self.color_space_count = color_spaces.len() as _; - self.p_color_spaces = color_spaces.as_ptr(); + pub fn binding_type(mut self, binding_type: DeviceAddressBindingTypeEXT) -> Self { + self.binding_type = binding_type; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ImageConstraintsInfoFUCHSIA<'a> { +pub struct PhysicalDeviceOpticalFlowFeaturesNV<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub format_constraints_count: u32, - pub p_format_constraints: *const ImageFormatConstraintsInfoFUCHSIA<'a>, - pub buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA<'a>, - pub flags: ImageConstraintsInfoFlagsFUCHSIA, + pub p_next: *mut c_void, + pub optical_flow: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ImageConstraintsInfoFUCHSIA<'_> {} -unsafe impl Sync for ImageConstraintsInfoFUCHSIA<'_> {} -impl ::core::default::Default for ImageConstraintsInfoFUCHSIA<'_> { +unsafe impl Send for PhysicalDeviceOpticalFlowFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDeviceOpticalFlowFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceOpticalFlowFeaturesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - format_constraints_count: u32::default(), - p_format_constraints: ::core::ptr::null(), - buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA::default(), - flags: ImageConstraintsInfoFlagsFUCHSIA::default(), + p_next: ::core::ptr::null_mut(), + optical_flow: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ImageConstraintsInfoFUCHSIA<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_CONSTRAINTS_INFO_FUCHSIA; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceOpticalFlowFeaturesNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV; } -impl<'a> ImageConstraintsInfoFUCHSIA<'a> { - #[inline] - pub fn format_constraints( - mut self, - format_constraints: &'a [ImageFormatConstraintsInfoFUCHSIA<'a>], - ) -> Self { - self.format_constraints_count = format_constraints.len() as _; - self.p_format_constraints = format_constraints.as_ptr(); - self - } - #[inline] - pub fn buffer_collection_constraints( - mut self, - buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA<'a>, - ) -> Self { - self.buffer_collection_constraints = buffer_collection_constraints; - self - } +unsafe impl Extends> for PhysicalDeviceOpticalFlowFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceOpticalFlowFeaturesNV<'_> {} +impl<'a> PhysicalDeviceOpticalFlowFeaturesNV<'a> { #[inline] - pub fn flags(mut self, flags: ImageConstraintsInfoFlagsFUCHSIA) -> Self { - self.flags = flags; + pub fn optical_flow(mut self, optical_flow: bool) -> Self { + self.optical_flow = optical_flow.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct BufferCollectionConstraintsInfoFUCHSIA<'a> { +pub struct PhysicalDeviceOpticalFlowPropertiesNV<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub min_buffer_count: u32, - pub max_buffer_count: u32, - pub min_buffer_count_for_camping: u32, - pub min_buffer_count_for_dedicated_slack: u32, - pub min_buffer_count_for_shared_slack: u32, + pub p_next: *mut c_void, + pub supported_output_grid_sizes: OpticalFlowGridSizeFlagsNV, + pub supported_hint_grid_sizes: OpticalFlowGridSizeFlagsNV, + pub hint_supported: Bool32, + pub cost_supported: Bool32, + pub bidirectional_flow_supported: Bool32, + pub global_flow_supported: Bool32, + pub min_width: u32, + pub min_height: u32, + pub max_width: u32, + pub max_height: u32, + pub max_num_regions_of_interest: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for BufferCollectionConstraintsInfoFUCHSIA<'_> {} -unsafe impl Sync for BufferCollectionConstraintsInfoFUCHSIA<'_> {} -impl ::core::default::Default for BufferCollectionConstraintsInfoFUCHSIA<'_> { +unsafe impl Send for PhysicalDeviceOpticalFlowPropertiesNV<'_> {} +unsafe impl Sync for PhysicalDeviceOpticalFlowPropertiesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceOpticalFlowPropertiesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - min_buffer_count: u32::default(), - max_buffer_count: u32::default(), - min_buffer_count_for_camping: u32::default(), - min_buffer_count_for_dedicated_slack: u32::default(), - min_buffer_count_for_shared_slack: u32::default(), + p_next: ::core::ptr::null_mut(), + supported_output_grid_sizes: OpticalFlowGridSizeFlagsNV::default(), + supported_hint_grid_sizes: OpticalFlowGridSizeFlagsNV::default(), + hint_supported: Bool32::default(), + cost_supported: Bool32::default(), + bidirectional_flow_supported: Bool32::default(), + global_flow_supported: Bool32::default(), + min_width: u32::default(), + min_height: u32::default(), + max_width: u32::default(), + max_height: u32::default(), + max_num_regions_of_interest: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for BufferCollectionConstraintsInfoFUCHSIA<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceOpticalFlowPropertiesNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV; } -impl<'a> BufferCollectionConstraintsInfoFUCHSIA<'a> { +unsafe impl Extends> for PhysicalDeviceOpticalFlowPropertiesNV<'_> {} +impl<'a> PhysicalDeviceOpticalFlowPropertiesNV<'a> { #[inline] - pub fn min_buffer_count(mut self, min_buffer_count: u32) -> Self { - self.min_buffer_count = min_buffer_count; + pub fn supported_output_grid_sizes( + mut self, + supported_output_grid_sizes: OpticalFlowGridSizeFlagsNV, + ) -> Self { + self.supported_output_grid_sizes = supported_output_grid_sizes; self } #[inline] - pub fn max_buffer_count(mut self, max_buffer_count: u32) -> Self { - self.max_buffer_count = max_buffer_count; + pub fn supported_hint_grid_sizes( + mut self, + supported_hint_grid_sizes: OpticalFlowGridSizeFlagsNV, + ) -> Self { + self.supported_hint_grid_sizes = supported_hint_grid_sizes; self } #[inline] - pub fn min_buffer_count_for_camping(mut self, min_buffer_count_for_camping: u32) -> Self { - self.min_buffer_count_for_camping = min_buffer_count_for_camping; + pub fn hint_supported(mut self, hint_supported: bool) -> Self { + self.hint_supported = hint_supported.into(); self } #[inline] - pub fn min_buffer_count_for_dedicated_slack( - mut self, - min_buffer_count_for_dedicated_slack: u32, - ) -> Self { - self.min_buffer_count_for_dedicated_slack = min_buffer_count_for_dedicated_slack; + pub fn cost_supported(mut self, cost_supported: bool) -> Self { + self.cost_supported = cost_supported.into(); self } #[inline] - pub fn min_buffer_count_for_shared_slack( - mut self, - min_buffer_count_for_shared_slack: u32, - ) -> Self { - self.min_buffer_count_for_shared_slack = min_buffer_count_for_shared_slack; + pub fn bidirectional_flow_supported(mut self, bidirectional_flow_supported: bool) -> Self { + self.bidirectional_flow_supported = bidirectional_flow_supported.into(); + self + } + #[inline] + pub fn global_flow_supported(mut self, global_flow_supported: bool) -> Self { + self.global_flow_supported = global_flow_supported.into(); + self + } + #[inline] + pub fn min_width(mut self, min_width: u32) -> Self { + self.min_width = min_width; + self + } + #[inline] + pub fn min_height(mut self, min_height: u32) -> Self { + self.min_height = min_height; + self + } + #[inline] + pub fn max_width(mut self, max_width: u32) -> Self { + self.max_width = max_width; + self + } + #[inline] + pub fn max_height(mut self, max_height: u32) -> Self { + self.max_height = max_height; + self + } + #[inline] + pub fn max_num_regions_of_interest(mut self, max_num_regions_of_interest: u32) -> Self { + self.max_num_regions_of_interest = max_num_regions_of_interest; self } } -handle_nondispatchable!( - CudaModuleNV, - CUDA_MODULE_NV, - doc = "" -); -handle_nondispatchable!( - CudaFunctionNV, - CUDA_FUNCTION_NV, - doc = - "" -); #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct CudaModuleCreateInfoNV<'a> { +pub struct OpticalFlowImageFormatInfoNV<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub data_size: usize, - pub p_data: *const c_void, + pub usage: OpticalFlowUsageFlagsNV, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for CudaModuleCreateInfoNV<'_> {} -unsafe impl Sync for CudaModuleCreateInfoNV<'_> {} -impl ::core::default::Default for CudaModuleCreateInfoNV<'_> { +unsafe impl Send for OpticalFlowImageFormatInfoNV<'_> {} +unsafe impl Sync for OpticalFlowImageFormatInfoNV<'_> {} +impl ::core::default::Default for OpticalFlowImageFormatInfoNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - data_size: usize::default(), - p_data: ::core::ptr::null(), + usage: OpticalFlowUsageFlagsNV::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for CudaModuleCreateInfoNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::CUDA_MODULE_CREATE_INFO_NV; +unsafe impl<'a> TaggedStructure<'a> for OpticalFlowImageFormatInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV; } -impl<'a> CudaModuleCreateInfoNV<'a> { +unsafe impl Extends> for OpticalFlowImageFormatInfoNV<'_> {} +unsafe impl Extends> for OpticalFlowImageFormatInfoNV<'_> {} +impl<'a> OpticalFlowImageFormatInfoNV<'a> { #[inline] - pub fn data(mut self, data: &'a [u8]) -> Self { - self.data_size = data.len(); - self.p_data = data.as_ptr().cast(); + pub fn usage(mut self, usage: OpticalFlowUsageFlagsNV) -> Self { + self.usage = usage; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct CudaFunctionCreateInfoNV<'a> { +pub struct OpticalFlowImageFormatPropertiesNV<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub module: CudaModuleNV, - pub p_name: *const c_char, + pub format: Format, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for CudaFunctionCreateInfoNV<'_> {} -unsafe impl Sync for CudaFunctionCreateInfoNV<'_> {} -impl ::core::default::Default for CudaFunctionCreateInfoNV<'_> { +unsafe impl Send for OpticalFlowImageFormatPropertiesNV<'_> {} +unsafe impl Sync for OpticalFlowImageFormatPropertiesNV<'_> {} +impl ::core::default::Default for OpticalFlowImageFormatPropertiesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - module: CudaModuleNV::default(), - p_name: ::core::ptr::null(), + format: Format::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for CudaFunctionCreateInfoNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::CUDA_FUNCTION_CREATE_INFO_NV; +unsafe impl<'a> TaggedStructure<'a> for OpticalFlowImageFormatPropertiesNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV; } -impl<'a> CudaFunctionCreateInfoNV<'a> { - #[inline] - pub fn module(mut self, module: CudaModuleNV) -> Self { - self.module = module; - self - } +impl<'a> OpticalFlowImageFormatPropertiesNV<'a> { #[inline] - pub fn name(mut self, name: &'a CStr) -> Self { - self.p_name = name.as_ptr(); + pub fn format(mut self, format: Format) -> Self { + self.format = format; self } - #[inline] - pub unsafe fn name_as_c_str(&self) -> Option<&CStr> { - if self.p_name.is_null() { - None - } else { - Some(CStr::from_ptr(self.p_name)) - } - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct CudaLaunchInfoNV<'a> { +pub struct OpticalFlowSessionCreateInfoNV<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub function: CudaFunctionNV, - pub grid_dim_x: u32, - pub grid_dim_y: u32, - pub grid_dim_z: u32, - pub block_dim_x: u32, - pub block_dim_y: u32, - pub block_dim_z: u32, - pub shared_mem_bytes: u32, - pub param_count: usize, - pub p_params: *const *const c_void, - pub extra_count: usize, - pub p_extras: *const *const c_void, + pub p_next: *mut c_void, + pub width: u32, + pub height: u32, + pub image_format: Format, + pub flow_vector_format: Format, + pub cost_format: Format, + pub output_grid_size: OpticalFlowGridSizeFlagsNV, + pub hint_grid_size: OpticalFlowGridSizeFlagsNV, + pub performance_level: OpticalFlowPerformanceLevelNV, + pub flags: OpticalFlowSessionCreateFlagsNV, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for CudaLaunchInfoNV<'_> {} -unsafe impl Sync for CudaLaunchInfoNV<'_> {} -impl ::core::default::Default for CudaLaunchInfoNV<'_> { +unsafe impl Send for OpticalFlowSessionCreateInfoNV<'_> {} +unsafe impl Sync for OpticalFlowSessionCreateInfoNV<'_> {} +impl ::core::default::Default for OpticalFlowSessionCreateInfoNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - function: CudaFunctionNV::default(), - grid_dim_x: u32::default(), - grid_dim_y: u32::default(), - grid_dim_z: u32::default(), - block_dim_x: u32::default(), - block_dim_y: u32::default(), - block_dim_z: u32::default(), - shared_mem_bytes: u32::default(), - param_count: usize::default(), - p_params: ::core::ptr::null(), - extra_count: usize::default(), - p_extras: ::core::ptr::null(), + p_next: ::core::ptr::null_mut(), + width: u32::default(), + height: u32::default(), + image_format: Format::default(), + flow_vector_format: Format::default(), + cost_format: Format::default(), + output_grid_size: OpticalFlowGridSizeFlagsNV::default(), + hint_grid_size: OpticalFlowGridSizeFlagsNV::default(), + performance_level: OpticalFlowPerformanceLevelNV::default(), + flags: OpticalFlowSessionCreateFlagsNV::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for CudaLaunchInfoNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::CUDA_LAUNCH_INFO_NV; +unsafe impl<'a> TaggedStructure<'a> for OpticalFlowSessionCreateInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_SESSION_CREATE_INFO_NV; } -impl<'a> CudaLaunchInfoNV<'a> { - #[inline] - pub fn function(mut self, function: CudaFunctionNV) -> Self { - self.function = function; - self - } +impl<'a> OpticalFlowSessionCreateInfoNV<'a> { #[inline] - pub fn grid_dim_x(mut self, grid_dim_x: u32) -> Self { - self.grid_dim_x = grid_dim_x; + pub fn width(mut self, width: u32) -> Self { + self.width = width; self } #[inline] - pub fn grid_dim_y(mut self, grid_dim_y: u32) -> Self { - self.grid_dim_y = grid_dim_y; + pub fn height(mut self, height: u32) -> Self { + self.height = height; self } #[inline] - pub fn grid_dim_z(mut self, grid_dim_z: u32) -> Self { - self.grid_dim_z = grid_dim_z; + pub fn image_format(mut self, image_format: Format) -> Self { + self.image_format = image_format; self } #[inline] - pub fn block_dim_x(mut self, block_dim_x: u32) -> Self { - self.block_dim_x = block_dim_x; + pub fn flow_vector_format(mut self, flow_vector_format: Format) -> Self { + self.flow_vector_format = flow_vector_format; self } #[inline] - pub fn block_dim_y(mut self, block_dim_y: u32) -> Self { - self.block_dim_y = block_dim_y; + pub fn cost_format(mut self, cost_format: Format) -> Self { + self.cost_format = cost_format; self } #[inline] - pub fn block_dim_z(mut self, block_dim_z: u32) -> Self { - self.block_dim_z = block_dim_z; + pub fn output_grid_size(mut self, output_grid_size: OpticalFlowGridSizeFlagsNV) -> Self { + self.output_grid_size = output_grid_size; self } #[inline] - pub fn shared_mem_bytes(mut self, shared_mem_bytes: u32) -> Self { - self.shared_mem_bytes = shared_mem_bytes; + pub fn hint_grid_size(mut self, hint_grid_size: OpticalFlowGridSizeFlagsNV) -> Self { + self.hint_grid_size = hint_grid_size; self } #[inline] - pub fn params(mut self, params: &'a [*const c_void]) -> Self { - self.param_count = params.len(); - self.p_params = params.as_ptr(); + pub fn performance_level(mut self, performance_level: OpticalFlowPerformanceLevelNV) -> Self { + self.performance_level = performance_level; self } #[inline] - pub fn extras(mut self, extras: &'a [*const c_void]) -> Self { - self.extra_count = extras.len(); - self.p_extras = extras.as_ptr(); + pub fn flags(mut self, flags: OpticalFlowSessionCreateFlagsNV) -> Self { + self.flags = flags; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a> { +pub struct OpticalFlowSessionCreatePrivateDataInfoNV<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub format_rgba10x6_without_y_cb_cr_sampler: Bool32, + pub id: u32, + pub size: u32, + pub p_private_data: *const c_void, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'_> { +unsafe impl Send for OpticalFlowSessionCreatePrivateDataInfoNV<'_> {} +unsafe impl Sync for OpticalFlowSessionCreatePrivateDataInfoNV<'_> {} +impl ::core::default::Default for OpticalFlowSessionCreatePrivateDataInfoNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - format_rgba10x6_without_y_cb_cr_sampler: Bool32::default(), + id: u32::default(), + size: u32::default(), + p_private_data: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for OpticalFlowSessionCreatePrivateDataInfoNV<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT; + StructureType::OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV; } -unsafe impl Extends> for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'_> {} -unsafe impl Extends> for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a> { +unsafe impl Extends> + for OpticalFlowSessionCreatePrivateDataInfoNV<'_> +{ +} +impl<'a> OpticalFlowSessionCreatePrivateDataInfoNV<'a> { #[inline] - pub fn format_rgba10x6_without_y_cb_cr_sampler( - mut self, - format_rgba10x6_without_y_cb_cr_sampler: bool, - ) -> Self { - self.format_rgba10x6_without_y_cb_cr_sampler = - format_rgba10x6_without_y_cb_cr_sampler.into(); + pub fn id(mut self, id: u32) -> Self { + self.id = id; + self + } + #[inline] + pub fn size(mut self, size: u32) -> Self { + self.size = size; + self + } + #[inline] + pub fn private_data(mut self, private_data: *const c_void) -> Self { + self.p_private_data = private_data; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct FormatProperties3<'a> { +pub struct OpticalFlowExecuteInfoNV<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub linear_tiling_features: FormatFeatureFlags2, - pub optimal_tiling_features: FormatFeatureFlags2, - pub buffer_features: FormatFeatureFlags2, + pub flags: OpticalFlowExecuteFlagsNV, + pub region_count: u32, + pub p_regions: *const Rect2D, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for FormatProperties3<'_> {} -unsafe impl Sync for FormatProperties3<'_> {} -impl ::core::default::Default for FormatProperties3<'_> { +unsafe impl Send for OpticalFlowExecuteInfoNV<'_> {} +unsafe impl Sync for OpticalFlowExecuteInfoNV<'_> {} +impl ::core::default::Default for OpticalFlowExecuteInfoNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - linear_tiling_features: FormatFeatureFlags2::default(), - optimal_tiling_features: FormatFeatureFlags2::default(), - buffer_features: FormatFeatureFlags2::default(), + flags: OpticalFlowExecuteFlagsNV::default(), + region_count: u32::default(), + p_regions: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for FormatProperties3<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::FORMAT_PROPERTIES_3; +unsafe impl<'a> TaggedStructure<'a> for OpticalFlowExecuteInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_EXECUTE_INFO_NV; } -unsafe impl Extends> for FormatProperties3<'_> {} -impl<'a> FormatProperties3<'a> { - #[inline] - pub fn linear_tiling_features(mut self, linear_tiling_features: FormatFeatureFlags2) -> Self { - self.linear_tiling_features = linear_tiling_features; - self - } +impl<'a> OpticalFlowExecuteInfoNV<'a> { #[inline] - pub fn optimal_tiling_features(mut self, optimal_tiling_features: FormatFeatureFlags2) -> Self { - self.optimal_tiling_features = optimal_tiling_features; + pub fn flags(mut self, flags: OpticalFlowExecuteFlagsNV) -> Self { + self.flags = flags; self } #[inline] - pub fn buffer_features(mut self, buffer_features: FormatFeatureFlags2) -> Self { - self.buffer_features = buffer_features; + pub fn regions(mut self, regions: &'a [Rect2D]) -> Self { + self.region_count = regions.len() as _; + self.p_regions = regions.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DrmFormatModifierPropertiesList2EXT<'a> { +pub struct PhysicalDeviceFaultFeaturesEXT<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub drm_format_modifier_count: u32, - pub p_drm_format_modifier_properties: *mut DrmFormatModifierProperties2EXT, + pub device_fault: Bool32, + pub device_fault_vendor_binary: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for DrmFormatModifierPropertiesList2EXT<'_> {} -unsafe impl Sync for DrmFormatModifierPropertiesList2EXT<'_> {} -impl ::core::default::Default for DrmFormatModifierPropertiesList2EXT<'_> { +unsafe impl Send for PhysicalDeviceFaultFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceFaultFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceFaultFeaturesEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - drm_format_modifier_count: u32::default(), - p_drm_format_modifier_properties: ::core::ptr::null_mut(), + device_fault: Bool32::default(), + device_fault_vendor_binary: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for DrmFormatModifierPropertiesList2EXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFaultFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FAULT_FEATURES_EXT; } -unsafe impl Extends> for DrmFormatModifierPropertiesList2EXT<'_> {} -impl<'a> DrmFormatModifierPropertiesList2EXT<'a> { +unsafe impl Extends> for PhysicalDeviceFaultFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceFaultFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceFaultFeaturesEXT<'a> { #[inline] - pub fn drm_format_modifier_properties( - mut self, - drm_format_modifier_properties: &'a mut [DrmFormatModifierProperties2EXT], - ) -> Self { - self.drm_format_modifier_count = drm_format_modifier_properties.len() as _; - self.p_drm_format_modifier_properties = drm_format_modifier_properties.as_mut_ptr(); + pub fn device_fault(mut self, device_fault: bool) -> Self { + self.device_fault = device_fault.into(); + self + } + #[inline] + pub fn device_fault_vendor_binary(mut self, device_fault_vendor_binary: bool) -> Self { + self.device_fault_vendor_binary = device_fault_vendor_binary.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone, Default)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DrmFormatModifierProperties2EXT { - pub drm_format_modifier: u64, - pub drm_format_modifier_plane_count: u32, - pub drm_format_modifier_tiling_features: FormatFeatureFlags2, +pub struct DeviceFaultAddressInfoEXT { + pub address_type: DeviceFaultAddressTypeEXT, + pub reported_address: DeviceAddress, + pub address_precision: DeviceSize, } -impl DrmFormatModifierProperties2EXT { +impl DeviceFaultAddressInfoEXT { #[inline] - pub fn drm_format_modifier(mut self, drm_format_modifier: u64) -> Self { - self.drm_format_modifier = drm_format_modifier; + pub fn address_type(mut self, address_type: DeviceFaultAddressTypeEXT) -> Self { + self.address_type = address_type; self } #[inline] - pub fn drm_format_modifier_plane_count(mut self, drm_format_modifier_plane_count: u32) -> Self { - self.drm_format_modifier_plane_count = drm_format_modifier_plane_count; + pub fn reported_address(mut self, reported_address: DeviceAddress) -> Self { + self.reported_address = reported_address; self } #[inline] - pub fn drm_format_modifier_tiling_features( - mut self, - drm_format_modifier_tiling_features: FormatFeatureFlags2, - ) -> Self { - self.drm_format_modifier_tiling_features = drm_format_modifier_tiling_features; + pub fn address_precision(mut self, address_precision: DeviceSize) -> Self { + self.address_precision = address_precision; self } } #[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct AndroidHardwareBufferFormatProperties2ANDROID<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub format: Format, - pub external_format: u64, - pub format_features: FormatFeatureFlags2, - pub sampler_ycbcr_conversion_components: ComponentMapping, - pub suggested_ycbcr_model: SamplerYcbcrModelConversion, - pub suggested_ycbcr_range: SamplerYcbcrRange, - pub suggested_x_chroma_offset: ChromaLocation, - pub suggested_y_chroma_offset: ChromaLocation, - pub _marker: PhantomData<&'a ()>, +pub struct DeviceFaultVendorInfoEXT { + pub description: [c_char; MAX_DESCRIPTION_SIZE], + pub vendor_fault_code: u64, + pub vendor_fault_data: u64, } -unsafe impl Send for AndroidHardwareBufferFormatProperties2ANDROID<'_> {} -unsafe impl Sync for AndroidHardwareBufferFormatProperties2ANDROID<'_> {} -impl ::core::default::Default for AndroidHardwareBufferFormatProperties2ANDROID<'_> { +#[cfg(feature = "debug")] +impl fmt::Debug for DeviceFaultVendorInfoEXT { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("DeviceFaultVendorInfoEXT") + .field("description", &self.description_as_c_str()) + .field("vendor_fault_code", &self.vendor_fault_code) + .field("vendor_fault_data", &self.vendor_fault_data) + .finish() + } +} +impl ::core::default::Default for DeviceFaultVendorInfoEXT { #[inline] fn default() -> Self { Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - format: Format::default(), - external_format: u64::default(), - format_features: FormatFeatureFlags2::default(), - sampler_ycbcr_conversion_components: ComponentMapping::default(), - suggested_ycbcr_model: SamplerYcbcrModelConversion::default(), - suggested_ycbcr_range: SamplerYcbcrRange::default(), - suggested_x_chroma_offset: ChromaLocation::default(), - suggested_y_chroma_offset: ChromaLocation::default(), - _marker: PhantomData, + description: unsafe { ::core::mem::zeroed() }, + vendor_fault_code: u64::default(), + vendor_fault_data: u64::default(), } } } -unsafe impl<'a> TaggedStructure<'a> for AndroidHardwareBufferFormatProperties2ANDROID<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID; -} -unsafe impl Extends> - for AndroidHardwareBufferFormatProperties2ANDROID<'_> -{ -} -impl<'a> AndroidHardwareBufferFormatProperties2ANDROID<'a> { - #[inline] - pub fn format(mut self, format: Format) -> Self { - self.format = format; - self - } - #[inline] - pub fn external_format(mut self, external_format: u64) -> Self { - self.external_format = external_format; - self - } - #[inline] - pub fn format_features(mut self, format_features: FormatFeatureFlags2) -> Self { - self.format_features = format_features; - self - } - #[inline] - pub fn sampler_ycbcr_conversion_components( - mut self, - sampler_ycbcr_conversion_components: ComponentMapping, - ) -> Self { - self.sampler_ycbcr_conversion_components = sampler_ycbcr_conversion_components; - self - } +impl DeviceFaultVendorInfoEXT { #[inline] - pub fn suggested_ycbcr_model( + pub fn description( mut self, - suggested_ycbcr_model: SamplerYcbcrModelConversion, - ) -> Self { - self.suggested_ycbcr_model = suggested_ycbcr_model; - self + description: &CStr, + ) -> core::result::Result { + write_c_str_slice_with_nul(&mut self.description, description).map(|()| self) } #[inline] - pub fn suggested_ycbcr_range(mut self, suggested_ycbcr_range: SamplerYcbcrRange) -> Self { - self.suggested_ycbcr_range = suggested_ycbcr_range; - self + pub fn description_as_c_str(&self) -> core::result::Result<&CStr, FromBytesUntilNulError> { + wrap_c_str_slice_until_nul(&self.description) } #[inline] - pub fn suggested_x_chroma_offset(mut self, suggested_x_chroma_offset: ChromaLocation) -> Self { - self.suggested_x_chroma_offset = suggested_x_chroma_offset; + pub fn vendor_fault_code(mut self, vendor_fault_code: u64) -> Self { + self.vendor_fault_code = vendor_fault_code; self } #[inline] - pub fn suggested_y_chroma_offset(mut self, suggested_y_chroma_offset: ChromaLocation) -> Self { - self.suggested_y_chroma_offset = suggested_y_chroma_offset; + pub fn vendor_fault_data(mut self, vendor_fault_data: u64) -> Self { + self.vendor_fault_data = vendor_fault_data; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PipelineRenderingCreateInfo<'a> { +pub struct DeviceFaultCountsEXT<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub view_mask: u32, - pub color_attachment_count: u32, - pub p_color_attachment_formats: *const Format, - pub depth_attachment_format: Format, - pub stencil_attachment_format: Format, + pub p_next: *mut c_void, + pub address_info_count: u32, + pub vendor_info_count: u32, + pub vendor_binary_size: DeviceSize, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PipelineRenderingCreateInfo<'_> {} -unsafe impl Sync for PipelineRenderingCreateInfo<'_> {} -impl ::core::default::Default for PipelineRenderingCreateInfo<'_> { +unsafe impl Send for DeviceFaultCountsEXT<'_> {} +unsafe impl Sync for DeviceFaultCountsEXT<'_> {} +impl ::core::default::Default for DeviceFaultCountsEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - view_mask: u32::default(), - color_attachment_count: u32::default(), - p_color_attachment_formats: ::core::ptr::null(), - depth_attachment_format: Format::default(), - stencil_attachment_format: Format::default(), + p_next: ::core::ptr::null_mut(), + address_info_count: u32::default(), + vendor_info_count: u32::default(), + vendor_binary_size: DeviceSize::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PipelineRenderingCreateInfo<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RENDERING_CREATE_INFO; +unsafe impl<'a> TaggedStructure<'a> for DeviceFaultCountsEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_FAULT_COUNTS_EXT; } -unsafe impl Extends> for PipelineRenderingCreateInfo<'_> {} -impl<'a> PipelineRenderingCreateInfo<'a> { - #[inline] - pub fn view_mask(mut self, view_mask: u32) -> Self { - self.view_mask = view_mask; - self - } +impl<'a> DeviceFaultCountsEXT<'a> { #[inline] - pub fn color_attachment_formats(mut self, color_attachment_formats: &'a [Format]) -> Self { - self.color_attachment_count = color_attachment_formats.len() as _; - self.p_color_attachment_formats = color_attachment_formats.as_ptr(); + pub fn address_info_count(mut self, address_info_count: u32) -> Self { + self.address_info_count = address_info_count; self } #[inline] - pub fn depth_attachment_format(mut self, depth_attachment_format: Format) -> Self { - self.depth_attachment_format = depth_attachment_format; + pub fn vendor_info_count(mut self, vendor_info_count: u32) -> Self { + self.vendor_info_count = vendor_info_count; self } #[inline] - pub fn stencil_attachment_format(mut self, stencil_attachment_format: Format) -> Self { - self.stencil_attachment_format = stencil_attachment_format; + pub fn vendor_binary_size(mut self, vendor_binary_size: DeviceSize) -> Self { + self.vendor_binary_size = vendor_binary_size; self } } #[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct RenderingInfo<'a> { +pub struct DeviceFaultInfoEXT<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub flags: RenderingFlags, - pub render_area: Rect2D, - pub layer_count: u32, - pub view_mask: u32, - pub color_attachment_count: u32, - pub p_color_attachments: *const RenderingAttachmentInfo<'a>, - pub p_depth_attachment: *const RenderingAttachmentInfo<'a>, - pub p_stencil_attachment: *const RenderingAttachmentInfo<'a>, + pub p_next: *mut c_void, + pub description: [c_char; MAX_DESCRIPTION_SIZE], + pub p_address_infos: *mut DeviceFaultAddressInfoEXT, + pub p_vendor_infos: *mut DeviceFaultVendorInfoEXT, + pub p_vendor_binary_data: *mut c_void, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for RenderingInfo<'_> {} -unsafe impl Sync for RenderingInfo<'_> {} -impl ::core::default::Default for RenderingInfo<'_> { +unsafe impl Send for DeviceFaultInfoEXT<'_> {} +unsafe impl Sync for DeviceFaultInfoEXT<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for DeviceFaultInfoEXT<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("DeviceFaultInfoEXT") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field("description", &self.description_as_c_str()) + .field("p_address_infos", &self.p_address_infos) + .field("p_vendor_infos", &self.p_vendor_infos) + .field("p_vendor_binary_data", &self.p_vendor_binary_data) + .finish() + } +} +impl ::core::default::Default for DeviceFaultInfoEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - flags: RenderingFlags::default(), - render_area: Rect2D::default(), - layer_count: u32::default(), - view_mask: u32::default(), - color_attachment_count: u32::default(), - p_color_attachments: ::core::ptr::null(), - p_depth_attachment: ::core::ptr::null(), - p_stencil_attachment: ::core::ptr::null(), + p_next: ::core::ptr::null_mut(), + description: unsafe { ::core::mem::zeroed() }, + p_address_infos: ::core::ptr::null_mut(), + p_vendor_infos: ::core::ptr::null_mut(), + p_vendor_binary_data: ::core::ptr::null_mut(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for RenderingInfo<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_INFO; +unsafe impl<'a> TaggedStructure<'a> for DeviceFaultInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_FAULT_INFO_EXT; } -impl<'a> RenderingInfo<'a> { - #[inline] - pub fn flags(mut self, flags: RenderingFlags) -> Self { - self.flags = flags; - self - } - #[inline] - pub fn render_area(mut self, render_area: Rect2D) -> Self { - self.render_area = render_area; - self - } +impl<'a> DeviceFaultInfoEXT<'a> { #[inline] - pub fn layer_count(mut self, layer_count: u32) -> Self { - self.layer_count = layer_count; - self + pub fn description( + mut self, + description: &CStr, + ) -> core::result::Result { + write_c_str_slice_with_nul(&mut self.description, description).map(|()| self) } #[inline] - pub fn view_mask(mut self, view_mask: u32) -> Self { - self.view_mask = view_mask; - self + pub fn description_as_c_str(&self) -> core::result::Result<&CStr, FromBytesUntilNulError> { + wrap_c_str_slice_until_nul(&self.description) } #[inline] - pub fn color_attachments( - mut self, - color_attachments: &'a [RenderingAttachmentInfo<'a>], - ) -> Self { - self.color_attachment_count = color_attachments.len() as _; - self.p_color_attachments = color_attachments.as_ptr(); + pub fn address_infos(mut self, address_infos: &'a mut DeviceFaultAddressInfoEXT) -> Self { + self.p_address_infos = address_infos; self } #[inline] - pub fn depth_attachment(mut self, depth_attachment: &'a RenderingAttachmentInfo<'a>) -> Self { - self.p_depth_attachment = depth_attachment; + pub fn vendor_infos(mut self, vendor_infos: &'a mut DeviceFaultVendorInfoEXT) -> Self { + self.p_vendor_infos = vendor_infos; self } #[inline] - pub fn stencil_attachment( - mut self, - stencil_attachment: &'a RenderingAttachmentInfo<'a>, - ) -> Self { - self.p_stencil_attachment = stencil_attachment; + pub fn vendor_binary_data(mut self, vendor_binary_data: *mut c_void) -> Self { + self.p_vendor_binary_data = vendor_binary_data; self } } #[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct RenderingAttachmentInfo<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub image_view: ImageView, - pub image_layout: ImageLayout, - pub resolve_mode: ResolveModeFlags, - pub resolve_image_view: ImageView, - pub resolve_image_layout: ImageLayout, - pub load_op: AttachmentLoadOp, - pub store_op: AttachmentStoreOp, - pub clear_value: ClearValue, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for RenderingAttachmentInfo<'_> {} -unsafe impl Sync for RenderingAttachmentInfo<'_> {} -#[cfg(feature = "debug")] -impl fmt::Debug for RenderingAttachmentInfo<'_> { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("RenderingAttachmentInfo") - .field("s_type", &self.s_type) - .field("p_next", &self.p_next) - .field("image_view", &self.image_view) - .field("image_layout", &self.image_layout) - .field("resolve_mode", &self.resolve_mode) - .field("resolve_image_view", &self.resolve_image_view) - .field("resolve_image_layout", &self.resolve_image_layout) - .field("load_op", &self.load_op) - .field("store_op", &self.store_op) - .field("clear_value", &"union") - .finish() - } +pub struct DeviceFaultVendorBinaryHeaderVersionOneEXT { + pub header_size: u32, + pub header_version: DeviceFaultVendorBinaryHeaderVersionEXT, + pub vendor_id: u32, + pub device_id: u32, + pub driver_version: u32, + pub pipeline_cache_uuid: [u8; UUID_SIZE], + pub application_name_offset: u32, + pub application_version: u32, + pub engine_name_offset: u32, + pub engine_version: u32, + pub api_version: u32, } -impl ::core::default::Default for RenderingAttachmentInfo<'_> { +impl ::core::default::Default for DeviceFaultVendorBinaryHeaderVersionOneEXT { #[inline] fn default() -> Self { Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - image_view: ImageView::default(), - image_layout: ImageLayout::default(), - resolve_mode: ResolveModeFlags::default(), - resolve_image_view: ImageView::default(), - resolve_image_layout: ImageLayout::default(), - load_op: AttachmentLoadOp::default(), - store_op: AttachmentStoreOp::default(), - clear_value: ClearValue::default(), - _marker: PhantomData, + header_size: u32::default(), + header_version: DeviceFaultVendorBinaryHeaderVersionEXT::default(), + vendor_id: u32::default(), + device_id: u32::default(), + driver_version: u32::default(), + pipeline_cache_uuid: unsafe { ::core::mem::zeroed() }, + application_name_offset: u32::default(), + application_version: u32::default(), + engine_name_offset: u32::default(), + engine_version: u32::default(), + api_version: u32::default(), } } } -unsafe impl<'a> TaggedStructure<'a> for RenderingAttachmentInfo<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_ATTACHMENT_INFO; -} -impl<'a> RenderingAttachmentInfo<'a> { - #[inline] - pub fn image_view(mut self, image_view: ImageView) -> Self { - self.image_view = image_view; - self - } - #[inline] - pub fn image_layout(mut self, image_layout: ImageLayout) -> Self { - self.image_layout = image_layout; - self - } +impl DeviceFaultVendorBinaryHeaderVersionOneEXT { #[inline] - pub fn resolve_mode(mut self, resolve_mode: ResolveModeFlags) -> Self { - self.resolve_mode = resolve_mode; + pub fn header_size(mut self, header_size: u32) -> Self { + self.header_size = header_size; self } #[inline] - pub fn resolve_image_view(mut self, resolve_image_view: ImageView) -> Self { - self.resolve_image_view = resolve_image_view; + pub fn header_version( + mut self, + header_version: DeviceFaultVendorBinaryHeaderVersionEXT, + ) -> Self { + self.header_version = header_version; self } #[inline] - pub fn resolve_image_layout(mut self, resolve_image_layout: ImageLayout) -> Self { - self.resolve_image_layout = resolve_image_layout; + pub fn vendor_id(mut self, vendor_id: u32) -> Self { + self.vendor_id = vendor_id; self } #[inline] - pub fn load_op(mut self, load_op: AttachmentLoadOp) -> Self { - self.load_op = load_op; + pub fn device_id(mut self, device_id: u32) -> Self { + self.device_id = device_id; self } #[inline] - pub fn store_op(mut self, store_op: AttachmentStoreOp) -> Self { - self.store_op = store_op; + pub fn driver_version(mut self, driver_version: u32) -> Self { + self.driver_version = driver_version; self } #[inline] - pub fn clear_value(mut self, clear_value: ClearValue) -> Self { - self.clear_value = clear_value; + pub fn pipeline_cache_uuid(mut self, pipeline_cache_uuid: [u8; UUID_SIZE]) -> Self { + self.pipeline_cache_uuid = pipeline_cache_uuid; self } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct RenderingFragmentShadingRateAttachmentInfoKHR<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub image_view: ImageView, - pub image_layout: ImageLayout, - pub shading_rate_attachment_texel_size: Extent2D, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for RenderingFragmentShadingRateAttachmentInfoKHR<'_> {} -unsafe impl Sync for RenderingFragmentShadingRateAttachmentInfoKHR<'_> {} -impl ::core::default::Default for RenderingFragmentShadingRateAttachmentInfoKHR<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - image_view: ImageView::default(), - image_layout: ImageLayout::default(), - shading_rate_attachment_texel_size: Extent2D::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure<'a> for RenderingFragmentShadingRateAttachmentInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR; -} -unsafe impl Extends> for RenderingFragmentShadingRateAttachmentInfoKHR<'_> {} -impl<'a> RenderingFragmentShadingRateAttachmentInfoKHR<'a> { #[inline] - pub fn image_view(mut self, image_view: ImageView) -> Self { - self.image_view = image_view; + pub fn application_name_offset(mut self, application_name_offset: u32) -> Self { + self.application_name_offset = application_name_offset; self } #[inline] - pub fn image_layout(mut self, image_layout: ImageLayout) -> Self { - self.image_layout = image_layout; + pub fn application_version(mut self, application_version: u32) -> Self { + self.application_version = application_version; self } #[inline] - pub fn shading_rate_attachment_texel_size( - mut self, - shading_rate_attachment_texel_size: Extent2D, - ) -> Self { - self.shading_rate_attachment_texel_size = shading_rate_attachment_texel_size; + pub fn engine_name_offset(mut self, engine_name_offset: u32) -> Self { + self.engine_name_offset = engine_name_offset; self } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct RenderingFragmentDensityMapAttachmentInfoEXT<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub image_view: ImageView, - pub image_layout: ImageLayout, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for RenderingFragmentDensityMapAttachmentInfoEXT<'_> {} -unsafe impl Sync for RenderingFragmentDensityMapAttachmentInfoEXT<'_> {} -impl ::core::default::Default for RenderingFragmentDensityMapAttachmentInfoEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - image_view: ImageView::default(), - image_layout: ImageLayout::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure<'a> for RenderingFragmentDensityMapAttachmentInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT; -} -unsafe impl Extends> for RenderingFragmentDensityMapAttachmentInfoEXT<'_> {} -impl<'a> RenderingFragmentDensityMapAttachmentInfoEXT<'a> { #[inline] - pub fn image_view(mut self, image_view: ImageView) -> Self { - self.image_view = image_view; + pub fn engine_version(mut self, engine_version: u32) -> Self { + self.engine_version = engine_version; self } #[inline] - pub fn image_layout(mut self, image_layout: ImageLayout) -> Self { - self.image_layout = image_layout; + pub fn api_version(mut self, api_version: u32) -> Self { + self.api_version = api_version; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceDynamicRenderingFeatures<'a> { +pub struct PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub dynamic_rendering: Bool32, + pub pipeline_library_group_handles: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceDynamicRenderingFeatures<'_> {} -unsafe impl Sync for PhysicalDeviceDynamicRenderingFeatures<'_> {} -impl ::core::default::Default for PhysicalDeviceDynamicRenderingFeatures<'_> { +unsafe impl Send for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - dynamic_rendering: Bool32::default(), + pipeline_library_group_handles: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDynamicRenderingFeatures<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT; } -unsafe impl Extends> for PhysicalDeviceDynamicRenderingFeatures<'_> {} -unsafe impl Extends> for PhysicalDeviceDynamicRenderingFeatures<'_> {} -impl<'a> PhysicalDeviceDynamicRenderingFeatures<'a> { +unsafe impl Extends> + for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'_> +{ +} +unsafe impl Extends> + for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'_> +{ +} +impl<'a> PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'a> { #[inline] - pub fn dynamic_rendering(mut self, dynamic_rendering: bool) -> Self { - self.dynamic_rendering = dynamic_rendering.into(); + pub fn pipeline_library_group_handles(mut self, pipeline_library_group_handles: bool) -> Self { + self.pipeline_library_group_handles = pipeline_library_group_handles.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct CommandBufferInheritanceRenderingInfo<'a> { +pub struct DepthBiasInfoEXT<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub flags: RenderingFlags, - pub view_mask: u32, - pub color_attachment_count: u32, - pub p_color_attachment_formats: *const Format, - pub depth_attachment_format: Format, - pub stencil_attachment_format: Format, - pub rasterization_samples: SampleCountFlags, + pub depth_bias_constant_factor: f32, + pub depth_bias_clamp: f32, + pub depth_bias_slope_factor: f32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for CommandBufferInheritanceRenderingInfo<'_> {} -unsafe impl Sync for CommandBufferInheritanceRenderingInfo<'_> {} -impl ::core::default::Default for CommandBufferInheritanceRenderingInfo<'_> { +unsafe impl Send for DepthBiasInfoEXT<'_> {} +unsafe impl Sync for DepthBiasInfoEXT<'_> {} +impl ::core::default::Default for DepthBiasInfoEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - flags: RenderingFlags::default(), - view_mask: u32::default(), - color_attachment_count: u32::default(), - p_color_attachment_formats: ::core::ptr::null(), - depth_attachment_format: Format::default(), - stencil_attachment_format: Format::default(), - rasterization_samples: SampleCountFlags::default(), + depth_bias_constant_factor: f32::default(), + depth_bias_clamp: f32::default(), + depth_bias_slope_factor: f32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for CommandBufferInheritanceRenderingInfo<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_RENDERING_INFO; -} -unsafe impl Extends> - for CommandBufferInheritanceRenderingInfo<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for DepthBiasInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DEPTH_BIAS_INFO_EXT; } -impl<'a> CommandBufferInheritanceRenderingInfo<'a> { - #[inline] - pub fn flags(mut self, flags: RenderingFlags) -> Self { - self.flags = flags; - self - } - #[inline] - pub fn view_mask(mut self, view_mask: u32) -> Self { - self.view_mask = view_mask; - self - } - #[inline] - pub fn color_attachment_formats(mut self, color_attachment_formats: &'a [Format]) -> Self { - self.color_attachment_count = color_attachment_formats.len() as _; - self.p_color_attachment_formats = color_attachment_formats.as_ptr(); - self - } +impl<'a> DepthBiasInfoEXT<'a> { #[inline] - pub fn depth_attachment_format(mut self, depth_attachment_format: Format) -> Self { - self.depth_attachment_format = depth_attachment_format; + pub fn depth_bias_constant_factor(mut self, depth_bias_constant_factor: f32) -> Self { + self.depth_bias_constant_factor = depth_bias_constant_factor; self } #[inline] - pub fn stencil_attachment_format(mut self, stencil_attachment_format: Format) -> Self { - self.stencil_attachment_format = stencil_attachment_format; + pub fn depth_bias_clamp(mut self, depth_bias_clamp: f32) -> Self { + self.depth_bias_clamp = depth_bias_clamp; self } #[inline] - pub fn rasterization_samples(mut self, rasterization_samples: SampleCountFlags) -> Self { - self.rasterization_samples = rasterization_samples; + pub fn depth_bias_slope_factor(mut self, depth_bias_slope_factor: f32) -> Self { + self.depth_bias_slope_factor = depth_bias_slope_factor; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct AttachmentSampleCountInfoAMD<'a> { +pub struct DepthBiasRepresentationInfoEXT<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub color_attachment_count: u32, - pub p_color_attachment_samples: *const SampleCountFlags, - pub depth_stencil_attachment_samples: SampleCountFlags, + pub depth_bias_representation: DepthBiasRepresentationEXT, + pub depth_bias_exact: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for AttachmentSampleCountInfoAMD<'_> {} -unsafe impl Sync for AttachmentSampleCountInfoAMD<'_> {} -impl ::core::default::Default for AttachmentSampleCountInfoAMD<'_> { +unsafe impl Send for DepthBiasRepresentationInfoEXT<'_> {} +unsafe impl Sync for DepthBiasRepresentationInfoEXT<'_> {} +impl ::core::default::Default for DepthBiasRepresentationInfoEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - color_attachment_count: u32::default(), - p_color_attachment_samples: ::core::ptr::null(), - depth_stencil_attachment_samples: SampleCountFlags::default(), + depth_bias_representation: DepthBiasRepresentationEXT::default(), + depth_bias_exact: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for AttachmentSampleCountInfoAMD<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_SAMPLE_COUNT_INFO_AMD; +unsafe impl<'a> TaggedStructure<'a> for DepthBiasRepresentationInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DEPTH_BIAS_REPRESENTATION_INFO_EXT; } -unsafe impl Extends> for AttachmentSampleCountInfoAMD<'_> {} -unsafe impl Extends> for AttachmentSampleCountInfoAMD<'_> {} -impl<'a> AttachmentSampleCountInfoAMD<'a> { +unsafe impl Extends> for DepthBiasRepresentationInfoEXT<'_> {} +unsafe impl Extends> + for DepthBiasRepresentationInfoEXT<'_> +{ +} +impl<'a> DepthBiasRepresentationInfoEXT<'a> { #[inline] - pub fn color_attachment_samples( + pub fn depth_bias_representation( mut self, - color_attachment_samples: &'a [SampleCountFlags], + depth_bias_representation: DepthBiasRepresentationEXT, ) -> Self { - self.color_attachment_count = color_attachment_samples.len() as _; - self.p_color_attachment_samples = color_attachment_samples.as_ptr(); + self.depth_bias_representation = depth_bias_representation; self } #[inline] - pub fn depth_stencil_attachment_samples( - mut self, - depth_stencil_attachment_samples: SampleCountFlags, - ) -> Self { - self.depth_stencil_attachment_samples = depth_stencil_attachment_samples; + pub fn depth_bias_exact(mut self, depth_bias_exact: bool) -> Self { + self.depth_bias_exact = depth_bias_exact.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] +#[derive(Copy, Clone, Default)] +#[doc = ""] #[must_use] -pub struct MultiviewPerViewAttributesInfoNVX<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub per_view_attributes: Bool32, - pub per_view_attributes_position_x_only: Bool32, - pub _marker: PhantomData<&'a ()>, +pub struct DecompressMemoryRegionNV { + pub src_address: DeviceAddress, + pub dst_address: DeviceAddress, + pub compressed_size: DeviceSize, + pub decompressed_size: DeviceSize, + pub decompression_method: MemoryDecompressionMethodFlagsNV, } -unsafe impl Send for MultiviewPerViewAttributesInfoNVX<'_> {} -unsafe impl Sync for MultiviewPerViewAttributesInfoNVX<'_> {} -impl ::core::default::Default for MultiviewPerViewAttributesInfoNVX<'_> { +impl DecompressMemoryRegionNV { #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - per_view_attributes: Bool32::default(), - per_view_attributes_position_x_only: Bool32::default(), - _marker: PhantomData, - } + pub fn src_address(mut self, src_address: DeviceAddress) -> Self { + self.src_address = src_address; + self } -} -unsafe impl<'a> TaggedStructure<'a> for MultiviewPerViewAttributesInfoNVX<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX; -} -unsafe impl Extends> for MultiviewPerViewAttributesInfoNVX<'_> {} -unsafe impl Extends> for MultiviewPerViewAttributesInfoNVX<'_> {} -unsafe impl Extends> for MultiviewPerViewAttributesInfoNVX<'_> {} -impl<'a> MultiviewPerViewAttributesInfoNVX<'a> { #[inline] - pub fn per_view_attributes(mut self, per_view_attributes: bool) -> Self { - self.per_view_attributes = per_view_attributes.into(); + pub fn dst_address(mut self, dst_address: DeviceAddress) -> Self { + self.dst_address = dst_address; self } #[inline] - pub fn per_view_attributes_position_x_only( + pub fn compressed_size(mut self, compressed_size: DeviceSize) -> Self { + self.compressed_size = compressed_size; + self + } + #[inline] + pub fn decompressed_size(mut self, decompressed_size: DeviceSize) -> Self { + self.decompressed_size = decompressed_size; + self + } + #[inline] + pub fn decompression_method( mut self, - per_view_attributes_position_x_only: bool, + decompression_method: MemoryDecompressionMethodFlagsNV, ) -> Self { - self.per_view_attributes_position_x_only = per_view_attributes_position_x_only.into(); + self.decompression_method = decompression_method; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceImageViewMinLodFeaturesEXT<'a> { +pub struct PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub min_lod: Bool32, + pub shader_core_mask: u64, + pub shader_core_count: u32, + pub shader_warps_per_core: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceImageViewMinLodFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceImageViewMinLodFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceImageViewMinLodFeaturesEXT<'_> { +unsafe impl Send for PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'_> {} +unsafe impl Sync for PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - min_lod: Bool32::default(), + shader_core_mask: u64::default(), + shader_core_count: u32::default(), + shader_warps_per_core: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageViewMinLodFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT; + StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM; } -unsafe impl Extends> for PhysicalDeviceImageViewMinLodFeaturesEXT<'_> {} -unsafe impl Extends> for PhysicalDeviceImageViewMinLodFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceImageViewMinLodFeaturesEXT<'a> { +unsafe impl Extends> + for PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'_> +{ +} +impl<'a> PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'a> { #[inline] - pub fn min_lod(mut self, min_lod: bool) -> Self { - self.min_lod = min_lod.into(); + pub fn shader_core_mask(mut self, shader_core_mask: u64) -> Self { + self.shader_core_mask = shader_core_mask; self } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct ImageViewMinLodCreateInfoEXT<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub min_lod: f32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for ImageViewMinLodCreateInfoEXT<'_> {} -unsafe impl Sync for ImageViewMinLodCreateInfoEXT<'_> {} -impl ::core::default::Default for ImageViewMinLodCreateInfoEXT<'_> { #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - min_lod: f32::default(), - _marker: PhantomData, - } + pub fn shader_core_count(mut self, shader_core_count: u32) -> Self { + self.shader_core_count = shader_core_count; + self } -} -unsafe impl<'a> TaggedStructure<'a> for ImageViewMinLodCreateInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT; -} -unsafe impl Extends> for ImageViewMinLodCreateInfoEXT<'_> {} -impl<'a> ImageViewMinLodCreateInfoEXT<'a> { #[inline] - pub fn min_lod(mut self, min_lod: f32) -> Self { - self.min_lod = min_lod; + pub fn shader_warps_per_core(mut self, shader_warps_per_core: u32) -> Self { + self.shader_warps_per_core = shader_warps_per_core; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'a> { +pub struct PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub rasterization_order_color_attachment_access: Bool32, - pub rasterization_order_depth_attachment_access: Bool32, - pub rasterization_order_stencil_attachment_access: Bool32, + pub shader_core_builtins: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'_> { +unsafe impl Send for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'_> {} +unsafe impl Sync for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - rasterization_order_color_attachment_access: Bool32::default(), - rasterization_order_depth_attachment_access: Bool32::default(), - rasterization_order_stencil_attachment_access: Bool32::default(), + shader_core_builtins: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> - for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'a> -{ +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT; + StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM; } unsafe impl Extends> - for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'_> -{ -} -unsafe impl Extends> - for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'_> + for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'_> { } -impl<'a> PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'a> { - #[inline] - pub fn rasterization_order_color_attachment_access( - mut self, - rasterization_order_color_attachment_access: bool, - ) -> Self { - self.rasterization_order_color_attachment_access = - rasterization_order_color_attachment_access.into(); - self - } - #[inline] - pub fn rasterization_order_depth_attachment_access( - mut self, - rasterization_order_depth_attachment_access: bool, - ) -> Self { - self.rasterization_order_depth_attachment_access = - rasterization_order_depth_attachment_access.into(); - self - } +unsafe impl Extends> for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'_> {} +impl<'a> PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a> { #[inline] - pub fn rasterization_order_stencil_attachment_access( - mut self, - rasterization_order_stencil_attachment_access: bool, - ) -> Self { - self.rasterization_order_stencil_attachment_access = - rasterization_order_stencil_attachment_access.into(); + pub fn shader_core_builtins(mut self, shader_core_builtins: bool) -> Self { + self.shader_core_builtins = shader_core_builtins.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceLinearColorAttachmentFeaturesNV<'a> { +pub struct FrameBoundaryEXT<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub linear_color_attachment: Bool32, + pub p_next: *const c_void, + pub flags: FrameBoundaryFlagsEXT, + pub frame_id: u64, + pub image_count: u32, + pub p_images: *const Image, + pub buffer_count: u32, + pub p_buffers: *const Buffer, + pub tag_name: u64, + pub tag_size: usize, + pub p_tag: *const c_void, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceLinearColorAttachmentFeaturesNV<'_> {} -unsafe impl Sync for PhysicalDeviceLinearColorAttachmentFeaturesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceLinearColorAttachmentFeaturesNV<'_> { +unsafe impl Send for FrameBoundaryEXT<'_> {} +unsafe impl Sync for FrameBoundaryEXT<'_> {} +impl ::core::default::Default for FrameBoundaryEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - linear_color_attachment: Bool32::default(), + p_next: ::core::ptr::null(), + flags: FrameBoundaryFlagsEXT::default(), + frame_id: u64::default(), + image_count: u32::default(), + p_images: ::core::ptr::null(), + buffer_count: u32::default(), + p_buffers: ::core::ptr::null(), + tag_name: u64::default(), + tag_size: usize::default(), + p_tag: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceLinearColorAttachmentFeaturesNV<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV; -} -unsafe impl Extends> - for PhysicalDeviceLinearColorAttachmentFeaturesNV<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for FrameBoundaryEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::FRAME_BOUNDARY_EXT; } -unsafe impl Extends> for PhysicalDeviceLinearColorAttachmentFeaturesNV<'_> {} -impl<'a> PhysicalDeviceLinearColorAttachmentFeaturesNV<'a> { +unsafe impl Extends> for FrameBoundaryEXT<'_> {} +unsafe impl Extends> for FrameBoundaryEXT<'_> {} +unsafe impl Extends> for FrameBoundaryEXT<'_> {} +unsafe impl Extends> for FrameBoundaryEXT<'_> {} +impl<'a> FrameBoundaryEXT<'a> { + #[inline] + pub fn flags(mut self, flags: FrameBoundaryFlagsEXT) -> Self { + self.flags = flags; + self + } + #[inline] + pub fn frame_id(mut self, frame_id: u64) -> Self { + self.frame_id = frame_id; + self + } + #[inline] + pub fn images(mut self, images: &'a [Image]) -> Self { + self.image_count = images.len() as _; + self.p_images = images.as_ptr(); + self + } + #[inline] + pub fn buffers(mut self, buffers: &'a [Buffer]) -> Self { + self.buffer_count = buffers.len() as _; + self.p_buffers = buffers.as_ptr(); + self + } #[inline] - pub fn linear_color_attachment(mut self, linear_color_attachment: bool) -> Self { - self.linear_color_attachment = linear_color_attachment.into(); + pub fn tag_name(mut self, tag_name: u64) -> Self { + self.tag_name = tag_name; + self + } + #[inline] + pub fn tag(mut self, tag: &'a [u8]) -> Self { + self.tag_size = tag.len(); + self.p_tag = tag.as_ptr().cast(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a> { +pub struct PhysicalDeviceFrameBoundaryFeaturesEXT<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub graphics_pipeline_library: Bool32, + pub frame_boundary: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'_> { +unsafe impl Send for PhysicalDeviceFrameBoundaryFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceFrameBoundaryFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceFrameBoundaryFeaturesEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - graphics_pipeline_library: Bool32::default(), + frame_boundary: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFrameBoundaryFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT; -} -unsafe impl Extends> - for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'_> -{ + StructureType::PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT; } -unsafe impl Extends> for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a> { +unsafe impl Extends> for PhysicalDeviceFrameBoundaryFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceFrameBoundaryFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceFrameBoundaryFeaturesEXT<'a> { #[inline] - pub fn graphics_pipeline_library(mut self, graphics_pipeline_library: bool) -> Self { - self.graphics_pipeline_library = graphics_pipeline_library.into(); + pub fn frame_boundary(mut self, frame_boundary: bool) -> Self { + self.frame_boundary = frame_boundary.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDevicePipelineBinaryFeaturesKHR<'a> { +pub struct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub pipeline_binaries: Bool32, + pub dynamic_rendering_unused_attachments: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDevicePipelineBinaryFeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDevicePipelineBinaryFeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDevicePipelineBinaryFeaturesKHR<'_> { +unsafe impl Send for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - pipeline_binaries: Bool32::default(), + dynamic_rendering_unused_attachments: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineBinaryFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> + for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'a> +{ const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR; + StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT; } -unsafe impl Extends> for PhysicalDevicePipelineBinaryFeaturesKHR<'_> {} -unsafe impl Extends> for PhysicalDevicePipelineBinaryFeaturesKHR<'_> {} -impl<'a> PhysicalDevicePipelineBinaryFeaturesKHR<'a> { +unsafe impl Extends> + for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'_> +{ +} +impl<'a> PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'a> { #[inline] - pub fn pipeline_binaries(mut self, pipeline_binaries: bool) -> Self { - self.pipeline_binaries = pipeline_binaries.into(); + pub fn dynamic_rendering_unused_attachments( + mut self, + dynamic_rendering_unused_attachments: bool, + ) -> Self { + self.dynamic_rendering_unused_attachments = dynamic_rendering_unused_attachments.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DevicePipelineBinaryInternalCacheControlKHR<'a> { +pub struct SurfacePresentModeKHR<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub disable_internal_cache: Bool32, + pub p_next: *mut c_void, + pub present_mode: PresentModeKHR, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for DevicePipelineBinaryInternalCacheControlKHR<'_> {} -unsafe impl Sync for DevicePipelineBinaryInternalCacheControlKHR<'_> {} -impl ::core::default::Default for DevicePipelineBinaryInternalCacheControlKHR<'_> { +unsafe impl Send for SurfacePresentModeKHR<'_> {} +unsafe impl Sync for SurfacePresentModeKHR<'_> {} +impl ::core::default::Default for SurfacePresentModeKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - disable_internal_cache: Bool32::default(), + p_next: ::core::ptr::null_mut(), + present_mode: PresentModeKHR::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for DevicePipelineBinaryInternalCacheControlKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR; +unsafe impl<'a> TaggedStructure<'a> for SurfacePresentModeKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_PRESENT_MODE_KHR; } -unsafe impl Extends> for DevicePipelineBinaryInternalCacheControlKHR<'_> {} -impl<'a> DevicePipelineBinaryInternalCacheControlKHR<'a> { +unsafe impl Extends> for SurfacePresentModeKHR<'_> {} +impl<'a> SurfacePresentModeKHR<'a> { #[inline] - pub fn disable_internal_cache(mut self, disable_internal_cache: bool) -> Self { - self.disable_internal_cache = disable_internal_cache.into(); + pub fn present_mode(mut self, present_mode: PresentModeKHR) -> Self { + self.present_mode = present_mode; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDevicePipelineBinaryPropertiesKHR<'a> { +pub struct SurfacePresentScalingCapabilitiesKHR<'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 supported_present_scaling: PresentScalingFlagsKHR, + pub supported_present_gravity_x: PresentGravityFlagsKHR, + pub supported_present_gravity_y: PresentGravityFlagsKHR, + pub min_scaled_image_extent: Extent2D, + pub max_scaled_image_extent: Extent2D, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDevicePipelineBinaryPropertiesKHR<'_> {} -unsafe impl Sync for PhysicalDevicePipelineBinaryPropertiesKHR<'_> {} -impl ::core::default::Default for PhysicalDevicePipelineBinaryPropertiesKHR<'_> { +unsafe impl Send for SurfacePresentScalingCapabilitiesKHR<'_> {} +unsafe impl Sync for SurfacePresentScalingCapabilitiesKHR<'_> {} +impl ::core::default::Default for SurfacePresentScalingCapabilitiesKHR<'_> { #[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(), + supported_present_scaling: PresentScalingFlagsKHR::default(), + supported_present_gravity_x: PresentGravityFlagsKHR::default(), + supported_present_gravity_y: PresentGravityFlagsKHR::default(), + min_scaled_image_extent: Extent2D::default(), + max_scaled_image_extent: Extent2D::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineBinaryPropertiesKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR; -} -unsafe impl Extends> - for PhysicalDevicePipelineBinaryPropertiesKHR<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for SurfacePresentScalingCapabilitiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_PRESENT_SCALING_CAPABILITIES_KHR; } -impl<'a> PhysicalDevicePipelineBinaryPropertiesKHR<'a> { +unsafe impl Extends> for SurfacePresentScalingCapabilitiesKHR<'_> {} +impl<'a> SurfacePresentScalingCapabilitiesKHR<'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(); + pub fn supported_present_scaling( + mut self, + supported_present_scaling: PresentScalingFlagsKHR, + ) -> Self { + self.supported_present_scaling = supported_present_scaling; self } #[inline] - pub fn pipeline_binary_internal_cache_control( + pub fn supported_present_gravity_x( mut self, - pipeline_binary_internal_cache_control: bool, + supported_present_gravity_x: PresentGravityFlagsKHR, ) -> Self { - self.pipeline_binary_internal_cache_control = pipeline_binary_internal_cache_control.into(); + self.supported_present_gravity_x = supported_present_gravity_x; self } #[inline] - pub fn pipeline_binary_prefers_internal_cache( + pub fn supported_present_gravity_y( mut self, - pipeline_binary_prefers_internal_cache: bool, + supported_present_gravity_y: PresentGravityFlagsKHR, ) -> Self { - self.pipeline_binary_prefers_internal_cache = pipeline_binary_prefers_internal_cache.into(); + self.supported_present_gravity_y = supported_present_gravity_y; 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(); + pub fn min_scaled_image_extent(mut self, min_scaled_image_extent: Extent2D) -> Self { + self.min_scaled_image_extent = min_scaled_image_extent; 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(); + pub fn max_scaled_image_extent(mut self, max_scaled_image_extent: Extent2D) -> Self { + self.max_scaled_image_extent = max_scaled_image_extent; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'a> { +pub struct SurfacePresentModeCompatibilityKHR<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub graphics_pipeline_library_fast_linking: Bool32, - pub graphics_pipeline_library_independent_interpolation_decoration: Bool32, + pub present_mode_count: u32, + pub p_present_modes: *mut PresentModeKHR, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'_> { +unsafe impl Send for SurfacePresentModeCompatibilityKHR<'_> {} +unsafe impl Sync for SurfacePresentModeCompatibilityKHR<'_> {} +impl ::core::default::Default for SurfacePresentModeCompatibilityKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - graphics_pipeline_library_fast_linking: Bool32::default(), - graphics_pipeline_library_independent_interpolation_decoration: Bool32::default(), + present_mode_count: u32::default(), + p_present_modes: ::core::ptr::null_mut(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT; -} -unsafe impl Extends> - for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for SurfacePresentModeCompatibilityKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_PRESENT_MODE_COMPATIBILITY_KHR; } -impl<'a> PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'a> { - #[inline] - pub fn graphics_pipeline_library_fast_linking( - mut self, - graphics_pipeline_library_fast_linking: bool, - ) -> Self { - self.graphics_pipeline_library_fast_linking = graphics_pipeline_library_fast_linking.into(); - self - } +unsafe impl Extends> for SurfacePresentModeCompatibilityKHR<'_> {} +impl<'a> SurfacePresentModeCompatibilityKHR<'a> { #[inline] - pub fn graphics_pipeline_library_independent_interpolation_decoration( - mut self, - graphics_pipeline_library_independent_interpolation_decoration: bool, - ) -> Self { - self.graphics_pipeline_library_independent_interpolation_decoration = - graphics_pipeline_library_independent_interpolation_decoration.into(); + pub fn present_modes(mut self, present_modes: &'a mut [PresentModeKHR]) -> Self { + self.present_mode_count = present_modes.len() as _; + self.p_present_modes = present_modes.as_mut_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct GraphicsPipelineLibraryCreateInfoEXT<'a> { +pub struct PhysicalDeviceSwapchainMaintenance1FeaturesKHR<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub flags: GraphicsPipelineLibraryFlagsEXT, + pub p_next: *mut c_void, + pub swapchain_maintenance1: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for GraphicsPipelineLibraryCreateInfoEXT<'_> {} -unsafe impl Sync for GraphicsPipelineLibraryCreateInfoEXT<'_> {} -impl ::core::default::Default for GraphicsPipelineLibraryCreateInfoEXT<'_> { +unsafe impl Send for PhysicalDeviceSwapchainMaintenance1FeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceSwapchainMaintenance1FeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceSwapchainMaintenance1FeaturesKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - flags: GraphicsPipelineLibraryFlagsEXT::default(), + p_next: ::core::ptr::null_mut(), + swapchain_maintenance1: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for GraphicsPipelineLibraryCreateInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSwapchainMaintenance1FeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR; } -unsafe impl Extends> for GraphicsPipelineLibraryCreateInfoEXT<'_> {} -impl<'a> GraphicsPipelineLibraryCreateInfoEXT<'a> { +unsafe impl Extends> + for PhysicalDeviceSwapchainMaintenance1FeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceSwapchainMaintenance1FeaturesKHR<'_> {} +impl<'a> PhysicalDeviceSwapchainMaintenance1FeaturesKHR<'a> { #[inline] - pub fn flags(mut self, flags: GraphicsPipelineLibraryFlagsEXT) -> Self { - self.flags = flags; + pub fn swapchain_maintenance1(mut self, swapchain_maintenance1: bool) -> Self { + self.swapchain_maintenance1 = swapchain_maintenance1.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'a> { +pub struct SwapchainPresentFenceInfoKHR<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub descriptor_set_host_mapping: Bool32, + pub p_next: *const c_void, + pub swapchain_count: u32, + pub p_fences: *const Fence, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'_> {} -unsafe impl Sync for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'_> {} -impl ::core::default::Default for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'_> { +unsafe impl Send for SwapchainPresentFenceInfoKHR<'_> {} +unsafe impl Sync for SwapchainPresentFenceInfoKHR<'_> {} +impl ::core::default::Default for SwapchainPresentFenceInfoKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - descriptor_set_host_mapping: Bool32::default(), + p_next: ::core::ptr::null(), + swapchain_count: u32::default(), + p_fences: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE; -} -unsafe impl Extends> - for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'_> -{ -} -unsafe impl Extends> - for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for SwapchainPresentFenceInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_FENCE_INFO_KHR; } -impl<'a> PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'a> { +unsafe impl Extends> for SwapchainPresentFenceInfoKHR<'_> {} +impl<'a> SwapchainPresentFenceInfoKHR<'a> { #[inline] - pub fn descriptor_set_host_mapping(mut self, descriptor_set_host_mapping: bool) -> Self { - self.descriptor_set_host_mapping = descriptor_set_host_mapping.into(); + pub fn fences(mut self, fences: &'a [Fence]) -> Self { + self.swapchain_count = fences.len() as _; + self.p_fences = fences.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DescriptorSetBindingReferenceVALVE<'a> { +pub struct SwapchainPresentModesCreateInfoKHR<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub descriptor_set_layout: DescriptorSetLayout, - pub binding: u32, + pub present_mode_count: u32, + pub p_present_modes: *const PresentModeKHR, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for DescriptorSetBindingReferenceVALVE<'_> {} -unsafe impl Sync for DescriptorSetBindingReferenceVALVE<'_> {} -impl ::core::default::Default for DescriptorSetBindingReferenceVALVE<'_> { +unsafe impl Send for SwapchainPresentModesCreateInfoKHR<'_> {} +unsafe impl Sync for SwapchainPresentModesCreateInfoKHR<'_> {} +impl ::core::default::Default for SwapchainPresentModesCreateInfoKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - descriptor_set_layout: DescriptorSetLayout::default(), - binding: u32::default(), + present_mode_count: u32::default(), + p_present_modes: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for DescriptorSetBindingReferenceVALVE<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_BINDING_REFERENCE_VALVE; +unsafe impl<'a> TaggedStructure<'a> for SwapchainPresentModesCreateInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR; } -impl<'a> DescriptorSetBindingReferenceVALVE<'a> { - #[inline] - pub fn descriptor_set_layout(mut self, descriptor_set_layout: DescriptorSetLayout) -> Self { - self.descriptor_set_layout = descriptor_set_layout; - self - } +unsafe impl Extends> for SwapchainPresentModesCreateInfoKHR<'_> {} +impl<'a> SwapchainPresentModesCreateInfoKHR<'a> { #[inline] - pub fn binding(mut self, binding: u32) -> Self { - self.binding = binding; + pub fn present_modes(mut self, present_modes: &'a [PresentModeKHR]) -> Self { + self.present_mode_count = present_modes.len() as _; + self.p_present_modes = present_modes.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DescriptorSetLayoutHostMappingInfoVALVE<'a> { +pub struct SwapchainPresentModeInfoKHR<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub descriptor_offset: usize, - pub descriptor_size: u32, + pub p_next: *const c_void, + pub swapchain_count: u32, + pub p_present_modes: *const PresentModeKHR, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for DescriptorSetLayoutHostMappingInfoVALVE<'_> {} -unsafe impl Sync for DescriptorSetLayoutHostMappingInfoVALVE<'_> {} -impl ::core::default::Default for DescriptorSetLayoutHostMappingInfoVALVE<'_> { +unsafe impl Send for SwapchainPresentModeInfoKHR<'_> {} +unsafe impl Sync for SwapchainPresentModeInfoKHR<'_> {} +impl ::core::default::Default for SwapchainPresentModeInfoKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - descriptor_offset: usize::default(), - descriptor_size: u32::default(), + p_next: ::core::ptr::null(), + swapchain_count: u32::default(), + p_present_modes: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for DescriptorSetLayoutHostMappingInfoVALVE<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE; +unsafe impl<'a> TaggedStructure<'a> for SwapchainPresentModeInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_MODE_INFO_KHR; } -impl<'a> DescriptorSetLayoutHostMappingInfoVALVE<'a> { - #[inline] - pub fn descriptor_offset(mut self, descriptor_offset: usize) -> Self { - self.descriptor_offset = descriptor_offset; - self - } +unsafe impl Extends> for SwapchainPresentModeInfoKHR<'_> {} +impl<'a> SwapchainPresentModeInfoKHR<'a> { #[inline] - pub fn descriptor_size(mut self, descriptor_size: u32) -> Self { - self.descriptor_size = descriptor_size; + pub fn present_modes(mut self, present_modes: &'a [PresentModeKHR]) -> Self { + self.swapchain_count = present_modes.len() as _; + self.p_present_modes = present_modes.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceNestedCommandBufferFeaturesEXT<'a> { +pub struct SwapchainPresentScalingCreateInfoKHR<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub nested_command_buffer: Bool32, - pub nested_command_buffer_rendering: Bool32, - pub nested_command_buffer_simultaneous_use: Bool32, + pub p_next: *const c_void, + pub scaling_behavior: PresentScalingFlagsKHR, + pub present_gravity_x: PresentGravityFlagsKHR, + pub present_gravity_y: PresentGravityFlagsKHR, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceNestedCommandBufferFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceNestedCommandBufferFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceNestedCommandBufferFeaturesEXT<'_> { +unsafe impl Send for SwapchainPresentScalingCreateInfoKHR<'_> {} +unsafe impl Sync for SwapchainPresentScalingCreateInfoKHR<'_> {} +impl ::core::default::Default for SwapchainPresentScalingCreateInfoKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - nested_command_buffer: Bool32::default(), - nested_command_buffer_rendering: Bool32::default(), - nested_command_buffer_simultaneous_use: Bool32::default(), + p_next: ::core::ptr::null(), + scaling_behavior: PresentScalingFlagsKHR::default(), + present_gravity_x: PresentGravityFlagsKHR::default(), + present_gravity_y: PresentGravityFlagsKHR::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceNestedCommandBufferFeaturesEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT; -} -unsafe impl Extends> - for PhysicalDeviceNestedCommandBufferFeaturesEXT<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for SwapchainPresentScalingCreateInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR; } -unsafe impl Extends> for PhysicalDeviceNestedCommandBufferFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceNestedCommandBufferFeaturesEXT<'a> { +unsafe impl Extends> for SwapchainPresentScalingCreateInfoKHR<'_> {} +impl<'a> SwapchainPresentScalingCreateInfoKHR<'a> { #[inline] - pub fn nested_command_buffer(mut self, nested_command_buffer: bool) -> Self { - self.nested_command_buffer = nested_command_buffer.into(); + pub fn scaling_behavior(mut self, scaling_behavior: PresentScalingFlagsKHR) -> Self { + self.scaling_behavior = scaling_behavior; self } #[inline] - pub fn nested_command_buffer_rendering( - mut self, - nested_command_buffer_rendering: bool, - ) -> Self { - self.nested_command_buffer_rendering = nested_command_buffer_rendering.into(); + pub fn present_gravity_x(mut self, present_gravity_x: PresentGravityFlagsKHR) -> Self { + self.present_gravity_x = present_gravity_x; self } #[inline] - pub fn nested_command_buffer_simultaneous_use( - mut self, - nested_command_buffer_simultaneous_use: bool, - ) -> Self { - self.nested_command_buffer_simultaneous_use = nested_command_buffer_simultaneous_use.into(); + pub fn present_gravity_y(mut self, present_gravity_y: PresentGravityFlagsKHR) -> Self { + self.present_gravity_y = present_gravity_y; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceNestedCommandBufferPropertiesEXT<'a> { +pub struct ReleaseSwapchainImagesInfoKHR<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub max_command_buffer_nesting_level: u32, + pub p_next: *const c_void, + pub swapchain: SwapchainKHR, + pub image_index_count: u32, + pub p_image_indices: *const u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceNestedCommandBufferPropertiesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceNestedCommandBufferPropertiesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceNestedCommandBufferPropertiesEXT<'_> { +unsafe impl Send for ReleaseSwapchainImagesInfoKHR<'_> {} +unsafe impl Sync for ReleaseSwapchainImagesInfoKHR<'_> {} +impl ::core::default::Default for ReleaseSwapchainImagesInfoKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - max_command_buffer_nesting_level: u32::default(), + p_next: ::core::ptr::null(), + swapchain: SwapchainKHR::default(), + image_index_count: u32::default(), + p_image_indices: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceNestedCommandBufferPropertiesEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT; -} -unsafe impl Extends> - for PhysicalDeviceNestedCommandBufferPropertiesEXT<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for ReleaseSwapchainImagesInfoKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::RELEASE_SWAPCHAIN_IMAGES_INFO_KHR; } -impl<'a> PhysicalDeviceNestedCommandBufferPropertiesEXT<'a> { +impl<'a> ReleaseSwapchainImagesInfoKHR<'a> { #[inline] - pub fn max_command_buffer_nesting_level( - mut self, - max_command_buffer_nesting_level: u32, - ) -> Self { - self.max_command_buffer_nesting_level = max_command_buffer_nesting_level; + pub fn swapchain(mut self, swapchain: SwapchainKHR) -> Self { + self.swapchain = swapchain; self } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub shader_module_identifier: Bool32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - shader_module_identifier: Bool32::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT; -} -unsafe impl Extends> - for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'_> -{ -} -unsafe impl Extends> for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'a> { #[inline] - pub fn shader_module_identifier(mut self, shader_module_identifier: bool) -> Self { - self.shader_module_identifier = shader_module_identifier.into(); + pub fn image_indices(mut self, image_indices: &'a [u32]) -> Self { + self.image_index_count = image_indices.len() as _; + self.p_image_indices = image_indices.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'a> { +pub struct PhysicalDeviceDepthBiasControlFeaturesEXT<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub shader_module_identifier_algorithm_uuid: [u8; UUID_SIZE], + pub depth_bias_control: Bool32, + pub least_representable_value_force_unorm_representation: Bool32, + pub float_representation: Bool32, + pub depth_bias_exact: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'_> { +unsafe impl Send for PhysicalDeviceDepthBiasControlFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceDepthBiasControlFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceDepthBiasControlFeaturesEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - shader_module_identifier_algorithm_uuid: unsafe { ::core::mem::zeroed() }, + depth_bias_control: Bool32::default(), + least_representable_value_force_unorm_representation: Bool32::default(), + float_representation: Bool32::default(), + depth_bias_exact: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDepthBiasControlFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT; -} -unsafe impl Extends> - for PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'_> -{ + StructureType::PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT; } -impl<'a> PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'a> { +unsafe impl Extends> for PhysicalDeviceDepthBiasControlFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceDepthBiasControlFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceDepthBiasControlFeaturesEXT<'a> { #[inline] - pub fn shader_module_identifier_algorithm_uuid( + pub fn depth_bias_control(mut self, depth_bias_control: bool) -> Self { + self.depth_bias_control = depth_bias_control.into(); + self + } + #[inline] + pub fn least_representable_value_force_unorm_representation( mut self, - shader_module_identifier_algorithm_uuid: [u8; UUID_SIZE], + least_representable_value_force_unorm_representation: bool, ) -> Self { - self.shader_module_identifier_algorithm_uuid = shader_module_identifier_algorithm_uuid; + self.least_representable_value_force_unorm_representation = + least_representable_value_force_unorm_representation.into(); self } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PipelineShaderStageModuleIdentifierCreateInfoEXT<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub identifier_size: u32, - pub p_identifier: *const u8, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PipelineShaderStageModuleIdentifierCreateInfoEXT<'_> {} -unsafe impl Sync for PipelineShaderStageModuleIdentifierCreateInfoEXT<'_> {} -impl ::core::default::Default for PipelineShaderStageModuleIdentifierCreateInfoEXT<'_> { #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - identifier_size: u32::default(), - p_identifier: ::core::ptr::null(), - _marker: PhantomData, - } + pub fn float_representation(mut self, float_representation: bool) -> Self { + self.float_representation = float_representation.into(); + self } -} -unsafe impl<'a> TaggedStructure<'a> for PipelineShaderStageModuleIdentifierCreateInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT; -} -unsafe impl Extends> - for PipelineShaderStageModuleIdentifierCreateInfoEXT<'_> -{ -} -impl<'a> PipelineShaderStageModuleIdentifierCreateInfoEXT<'a> { - #[inline] - pub fn identifier(mut self, identifier: &'a [u8]) -> Self { - self.identifier_size = identifier.len() as _; - self.p_identifier = identifier.as_ptr(); + #[inline] + pub fn depth_bias_exact(mut self, depth_bias_exact: bool) -> Self { + self.depth_bias_exact = depth_bias_exact.into(); self } } #[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ShaderModuleIdentifierEXT<'a> { +pub struct PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub identifier_size: u32, - pub identifier: [u8; MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT], + pub ray_tracing_invocation_reorder: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ShaderModuleIdentifierEXT<'_> {} -unsafe impl Sync for ShaderModuleIdentifierEXT<'_> {} -#[cfg(feature = "debug")] -impl fmt::Debug for ShaderModuleIdentifierEXT<'_> { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("ShaderModuleIdentifierEXT") - .field("s_type", &self.s_type) - .field("p_next", &self.p_next) - .field("identifier_size", &self.identifier_size) - .field("identifier", &self.identifier_as_slice()) - .finish() - } -} -impl ::core::default::Default for ShaderModuleIdentifierEXT<'_> { +unsafe impl Send for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - identifier_size: u32::default(), - identifier: unsafe { ::core::mem::zeroed() }, + ray_tracing_invocation_reorder: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ShaderModuleIdentifierEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SHADER_MODULE_IDENTIFIER_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV; } -impl<'a> ShaderModuleIdentifierEXT<'a> { +unsafe impl Extends> + for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'_> +{ +} +impl<'a> PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'a> { #[inline] - pub fn identifier(mut self, identifier: &'_ [u8]) -> Self { - self.identifier_size = identifier.len() as _; - self.identifier[..identifier.len()].copy_from_slice(identifier); + pub fn ray_tracing_invocation_reorder(mut self, ray_tracing_invocation_reorder: bool) -> Self { + self.ray_tracing_invocation_reorder = ray_tracing_invocation_reorder.into(); self } - #[inline] - pub fn identifier_as_slice(&self) -> &[u8] { - &self.identifier[..self.identifier_size as _] - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ImageCompressionControlEXT<'a> { +pub struct PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub flags: ImageCompressionFlagsEXT, - pub compression_control_plane_count: u32, - pub p_fixed_rate_flags: *mut ImageCompressionFixedRateFlagsEXT, + pub p_next: *mut c_void, + pub ray_tracing_invocation_reorder_reordering_hint: RayTracingInvocationReorderModeNV, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ImageCompressionControlEXT<'_> {} -unsafe impl Sync for ImageCompressionControlEXT<'_> {} -impl ::core::default::Default for ImageCompressionControlEXT<'_> { +unsafe impl Send for PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'_> {} +unsafe impl Sync for PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - flags: ImageCompressionFlagsEXT::default(), - compression_control_plane_count: u32::default(), - p_fixed_rate_flags: ::core::ptr::null_mut(), + p_next: ::core::ptr::null_mut(), + ray_tracing_invocation_reorder_reordering_hint: + RayTracingInvocationReorderModeNV::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ImageCompressionControlEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_COMPRESSION_CONTROL_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV; } -unsafe impl Extends> for ImageCompressionControlEXT<'_> {} -unsafe impl Extends> for ImageCompressionControlEXT<'_> {} -unsafe impl Extends> for ImageCompressionControlEXT<'_> {} -impl<'a> ImageCompressionControlEXT<'a> { - #[inline] - pub fn flags(mut self, flags: ImageCompressionFlagsEXT) -> Self { - self.flags = flags; - self - } +unsafe impl Extends> + for PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'_> +{ +} +impl<'a> PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'a> { #[inline] - pub fn fixed_rate_flags( + pub fn ray_tracing_invocation_reorder_reordering_hint( mut self, - fixed_rate_flags: &'a mut [ImageCompressionFixedRateFlagsEXT], + ray_tracing_invocation_reorder_reordering_hint: RayTracingInvocationReorderModeNV, ) -> Self { - self.compression_control_plane_count = fixed_rate_flags.len() as _; - self.p_fixed_rate_flags = fixed_rate_flags.as_mut_ptr(); + self.ray_tracing_invocation_reorder_reordering_hint = + ray_tracing_invocation_reorder_reordering_hint; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceImageCompressionControlFeaturesEXT<'a> { +pub struct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub image_compression_control: Bool32, + pub extended_sparse_address_space: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceImageCompressionControlFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceImageCompressionControlFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceImageCompressionControlFeaturesEXT<'_> { +unsafe impl Send for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - image_compression_control: Bool32::default(), + extended_sparse_address_space: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageCompressionControlFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT; + StructureType::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV; } unsafe impl Extends> - for PhysicalDeviceImageCompressionControlFeaturesEXT<'_> + for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'_> { } -unsafe impl Extends> for PhysicalDeviceImageCompressionControlFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceImageCompressionControlFeaturesEXT<'a> { +unsafe impl Extends> + for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'_> +{ +} +impl<'a> PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'a> { #[inline] - pub fn image_compression_control(mut self, image_compression_control: bool) -> Self { - self.image_compression_control = image_compression_control.into(); + pub fn extended_sparse_address_space(mut self, extended_sparse_address_space: bool) -> Self { + self.extended_sparse_address_space = extended_sparse_address_space.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ImageCompressionPropertiesEXT<'a> { +pub struct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub image_compression_flags: ImageCompressionFlagsEXT, - pub image_compression_fixed_rate_flags: ImageCompressionFixedRateFlagsEXT, + pub extended_sparse_address_space_size: DeviceSize, + pub extended_sparse_image_usage_flags: ImageUsageFlags, + pub extended_sparse_buffer_usage_flags: BufferUsageFlags, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ImageCompressionPropertiesEXT<'_> {} -unsafe impl Sync for ImageCompressionPropertiesEXT<'_> {} -impl ::core::default::Default for ImageCompressionPropertiesEXT<'_> { +unsafe impl Send for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'_> {} +unsafe impl Sync for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - image_compression_flags: ImageCompressionFlagsEXT::default(), - image_compression_fixed_rate_flags: ImageCompressionFixedRateFlagsEXT::default(), + extended_sparse_address_space_size: DeviceSize::default(), + extended_sparse_image_usage_flags: ImageUsageFlags::default(), + extended_sparse_buffer_usage_flags: BufferUsageFlags::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ImageCompressionPropertiesEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_COMPRESSION_PROPERTIES_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV; } -unsafe impl Extends> for ImageCompressionPropertiesEXT<'_> {} -unsafe impl Extends> for ImageCompressionPropertiesEXT<'_> {} -unsafe impl Extends> for ImageCompressionPropertiesEXT<'_> {} -impl<'a> ImageCompressionPropertiesEXT<'a> { +unsafe impl Extends> + for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'_> +{ +} +impl<'a> PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'a> { #[inline] - pub fn image_compression_flags( + pub fn extended_sparse_address_space_size( mut self, - image_compression_flags: ImageCompressionFlagsEXT, + extended_sparse_address_space_size: DeviceSize, ) -> Self { - self.image_compression_flags = image_compression_flags; + self.extended_sparse_address_space_size = extended_sparse_address_space_size; self } #[inline] - pub fn image_compression_fixed_rate_flags( + pub fn extended_sparse_image_usage_flags( mut self, - image_compression_fixed_rate_flags: ImageCompressionFixedRateFlagsEXT, + extended_sparse_image_usage_flags: ImageUsageFlags, ) -> Self { - self.image_compression_fixed_rate_flags = image_compression_fixed_rate_flags; + self.extended_sparse_image_usage_flags = extended_sparse_image_usage_flags; + self + } + #[inline] + pub fn extended_sparse_buffer_usage_flags( + mut self, + extended_sparse_buffer_usage_flags: BufferUsageFlags, + ) -> Self { + self.extended_sparse_buffer_usage_flags = extended_sparse_buffer_usage_flags; self } } #[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'a> { +pub struct DirectDriverLoadingInfoLUNARG<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub image_compression_control_swapchain: Bool32, + pub flags: DirectDriverLoadingFlagsLUNARG, + pub pfn_get_instance_proc_addr: PFN_vkGetInstanceProcAddrLUNARG, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'_> { +unsafe impl Send for DirectDriverLoadingInfoLUNARG<'_> {} +unsafe impl Sync for DirectDriverLoadingInfoLUNARG<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for DirectDriverLoadingInfoLUNARG<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("DirectDriverLoadingInfoLUNARG") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field("flags", &self.flags) + .field( + "pfn_get_instance_proc_addr", + &(self.pfn_get_instance_proc_addr.map(|x| x as *const ())), + ) + .finish() + } +} +impl ::core::default::Default for DirectDriverLoadingInfoLUNARG<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - image_compression_control_swapchain: Bool32::default(), + flags: DirectDriverLoadingFlagsLUNARG::default(), + pfn_get_instance_proc_addr: PFN_vkGetInstanceProcAddrLUNARG::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> - for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'a> -{ - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT; -} -unsafe impl Extends> - for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'_> -{ -} -unsafe impl Extends> - for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for DirectDriverLoadingInfoLUNARG<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DIRECT_DRIVER_LOADING_INFO_LUNARG; } -impl<'a> PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'a> { +impl<'a> DirectDriverLoadingInfoLUNARG<'a> { #[inline] - pub fn image_compression_control_swapchain( + pub fn flags(mut self, flags: DirectDriverLoadingFlagsLUNARG) -> Self { + self.flags = flags; + self + } + #[inline] + pub fn pfn_get_instance_proc_addr( mut self, - image_compression_control_swapchain: bool, + pfn_get_instance_proc_addr: PFN_vkGetInstanceProcAddrLUNARG, ) -> Self { - self.image_compression_control_swapchain = image_compression_control_swapchain.into(); + self.pfn_get_instance_proc_addr = pfn_get_instance_proc_addr; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ImageSubresource2KHR<'a> { +pub struct DirectDriverLoadingListLUNARG<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub image_subresource: ImageSubresource, + pub p_next: *const c_void, + pub mode: DirectDriverLoadingModeLUNARG, + pub driver_count: u32, + pub p_drivers: *const DirectDriverLoadingInfoLUNARG<'a>, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ImageSubresource2KHR<'_> {} -unsafe impl Sync for ImageSubresource2KHR<'_> {} -impl ::core::default::Default for ImageSubresource2KHR<'_> { +unsafe impl Send for DirectDriverLoadingListLUNARG<'_> {} +unsafe impl Sync for DirectDriverLoadingListLUNARG<'_> {} +impl ::core::default::Default for DirectDriverLoadingListLUNARG<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - image_subresource: ImageSubresource::default(), + p_next: ::core::ptr::null(), + mode: DirectDriverLoadingModeLUNARG::default(), + driver_count: u32::default(), + p_drivers: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ImageSubresource2KHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_SUBRESOURCE_2_KHR; +unsafe impl<'a> TaggedStructure<'a> for DirectDriverLoadingListLUNARG<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DIRECT_DRIVER_LOADING_LIST_LUNARG; } -impl<'a> ImageSubresource2KHR<'a> { +unsafe impl Extends> for DirectDriverLoadingListLUNARG<'_> {} +impl<'a> DirectDriverLoadingListLUNARG<'a> { #[inline] - pub fn image_subresource(mut self, image_subresource: ImageSubresource) -> Self { - self.image_subresource = image_subresource; + pub fn mode(mut self, mode: DirectDriverLoadingModeLUNARG) -> Self { + self.mode = mode; + self + } + #[inline] + pub fn drivers(mut self, drivers: &'a [DirectDriverLoadingInfoLUNARG<'a>]) -> Self { + self.driver_count = drivers.len() as _; + self.p_drivers = drivers.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct SubresourceLayout2KHR<'a> { +pub struct PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub subresource_layout: SubresourceLayout, + pub multiview_per_view_viewports: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for SubresourceLayout2KHR<'_> {} -unsafe impl Sync for SubresourceLayout2KHR<'_> {} -impl ::core::default::Default for SubresourceLayout2KHR<'_> { +unsafe impl Send for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'_> {} +unsafe impl Sync for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'_> {} +impl ::core::default::Default for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - subresource_layout: SubresourceLayout::default(), + multiview_per_view_viewports: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for SubresourceLayout2KHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SUBRESOURCE_LAYOUT_2_KHR; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM; +} +unsafe impl Extends> + for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'_> +{ } -impl<'a> SubresourceLayout2KHR<'a> { +impl<'a> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'a> { #[inline] - pub fn subresource_layout(mut self, subresource_layout: SubresourceLayout) -> Self { - self.subresource_layout = subresource_layout; + pub fn multiview_per_view_viewports(mut self, multiview_per_view_viewports: bool) -> Self { + self.multiview_per_view_viewports = multiview_per_view_viewports.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct RenderPassCreationControlEXT<'a> { +pub struct PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub disallow_merging: Bool32, + pub p_next: *mut c_void, + pub ray_tracing_position_fetch: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for RenderPassCreationControlEXT<'_> {} -unsafe impl Sync for RenderPassCreationControlEXT<'_> {} -impl ::core::default::Default for RenderPassCreationControlEXT<'_> { +unsafe impl Send for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - disallow_merging: Bool32::default(), + p_next: ::core::ptr::null_mut(), + ray_tracing_position_fetch: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for RenderPassCreationControlEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_CREATION_CONTROL_EXT; -} -unsafe impl Extends> for RenderPassCreationControlEXT<'_> {} -unsafe impl Extends> for RenderPassCreationControlEXT<'_> {} -impl<'a> RenderPassCreationControlEXT<'a> { - #[inline] - pub fn disallow_merging(mut self, disallow_merging: bool) -> Self { - self.disallow_merging = disallow_merging.into(); - self - } +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR; } -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone, Default)] -#[doc = ""] -#[must_use] -pub struct RenderPassCreationFeedbackInfoEXT { - pub post_merge_subpass_count: u32, +unsafe impl Extends> + for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'_> +{ } -impl RenderPassCreationFeedbackInfoEXT { +unsafe impl Extends> for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'_> {} +impl<'a> PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'a> { #[inline] - pub fn post_merge_subpass_count(mut self, post_merge_subpass_count: u32) -> Self { - self.post_merge_subpass_count = post_merge_subpass_count; + pub fn ray_tracing_position_fetch(mut self, ray_tracing_position_fetch: bool) -> Self { + self.ray_tracing_position_fetch = ray_tracing_position_fetch.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct RenderPassCreationFeedbackCreateInfoEXT<'a> { +pub struct DeviceImageSubresourceInfo<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub p_render_pass_feedback: *mut RenderPassCreationFeedbackInfoEXT, + pub p_create_info: *const ImageCreateInfo<'a>, + pub p_subresource: *const ImageSubresource2<'a>, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for RenderPassCreationFeedbackCreateInfoEXT<'_> {} -unsafe impl Sync for RenderPassCreationFeedbackCreateInfoEXT<'_> {} -impl ::core::default::Default for RenderPassCreationFeedbackCreateInfoEXT<'_> { +unsafe impl Send for DeviceImageSubresourceInfo<'_> {} +unsafe impl Sync for DeviceImageSubresourceInfo<'_> {} +impl ::core::default::Default for DeviceImageSubresourceInfo<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - p_render_pass_feedback: ::core::ptr::null_mut(), + p_create_info: ::core::ptr::null(), + p_subresource: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for RenderPassCreationFeedbackCreateInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for DeviceImageSubresourceInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_IMAGE_SUBRESOURCE_INFO; } -unsafe impl Extends> for RenderPassCreationFeedbackCreateInfoEXT<'_> {} -impl<'a> RenderPassCreationFeedbackCreateInfoEXT<'a> { +impl<'a> DeviceImageSubresourceInfo<'a> { #[inline] - pub fn render_pass_feedback( - mut self, - render_pass_feedback: &'a mut RenderPassCreationFeedbackInfoEXT, - ) -> Self { - self.p_render_pass_feedback = render_pass_feedback; + pub fn create_info(mut self, create_info: &'a ImageCreateInfo<'a>) -> Self { + self.p_create_info = create_info; + self + } + #[inline] + pub fn subresource(mut self, subresource: &'a ImageSubresource2<'a>) -> Self { + self.p_subresource = subresource; self } } #[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct RenderPassSubpassFeedbackInfoEXT { - pub subpass_merge_status: SubpassMergeStatusEXT, - pub description: [c_char; MAX_DESCRIPTION_SIZE], - pub post_merge_index: u32, -} -#[cfg(feature = "debug")] -impl fmt::Debug for RenderPassSubpassFeedbackInfoEXT { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("RenderPassSubpassFeedbackInfoEXT") - .field("subpass_merge_status", &self.subpass_merge_status) - .field("description", &self.description_as_c_str()) - .field("post_merge_index", &self.post_merge_index) - .finish() - } +pub struct PhysicalDeviceShaderCorePropertiesARM<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub pixel_rate: u32, + pub texel_rate: u32, + pub fma_rate: u32, + pub _marker: PhantomData<&'a ()>, } -impl ::core::default::Default for RenderPassSubpassFeedbackInfoEXT { +unsafe impl Send for PhysicalDeviceShaderCorePropertiesARM<'_> {} +unsafe impl Sync for PhysicalDeviceShaderCorePropertiesARM<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderCorePropertiesARM<'_> { #[inline] fn default() -> Self { Self { - subpass_merge_status: SubpassMergeStatusEXT::default(), - description: unsafe { ::core::mem::zeroed() }, - post_merge_index: u32::default(), + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + pixel_rate: u32::default(), + texel_rate: u32::default(), + fma_rate: u32::default(), + _marker: PhantomData, } } } -impl RenderPassSubpassFeedbackInfoEXT { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderCorePropertiesARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM; +} +unsafe impl Extends> for PhysicalDeviceShaderCorePropertiesARM<'_> {} +impl<'a> PhysicalDeviceShaderCorePropertiesARM<'a> { #[inline] - pub fn subpass_merge_status(mut self, subpass_merge_status: SubpassMergeStatusEXT) -> Self { - self.subpass_merge_status = subpass_merge_status; + pub fn pixel_rate(mut self, pixel_rate: u32) -> Self { + self.pixel_rate = pixel_rate; self } #[inline] - pub fn description( - mut self, - description: &CStr, - ) -> core::result::Result { - write_c_str_slice_with_nul(&mut self.description, description).map(|()| self) - } - #[inline] - pub fn description_as_c_str(&self) -> core::result::Result<&CStr, FromBytesUntilNulError> { - wrap_c_str_slice_until_nul(&self.description) + pub fn texel_rate(mut self, texel_rate: u32) -> Self { + self.texel_rate = texel_rate; + self } #[inline] - pub fn post_merge_index(mut self, post_merge_index: u32) -> Self { - self.post_merge_index = post_merge_index; + pub fn fma_rate(mut self, fma_rate: u32) -> Self { + self.fma_rate = fma_rate; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct RenderPassSubpassFeedbackCreateInfoEXT<'a> { +pub struct PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub p_subpass_feedback: *mut RenderPassSubpassFeedbackInfoEXT, + pub p_next: *mut c_void, + pub multiview_per_view_render_areas: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for RenderPassSubpassFeedbackCreateInfoEXT<'_> {} -unsafe impl Sync for RenderPassSubpassFeedbackCreateInfoEXT<'_> {} -impl ::core::default::Default for RenderPassSubpassFeedbackCreateInfoEXT<'_> { +unsafe impl Send for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'_> {} +unsafe impl Sync for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'_> {} +impl ::core::default::Default for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - p_subpass_feedback: ::core::ptr::null_mut(), + p_next: ::core::ptr::null_mut(), + multiview_per_view_render_areas: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for RenderPassSubpassFeedbackCreateInfoEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT; + StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM; } -unsafe impl Extends> for RenderPassSubpassFeedbackCreateInfoEXT<'_> {} -impl<'a> RenderPassSubpassFeedbackCreateInfoEXT<'a> { +unsafe impl Extends> + for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'_> +{ +} +impl<'a> PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'a> { #[inline] - pub fn subpass_feedback( + pub fn multiview_per_view_render_areas( mut self, - subpass_feedback: &'a mut RenderPassSubpassFeedbackInfoEXT, + multiview_per_view_render_areas: bool, ) -> Self { - self.p_subpass_feedback = subpass_feedback; + self.multiview_per_view_render_areas = multiview_per_view_render_areas.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'a> { +pub struct MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub subpass_merge_feedback: Bool32, + pub p_next: *const c_void, + pub per_view_render_area_count: u32, + pub p_per_view_render_areas: *const Rect2D, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'_> { +unsafe impl Send for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'_> {} +unsafe impl Sync for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'_> {} +impl ::core::default::Default for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - subpass_merge_feedback: Bool32::default(), + p_next: ::core::ptr::null(), + per_view_render_area_count: u32::default(), + p_per_view_render_areas: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT; + StructureType::MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM; } -unsafe impl Extends> - for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'_> +unsafe impl Extends> + for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'_> { -} -unsafe impl Extends> for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'a> { +} +unsafe impl Extends> for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'_> {} +impl<'a> MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'a> { #[inline] - pub fn subpass_merge_feedback(mut self, subpass_merge_feedback: bool) -> Self { - self.subpass_merge_feedback = subpass_merge_feedback.into(); + pub fn per_view_render_areas(mut self, per_view_render_areas: &'a [Rect2D]) -> Self { + self.per_view_render_area_count = per_view_render_areas.len() as _; + self.p_per_view_render_areas = per_view_render_areas.as_ptr(); self } } #[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct MicromapBuildInfoEXT<'a> { +pub struct QueryLowLatencySupportNV<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub ty: MicromapTypeEXT, - pub flags: BuildMicromapFlagsEXT, - pub mode: BuildMicromapModeEXT, - pub dst_micromap: MicromapEXT, - pub usage_counts_count: u32, - pub p_usage_counts: *const MicromapUsageEXT, - pub pp_usage_counts: *const *const MicromapUsageEXT, - pub data: DeviceOrHostAddressConstKHR, - pub scratch_data: DeviceOrHostAddressKHR, - pub triangle_array: DeviceOrHostAddressConstKHR, - pub triangle_array_stride: DeviceSize, + pub p_queried_low_latency_data: *mut c_void, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for MicromapBuildInfoEXT<'_> {} -unsafe impl Sync for MicromapBuildInfoEXT<'_> {} -#[cfg(feature = "debug")] -impl fmt::Debug for MicromapBuildInfoEXT<'_> { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("MicromapBuildInfoEXT") - .field("s_type", &self.s_type) - .field("p_next", &self.p_next) - .field("ty", &self.ty) - .field("flags", &self.flags) - .field("mode", &self.mode) - .field("dst_micromap", &self.dst_micromap) - .field("usage_counts_count", &self.usage_counts_count) - .field("p_usage_counts", &self.p_usage_counts) - .field("pp_usage_counts", &self.pp_usage_counts) - .field("data", &"union") - .field("scratch_data", &"union") - .field("triangle_array", &"union") - .field("triangle_array_stride", &self.triangle_array_stride) - .finish() - } -} -impl ::core::default::Default for MicromapBuildInfoEXT<'_> { +unsafe impl Send for QueryLowLatencySupportNV<'_> {} +unsafe impl Sync for QueryLowLatencySupportNV<'_> {} +impl ::core::default::Default for QueryLowLatencySupportNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - ty: MicromapTypeEXT::default(), - flags: BuildMicromapFlagsEXT::default(), - mode: BuildMicromapModeEXT::default(), - dst_micromap: MicromapEXT::default(), - usage_counts_count: u32::default(), - p_usage_counts: ::core::ptr::null(), - pp_usage_counts: ::core::ptr::null(), - data: DeviceOrHostAddressConstKHR::default(), - scratch_data: DeviceOrHostAddressKHR::default(), - triangle_array: DeviceOrHostAddressConstKHR::default(), - triangle_array_stride: DeviceSize::default(), + p_queried_low_latency_data: ::core::ptr::null_mut(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for MicromapBuildInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::MICROMAP_BUILD_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for QueryLowLatencySupportNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::QUERY_LOW_LATENCY_SUPPORT_NV; } -impl<'a> MicromapBuildInfoEXT<'a> { - #[inline] - pub fn ty(mut self, ty: MicromapTypeEXT) -> Self { - self.ty = ty; - self - } - #[inline] - pub fn flags(mut self, flags: BuildMicromapFlagsEXT) -> Self { - self.flags = flags; - self - } - #[inline] - pub fn mode(mut self, mode: BuildMicromapModeEXT) -> Self { - self.mode = mode; - self - } - #[inline] - pub fn dst_micromap(mut self, dst_micromap: MicromapEXT) -> Self { - self.dst_micromap = dst_micromap; - self - } - #[inline] - pub fn usage_counts(mut self, usage_counts: &'a [MicromapUsageEXT]) -> Self { - self.usage_counts_count = usage_counts.len() as _; - self.p_usage_counts = usage_counts.as_ptr(); - self - } - #[inline] - pub fn usage_counts_ptrs(mut self, usage_counts_ptrs: &'a [&'a MicromapUsageEXT]) -> Self { - self.usage_counts_count = usage_counts_ptrs.len() as _; - self.pp_usage_counts = usage_counts_ptrs.as_ptr().cast(); - self - } - #[inline] - pub fn data(mut self, data: DeviceOrHostAddressConstKHR) -> Self { - self.data = data; - self - } - #[inline] - pub fn scratch_data(mut self, scratch_data: DeviceOrHostAddressKHR) -> Self { - self.scratch_data = scratch_data; - self - } - #[inline] - pub fn triangle_array(mut self, triangle_array: DeviceOrHostAddressConstKHR) -> Self { - self.triangle_array = triangle_array; - self - } +unsafe impl Extends> for QueryLowLatencySupportNV<'_> {} +impl<'a> QueryLowLatencySupportNV<'a> { #[inline] - pub fn triangle_array_stride(mut self, triangle_array_stride: DeviceSize) -> Self { - self.triangle_array_stride = triangle_array_stride; + pub fn queried_low_latency_data(mut self, queried_low_latency_data: *mut c_void) -> Self { + self.p_queried_low_latency_data = queried_low_latency_data; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct MicromapCreateInfoEXT<'a> { +pub struct MemoryMapInfo<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub create_flags: MicromapCreateFlagsEXT, - pub buffer: Buffer, + pub flags: MemoryMapFlags, + pub memory: DeviceMemory, pub offset: DeviceSize, pub size: DeviceSize, - pub ty: MicromapTypeEXT, - pub device_address: DeviceAddress, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for MicromapCreateInfoEXT<'_> {} -unsafe impl Sync for MicromapCreateInfoEXT<'_> {} -impl ::core::default::Default for MicromapCreateInfoEXT<'_> { +unsafe impl Send for MemoryMapInfo<'_> {} +unsafe impl Sync for MemoryMapInfo<'_> {} +impl ::core::default::Default for MemoryMapInfo<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - create_flags: MicromapCreateFlagsEXT::default(), - buffer: Buffer::default(), + flags: MemoryMapFlags::default(), + memory: DeviceMemory::default(), offset: DeviceSize::default(), size: DeviceSize::default(), - ty: MicromapTypeEXT::default(), - device_address: DeviceAddress::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for MicromapCreateInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::MICROMAP_CREATE_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for MemoryMapInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_MAP_INFO; } -impl<'a> MicromapCreateInfoEXT<'a> { +impl<'a> MemoryMapInfo<'a> { #[inline] - pub fn create_flags(mut self, create_flags: MicromapCreateFlagsEXT) -> Self { - self.create_flags = create_flags; + pub fn flags(mut self, flags: MemoryMapFlags) -> Self { + self.flags = flags; self } #[inline] - pub fn buffer(mut self, buffer: Buffer) -> Self { - self.buffer = buffer; + pub fn memory(mut self, memory: DeviceMemory) -> Self { + self.memory = memory; self } #[inline] @@ -50156,8406 +59525,8479 @@ impl<'a> MicromapCreateInfoEXT<'a> { self.size = size; self } - #[inline] - pub fn ty(mut self, ty: MicromapTypeEXT) -> Self { - self.ty = ty; - self - } - #[inline] - pub fn device_address(mut self, device_address: DeviceAddress) -> Self { - self.device_address = device_address; - self - } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct MicromapVersionInfoEXT<'a> { +pub struct MemoryUnmapInfo<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub p_version_data: *const [u8; 2 * UUID_SIZE], + pub flags: MemoryUnmapFlags, + pub memory: DeviceMemory, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for MicromapVersionInfoEXT<'_> {} -unsafe impl Sync for MicromapVersionInfoEXT<'_> {} -impl ::core::default::Default for MicromapVersionInfoEXT<'_> { +unsafe impl Send for MemoryUnmapInfo<'_> {} +unsafe impl Sync for MemoryUnmapInfo<'_> {} +impl ::core::default::Default for MemoryUnmapInfo<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - p_version_data: ::core::ptr::null(), + flags: MemoryUnmapFlags::default(), + memory: DeviceMemory::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for MicromapVersionInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::MICROMAP_VERSION_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for MemoryUnmapInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_UNMAP_INFO; } -impl<'a> MicromapVersionInfoEXT<'a> { +impl<'a> MemoryUnmapInfo<'a> { #[inline] - pub fn version_data(mut self, version_data: &'a [u8; 2 * UUID_SIZE]) -> Self { - self.p_version_data = version_data; + pub fn flags(mut self, flags: MemoryUnmapFlags) -> Self { + self.flags = flags; + self + } + #[inline] + pub fn memory(mut self, memory: DeviceMemory) -> Self { + self.memory = memory; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct CopyMicromapInfoEXT<'a> { +pub struct PhysicalDeviceShaderObjectFeaturesEXT<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub src: MicromapEXT, - pub dst: MicromapEXT, - pub mode: CopyMicromapModeEXT, + pub p_next: *mut c_void, + pub shader_object: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for CopyMicromapInfoEXT<'_> {} -unsafe impl Sync for CopyMicromapInfoEXT<'_> {} -impl ::core::default::Default for CopyMicromapInfoEXT<'_> { +unsafe impl Send for PhysicalDeviceShaderObjectFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceShaderObjectFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderObjectFeaturesEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - src: MicromapEXT::default(), - dst: MicromapEXT::default(), - mode: CopyMicromapModeEXT::default(), + p_next: ::core::ptr::null_mut(), + shader_object: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for CopyMicromapInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::COPY_MICROMAP_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderObjectFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT; } -impl<'a> CopyMicromapInfoEXT<'a> { - #[inline] - pub fn src(mut self, src: MicromapEXT) -> Self { - self.src = src; - self - } - #[inline] - pub fn dst(mut self, dst: MicromapEXT) -> Self { - self.dst = dst; - self - } +unsafe impl Extends> for PhysicalDeviceShaderObjectFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderObjectFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceShaderObjectFeaturesEXT<'a> { #[inline] - pub fn mode(mut self, mode: CopyMicromapModeEXT) -> Self { - self.mode = mode; + pub fn shader_object(mut self, shader_object: bool) -> Self { + self.shader_object = shader_object.into(); self } } #[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct CopyMicromapToMemoryInfoEXT<'a> { +pub struct PhysicalDeviceShaderObjectPropertiesEXT<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub src: MicromapEXT, - pub dst: DeviceOrHostAddressKHR, - pub mode: CopyMicromapModeEXT, + pub p_next: *mut c_void, + pub shader_binary_uuid: [u8; UUID_SIZE], + pub shader_binary_version: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for CopyMicromapToMemoryInfoEXT<'_> {} -unsafe impl Sync for CopyMicromapToMemoryInfoEXT<'_> {} -#[cfg(feature = "debug")] -impl fmt::Debug for CopyMicromapToMemoryInfoEXT<'_> { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("CopyMicromapToMemoryInfoEXT") - .field("s_type", &self.s_type) - .field("p_next", &self.p_next) - .field("src", &self.src) - .field("dst", &"union") - .field("mode", &self.mode) - .finish() - } -} -impl ::core::default::Default for CopyMicromapToMemoryInfoEXT<'_> { +unsafe impl Send for PhysicalDeviceShaderObjectPropertiesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceShaderObjectPropertiesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderObjectPropertiesEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - src: MicromapEXT::default(), - dst: DeviceOrHostAddressKHR::default(), - mode: CopyMicromapModeEXT::default(), + p_next: ::core::ptr::null_mut(), + shader_binary_uuid: unsafe { ::core::mem::zeroed() }, + shader_binary_version: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for CopyMicromapToMemoryInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::COPY_MICROMAP_TO_MEMORY_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderObjectPropertiesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT; } -impl<'a> CopyMicromapToMemoryInfoEXT<'a> { - #[inline] - pub fn src(mut self, src: MicromapEXT) -> Self { - self.src = src; - self - } +unsafe impl Extends> for PhysicalDeviceShaderObjectPropertiesEXT<'_> {} +impl<'a> PhysicalDeviceShaderObjectPropertiesEXT<'a> { #[inline] - pub fn dst(mut self, dst: DeviceOrHostAddressKHR) -> Self { - self.dst = dst; + pub fn shader_binary_uuid(mut self, shader_binary_uuid: [u8; UUID_SIZE]) -> Self { + self.shader_binary_uuid = shader_binary_uuid; self } #[inline] - pub fn mode(mut self, mode: CopyMicromapModeEXT) -> Self { - self.mode = mode; + pub fn shader_binary_version(mut self, shader_binary_version: u32) -> Self { + self.shader_binary_version = shader_binary_version; self } } #[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct CopyMemoryToMicromapInfoEXT<'a> { +pub struct ShaderCreateInfoEXT<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub src: DeviceOrHostAddressConstKHR, - pub dst: MicromapEXT, - pub mode: CopyMicromapModeEXT, + pub flags: ShaderCreateFlagsEXT, + pub stage: ShaderStageFlags, + pub next_stage: ShaderStageFlags, + pub code_type: ShaderCodeTypeEXT, + pub code_size: usize, + pub p_code: *const c_void, + pub p_name: *const c_char, + pub set_layout_count: u32, + pub p_set_layouts: *const DescriptorSetLayout, + pub push_constant_range_count: u32, + pub p_push_constant_ranges: *const PushConstantRange, + pub p_specialization_info: *const SpecializationInfo<'a>, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for CopyMemoryToMicromapInfoEXT<'_> {} -unsafe impl Sync for CopyMemoryToMicromapInfoEXT<'_> {} -#[cfg(feature = "debug")] -impl fmt::Debug for CopyMemoryToMicromapInfoEXT<'_> { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("CopyMemoryToMicromapInfoEXT") - .field("s_type", &self.s_type) - .field("p_next", &self.p_next) - .field("src", &"union") - .field("dst", &self.dst) - .field("mode", &self.mode) - .finish() - } -} -impl ::core::default::Default for CopyMemoryToMicromapInfoEXT<'_> { +unsafe impl Send for ShaderCreateInfoEXT<'_> {} +unsafe impl Sync for ShaderCreateInfoEXT<'_> {} +impl ::core::default::Default for ShaderCreateInfoEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - src: DeviceOrHostAddressConstKHR::default(), - dst: MicromapEXT::default(), - mode: CopyMicromapModeEXT::default(), + flags: ShaderCreateFlagsEXT::default(), + stage: ShaderStageFlags::default(), + next_stage: ShaderStageFlags::default(), + code_type: ShaderCodeTypeEXT::default(), + code_size: usize::default(), + p_code: ::core::ptr::null(), + p_name: ::core::ptr::null(), + set_layout_count: u32::default(), + p_set_layouts: ::core::ptr::null(), + push_constant_range_count: u32::default(), + p_push_constant_ranges: ::core::ptr::null(), + p_specialization_info: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for CopyMemoryToMicromapInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::COPY_MEMORY_TO_MICROMAP_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for ShaderCreateInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SHADER_CREATE_INFO_EXT; } -impl<'a> CopyMemoryToMicromapInfoEXT<'a> { +impl<'a> ShaderCreateInfoEXT<'a> { #[inline] - pub fn src(mut self, src: DeviceOrHostAddressConstKHR) -> Self { - self.src = src; + pub fn flags(mut self, flags: ShaderCreateFlagsEXT) -> Self { + self.flags = flags; self } #[inline] - pub fn dst(mut self, dst: MicromapEXT) -> Self { - self.dst = dst; + pub fn stage(mut self, stage: ShaderStageFlags) -> Self { + self.stage = stage; self } #[inline] - pub fn mode(mut self, mode: CopyMicromapModeEXT) -> Self { - self.mode = mode; + pub fn next_stage(mut self, next_stage: ShaderStageFlags) -> Self { + self.next_stage = next_stage; + self + } + #[inline] + pub fn code_type(mut self, code_type: ShaderCodeTypeEXT) -> Self { + self.code_type = code_type; + self + } + #[inline] + pub fn code(mut self, code: &'a [u8]) -> Self { + self.code_size = code.len(); + self.p_code = code.as_ptr().cast(); + self + } + #[inline] + pub fn name(mut self, name: &'a CStr) -> Self { + self.p_name = name.as_ptr(); + self + } + #[inline] + pub unsafe fn name_as_c_str(&self) -> Option<&CStr> { + if self.p_name.is_null() { + None + } else { + Some(CStr::from_ptr(self.p_name)) + } + } + #[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 + } + #[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 + } + #[inline] + pub fn specialization_info(mut self, specialization_info: &'a SpecializationInfo<'a>) -> Self { + self.p_specialization_info = specialization_info; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct MicromapBuildSizesInfoEXT<'a> { +pub struct PhysicalDeviceShaderTileImageFeaturesEXT<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub micromap_size: DeviceSize, - pub build_scratch_size: DeviceSize, - pub discardable: Bool32, + pub p_next: *mut c_void, + pub shader_tile_image_color_read_access: Bool32, + pub shader_tile_image_depth_read_access: Bool32, + pub shader_tile_image_stencil_read_access: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for MicromapBuildSizesInfoEXT<'_> {} -unsafe impl Sync for MicromapBuildSizesInfoEXT<'_> {} -impl ::core::default::Default for MicromapBuildSizesInfoEXT<'_> { +unsafe impl Send for PhysicalDeviceShaderTileImageFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceShaderTileImageFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderTileImageFeaturesEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - micromap_size: DeviceSize::default(), - build_scratch_size: DeviceSize::default(), - discardable: Bool32::default(), + p_next: ::core::ptr::null_mut(), + shader_tile_image_color_read_access: Bool32::default(), + shader_tile_image_depth_read_access: Bool32::default(), + shader_tile_image_stencil_read_access: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for MicromapBuildSizesInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::MICROMAP_BUILD_SIZES_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderTileImageFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT; } -impl<'a> MicromapBuildSizesInfoEXT<'a> { +unsafe impl Extends> for PhysicalDeviceShaderTileImageFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderTileImageFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceShaderTileImageFeaturesEXT<'a> { #[inline] - pub fn micromap_size(mut self, micromap_size: DeviceSize) -> Self { - self.micromap_size = micromap_size; + pub fn shader_tile_image_color_read_access( + mut self, + shader_tile_image_color_read_access: bool, + ) -> Self { + self.shader_tile_image_color_read_access = shader_tile_image_color_read_access.into(); self } #[inline] - pub fn build_scratch_size(mut self, build_scratch_size: DeviceSize) -> Self { - self.build_scratch_size = build_scratch_size; + pub fn shader_tile_image_depth_read_access( + mut self, + shader_tile_image_depth_read_access: bool, + ) -> Self { + self.shader_tile_image_depth_read_access = shader_tile_image_depth_read_access.into(); self } #[inline] - pub fn discardable(mut self, discardable: bool) -> Self { - self.discardable = discardable.into(); + pub fn shader_tile_image_stencil_read_access( + mut self, + shader_tile_image_stencil_read_access: bool, + ) -> Self { + self.shader_tile_image_stencil_read_access = shader_tile_image_stencil_read_access.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone, Default)] -#[doc = ""] +#[derive(Copy, Clone)] +#[doc = ""] #[must_use] -pub struct MicromapUsageEXT { - pub count: u32, - pub subdivision_level: u32, - pub format: u32, +pub struct PhysicalDeviceShaderTileImagePropertiesEXT<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub shader_tile_image_coherent_read_accelerated: Bool32, + pub shader_tile_image_read_sample_from_pixel_rate_invocation: Bool32, + pub shader_tile_image_read_from_helper_invocation: Bool32, + pub _marker: PhantomData<&'a ()>, } -impl MicromapUsageEXT { - #[inline] - pub fn count(mut self, count: u32) -> Self { - self.count = count; - self - } - #[inline] - pub fn subdivision_level(mut self, subdivision_level: u32) -> Self { - self.subdivision_level = subdivision_level; - self - } +unsafe impl Send for PhysicalDeviceShaderTileImagePropertiesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceShaderTileImagePropertiesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderTileImagePropertiesEXT<'_> { #[inline] - pub fn format(mut self, format: u32) -> Self { - self.format = format; - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + shader_tile_image_coherent_read_accelerated: Bool32::default(), + shader_tile_image_read_sample_from_pixel_rate_invocation: Bool32::default(), + shader_tile_image_read_from_helper_invocation: Bool32::default(), + _marker: PhantomData, + } } } -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone, Default)] -#[doc = ""] -#[must_use] -pub struct MicromapTriangleEXT { - pub data_offset: u32, - pub subdivision_level: u16, - pub format: u16, +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderTileImagePropertiesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT; } -impl MicromapTriangleEXT { +unsafe impl Extends> + for PhysicalDeviceShaderTileImagePropertiesEXT<'_> +{ +} +impl<'a> PhysicalDeviceShaderTileImagePropertiesEXT<'a> { #[inline] - pub fn data_offset(mut self, data_offset: u32) -> Self { - self.data_offset = data_offset; + pub fn shader_tile_image_coherent_read_accelerated( + mut self, + shader_tile_image_coherent_read_accelerated: bool, + ) -> Self { + self.shader_tile_image_coherent_read_accelerated = + shader_tile_image_coherent_read_accelerated.into(); self } #[inline] - pub fn subdivision_level(mut self, subdivision_level: u16) -> Self { - self.subdivision_level = subdivision_level; + pub fn shader_tile_image_read_sample_from_pixel_rate_invocation( + mut self, + shader_tile_image_read_sample_from_pixel_rate_invocation: bool, + ) -> Self { + self.shader_tile_image_read_sample_from_pixel_rate_invocation = + shader_tile_image_read_sample_from_pixel_rate_invocation.into(); self } #[inline] - pub fn format(mut self, format: u16) -> Self { - self.format = format; + pub fn shader_tile_image_read_from_helper_invocation( + mut self, + shader_tile_image_read_from_helper_invocation: bool, + ) -> Self { + self.shader_tile_image_read_from_helper_invocation = + shader_tile_image_read_from_helper_invocation.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceOpacityMicromapFeaturesEXT<'a> { +pub struct ImportScreenBufferInfoQNX<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub micromap: Bool32, - pub micromap_capture_replay: Bool32, - pub micromap_host_commands: Bool32, + pub p_next: *const c_void, + pub buffer: *mut _screen_buffer, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceOpacityMicromapFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceOpacityMicromapFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceOpacityMicromapFeaturesEXT<'_> { +unsafe impl Send for ImportScreenBufferInfoQNX<'_> {} +unsafe impl Sync for ImportScreenBufferInfoQNX<'_> {} +impl ::core::default::Default for ImportScreenBufferInfoQNX<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - micromap: Bool32::default(), - micromap_capture_replay: Bool32::default(), - micromap_host_commands: Bool32::default(), + p_next: ::core::ptr::null(), + buffer: ::core::ptr::null_mut(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceOpacityMicromapFeaturesEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT; +unsafe impl<'a> TaggedStructure<'a> for ImportScreenBufferInfoQNX<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_SCREEN_BUFFER_INFO_QNX; } -unsafe impl Extends> for PhysicalDeviceOpacityMicromapFeaturesEXT<'_> {} -unsafe impl Extends> for PhysicalDeviceOpacityMicromapFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceOpacityMicromapFeaturesEXT<'a> { - #[inline] - pub fn micromap(mut self, micromap: bool) -> Self { - self.micromap = micromap.into(); - self - } - #[inline] - pub fn micromap_capture_replay(mut self, micromap_capture_replay: bool) -> Self { - self.micromap_capture_replay = micromap_capture_replay.into(); - self - } +unsafe impl Extends> for ImportScreenBufferInfoQNX<'_> {} +impl<'a> ImportScreenBufferInfoQNX<'a> { #[inline] - pub fn micromap_host_commands(mut self, micromap_host_commands: bool) -> Self { - self.micromap_host_commands = micromap_host_commands.into(); + pub fn buffer(mut self, buffer: *mut _screen_buffer) -> Self { + self.buffer = buffer; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceOpacityMicromapPropertiesEXT<'a> { +pub struct ScreenBufferPropertiesQNX<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub max_opacity2_state_subdivision_level: u32, - pub max_opacity4_state_subdivision_level: u32, + pub allocation_size: DeviceSize, + pub memory_type_bits: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceOpacityMicromapPropertiesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceOpacityMicromapPropertiesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceOpacityMicromapPropertiesEXT<'_> { +unsafe impl Send for ScreenBufferPropertiesQNX<'_> {} +unsafe impl Sync for ScreenBufferPropertiesQNX<'_> {} +impl ::core::default::Default for ScreenBufferPropertiesQNX<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - max_opacity2_state_subdivision_level: u32::default(), - max_opacity4_state_subdivision_level: u32::default(), + allocation_size: DeviceSize::default(), + memory_type_bits: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceOpacityMicromapPropertiesEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT; -} -unsafe impl Extends> - for PhysicalDeviceOpacityMicromapPropertiesEXT<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for ScreenBufferPropertiesQNX<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SCREEN_BUFFER_PROPERTIES_QNX; } -impl<'a> PhysicalDeviceOpacityMicromapPropertiesEXT<'a> { +impl<'a> ScreenBufferPropertiesQNX<'a> { #[inline] - pub fn max_opacity2_state_subdivision_level( - mut self, - max_opacity2_state_subdivision_level: u32, - ) -> Self { - self.max_opacity2_state_subdivision_level = max_opacity2_state_subdivision_level; + pub fn allocation_size(mut self, allocation_size: DeviceSize) -> Self { + self.allocation_size = allocation_size; self } #[inline] - pub fn max_opacity4_state_subdivision_level( - mut self, - max_opacity4_state_subdivision_level: u32, - ) -> Self { - self.max_opacity4_state_subdivision_level = max_opacity4_state_subdivision_level; + pub fn memory_type_bits(mut self, memory_type_bits: u32) -> Self { + self.memory_type_bits = memory_type_bits; self } } #[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct AccelerationStructureTrianglesOpacityMicromapEXT<'a> { +pub struct ScreenBufferFormatPropertiesQNX<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub index_type: IndexType, - pub index_buffer: DeviceOrHostAddressConstKHR, - pub index_stride: DeviceSize, - pub base_triangle: u32, - pub usage_counts_count: u32, - pub p_usage_counts: *const MicromapUsageEXT, - pub pp_usage_counts: *const *const MicromapUsageEXT, - pub micromap: MicromapEXT, + pub format: Format, + pub external_format: u64, + pub screen_usage: u64, + pub format_features: FormatFeatureFlags, + pub sampler_ycbcr_conversion_components: ComponentMapping, + pub suggested_ycbcr_model: SamplerYcbcrModelConversion, + pub suggested_ycbcr_range: SamplerYcbcrRange, + pub suggested_x_chroma_offset: ChromaLocation, + pub suggested_y_chroma_offset: ChromaLocation, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for AccelerationStructureTrianglesOpacityMicromapEXT<'_> {} -unsafe impl Sync for AccelerationStructureTrianglesOpacityMicromapEXT<'_> {} -#[cfg(feature = "debug")] -impl fmt::Debug for AccelerationStructureTrianglesOpacityMicromapEXT<'_> { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("AccelerationStructureTrianglesOpacityMicromapEXT") - .field("s_type", &self.s_type) - .field("p_next", &self.p_next) - .field("index_type", &self.index_type) - .field("index_buffer", &"union") - .field("index_stride", &self.index_stride) - .field("base_triangle", &self.base_triangle) - .field("usage_counts_count", &self.usage_counts_count) - .field("p_usage_counts", &self.p_usage_counts) - .field("pp_usage_counts", &self.pp_usage_counts) - .field("micromap", &self.micromap) - .finish() - } -} -impl ::core::default::Default for AccelerationStructureTrianglesOpacityMicromapEXT<'_> { +unsafe impl Send for ScreenBufferFormatPropertiesQNX<'_> {} +unsafe impl Sync for ScreenBufferFormatPropertiesQNX<'_> {} +impl ::core::default::Default for ScreenBufferFormatPropertiesQNX<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - index_type: IndexType::default(), - index_buffer: DeviceOrHostAddressConstKHR::default(), - index_stride: DeviceSize::default(), - base_triangle: u32::default(), - usage_counts_count: u32::default(), - p_usage_counts: ::core::ptr::null(), - pp_usage_counts: ::core::ptr::null(), - micromap: MicromapEXT::default(), + format: Format::default(), + external_format: u64::default(), + screen_usage: u64::default(), + format_features: FormatFeatureFlags::default(), + sampler_ycbcr_conversion_components: ComponentMapping::default(), + suggested_ycbcr_model: SamplerYcbcrModelConversion::default(), + suggested_ycbcr_range: SamplerYcbcrRange::default(), + suggested_x_chroma_offset: ChromaLocation::default(), + suggested_y_chroma_offset: ChromaLocation::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureTrianglesOpacityMicromapEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT; -} -unsafe impl Extends> - for AccelerationStructureTrianglesOpacityMicromapEXT<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for ScreenBufferFormatPropertiesQNX<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SCREEN_BUFFER_FORMAT_PROPERTIES_QNX; } -impl<'a> AccelerationStructureTrianglesOpacityMicromapEXT<'a> { +unsafe impl Extends> for ScreenBufferFormatPropertiesQNX<'_> {} +impl<'a> ScreenBufferFormatPropertiesQNX<'a> { #[inline] - pub fn index_type(mut self, index_type: IndexType) -> Self { - self.index_type = index_type; + pub fn format(mut self, format: Format) -> Self { + self.format = format; self } #[inline] - pub fn index_buffer(mut self, index_buffer: DeviceOrHostAddressConstKHR) -> Self { - self.index_buffer = index_buffer; + pub fn external_format(mut self, external_format: u64) -> Self { + self.external_format = external_format; self } #[inline] - pub fn index_stride(mut self, index_stride: DeviceSize) -> Self { - self.index_stride = index_stride; + pub fn screen_usage(mut self, screen_usage: u64) -> Self { + self.screen_usage = screen_usage; self } #[inline] - pub fn base_triangle(mut self, base_triangle: u32) -> Self { - self.base_triangle = base_triangle; + pub fn format_features(mut self, format_features: FormatFeatureFlags) -> Self { + self.format_features = format_features; self } #[inline] - pub fn usage_counts(mut self, usage_counts: &'a [MicromapUsageEXT]) -> Self { - self.usage_counts_count = usage_counts.len() as _; - self.p_usage_counts = usage_counts.as_ptr(); + pub fn sampler_ycbcr_conversion_components( + mut self, + sampler_ycbcr_conversion_components: ComponentMapping, + ) -> Self { + self.sampler_ycbcr_conversion_components = sampler_ycbcr_conversion_components; self } #[inline] - pub fn usage_counts_ptrs(mut self, usage_counts_ptrs: &'a [&'a MicromapUsageEXT]) -> Self { - self.usage_counts_count = usage_counts_ptrs.len() as _; - self.pp_usage_counts = usage_counts_ptrs.as_ptr().cast(); + pub fn suggested_ycbcr_model( + mut self, + suggested_ycbcr_model: SamplerYcbcrModelConversion, + ) -> Self { + self.suggested_ycbcr_model = suggested_ycbcr_model; self } #[inline] - pub fn micromap(mut self, micromap: MicromapEXT) -> Self { - self.micromap = micromap; + pub fn suggested_ycbcr_range(mut self, suggested_ycbcr_range: SamplerYcbcrRange) -> Self { + self.suggested_ycbcr_range = suggested_ycbcr_range; + self + } + #[inline] + pub fn suggested_x_chroma_offset(mut self, suggested_x_chroma_offset: ChromaLocation) -> Self { + self.suggested_x_chroma_offset = suggested_x_chroma_offset; + self + } + #[inline] + pub fn suggested_y_chroma_offset(mut self, suggested_y_chroma_offset: ChromaLocation) -> Self { + self.suggested_y_chroma_offset = suggested_y_chroma_offset; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceDisplacementMicromapFeaturesNV<'a> { +pub struct ExternalFormatQNX<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub displacement_micromap: Bool32, + pub external_format: u64, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceDisplacementMicromapFeaturesNV<'_> {} -unsafe impl Sync for PhysicalDeviceDisplacementMicromapFeaturesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceDisplacementMicromapFeaturesNV<'_> { +unsafe impl Send for ExternalFormatQNX<'_> {} +unsafe impl Sync for ExternalFormatQNX<'_> {} +impl ::core::default::Default for ExternalFormatQNX<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - displacement_micromap: Bool32::default(), + external_format: u64::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDisplacementMicromapFeaturesNV<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV; -} -unsafe impl Extends> - for PhysicalDeviceDisplacementMicromapFeaturesNV<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for ExternalFormatQNX<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_FORMAT_QNX; } -unsafe impl Extends> for PhysicalDeviceDisplacementMicromapFeaturesNV<'_> {} -impl<'a> PhysicalDeviceDisplacementMicromapFeaturesNV<'a> { +unsafe impl Extends> for ExternalFormatQNX<'_> {} +unsafe impl Extends> for ExternalFormatQNX<'_> {} +impl<'a> ExternalFormatQNX<'a> { #[inline] - pub fn displacement_micromap(mut self, displacement_micromap: bool) -> Self { - self.displacement_micromap = displacement_micromap.into(); + pub fn external_format(mut self, external_format: u64) -> Self { + self.external_format = external_format; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceDisplacementMicromapPropertiesNV<'a> { +pub struct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub max_displacement_micromap_subdivision_level: u32, + pub screen_buffer_import: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceDisplacementMicromapPropertiesNV<'_> {} -unsafe impl Sync for PhysicalDeviceDisplacementMicromapPropertiesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceDisplacementMicromapPropertiesNV<'_> { +unsafe impl Send for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'_> {} +unsafe impl Sync for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'_> {} +impl ::core::default::Default for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - max_displacement_micromap_subdivision_level: u32::default(), + screen_buffer_import: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDisplacementMicromapPropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV; + StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX; } -unsafe impl Extends> - for PhysicalDeviceDisplacementMicromapPropertiesNV<'_> +unsafe impl Extends> + for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'_> { } -impl<'a> PhysicalDeviceDisplacementMicromapPropertiesNV<'a> { +unsafe impl Extends> + for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'_> +{ +} +impl<'a> PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'a> { #[inline] - pub fn max_displacement_micromap_subdivision_level( - mut self, - max_displacement_micromap_subdivision_level: u32, - ) -> Self { - self.max_displacement_micromap_subdivision_level = - max_displacement_micromap_subdivision_level; + pub fn screen_buffer_import(mut self, screen_buffer_import: bool) -> Self { + self.screen_buffer_import = screen_buffer_import.into(); self } } #[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct AccelerationStructureTrianglesDisplacementMicromapNV<'a> { +pub struct PhysicalDeviceCooperativeMatrixFeaturesKHR<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub displacement_bias_and_scale_format: Format, - pub displacement_vector_format: Format, - pub displacement_bias_and_scale_buffer: DeviceOrHostAddressConstKHR, - pub displacement_bias_and_scale_stride: DeviceSize, - pub displacement_vector_buffer: DeviceOrHostAddressConstKHR, - pub displacement_vector_stride: DeviceSize, - pub displaced_micromap_primitive_flags: DeviceOrHostAddressConstKHR, - pub displaced_micromap_primitive_flags_stride: DeviceSize, - pub index_type: IndexType, - pub index_buffer: DeviceOrHostAddressConstKHR, - pub index_stride: DeviceSize, - pub base_triangle: u32, - pub usage_counts_count: u32, - pub p_usage_counts: *const MicromapUsageEXT, - pub pp_usage_counts: *const *const MicromapUsageEXT, - pub micromap: MicromapEXT, + pub cooperative_matrix: Bool32, + pub cooperative_matrix_robust_buffer_access: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for AccelerationStructureTrianglesDisplacementMicromapNV<'_> {} -unsafe impl Sync for AccelerationStructureTrianglesDisplacementMicromapNV<'_> {} -#[cfg(feature = "debug")] -impl fmt::Debug for AccelerationStructureTrianglesDisplacementMicromapNV<'_> { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("AccelerationStructureTrianglesDisplacementMicromapNV") - .field("s_type", &self.s_type) - .field("p_next", &self.p_next) - .field( - "displacement_bias_and_scale_format", - &self.displacement_bias_and_scale_format, - ) - .field( - "displacement_vector_format", - &self.displacement_vector_format, - ) - .field("displacement_bias_and_scale_buffer", &"union") - .field( - "displacement_bias_and_scale_stride", - &self.displacement_bias_and_scale_stride, - ) - .field("displacement_vector_buffer", &"union") - .field( - "displacement_vector_stride", - &self.displacement_vector_stride, - ) - .field("displaced_micromap_primitive_flags", &"union") - .field( - "displaced_micromap_primitive_flags_stride", - &self.displaced_micromap_primitive_flags_stride, - ) - .field("index_type", &self.index_type) - .field("index_buffer", &"union") - .field("index_stride", &self.index_stride) - .field("base_triangle", &self.base_triangle) - .field("usage_counts_count", &self.usage_counts_count) - .field("p_usage_counts", &self.p_usage_counts) - .field("pp_usage_counts", &self.pp_usage_counts) - .field("micromap", &self.micromap) - .finish() - } -} -impl ::core::default::Default for AccelerationStructureTrianglesDisplacementMicromapNV<'_> { +unsafe impl Send for PhysicalDeviceCooperativeMatrixFeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceCooperativeMatrixFeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceCooperativeMatrixFeaturesKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - displacement_bias_and_scale_format: Format::default(), - displacement_vector_format: Format::default(), - displacement_bias_and_scale_buffer: DeviceOrHostAddressConstKHR::default(), - displacement_bias_and_scale_stride: DeviceSize::default(), - displacement_vector_buffer: DeviceOrHostAddressConstKHR::default(), - displacement_vector_stride: DeviceSize::default(), - displaced_micromap_primitive_flags: DeviceOrHostAddressConstKHR::default(), - displaced_micromap_primitive_flags_stride: DeviceSize::default(), - index_type: IndexType::default(), - index_buffer: DeviceOrHostAddressConstKHR::default(), - index_stride: DeviceSize::default(), - base_triangle: u32::default(), - usage_counts_count: u32::default(), - p_usage_counts: ::core::ptr::null(), - pp_usage_counts: ::core::ptr::null(), - micromap: MicromapEXT::default(), + cooperative_matrix: Bool32::default(), + cooperative_matrix_robust_buffer_access: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for AccelerationStructureTrianglesDisplacementMicromapNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCooperativeMatrixFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV; + StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR; } -unsafe impl Extends> - for AccelerationStructureTrianglesDisplacementMicromapNV<'_> +unsafe impl Extends> + for PhysicalDeviceCooperativeMatrixFeaturesKHR<'_> { } -impl<'a> AccelerationStructureTrianglesDisplacementMicromapNV<'a> { - #[inline] - pub fn displacement_bias_and_scale_format( - mut self, - displacement_bias_and_scale_format: Format, - ) -> Self { - self.displacement_bias_and_scale_format = displacement_bias_and_scale_format; - self - } - #[inline] - pub fn displacement_vector_format(mut self, displacement_vector_format: Format) -> Self { - self.displacement_vector_format = displacement_vector_format; - self - } - #[inline] - pub fn displacement_bias_and_scale_buffer( - mut self, - displacement_bias_and_scale_buffer: DeviceOrHostAddressConstKHR, - ) -> Self { - self.displacement_bias_and_scale_buffer = displacement_bias_and_scale_buffer; - self - } +unsafe impl Extends> for PhysicalDeviceCooperativeMatrixFeaturesKHR<'_> {} +impl<'a> PhysicalDeviceCooperativeMatrixFeaturesKHR<'a> { #[inline] - pub fn displacement_bias_and_scale_stride( - mut self, - displacement_bias_and_scale_stride: DeviceSize, - ) -> Self { - self.displacement_bias_and_scale_stride = displacement_bias_and_scale_stride; + pub fn cooperative_matrix(mut self, cooperative_matrix: bool) -> Self { + self.cooperative_matrix = cooperative_matrix.into(); self } #[inline] - pub fn displacement_vector_buffer( + pub fn cooperative_matrix_robust_buffer_access( mut self, - displacement_vector_buffer: DeviceOrHostAddressConstKHR, + cooperative_matrix_robust_buffer_access: bool, ) -> Self { - self.displacement_vector_buffer = displacement_vector_buffer; - self - } - #[inline] - pub fn displacement_vector_stride(mut self, displacement_vector_stride: DeviceSize) -> Self { - self.displacement_vector_stride = displacement_vector_stride; + self.cooperative_matrix_robust_buffer_access = + cooperative_matrix_robust_buffer_access.into(); self } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct CooperativeMatrixPropertiesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub m_size: u32, + pub n_size: u32, + pub k_size: u32, + pub a_type: ComponentTypeKHR, + pub b_type: ComponentTypeKHR, + pub c_type: ComponentTypeKHR, + pub result_type: ComponentTypeKHR, + pub saturating_accumulation: Bool32, + pub scope: ScopeKHR, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for CooperativeMatrixPropertiesKHR<'_> {} +unsafe impl Sync for CooperativeMatrixPropertiesKHR<'_> {} +impl ::core::default::Default for CooperativeMatrixPropertiesKHR<'_> { #[inline] - pub fn displaced_micromap_primitive_flags( - mut self, - displaced_micromap_primitive_flags: DeviceOrHostAddressConstKHR, - ) -> Self { - self.displaced_micromap_primitive_flags = displaced_micromap_primitive_flags; - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + m_size: u32::default(), + n_size: u32::default(), + k_size: u32::default(), + a_type: ComponentTypeKHR::default(), + b_type: ComponentTypeKHR::default(), + c_type: ComponentTypeKHR::default(), + result_type: ComponentTypeKHR::default(), + saturating_accumulation: Bool32::default(), + scope: ScopeKHR::default(), + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for CooperativeMatrixPropertiesKHR<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::COOPERATIVE_MATRIX_PROPERTIES_KHR; +} +impl<'a> CooperativeMatrixPropertiesKHR<'a> { #[inline] - pub fn displaced_micromap_primitive_flags_stride( - mut self, - displaced_micromap_primitive_flags_stride: DeviceSize, - ) -> Self { - self.displaced_micromap_primitive_flags_stride = displaced_micromap_primitive_flags_stride; + pub fn m_size(mut self, m_size: u32) -> Self { + self.m_size = m_size; self } #[inline] - pub fn index_type(mut self, index_type: IndexType) -> Self { - self.index_type = index_type; + pub fn n_size(mut self, n_size: u32) -> Self { + self.n_size = n_size; self } #[inline] - pub fn index_buffer(mut self, index_buffer: DeviceOrHostAddressConstKHR) -> Self { - self.index_buffer = index_buffer; + pub fn k_size(mut self, k_size: u32) -> Self { + self.k_size = k_size; self } #[inline] - pub fn index_stride(mut self, index_stride: DeviceSize) -> Self { - self.index_stride = index_stride; + pub fn a_type(mut self, a_type: ComponentTypeKHR) -> Self { + self.a_type = a_type; self } #[inline] - pub fn base_triangle(mut self, base_triangle: u32) -> Self { - self.base_triangle = base_triangle; + pub fn b_type(mut self, b_type: ComponentTypeKHR) -> Self { + self.b_type = b_type; self } #[inline] - pub fn usage_counts(mut self, usage_counts: &'a [MicromapUsageEXT]) -> Self { - self.usage_counts_count = usage_counts.len() as _; - self.p_usage_counts = usage_counts.as_ptr(); + pub fn c_type(mut self, c_type: ComponentTypeKHR) -> Self { + self.c_type = c_type; self } #[inline] - pub fn usage_counts_ptrs(mut self, usage_counts_ptrs: &'a [&'a MicromapUsageEXT]) -> Self { - self.usage_counts_count = usage_counts_ptrs.len() as _; - self.pp_usage_counts = usage_counts_ptrs.as_ptr().cast(); + pub fn result_type(mut self, result_type: ComponentTypeKHR) -> Self { + self.result_type = result_type; self } #[inline] - pub fn micromap(mut self, micromap: MicromapEXT) -> Self { - self.micromap = micromap; + pub fn saturating_accumulation(mut self, saturating_accumulation: bool) -> Self { + self.saturating_accumulation = saturating_accumulation.into(); self } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PipelinePropertiesIdentifierEXT<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub pipeline_identifier: [u8; UUID_SIZE], - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PipelinePropertiesIdentifierEXT<'_> {} -unsafe impl Sync for PipelinePropertiesIdentifierEXT<'_> {} -impl ::core::default::Default for PipelinePropertiesIdentifierEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - pipeline_identifier: unsafe { ::core::mem::zeroed() }, - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure<'a> for PipelinePropertiesIdentifierEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_PROPERTIES_IDENTIFIER_EXT; -} -impl<'a> PipelinePropertiesIdentifierEXT<'a> { #[inline] - pub fn pipeline_identifier(mut self, pipeline_identifier: [u8; UUID_SIZE]) -> Self { - self.pipeline_identifier = pipeline_identifier; + pub fn scope(mut self, scope: ScopeKHR) -> Self { + self.scope = scope; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDevicePipelinePropertiesFeaturesEXT<'a> { +pub struct PhysicalDeviceCooperativeMatrixPropertiesKHR<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub pipeline_properties_identifier: Bool32, + pub cooperative_matrix_supported_stages: ShaderStageFlags, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDevicePipelinePropertiesFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDevicePipelinePropertiesFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDevicePipelinePropertiesFeaturesEXT<'_> { +unsafe impl Send for PhysicalDeviceCooperativeMatrixPropertiesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceCooperativeMatrixPropertiesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceCooperativeMatrixPropertiesKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - pipeline_properties_identifier: Bool32::default(), + cooperative_matrix_supported_stages: ShaderStageFlags::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelinePropertiesFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCooperativeMatrixPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT; + StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR; } -unsafe impl Extends> - for PhysicalDevicePipelinePropertiesFeaturesEXT<'_> +unsafe impl Extends> + for PhysicalDeviceCooperativeMatrixPropertiesKHR<'_> { } -unsafe impl Extends> for PhysicalDevicePipelinePropertiesFeaturesEXT<'_> {} -impl<'a> PhysicalDevicePipelinePropertiesFeaturesEXT<'a> { +impl<'a> PhysicalDeviceCooperativeMatrixPropertiesKHR<'a> { #[inline] - pub fn pipeline_properties_identifier(mut self, pipeline_properties_identifier: bool) -> Self { - self.pipeline_properties_identifier = pipeline_properties_identifier.into(); + pub fn cooperative_matrix_supported_stages( + mut self, + cooperative_matrix_supported_stages: ShaderStageFlags, + ) -> Self { + self.cooperative_matrix_supported_stages = cooperative_matrix_supported_stages; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'a> { +pub struct PhysicalDeviceShaderEnqueuePropertiesAMDX<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub shader_early_and_late_fragment_tests: Bool32, + pub max_execution_graph_depth: u32, + pub max_execution_graph_shader_output_nodes: u32, + pub max_execution_graph_shader_payload_size: u32, + pub max_execution_graph_shader_payload_count: u32, + pub execution_graph_dispatch_address_alignment: u32, + pub max_execution_graph_workgroup_count: [u32; 3], + pub max_execution_graph_workgroups: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'_> {} -unsafe impl Sync for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'_> { +unsafe impl Send for PhysicalDeviceShaderEnqueuePropertiesAMDX<'_> {} +unsafe impl Sync for PhysicalDeviceShaderEnqueuePropertiesAMDX<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderEnqueuePropertiesAMDX<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - shader_early_and_late_fragment_tests: Bool32::default(), + max_execution_graph_depth: u32::default(), + max_execution_graph_shader_output_nodes: u32::default(), + max_execution_graph_shader_payload_size: u32::default(), + max_execution_graph_shader_payload_count: u32::default(), + execution_graph_dispatch_address_alignment: u32::default(), + max_execution_graph_workgroup_count: unsafe { ::core::mem::zeroed() }, + max_execution_graph_workgroups: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> - for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'a> -{ +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderEnqueuePropertiesAMDX<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD; -} -unsafe impl Extends> - for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'_> -{ + StructureType::PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX; } -unsafe impl Extends> - for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'_> +unsafe impl Extends> + for PhysicalDeviceShaderEnqueuePropertiesAMDX<'_> { } -impl<'a> PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'a> { +impl<'a> PhysicalDeviceShaderEnqueuePropertiesAMDX<'a> { #[inline] - pub fn shader_early_and_late_fragment_tests( + pub fn max_execution_graph_depth(mut self, max_execution_graph_depth: u32) -> Self { + self.max_execution_graph_depth = max_execution_graph_depth; + self + } + #[inline] + pub fn max_execution_graph_shader_output_nodes( mut self, - shader_early_and_late_fragment_tests: bool, + max_execution_graph_shader_output_nodes: u32, ) -> Self { - self.shader_early_and_late_fragment_tests = shader_early_and_late_fragment_tests.into(); + self.max_execution_graph_shader_output_nodes = max_execution_graph_shader_output_nodes; self } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct ExternalMemoryAcquireUnmodifiedEXT<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub acquire_unmodified_memory: Bool32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for ExternalMemoryAcquireUnmodifiedEXT<'_> {} -unsafe impl Sync for ExternalMemoryAcquireUnmodifiedEXT<'_> {} -impl ::core::default::Default for ExternalMemoryAcquireUnmodifiedEXT<'_> { #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - acquire_unmodified_memory: Bool32::default(), - _marker: PhantomData, - } + pub fn max_execution_graph_shader_payload_size( + mut self, + max_execution_graph_shader_payload_size: u32, + ) -> Self { + self.max_execution_graph_shader_payload_size = max_execution_graph_shader_payload_size; + self } -} -unsafe impl<'a> TaggedStructure<'a> for ExternalMemoryAcquireUnmodifiedEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT; -} -unsafe impl Extends> for ExternalMemoryAcquireUnmodifiedEXT<'_> {} -unsafe impl Extends> for ExternalMemoryAcquireUnmodifiedEXT<'_> {} -unsafe impl Extends> for ExternalMemoryAcquireUnmodifiedEXT<'_> {} -unsafe impl Extends> for ExternalMemoryAcquireUnmodifiedEXT<'_> {} -impl<'a> ExternalMemoryAcquireUnmodifiedEXT<'a> { #[inline] - pub fn acquire_unmodified_memory(mut self, acquire_unmodified_memory: bool) -> Self { - self.acquire_unmodified_memory = acquire_unmodified_memory.into(); + pub fn max_execution_graph_shader_payload_count( + mut self, + max_execution_graph_shader_payload_count: u32, + ) -> Self { + self.max_execution_graph_shader_payload_count = max_execution_graph_shader_payload_count; self } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct ExportMetalObjectCreateInfoEXT<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub export_object_type: ExportMetalObjectTypeFlagsEXT, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl Sync for ExportMetalObjectCreateInfoEXT<'_> {} -impl ::core::default::Default for ExportMetalObjectCreateInfoEXT<'_> { #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - export_object_type: ExportMetalObjectTypeFlagsEXT::default(), - _marker: PhantomData, - } + pub fn execution_graph_dispatch_address_alignment( + mut self, + execution_graph_dispatch_address_alignment: u32, + ) -> Self { + self.execution_graph_dispatch_address_alignment = + execution_graph_dispatch_address_alignment; + self } -} -unsafe impl<'a> TaggedStructure<'a> for ExportMetalObjectCreateInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_OBJECT_CREATE_INFO_EXT; -} -unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} -impl<'a> ExportMetalObjectCreateInfoEXT<'a> { #[inline] - pub fn export_object_type(mut self, export_object_type: ExportMetalObjectTypeFlagsEXT) -> Self { - self.export_object_type = export_object_type; + pub fn max_execution_graph_workgroup_count( + mut self, + max_execution_graph_workgroup_count: [u32; 3], + ) -> Self { + self.max_execution_graph_workgroup_count = max_execution_graph_workgroup_count; self } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct ExportMetalObjectsInfoEXT<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for ExportMetalObjectsInfoEXT<'_> {} -unsafe impl Sync for ExportMetalObjectsInfoEXT<'_> {} -impl ::core::default::Default for ExportMetalObjectsInfoEXT<'_> { #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - _marker: PhantomData, - } + pub fn max_execution_graph_workgroups(mut self, max_execution_graph_workgroups: u32) -> Self { + self.max_execution_graph_workgroups = max_execution_graph_workgroups; + self } } -unsafe impl<'a> TaggedStructure<'a> for ExportMetalObjectsInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_OBJECTS_INFO_EXT; -} -impl<'a> ExportMetalObjectsInfoEXT<'a> {} #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ExportMetalDeviceInfoEXT<'a> { +pub struct PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub mtl_device: MTLDevice_id, + pub p_next: *mut c_void, + pub shader_enqueue: Bool32, + pub shader_mesh_enqueue: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ExportMetalDeviceInfoEXT<'_> {} -unsafe impl Sync for ExportMetalDeviceInfoEXT<'_> {} -impl ::core::default::Default for ExportMetalDeviceInfoEXT<'_> { +unsafe impl Send for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> {} +unsafe impl Sync for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - mtl_device: unsafe { ::core::mem::zeroed() }, + p_next: ::core::ptr::null_mut(), + shader_enqueue: Bool32::default(), + shader_mesh_enqueue: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ExportMetalDeviceInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_DEVICE_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX; } -unsafe impl Extends> for ExportMetalDeviceInfoEXT<'_> {} -impl<'a> ExportMetalDeviceInfoEXT<'a> { +unsafe impl Extends> for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> {} +impl<'a> PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> { #[inline] - pub fn mtl_device(mut self, mtl_device: MTLDevice_id) -> Self { - self.mtl_device = mtl_device; + pub fn shader_enqueue(mut self, shader_enqueue: bool) -> Self { + self.shader_enqueue = shader_enqueue.into(); + self + } + #[inline] + pub fn shader_mesh_enqueue(mut self, shader_mesh_enqueue: bool) -> Self { + self.shader_mesh_enqueue = shader_mesh_enqueue.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ExportMetalCommandQueueInfoEXT<'a> { +pub struct ExecutionGraphPipelineCreateInfoAMDX<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub queue: Queue, - pub mtl_command_queue: MTLCommandQueue_id, + pub flags: PipelineCreateFlags, + pub stage_count: u32, + pub p_stages: *const PipelineShaderStageCreateInfo<'a>, + pub p_library_info: *const PipelineLibraryCreateInfoKHR<'a>, + pub layout: PipelineLayout, + pub base_pipeline_handle: Pipeline, + pub base_pipeline_index: i32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ExportMetalCommandQueueInfoEXT<'_> {} -unsafe impl Sync for ExportMetalCommandQueueInfoEXT<'_> {} -impl ::core::default::Default for ExportMetalCommandQueueInfoEXT<'_> { +unsafe impl Send for ExecutionGraphPipelineCreateInfoAMDX<'_> {} +unsafe impl Sync for ExecutionGraphPipelineCreateInfoAMDX<'_> {} +impl ::core::default::Default for ExecutionGraphPipelineCreateInfoAMDX<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - queue: Queue::default(), - mtl_command_queue: unsafe { ::core::mem::zeroed() }, + flags: PipelineCreateFlags::default(), + stage_count: u32::default(), + p_stages: ::core::ptr::null(), + p_library_info: ::core::ptr::null(), + layout: PipelineLayout::default(), + base_pipeline_handle: Pipeline::default(), + base_pipeline_index: i32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ExportMetalCommandQueueInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_COMMAND_QUEUE_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for ExecutionGraphPipelineCreateInfoAMDX<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX; } -unsafe impl Extends> for ExportMetalCommandQueueInfoEXT<'_> {} -impl<'a> ExportMetalCommandQueueInfoEXT<'a> { +impl<'a> ExecutionGraphPipelineCreateInfoAMDX<'a> { #[inline] - pub fn queue(mut self, queue: Queue) -> Self { - self.queue = queue; + pub fn flags(mut self, flags: PipelineCreateFlags) -> Self { + self.flags = flags; self } #[inline] - pub fn mtl_command_queue(mut self, mtl_command_queue: MTLCommandQueue_id) -> Self { - self.mtl_command_queue = mtl_command_queue; + pub fn stages(mut self, stages: &'a [PipelineShaderStageCreateInfo<'a>]) -> Self { + self.stage_count = stages.len() as _; + self.p_stages = stages.as_ptr(); + self + } + #[inline] + pub fn library_info(mut self, library_info: &'a PipelineLibraryCreateInfoKHR<'a>) -> Self { + self.p_library_info = library_info; + self + } + #[inline] + pub fn layout(mut self, layout: PipelineLayout) -> Self { + self.layout = layout; + self + } + #[inline] + pub fn base_pipeline_handle(mut self, base_pipeline_handle: Pipeline) -> Self { + self.base_pipeline_handle = base_pipeline_handle; + self + } + #[inline] + pub fn base_pipeline_index(mut self, base_pipeline_index: i32) -> Self { + self.base_pipeline_index = base_pipeline_index; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ExportMetalBufferInfoEXT<'a> { +pub struct PipelineShaderStageNodeCreateInfoAMDX<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub memory: DeviceMemory, - pub mtl_buffer: MTLBuffer_id, + pub p_name: *const c_char, + pub index: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ExportMetalBufferInfoEXT<'_> {} -unsafe impl Sync for ExportMetalBufferInfoEXT<'_> {} -impl ::core::default::Default for ExportMetalBufferInfoEXT<'_> { +unsafe impl Send for PipelineShaderStageNodeCreateInfoAMDX<'_> {} +unsafe impl Sync for PipelineShaderStageNodeCreateInfoAMDX<'_> {} +impl ::core::default::Default for PipelineShaderStageNodeCreateInfoAMDX<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - memory: DeviceMemory::default(), - mtl_buffer: unsafe { ::core::mem::zeroed() }, + p_name: ::core::ptr::null(), + index: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ExportMetalBufferInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_BUFFER_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for PipelineShaderStageNodeCreateInfoAMDX<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX; } -unsafe impl Extends> for ExportMetalBufferInfoEXT<'_> {} -impl<'a> ExportMetalBufferInfoEXT<'a> { +unsafe impl Extends> + for PipelineShaderStageNodeCreateInfoAMDX<'_> +{ +} +impl<'a> PipelineShaderStageNodeCreateInfoAMDX<'a> { #[inline] - pub fn memory(mut self, memory: DeviceMemory) -> Self { - self.memory = memory; + pub fn name(mut self, name: &'a CStr) -> Self { + self.p_name = name.as_ptr(); self } #[inline] - pub fn mtl_buffer(mut self, mtl_buffer: MTLBuffer_id) -> Self { - self.mtl_buffer = mtl_buffer; + pub unsafe fn name_as_c_str(&self) -> Option<&CStr> { + if self.p_name.is_null() { + None + } else { + Some(CStr::from_ptr(self.p_name)) + } + } + #[inline] + pub fn index(mut self, index: u32) -> Self { + self.index = index; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ImportMetalBufferInfoEXT<'a> { +pub struct ExecutionGraphPipelineScratchSizeAMDX<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub mtl_buffer: MTLBuffer_id, + pub p_next: *mut c_void, + pub min_size: DeviceSize, + pub max_size: DeviceSize, + pub size_granularity: DeviceSize, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ImportMetalBufferInfoEXT<'_> {} -unsafe impl Sync for ImportMetalBufferInfoEXT<'_> {} -impl ::core::default::Default for ImportMetalBufferInfoEXT<'_> { +unsafe impl Send for ExecutionGraphPipelineScratchSizeAMDX<'_> {} +unsafe impl Sync for ExecutionGraphPipelineScratchSizeAMDX<'_> {} +impl ::core::default::Default for ExecutionGraphPipelineScratchSizeAMDX<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - mtl_buffer: unsafe { ::core::mem::zeroed() }, + p_next: ::core::ptr::null_mut(), + min_size: DeviceSize::default(), + max_size: DeviceSize::default(), + size_granularity: DeviceSize::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ImportMetalBufferInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_BUFFER_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for ExecutionGraphPipelineScratchSizeAMDX<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX; } -unsafe impl Extends> for ImportMetalBufferInfoEXT<'_> {} -impl<'a> ImportMetalBufferInfoEXT<'a> { +impl<'a> ExecutionGraphPipelineScratchSizeAMDX<'a> { #[inline] - pub fn mtl_buffer(mut self, mtl_buffer: MTLBuffer_id) -> Self { - self.mtl_buffer = mtl_buffer; + pub fn min_size(mut self, min_size: DeviceSize) -> Self { + self.min_size = min_size; + self + } + #[inline] + pub fn max_size(mut self, max_size: DeviceSize) -> Self { + self.max_size = max_size; + self + } + #[inline] + pub fn size_granularity(mut self, size_granularity: DeviceSize) -> Self { + self.size_granularity = size_granularity; self } } #[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] +#[derive(Copy, Clone, Default)] +#[doc = ""] #[must_use] -pub struct ExportMetalTextureInfoEXT<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub image: Image, - pub image_view: ImageView, - pub buffer_view: BufferView, - pub plane: ImageAspectFlags, - pub mtl_texture: MTLTexture_id, - pub _marker: PhantomData<&'a ()>, +pub struct DispatchGraphInfoAMDX { + pub node_index: u32, + pub payload_count: u32, + pub payloads: DeviceOrHostAddressConstAMDX, + pub payload_stride: u64, } -unsafe impl Send for ExportMetalTextureInfoEXT<'_> {} -unsafe impl Sync for ExportMetalTextureInfoEXT<'_> {} -impl ::core::default::Default for ExportMetalTextureInfoEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - image: Image::default(), - image_view: ImageView::default(), - buffer_view: BufferView::default(), - plane: ImageAspectFlags::default(), - mtl_texture: unsafe { ::core::mem::zeroed() }, - _marker: PhantomData, - } +#[cfg(feature = "debug")] +impl fmt::Debug for DispatchGraphInfoAMDX { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("DispatchGraphInfoAMDX") + .field("node_index", &self.node_index) + .field("payload_count", &self.payload_count) + .field("payloads", &"union") + .field("payload_stride", &self.payload_stride) + .finish() } } -unsafe impl<'a> TaggedStructure<'a> for ExportMetalTextureInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_TEXTURE_INFO_EXT; -} -unsafe impl Extends> for ExportMetalTextureInfoEXT<'_> {} -impl<'a> ExportMetalTextureInfoEXT<'a> { - #[inline] - pub fn image(mut self, image: Image) -> Self { - self.image = image; - self - } +impl DispatchGraphInfoAMDX { #[inline] - pub fn image_view(mut self, image_view: ImageView) -> Self { - self.image_view = image_view; + pub fn node_index(mut self, node_index: u32) -> Self { + self.node_index = node_index; self } #[inline] - pub fn buffer_view(mut self, buffer_view: BufferView) -> Self { - self.buffer_view = buffer_view; + pub fn payload_count(mut self, payload_count: u32) -> Self { + self.payload_count = payload_count; self } #[inline] - pub fn plane(mut self, plane: ImageAspectFlags) -> Self { - self.plane = plane; + pub fn payloads(mut self, payloads: DeviceOrHostAddressConstAMDX) -> Self { + self.payloads = payloads; self } #[inline] - pub fn mtl_texture(mut self, mtl_texture: MTLTexture_id) -> Self { - self.mtl_texture = mtl_texture; + pub fn payload_stride(mut self, payload_stride: u64) -> Self { + self.payload_stride = payload_stride; self } } #[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] +#[derive(Copy, Clone, Default)] +#[doc = ""] #[must_use] -pub struct ImportMetalTextureInfoEXT<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub plane: ImageAspectFlags, - pub mtl_texture: MTLTexture_id, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for ImportMetalTextureInfoEXT<'_> {} -unsafe impl Sync for ImportMetalTextureInfoEXT<'_> {} -impl ::core::default::Default for ImportMetalTextureInfoEXT<'_> { - #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - plane: ImageAspectFlags::default(), - mtl_texture: unsafe { ::core::mem::zeroed() }, - _marker: PhantomData, - } - } +pub struct DispatchGraphCountInfoAMDX { + pub count: u32, + pub infos: DeviceOrHostAddressConstAMDX, + pub stride: u64, } -unsafe impl<'a> TaggedStructure<'a> for ImportMetalTextureInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_TEXTURE_INFO_EXT; +#[cfg(feature = "debug")] +impl fmt::Debug for DispatchGraphCountInfoAMDX { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("DispatchGraphCountInfoAMDX") + .field("count", &self.count) + .field("infos", &"union") + .field("stride", &self.stride) + .finish() + } } -unsafe impl Extends> for ImportMetalTextureInfoEXT<'_> {} -impl<'a> ImportMetalTextureInfoEXT<'a> { +impl DispatchGraphCountInfoAMDX { #[inline] - pub fn plane(mut self, plane: ImageAspectFlags) -> Self { - self.plane = plane; + pub fn count(mut self, count: u32) -> Self { + self.count = count; self } #[inline] - pub fn mtl_texture(mut self, mtl_texture: MTLTexture_id) -> Self { - self.mtl_texture = mtl_texture; + pub fn infos(mut self, infos: DeviceOrHostAddressConstAMDX) -> Self { + self.infos = infos; + self + } + #[inline] + pub fn stride(mut self, stride: u64) -> Self { + self.stride = stride; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ExportMetalIOSurfaceInfoEXT<'a> { +pub struct PhysicalDeviceAntiLagFeaturesAMD<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub image: Image, - pub io_surface: IOSurfaceRef, + pub p_next: *mut c_void, + pub anti_lag: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ExportMetalIOSurfaceInfoEXT<'_> {} -unsafe impl Sync for ExportMetalIOSurfaceInfoEXT<'_> {} -impl ::core::default::Default for ExportMetalIOSurfaceInfoEXT<'_> { +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(), - image: Image::default(), - io_surface: unsafe { ::core::mem::zeroed() }, + p_next: ::core::ptr::null_mut(), + anti_lag: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ExportMetalIOSurfaceInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_IO_SURFACE_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceAntiLagFeaturesAMD<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD; } -unsafe impl Extends> for ExportMetalIOSurfaceInfoEXT<'_> {} -impl<'a> ExportMetalIOSurfaceInfoEXT<'a> { - #[inline] - pub fn image(mut self, image: Image) -> Self { - self.image = image; - self - } +unsafe impl Extends> for PhysicalDeviceAntiLagFeaturesAMD<'_> {} +unsafe impl Extends> for PhysicalDeviceAntiLagFeaturesAMD<'_> {} +impl<'a> PhysicalDeviceAntiLagFeaturesAMD<'a> { #[inline] - pub fn io_surface(mut self, io_surface: IOSurfaceRef) -> Self { - self.io_surface = io_surface; + 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 = ""] +#[doc = ""] #[must_use] -pub struct ImportMetalIOSurfaceInfoEXT<'a> { +pub struct AntiLagDataAMD<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub io_surface: IOSurfaceRef, + pub mode: AntiLagModeAMD, + pub max_fps: u32, + pub p_presentation_info: *const AntiLagPresentationInfoAMD<'a>, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ImportMetalIOSurfaceInfoEXT<'_> {} -unsafe impl Sync for ImportMetalIOSurfaceInfoEXT<'_> {} -impl ::core::default::Default for ImportMetalIOSurfaceInfoEXT<'_> { +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(), - io_surface: unsafe { ::core::mem::zeroed() }, + mode: AntiLagModeAMD::default(), + max_fps: u32::default(), + p_presentation_info: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ImportMetalIOSurfaceInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_IO_SURFACE_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for AntiLagDataAMD<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::ANTI_LAG_DATA_AMD; } -unsafe impl Extends> for ImportMetalIOSurfaceInfoEXT<'_> {} -impl<'a> ImportMetalIOSurfaceInfoEXT<'a> { +impl<'a> AntiLagDataAMD<'a> { #[inline] - pub fn io_surface(mut self, io_surface: IOSurfaceRef) -> Self { - self.io_surface = io_surface; + 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 = ""] +#[doc = ""] #[must_use] -pub struct ExportMetalSharedEventInfoEXT<'a> { +pub struct AntiLagPresentationInfoAMD<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub semaphore: Semaphore, - pub event: Event, - pub mtl_shared_event: MTLSharedEvent_id, + pub p_next: *mut c_void, + pub stage: AntiLagStageAMD, + pub frame_index: u64, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ExportMetalSharedEventInfoEXT<'_> {} -unsafe impl Sync for ExportMetalSharedEventInfoEXT<'_> {} -impl ::core::default::Default for ExportMetalSharedEventInfoEXT<'_> { +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(), - semaphore: Semaphore::default(), - event: Event::default(), - mtl_shared_event: unsafe { ::core::mem::zeroed() }, + p_next: ::core::ptr::null_mut(), + stage: AntiLagStageAMD::default(), + frame_index: u64::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ExportMetalSharedEventInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_SHARED_EVENT_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for AntiLagPresentationInfoAMD<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::ANTI_LAG_PRESENTATION_INFO_AMD; } -unsafe impl Extends> for ExportMetalSharedEventInfoEXT<'_> {} -impl<'a> ExportMetalSharedEventInfoEXT<'a> { - #[inline] - pub fn semaphore(mut self, semaphore: Semaphore) -> Self { - self.semaphore = semaphore; - self - } +impl<'a> AntiLagPresentationInfoAMD<'a> { #[inline] - pub fn event(mut self, event: Event) -> Self { - self.event = event; + pub fn stage(mut self, stage: AntiLagStageAMD) -> Self { + self.stage = stage; self } #[inline] - pub fn mtl_shared_event(mut self, mtl_shared_event: MTLSharedEvent_id) -> Self { - self.mtl_shared_event = mtl_shared_event; + 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 = ""] +#[doc = ""] #[must_use] -pub struct ImportMetalSharedEventInfoEXT<'a> { +pub struct BindMemoryStatus<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub mtl_shared_event: MTLSharedEvent_id, + pub p_result: *mut Result, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ImportMetalSharedEventInfoEXT<'_> {} -unsafe impl Sync for ImportMetalSharedEventInfoEXT<'_> {} -impl ::core::default::Default for ImportMetalSharedEventInfoEXT<'_> { +unsafe impl Send for BindMemoryStatus<'_> {} +unsafe impl Sync for BindMemoryStatus<'_> {} +impl ::core::default::Default for BindMemoryStatus<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - mtl_shared_event: unsafe { ::core::mem::zeroed() }, + p_result: ::core::ptr::null_mut(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ImportMetalSharedEventInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_SHARED_EVENT_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for BindMemoryStatus<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::BIND_MEMORY_STATUS; } -unsafe impl Extends> for ImportMetalSharedEventInfoEXT<'_> {} -unsafe impl Extends> for ImportMetalSharedEventInfoEXT<'_> {} -impl<'a> ImportMetalSharedEventInfoEXT<'a> { +unsafe impl Extends> for BindMemoryStatus<'_> {} +unsafe impl Extends> for BindMemoryStatus<'_> {} +impl<'a> BindMemoryStatus<'a> { #[inline] - pub fn mtl_shared_event(mut self, mtl_shared_event: MTLSharedEvent_id) -> Self { - self.mtl_shared_event = mtl_shared_event; + pub fn result(mut self, result: &'a mut Result) -> Self { + self.p_result = result; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a> { +pub struct PhysicalDeviceTileMemoryHeapFeaturesQCOM<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub non_seamless_cube_map: Bool32, + pub tile_memory_heap: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'_> { +unsafe impl Send for PhysicalDeviceTileMemoryHeapFeaturesQCOM<'_> {} +unsafe impl Sync for PhysicalDeviceTileMemoryHeapFeaturesQCOM<'_> {} +impl ::core::default::Default for PhysicalDeviceTileMemoryHeapFeaturesQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - non_seamless_cube_map: Bool32::default(), + tile_memory_heap: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceTileMemoryHeapFeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT; -} -unsafe impl Extends> - for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'_> -{ + StructureType::PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM; } -unsafe impl Extends> for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a> { +unsafe impl Extends> for PhysicalDeviceTileMemoryHeapFeaturesQCOM<'_> {} +unsafe impl Extends> for PhysicalDeviceTileMemoryHeapFeaturesQCOM<'_> {} +impl<'a> PhysicalDeviceTileMemoryHeapFeaturesQCOM<'a> { #[inline] - pub fn non_seamless_cube_map(mut self, non_seamless_cube_map: bool) -> Self { - self.non_seamless_cube_map = non_seamless_cube_map.into(); + pub fn tile_memory_heap(mut self, tile_memory_heap: bool) -> Self { + self.tile_memory_heap = tile_memory_heap.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDevicePipelineRobustnessFeaturesEXT<'a> { +pub struct PhysicalDeviceTileMemoryHeapPropertiesQCOM<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub pipeline_robustness: Bool32, + pub queue_submit_boundary: Bool32, + pub tile_buffer_transfers: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDevicePipelineRobustnessFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDevicePipelineRobustnessFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDevicePipelineRobustnessFeaturesEXT<'_> { +unsafe impl Send for PhysicalDeviceTileMemoryHeapPropertiesQCOM<'_> {} +unsafe impl Sync for PhysicalDeviceTileMemoryHeapPropertiesQCOM<'_> {} +impl ::core::default::Default for PhysicalDeviceTileMemoryHeapPropertiesQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - pipeline_robustness: Bool32::default(), + queue_submit_boundary: Bool32::default(), + tile_buffer_transfers: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineRobustnessFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceTileMemoryHeapPropertiesQCOM<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT; + StructureType::PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM; } -unsafe impl Extends> - for PhysicalDevicePipelineRobustnessFeaturesEXT<'_> +unsafe impl Extends> + for PhysicalDeviceTileMemoryHeapPropertiesQCOM<'_> { } -unsafe impl Extends> for PhysicalDevicePipelineRobustnessFeaturesEXT<'_> {} -impl<'a> PhysicalDevicePipelineRobustnessFeaturesEXT<'a> { +impl<'a> PhysicalDeviceTileMemoryHeapPropertiesQCOM<'a> { #[inline] - pub fn pipeline_robustness(mut self, pipeline_robustness: bool) -> Self { - self.pipeline_robustness = pipeline_robustness.into(); + pub fn queue_submit_boundary(mut self, queue_submit_boundary: bool) -> Self { + self.queue_submit_boundary = queue_submit_boundary.into(); + self + } + #[inline] + pub fn tile_buffer_transfers(mut self, tile_buffer_transfers: bool) -> Self { + self.tile_buffer_transfers = tile_buffer_transfers.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PipelineRobustnessCreateInfoEXT<'a> { +pub struct TileMemorySizeInfoQCOM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub storage_buffers: PipelineRobustnessBufferBehaviorEXT, - pub uniform_buffers: PipelineRobustnessBufferBehaviorEXT, - pub vertex_inputs: PipelineRobustnessBufferBehaviorEXT, - pub images: PipelineRobustnessImageBehaviorEXT, + pub size: DeviceSize, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PipelineRobustnessCreateInfoEXT<'_> {} -unsafe impl Sync for PipelineRobustnessCreateInfoEXT<'_> {} -impl ::core::default::Default for PipelineRobustnessCreateInfoEXT<'_> { +unsafe impl Send for TileMemorySizeInfoQCOM<'_> {} +unsafe impl Sync for TileMemorySizeInfoQCOM<'_> {} +impl ::core::default::Default for TileMemorySizeInfoQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - storage_buffers: PipelineRobustnessBufferBehaviorEXT::default(), - uniform_buffers: PipelineRobustnessBufferBehaviorEXT::default(), - vertex_inputs: PipelineRobustnessBufferBehaviorEXT::default(), - images: PipelineRobustnessImageBehaviorEXT::default(), + size: DeviceSize::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PipelineRobustnessCreateInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_ROBUSTNESS_CREATE_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for TileMemorySizeInfoQCOM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::TILE_MEMORY_SIZE_INFO_QCOM; } -unsafe impl Extends> for PipelineRobustnessCreateInfoEXT<'_> {} -unsafe impl Extends> for PipelineRobustnessCreateInfoEXT<'_> {} -unsafe impl Extends> for PipelineRobustnessCreateInfoEXT<'_> {} -unsafe impl Extends> for PipelineRobustnessCreateInfoEXT<'_> {} -impl<'a> PipelineRobustnessCreateInfoEXT<'a> { - #[inline] - pub fn storage_buffers(mut self, storage_buffers: PipelineRobustnessBufferBehaviorEXT) -> Self { - self.storage_buffers = storage_buffers; - self - } - #[inline] - pub fn uniform_buffers(mut self, uniform_buffers: PipelineRobustnessBufferBehaviorEXT) -> Self { - self.uniform_buffers = uniform_buffers; - self - } - #[inline] - pub fn vertex_inputs(mut self, vertex_inputs: PipelineRobustnessBufferBehaviorEXT) -> Self { - self.vertex_inputs = vertex_inputs; - self - } +unsafe impl Extends> for TileMemorySizeInfoQCOM<'_> {} +unsafe impl Extends> for TileMemorySizeInfoQCOM<'_> {} +unsafe impl Extends> for TileMemorySizeInfoQCOM<'_> {} +impl<'a> TileMemorySizeInfoQCOM<'a> { #[inline] - pub fn images(mut self, images: PipelineRobustnessImageBehaviorEXT) -> Self { - self.images = images; + pub fn size(mut self, size: DeviceSize) -> Self { + self.size = size; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDevicePipelineRobustnessPropertiesEXT<'a> { +pub struct TileMemoryRequirementsQCOM<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub default_robustness_storage_buffers: PipelineRobustnessBufferBehaviorEXT, - pub default_robustness_uniform_buffers: PipelineRobustnessBufferBehaviorEXT, - pub default_robustness_vertex_inputs: PipelineRobustnessBufferBehaviorEXT, - pub default_robustness_images: PipelineRobustnessImageBehaviorEXT, + pub size: DeviceSize, + pub alignment: DeviceSize, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDevicePipelineRobustnessPropertiesEXT<'_> {} -unsafe impl Sync for PhysicalDevicePipelineRobustnessPropertiesEXT<'_> {} -impl ::core::default::Default for PhysicalDevicePipelineRobustnessPropertiesEXT<'_> { +unsafe impl Send for TileMemoryRequirementsQCOM<'_> {} +unsafe impl Sync for TileMemoryRequirementsQCOM<'_> {} +impl ::core::default::Default for TileMemoryRequirementsQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - default_robustness_storage_buffers: PipelineRobustnessBufferBehaviorEXT::default(), - default_robustness_uniform_buffers: PipelineRobustnessBufferBehaviorEXT::default(), - default_robustness_vertex_inputs: PipelineRobustnessBufferBehaviorEXT::default(), - default_robustness_images: PipelineRobustnessImageBehaviorEXT::default(), + size: DeviceSize::default(), + alignment: DeviceSize::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineRobustnessPropertiesEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT; -} -unsafe impl Extends> - for PhysicalDevicePipelineRobustnessPropertiesEXT<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for TileMemoryRequirementsQCOM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::TILE_MEMORY_REQUIREMENTS_QCOM; } -impl<'a> PhysicalDevicePipelineRobustnessPropertiesEXT<'a> { - #[inline] - pub fn default_robustness_storage_buffers( - mut self, - default_robustness_storage_buffers: PipelineRobustnessBufferBehaviorEXT, - ) -> Self { - self.default_robustness_storage_buffers = default_robustness_storage_buffers; - self - } - #[inline] - pub fn default_robustness_uniform_buffers( - mut self, - default_robustness_uniform_buffers: PipelineRobustnessBufferBehaviorEXT, - ) -> Self { - self.default_robustness_uniform_buffers = default_robustness_uniform_buffers; - self - } +unsafe impl Extends> for TileMemoryRequirementsQCOM<'_> {} +impl<'a> TileMemoryRequirementsQCOM<'a> { #[inline] - pub fn default_robustness_vertex_inputs( - mut self, - default_robustness_vertex_inputs: PipelineRobustnessBufferBehaviorEXT, - ) -> Self { - self.default_robustness_vertex_inputs = default_robustness_vertex_inputs; + pub fn size(mut self, size: DeviceSize) -> Self { + self.size = size; self } #[inline] - pub fn default_robustness_images( - mut self, - default_robustness_images: PipelineRobustnessImageBehaviorEXT, - ) -> Self { - self.default_robustness_images = default_robustness_images; + pub fn alignment(mut self, alignment: DeviceSize) -> Self { + self.alignment = alignment; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ImageViewSampleWeightCreateInfoQCOM<'a> { +pub struct BindDescriptorSetsInfo<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub filter_center: Offset2D, - pub filter_size: Extent2D, - pub num_phases: u32, + pub stage_flags: ShaderStageFlags, + pub layout: PipelineLayout, + pub first_set: u32, + pub descriptor_set_count: u32, + pub p_descriptor_sets: *const DescriptorSet, + pub dynamic_offset_count: u32, + pub p_dynamic_offsets: *const u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ImageViewSampleWeightCreateInfoQCOM<'_> {} -unsafe impl Sync for ImageViewSampleWeightCreateInfoQCOM<'_> {} -impl ::core::default::Default for ImageViewSampleWeightCreateInfoQCOM<'_> { +unsafe impl Send for BindDescriptorSetsInfo<'_> {} +unsafe impl Sync for BindDescriptorSetsInfo<'_> {} +impl ::core::default::Default for BindDescriptorSetsInfo<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - filter_center: Offset2D::default(), - filter_size: Extent2D::default(), - num_phases: u32::default(), + stage_flags: ShaderStageFlags::default(), + layout: PipelineLayout::default(), + first_set: u32::default(), + descriptor_set_count: u32::default(), + p_descriptor_sets: ::core::ptr::null(), + dynamic_offset_count: u32::default(), + p_dynamic_offsets: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ImageViewSampleWeightCreateInfoQCOM<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM; +unsafe impl<'a> TaggedStructure<'a> for BindDescriptorSetsInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::BIND_DESCRIPTOR_SETS_INFO; } -unsafe impl Extends> for ImageViewSampleWeightCreateInfoQCOM<'_> {} -impl<'a> ImageViewSampleWeightCreateInfoQCOM<'a> { +impl<'a> BindDescriptorSetsInfo<'a> { #[inline] - pub fn filter_center(mut self, filter_center: Offset2D) -> Self { - self.filter_center = filter_center; + pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { + self.stage_flags = stage_flags; self } #[inline] - pub fn filter_size(mut self, filter_size: Extent2D) -> Self { - self.filter_size = filter_size; + pub fn layout(mut self, layout: PipelineLayout) -> Self { + self.layout = layout; self } #[inline] - pub fn num_phases(mut self, num_phases: u32) -> Self { - self.num_phases = num_phases; + pub fn first_set(mut self, first_set: u32) -> Self { + self.first_set = first_set; + self + } + #[inline] + pub fn descriptor_sets(mut self, descriptor_sets: &'a [DescriptorSet]) -> Self { + self.descriptor_set_count = descriptor_sets.len() as _; + self.p_descriptor_sets = descriptor_sets.as_ptr(); + self + } + #[inline] + pub fn dynamic_offsets(mut self, dynamic_offsets: &'a [u32]) -> Self { + self.dynamic_offset_count = dynamic_offsets.len() as _; + self.p_dynamic_offsets = dynamic_offsets.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceImageProcessingFeaturesQCOM<'a> { +pub struct PushConstantsInfo<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub texture_sample_weighted: Bool32, - pub texture_box_filter: Bool32, - pub texture_block_match: Bool32, + pub p_next: *const c_void, + pub layout: PipelineLayout, + pub stage_flags: ShaderStageFlags, + pub offset: u32, + pub size: u32, + pub p_values: *const c_void, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceImageProcessingFeaturesQCOM<'_> {} -unsafe impl Sync for PhysicalDeviceImageProcessingFeaturesQCOM<'_> {} -impl ::core::default::Default for PhysicalDeviceImageProcessingFeaturesQCOM<'_> { +unsafe impl Send for PushConstantsInfo<'_> {} +unsafe impl Sync for PushConstantsInfo<'_> {} +impl ::core::default::Default for PushConstantsInfo<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - texture_sample_weighted: Bool32::default(), - texture_box_filter: Bool32::default(), - texture_block_match: Bool32::default(), + p_next: ::core::ptr::null(), + layout: PipelineLayout::default(), + stage_flags: ShaderStageFlags::default(), + offset: u32::default(), + size: u32::default(), + p_values: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageProcessingFeaturesQCOM<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM; +unsafe impl<'a> TaggedStructure<'a> for PushConstantsInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PUSH_CONSTANTS_INFO; } -unsafe impl Extends> for PhysicalDeviceImageProcessingFeaturesQCOM<'_> {} -unsafe impl Extends> for PhysicalDeviceImageProcessingFeaturesQCOM<'_> {} -impl<'a> PhysicalDeviceImageProcessingFeaturesQCOM<'a> { +impl<'a> PushConstantsInfo<'a> { #[inline] - pub fn texture_sample_weighted(mut self, texture_sample_weighted: bool) -> Self { - self.texture_sample_weighted = texture_sample_weighted.into(); + pub fn layout(mut self, layout: PipelineLayout) -> Self { + self.layout = layout; self } #[inline] - pub fn texture_box_filter(mut self, texture_box_filter: bool) -> Self { - self.texture_box_filter = texture_box_filter.into(); + pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { + self.stage_flags = stage_flags; self } #[inline] - pub fn texture_block_match(mut self, texture_block_match: bool) -> Self { - self.texture_block_match = texture_block_match.into(); + pub fn offset(mut self, offset: u32) -> Self { + self.offset = offset; + self + } + #[inline] + pub fn values(mut self, values: &'a [u8]) -> Self { + self.size = values.len() as _; + self.p_values = values.as_ptr().cast(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceImageProcessingPropertiesQCOM<'a> { +pub struct PushDescriptorSetInfo<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub max_weight_filter_phases: u32, - pub max_weight_filter_dimension: Extent2D, - pub max_block_match_region: Extent2D, - pub max_box_filter_block_size: Extent2D, + pub p_next: *const c_void, + pub stage_flags: ShaderStageFlags, + pub layout: PipelineLayout, + pub set: u32, + pub descriptor_write_count: u32, + pub p_descriptor_writes: *const WriteDescriptorSet<'a>, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceImageProcessingPropertiesQCOM<'_> {} -unsafe impl Sync for PhysicalDeviceImageProcessingPropertiesQCOM<'_> {} -impl ::core::default::Default for PhysicalDeviceImageProcessingPropertiesQCOM<'_> { +unsafe impl Send for PushDescriptorSetInfo<'_> {} +unsafe impl Sync for PushDescriptorSetInfo<'_> {} +impl ::core::default::Default for PushDescriptorSetInfo<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - max_weight_filter_phases: u32::default(), - max_weight_filter_dimension: Extent2D::default(), - max_block_match_region: Extent2D::default(), - max_box_filter_block_size: Extent2D::default(), + p_next: ::core::ptr::null(), + stage_flags: ShaderStageFlags::default(), + layout: PipelineLayout::default(), + set: u32::default(), + descriptor_write_count: u32::default(), + p_descriptor_writes: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageProcessingPropertiesQCOM<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM; -} -unsafe impl Extends> - for PhysicalDeviceImageProcessingPropertiesQCOM<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for PushDescriptorSetInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PUSH_DESCRIPTOR_SET_INFO; } -impl<'a> PhysicalDeviceImageProcessingPropertiesQCOM<'a> { +impl<'a> PushDescriptorSetInfo<'a> { #[inline] - pub fn max_weight_filter_phases(mut self, max_weight_filter_phases: u32) -> Self { - self.max_weight_filter_phases = max_weight_filter_phases; + pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { + self.stage_flags = stage_flags; self } #[inline] - pub fn max_weight_filter_dimension(mut self, max_weight_filter_dimension: Extent2D) -> Self { - self.max_weight_filter_dimension = max_weight_filter_dimension; + pub fn layout(mut self, layout: PipelineLayout) -> Self { + self.layout = layout; self } #[inline] - pub fn max_block_match_region(mut self, max_block_match_region: Extent2D) -> Self { - self.max_block_match_region = max_block_match_region; + pub fn set(mut self, set: u32) -> Self { + self.set = set; self } #[inline] - pub fn max_box_filter_block_size(mut self, max_box_filter_block_size: Extent2D) -> Self { - self.max_box_filter_block_size = max_box_filter_block_size; + pub fn descriptor_writes(mut self, descriptor_writes: &'a [WriteDescriptorSet<'a>]) -> Self { + self.descriptor_write_count = descriptor_writes.len() as _; + self.p_descriptor_writes = descriptor_writes.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceTilePropertiesFeaturesQCOM<'a> { +pub struct PushDescriptorSetWithTemplateInfo<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub tile_properties: Bool32, + pub p_next: *const c_void, + pub descriptor_update_template: DescriptorUpdateTemplate, + pub layout: PipelineLayout, + pub set: u32, + pub p_data: *const c_void, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceTilePropertiesFeaturesQCOM<'_> {} -unsafe impl Sync for PhysicalDeviceTilePropertiesFeaturesQCOM<'_> {} -impl ::core::default::Default for PhysicalDeviceTilePropertiesFeaturesQCOM<'_> { +unsafe impl Send for PushDescriptorSetWithTemplateInfo<'_> {} +unsafe impl Sync for PushDescriptorSetWithTemplateInfo<'_> {} +impl ::core::default::Default for PushDescriptorSetWithTemplateInfo<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - tile_properties: Bool32::default(), + p_next: ::core::ptr::null(), + descriptor_update_template: DescriptorUpdateTemplate::default(), + layout: PipelineLayout::default(), + set: u32::default(), + p_data: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceTilePropertiesFeaturesQCOM<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM; +unsafe impl<'a> TaggedStructure<'a> for PushDescriptorSetWithTemplateInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO; } -unsafe impl Extends> for PhysicalDeviceTilePropertiesFeaturesQCOM<'_> {} -unsafe impl Extends> for PhysicalDeviceTilePropertiesFeaturesQCOM<'_> {} -impl<'a> PhysicalDeviceTilePropertiesFeaturesQCOM<'a> { +impl<'a> PushDescriptorSetWithTemplateInfo<'a> { #[inline] - pub fn tile_properties(mut self, tile_properties: bool) -> Self { - self.tile_properties = tile_properties.into(); + pub fn descriptor_update_template( + mut self, + descriptor_update_template: DescriptorUpdateTemplate, + ) -> Self { + self.descriptor_update_template = descriptor_update_template; + self + } + #[inline] + pub fn layout(mut self, layout: PipelineLayout) -> Self { + self.layout = layout; + self + } + #[inline] + pub fn set(mut self, set: u32) -> Self { + self.set = set; + self + } + #[inline] + pub fn data(mut self, data: *const c_void) -> Self { + self.p_data = data; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct TilePropertiesQCOM<'a> { +pub struct SetDescriptorBufferOffsetsInfoEXT<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub tile_size: Extent3D, - pub apron_size: Extent2D, - pub origin: Offset2D, + pub p_next: *const c_void, + pub stage_flags: ShaderStageFlags, + pub layout: PipelineLayout, + pub first_set: u32, + pub set_count: u32, + pub p_buffer_indices: *const u32, + pub p_offsets: *const DeviceSize, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for TilePropertiesQCOM<'_> {} -unsafe impl Sync for TilePropertiesQCOM<'_> {} -impl ::core::default::Default for TilePropertiesQCOM<'_> { +unsafe impl Send for SetDescriptorBufferOffsetsInfoEXT<'_> {} +unsafe impl Sync for SetDescriptorBufferOffsetsInfoEXT<'_> {} +impl ::core::default::Default for SetDescriptorBufferOffsetsInfoEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - tile_size: Extent3D::default(), - apron_size: Extent2D::default(), - origin: Offset2D::default(), + p_next: ::core::ptr::null(), + stage_flags: ShaderStageFlags::default(), + layout: PipelineLayout::default(), + first_set: u32::default(), + set_count: u32::default(), + p_buffer_indices: ::core::ptr::null(), + p_offsets: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for TilePropertiesQCOM<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::TILE_PROPERTIES_QCOM; +unsafe impl<'a> TaggedStructure<'a> for SetDescriptorBufferOffsetsInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT; } -impl<'a> TilePropertiesQCOM<'a> { +impl<'a> SetDescriptorBufferOffsetsInfoEXT<'a> { #[inline] - pub fn tile_size(mut self, tile_size: Extent3D) -> Self { - self.tile_size = tile_size; + pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { + self.stage_flags = stage_flags; self } #[inline] - pub fn apron_size(mut self, apron_size: Extent2D) -> Self { - self.apron_size = apron_size; + pub fn layout(mut self, layout: PipelineLayout) -> Self { + self.layout = layout; self } #[inline] - pub fn origin(mut self, origin: Offset2D) -> Self { - self.origin = origin; - self - } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct PhysicalDeviceAmigoProfilingFeaturesSEC<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub amigo_profiling: Bool32, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for PhysicalDeviceAmigoProfilingFeaturesSEC<'_> {} -unsafe impl Sync for PhysicalDeviceAmigoProfilingFeaturesSEC<'_> {} -impl ::core::default::Default for PhysicalDeviceAmigoProfilingFeaturesSEC<'_> { + pub fn first_set(mut self, first_set: u32) -> Self { + self.first_set = first_set; + self + } #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - amigo_profiling: Bool32::default(), - _marker: PhantomData, - } + pub fn buffer_indices(mut self, buffer_indices: &'a [u32]) -> Self { + self.set_count = buffer_indices.len() as _; + self.p_buffer_indices = buffer_indices.as_ptr(); + self } -} -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceAmigoProfilingFeaturesSEC<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC; -} -unsafe impl Extends> for PhysicalDeviceAmigoProfilingFeaturesSEC<'_> {} -unsafe impl Extends> for PhysicalDeviceAmigoProfilingFeaturesSEC<'_> {} -impl<'a> PhysicalDeviceAmigoProfilingFeaturesSEC<'a> { #[inline] - pub fn amigo_profiling(mut self, amigo_profiling: bool) -> Self { - self.amigo_profiling = amigo_profiling.into(); + pub fn offsets(mut self, offsets: &'a [DeviceSize]) -> Self { + self.set_count = offsets.len() as _; + self.p_offsets = offsets.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct AmigoProfilingSubmitInfoSEC<'a> { +pub struct BindDescriptorBufferEmbeddedSamplersInfoEXT<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub first_draw_timestamp: u64, - pub swap_buffer_timestamp: u64, + pub stage_flags: ShaderStageFlags, + pub layout: PipelineLayout, + pub set: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for AmigoProfilingSubmitInfoSEC<'_> {} -unsafe impl Sync for AmigoProfilingSubmitInfoSEC<'_> {} -impl ::core::default::Default for AmigoProfilingSubmitInfoSEC<'_> { +unsafe impl Send for BindDescriptorBufferEmbeddedSamplersInfoEXT<'_> {} +unsafe impl Sync for BindDescriptorBufferEmbeddedSamplersInfoEXT<'_> {} +impl ::core::default::Default for BindDescriptorBufferEmbeddedSamplersInfoEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - first_draw_timestamp: u64::default(), - swap_buffer_timestamp: u64::default(), + stage_flags: ShaderStageFlags::default(), + layout: PipelineLayout::default(), + set: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for AmigoProfilingSubmitInfoSEC<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::AMIGO_PROFILING_SUBMIT_INFO_SEC; +unsafe impl<'a> TaggedStructure<'a> for BindDescriptorBufferEmbeddedSamplersInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT; } -unsafe impl Extends> for AmigoProfilingSubmitInfoSEC<'_> {} -impl<'a> AmigoProfilingSubmitInfoSEC<'a> { +impl<'a> BindDescriptorBufferEmbeddedSamplersInfoEXT<'a> { #[inline] - pub fn first_draw_timestamp(mut self, first_draw_timestamp: u64) -> Self { - self.first_draw_timestamp = first_draw_timestamp; + pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { + self.stage_flags = stage_flags; self } #[inline] - pub fn swap_buffer_timestamp(mut self, swap_buffer_timestamp: u64) -> Self { - self.swap_buffer_timestamp = swap_buffer_timestamp; + pub fn layout(mut self, layout: PipelineLayout) -> Self { + self.layout = layout; + self + } + #[inline] + pub fn set(mut self, set: u32) -> Self { + self.set = set; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'a> { +pub struct PhysicalDeviceCubicClampFeaturesQCOM<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub attachment_feedback_loop_layout: Bool32, + pub cubic_range_clamp: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'_> { +unsafe impl Send for PhysicalDeviceCubicClampFeaturesQCOM<'_> {} +unsafe impl Sync for PhysicalDeviceCubicClampFeaturesQCOM<'_> {} +impl ::core::default::Default for PhysicalDeviceCubicClampFeaturesQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - attachment_feedback_loop_layout: Bool32::default(), + cubic_range_clamp: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT; -} -unsafe impl Extends> - for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'_> -{ -} -unsafe impl Extends> - for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCubicClampFeaturesQCOM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM; } -impl<'a> PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'a> { +unsafe impl Extends> for PhysicalDeviceCubicClampFeaturesQCOM<'_> {} +unsafe impl Extends> for PhysicalDeviceCubicClampFeaturesQCOM<'_> {} +impl<'a> PhysicalDeviceCubicClampFeaturesQCOM<'a> { #[inline] - pub fn attachment_feedback_loop_layout( - mut self, - attachment_feedback_loop_layout: bool, - ) -> Self { - self.attachment_feedback_loop_layout = attachment_feedback_loop_layout.into(); + pub fn cubic_range_clamp(mut self, cubic_range_clamp: bool) -> Self { + self.cubic_range_clamp = cubic_range_clamp.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceDepthClampZeroOneFeaturesEXT<'a> { +pub struct PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub depth_clamp_zero_one: Bool32, + pub ycbcr_degamma: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'_> { +unsafe impl Send for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'_> {} +unsafe impl Sync for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'_> {} +impl ::core::default::Default for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - depth_clamp_zero_one: Bool32::default(), + ycbcr_degamma: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT; -} -unsafe impl Extends> - for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'_> -{ + StructureType::PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM; } -unsafe impl Extends> for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceDepthClampZeroOneFeaturesEXT<'a> { +unsafe impl Extends> for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'_> {} +unsafe impl Extends> for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'_> {} +impl<'a> PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> { #[inline] - pub fn depth_clamp_zero_one(mut self, depth_clamp_zero_one: bool) -> Self { - self.depth_clamp_zero_one = depth_clamp_zero_one.into(); + pub fn ycbcr_degamma(mut self, ycbcr_degamma: bool) -> Self { + self.ycbcr_degamma = ycbcr_degamma.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceAddressBindingReportFeaturesEXT<'a> { +pub struct SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub report_address_binding: Bool32, + pub enable_y_degamma: Bool32, + pub enable_cb_cr_degamma: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceAddressBindingReportFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceAddressBindingReportFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceAddressBindingReportFeaturesEXT<'_> { +unsafe impl Send for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'_> {} +unsafe impl Sync for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'_> {} +impl ::core::default::Default for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - report_address_binding: Bool32::default(), + enable_y_degamma: Bool32::default(), + enable_cb_cr_degamma: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceAddressBindingReportFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT; + StructureType::SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM; } -unsafe impl Extends> - for PhysicalDeviceAddressBindingReportFeaturesEXT<'_> +unsafe impl Extends> + for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'_> { } -unsafe impl Extends> for PhysicalDeviceAddressBindingReportFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceAddressBindingReportFeaturesEXT<'a> { +impl<'a> SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'a> { #[inline] - pub fn report_address_binding(mut self, report_address_binding: bool) -> Self { - self.report_address_binding = report_address_binding.into(); + pub fn enable_y_degamma(mut self, enable_y_degamma: bool) -> Self { + self.enable_y_degamma = enable_y_degamma.into(); + self + } + #[inline] + pub fn enable_cb_cr_degamma(mut self, enable_cb_cr_degamma: bool) -> Self { + self.enable_cb_cr_degamma = enable_cb_cr_degamma.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DeviceAddressBindingCallbackDataEXT<'a> { +pub struct PhysicalDeviceCubicWeightsFeaturesQCOM<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub flags: DeviceAddressBindingFlagsEXT, - pub base_address: DeviceAddress, - pub size: DeviceSize, - pub binding_type: DeviceAddressBindingTypeEXT, + pub selectable_cubic_weights: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for DeviceAddressBindingCallbackDataEXT<'_> {} -unsafe impl Sync for DeviceAddressBindingCallbackDataEXT<'_> {} -impl ::core::default::Default for DeviceAddressBindingCallbackDataEXT<'_> { +unsafe impl Send for PhysicalDeviceCubicWeightsFeaturesQCOM<'_> {} +unsafe impl Sync for PhysicalDeviceCubicWeightsFeaturesQCOM<'_> {} +impl ::core::default::Default for PhysicalDeviceCubicWeightsFeaturesQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - flags: DeviceAddressBindingFlagsEXT::default(), - base_address: DeviceAddress::default(), - size: DeviceSize::default(), - binding_type: DeviceAddressBindingTypeEXT::default(), + selectable_cubic_weights: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for DeviceAddressBindingCallbackDataEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT; -} -unsafe impl Extends> - for DeviceAddressBindingCallbackDataEXT<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCubicWeightsFeaturesQCOM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM; } -impl<'a> DeviceAddressBindingCallbackDataEXT<'a> { - #[inline] - pub fn flags(mut self, flags: DeviceAddressBindingFlagsEXT) -> Self { - self.flags = flags; - self - } - #[inline] - pub fn base_address(mut self, base_address: DeviceAddress) -> Self { - self.base_address = base_address; - self - } - #[inline] - pub fn size(mut self, size: DeviceSize) -> Self { - self.size = size; - self - } +unsafe impl Extends> for PhysicalDeviceCubicWeightsFeaturesQCOM<'_> {} +unsafe impl Extends> for PhysicalDeviceCubicWeightsFeaturesQCOM<'_> {} +impl<'a> PhysicalDeviceCubicWeightsFeaturesQCOM<'a> { #[inline] - pub fn binding_type(mut self, binding_type: DeviceAddressBindingTypeEXT) -> Self { - self.binding_type = binding_type; + pub fn selectable_cubic_weights(mut self, selectable_cubic_weights: bool) -> Self { + self.selectable_cubic_weights = selectable_cubic_weights.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceOpticalFlowFeaturesNV<'a> { +pub struct SamplerCubicWeightsCreateInfoQCOM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub optical_flow: Bool32, + pub p_next: *const c_void, + pub cubic_weights: CubicFilterWeightsQCOM, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceOpticalFlowFeaturesNV<'_> {} -unsafe impl Sync for PhysicalDeviceOpticalFlowFeaturesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceOpticalFlowFeaturesNV<'_> { +unsafe impl Send for SamplerCubicWeightsCreateInfoQCOM<'_> {} +unsafe impl Sync for SamplerCubicWeightsCreateInfoQCOM<'_> {} +impl ::core::default::Default for SamplerCubicWeightsCreateInfoQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - optical_flow: Bool32::default(), + p_next: ::core::ptr::null(), + cubic_weights: CubicFilterWeightsQCOM::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceOpticalFlowFeaturesNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV; +unsafe impl<'a> TaggedStructure<'a> for SamplerCubicWeightsCreateInfoQCOM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM; } -unsafe impl Extends> for PhysicalDeviceOpticalFlowFeaturesNV<'_> {} -unsafe impl Extends> for PhysicalDeviceOpticalFlowFeaturesNV<'_> {} -impl<'a> PhysicalDeviceOpticalFlowFeaturesNV<'a> { +unsafe impl Extends> for SamplerCubicWeightsCreateInfoQCOM<'_> {} +impl<'a> SamplerCubicWeightsCreateInfoQCOM<'a> { #[inline] - pub fn optical_flow(mut self, optical_flow: bool) -> Self { - self.optical_flow = optical_flow.into(); + pub fn cubic_weights(mut self, cubic_weights: CubicFilterWeightsQCOM) -> Self { + self.cubic_weights = cubic_weights; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceOpticalFlowPropertiesNV<'a> { +pub struct BlitImageCubicWeightsInfoQCOM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub supported_output_grid_sizes: OpticalFlowGridSizeFlagsNV, - pub supported_hint_grid_sizes: OpticalFlowGridSizeFlagsNV, - pub hint_supported: Bool32, - pub cost_supported: Bool32, - pub bidirectional_flow_supported: Bool32, - pub global_flow_supported: Bool32, - pub min_width: u32, - pub min_height: u32, - pub max_width: u32, - pub max_height: u32, - pub max_num_regions_of_interest: u32, + pub p_next: *const c_void, + pub cubic_weights: CubicFilterWeightsQCOM, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceOpticalFlowPropertiesNV<'_> {} -unsafe impl Sync for PhysicalDeviceOpticalFlowPropertiesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceOpticalFlowPropertiesNV<'_> { +unsafe impl Send for BlitImageCubicWeightsInfoQCOM<'_> {} +unsafe impl Sync for BlitImageCubicWeightsInfoQCOM<'_> {} +impl ::core::default::Default for BlitImageCubicWeightsInfoQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - supported_output_grid_sizes: OpticalFlowGridSizeFlagsNV::default(), - supported_hint_grid_sizes: OpticalFlowGridSizeFlagsNV::default(), - hint_supported: Bool32::default(), - cost_supported: Bool32::default(), - bidirectional_flow_supported: Bool32::default(), - global_flow_supported: Bool32::default(), - min_width: u32::default(), - min_height: u32::default(), - max_width: u32::default(), - max_height: u32::default(), - max_num_regions_of_interest: u32::default(), + p_next: ::core::ptr::null(), + cubic_weights: CubicFilterWeightsQCOM::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceOpticalFlowPropertiesNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV; +unsafe impl<'a> TaggedStructure<'a> for BlitImageCubicWeightsInfoQCOM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM; } -unsafe impl Extends> for PhysicalDeviceOpticalFlowPropertiesNV<'_> {} -impl<'a> PhysicalDeviceOpticalFlowPropertiesNV<'a> { - #[inline] - pub fn supported_output_grid_sizes( - mut self, - supported_output_grid_sizes: OpticalFlowGridSizeFlagsNV, - ) -> Self { - self.supported_output_grid_sizes = supported_output_grid_sizes; - self - } - #[inline] - pub fn supported_hint_grid_sizes( - mut self, - supported_hint_grid_sizes: OpticalFlowGridSizeFlagsNV, - ) -> Self { - self.supported_hint_grid_sizes = supported_hint_grid_sizes; - self - } - #[inline] - pub fn hint_supported(mut self, hint_supported: bool) -> Self { - self.hint_supported = hint_supported.into(); - self - } - #[inline] - pub fn cost_supported(mut self, cost_supported: bool) -> Self { - self.cost_supported = cost_supported.into(); - self - } - #[inline] - pub fn bidirectional_flow_supported(mut self, bidirectional_flow_supported: bool) -> Self { - self.bidirectional_flow_supported = bidirectional_flow_supported.into(); - self - } - #[inline] - pub fn global_flow_supported(mut self, global_flow_supported: bool) -> Self { - self.global_flow_supported = global_flow_supported.into(); - self - } - #[inline] - pub fn min_width(mut self, min_width: u32) -> Self { - self.min_width = min_width; - self - } - #[inline] - pub fn min_height(mut self, min_height: u32) -> Self { - self.min_height = min_height; - self - } - #[inline] - pub fn max_width(mut self, max_width: u32) -> Self { - self.max_width = max_width; - self - } - #[inline] - pub fn max_height(mut self, max_height: u32) -> Self { - self.max_height = max_height; - self - } +unsafe impl Extends> for BlitImageCubicWeightsInfoQCOM<'_> {} +impl<'a> BlitImageCubicWeightsInfoQCOM<'a> { #[inline] - pub fn max_num_regions_of_interest(mut self, max_num_regions_of_interest: u32) -> Self { - self.max_num_regions_of_interest = max_num_regions_of_interest; + pub fn cubic_weights(mut self, cubic_weights: CubicFilterWeightsQCOM) -> Self { + self.cubic_weights = cubic_weights; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct OpticalFlowImageFormatInfoNV<'a> { +pub struct PhysicalDeviceImageProcessing2FeaturesQCOM<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub usage: OpticalFlowUsageFlagsNV, + pub p_next: *mut c_void, + pub texture_block_match2: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for OpticalFlowImageFormatInfoNV<'_> {} -unsafe impl Sync for OpticalFlowImageFormatInfoNV<'_> {} -impl ::core::default::Default for OpticalFlowImageFormatInfoNV<'_> { +unsafe impl Send for PhysicalDeviceImageProcessing2FeaturesQCOM<'_> {} +unsafe impl Sync for PhysicalDeviceImageProcessing2FeaturesQCOM<'_> {} +impl ::core::default::Default for PhysicalDeviceImageProcessing2FeaturesQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - usage: OpticalFlowUsageFlagsNV::default(), + p_next: ::core::ptr::null_mut(), + texture_block_match2: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for OpticalFlowImageFormatInfoNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageProcessing2FeaturesQCOM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM; } -unsafe impl Extends> for OpticalFlowImageFormatInfoNV<'_> {} -unsafe impl Extends> for OpticalFlowImageFormatInfoNV<'_> {} -impl<'a> OpticalFlowImageFormatInfoNV<'a> { +unsafe impl Extends> + for PhysicalDeviceImageProcessing2FeaturesQCOM<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceImageProcessing2FeaturesQCOM<'_> {} +impl<'a> PhysicalDeviceImageProcessing2FeaturesQCOM<'a> { #[inline] - pub fn usage(mut self, usage: OpticalFlowUsageFlagsNV) -> Self { - self.usage = usage; + pub fn texture_block_match2(mut self, texture_block_match2: bool) -> Self { + self.texture_block_match2 = texture_block_match2.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct OpticalFlowImageFormatPropertiesNV<'a> { +pub struct PhysicalDeviceImageProcessing2PropertiesQCOM<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub format: Format, + pub p_next: *mut c_void, + pub max_block_match_window: Extent2D, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for OpticalFlowImageFormatPropertiesNV<'_> {} -unsafe impl Sync for OpticalFlowImageFormatPropertiesNV<'_> {} -impl ::core::default::Default for OpticalFlowImageFormatPropertiesNV<'_> { +unsafe impl Send for PhysicalDeviceImageProcessing2PropertiesQCOM<'_> {} +unsafe impl Sync for PhysicalDeviceImageProcessing2PropertiesQCOM<'_> {} +impl ::core::default::Default for PhysicalDeviceImageProcessing2PropertiesQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - format: Format::default(), + p_next: ::core::ptr::null_mut(), + max_block_match_window: Extent2D::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for OpticalFlowImageFormatPropertiesNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageProcessing2PropertiesQCOM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM; } -impl<'a> OpticalFlowImageFormatPropertiesNV<'a> { +unsafe impl Extends> + for PhysicalDeviceImageProcessing2PropertiesQCOM<'_> +{ +} +impl<'a> PhysicalDeviceImageProcessing2PropertiesQCOM<'a> { #[inline] - pub fn format(mut self, format: Format) -> Self { - self.format = format; + pub fn max_block_match_window(mut self, max_block_match_window: Extent2D) -> Self { + self.max_block_match_window = max_block_match_window; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct OpticalFlowSessionCreateInfoNV<'a> { +pub struct SamplerBlockMatchWindowCreateInfoQCOM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub width: u32, - pub height: u32, - pub image_format: Format, - pub flow_vector_format: Format, - pub cost_format: Format, - pub output_grid_size: OpticalFlowGridSizeFlagsNV, - pub hint_grid_size: OpticalFlowGridSizeFlagsNV, - pub performance_level: OpticalFlowPerformanceLevelNV, - pub flags: OpticalFlowSessionCreateFlagsNV, + pub p_next: *const c_void, + pub window_extent: Extent2D, + pub window_compare_mode: BlockMatchWindowCompareModeQCOM, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for OpticalFlowSessionCreateInfoNV<'_> {} -unsafe impl Sync for OpticalFlowSessionCreateInfoNV<'_> {} -impl ::core::default::Default for OpticalFlowSessionCreateInfoNV<'_> { +unsafe impl Send for SamplerBlockMatchWindowCreateInfoQCOM<'_> {} +unsafe impl Sync for SamplerBlockMatchWindowCreateInfoQCOM<'_> {} +impl ::core::default::Default for SamplerBlockMatchWindowCreateInfoQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - width: u32::default(), - height: u32::default(), - image_format: Format::default(), - flow_vector_format: Format::default(), - cost_format: Format::default(), - output_grid_size: OpticalFlowGridSizeFlagsNV::default(), - hint_grid_size: OpticalFlowGridSizeFlagsNV::default(), - performance_level: OpticalFlowPerformanceLevelNV::default(), - flags: OpticalFlowSessionCreateFlagsNV::default(), + p_next: ::core::ptr::null(), + window_extent: Extent2D::default(), + window_compare_mode: BlockMatchWindowCompareModeQCOM::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for OpticalFlowSessionCreateInfoNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_SESSION_CREATE_INFO_NV; +unsafe impl<'a> TaggedStructure<'a> for SamplerBlockMatchWindowCreateInfoQCOM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM; } -impl<'a> OpticalFlowSessionCreateInfoNV<'a> { - #[inline] - pub fn width(mut self, width: u32) -> Self { - self.width = width; - self - } - #[inline] - pub fn height(mut self, height: u32) -> Self { - self.height = height; - self - } - #[inline] - pub fn image_format(mut self, image_format: Format) -> Self { - self.image_format = image_format; - self - } - #[inline] - pub fn flow_vector_format(mut self, flow_vector_format: Format) -> Self { - self.flow_vector_format = flow_vector_format; - self - } - #[inline] - pub fn cost_format(mut self, cost_format: Format) -> Self { - self.cost_format = cost_format; - self - } - #[inline] - pub fn output_grid_size(mut self, output_grid_size: OpticalFlowGridSizeFlagsNV) -> Self { - self.output_grid_size = output_grid_size; - self - } - #[inline] - pub fn hint_grid_size(mut self, hint_grid_size: OpticalFlowGridSizeFlagsNV) -> Self { - self.hint_grid_size = hint_grid_size; - self - } +unsafe impl Extends> for SamplerBlockMatchWindowCreateInfoQCOM<'_> {} +impl<'a> SamplerBlockMatchWindowCreateInfoQCOM<'a> { #[inline] - pub fn performance_level(mut self, performance_level: OpticalFlowPerformanceLevelNV) -> Self { - self.performance_level = performance_level; + pub fn window_extent(mut self, window_extent: Extent2D) -> Self { + self.window_extent = window_extent; self } #[inline] - pub fn flags(mut self, flags: OpticalFlowSessionCreateFlagsNV) -> Self { - self.flags = flags; + pub fn window_compare_mode( + mut self, + window_compare_mode: BlockMatchWindowCompareModeQCOM, + ) -> Self { + self.window_compare_mode = window_compare_mode; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct OpticalFlowSessionCreatePrivateDataInfoNV<'a> { +pub struct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub id: u32, - pub size: u32, - pub p_private_data: *const c_void, + pub descriptor_pool_overallocation: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for OpticalFlowSessionCreatePrivateDataInfoNV<'_> {} -unsafe impl Sync for OpticalFlowSessionCreatePrivateDataInfoNV<'_> {} -impl ::core::default::Default for OpticalFlowSessionCreatePrivateDataInfoNV<'_> { +unsafe impl Send for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - id: u32::default(), - size: u32::default(), - p_private_data: ::core::ptr::null(), + descriptor_pool_overallocation: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for OpticalFlowSessionCreatePrivateDataInfoNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV; + StructureType::PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV; } -unsafe impl Extends> - for OpticalFlowSessionCreatePrivateDataInfoNV<'_> +unsafe impl Extends> + for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'_> { } -impl<'a> OpticalFlowSessionCreatePrivateDataInfoNV<'a> { - #[inline] - pub fn id(mut self, id: u32) -> Self { - self.id = id; - self - } - #[inline] - pub fn size(mut self, size: u32) -> Self { - self.size = size; - self - } +unsafe impl Extends> + for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'_> +{ +} +impl<'a> PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'a> { #[inline] - pub fn private_data(mut self, private_data: *const c_void) -> Self { - self.p_private_data = private_data; + pub fn descriptor_pool_overallocation(mut self, descriptor_pool_overallocation: bool) -> Self { + self.descriptor_pool_overallocation = descriptor_pool_overallocation.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct OpticalFlowExecuteInfoNV<'a> { +pub struct PhysicalDeviceLayeredDriverPropertiesMSFT<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub flags: OpticalFlowExecuteFlagsNV, - pub region_count: u32, - pub p_regions: *const Rect2D, + pub underlying_api: LayeredDriverUnderlyingApiMSFT, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for OpticalFlowExecuteInfoNV<'_> {} -unsafe impl Sync for OpticalFlowExecuteInfoNV<'_> {} -impl ::core::default::Default for OpticalFlowExecuteInfoNV<'_> { +unsafe impl Send for PhysicalDeviceLayeredDriverPropertiesMSFT<'_> {} +unsafe impl Sync for PhysicalDeviceLayeredDriverPropertiesMSFT<'_> {} +impl ::core::default::Default for PhysicalDeviceLayeredDriverPropertiesMSFT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - flags: OpticalFlowExecuteFlagsNV::default(), - region_count: u32::default(), - p_regions: ::core::ptr::null(), + underlying_api: LayeredDriverUnderlyingApiMSFT::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for OpticalFlowExecuteInfoNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_EXECUTE_INFO_NV; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceLayeredDriverPropertiesMSFT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT; } -impl<'a> OpticalFlowExecuteInfoNV<'a> { - #[inline] - pub fn flags(mut self, flags: OpticalFlowExecuteFlagsNV) -> Self { - self.flags = flags; - self - } +unsafe impl Extends> + for PhysicalDeviceLayeredDriverPropertiesMSFT<'_> +{ +} +impl<'a> PhysicalDeviceLayeredDriverPropertiesMSFT<'a> { #[inline] - pub fn regions(mut self, regions: &'a [Rect2D]) -> Self { - self.region_count = regions.len() as _; - self.p_regions = regions.as_ptr(); + pub fn underlying_api(mut self, underlying_api: LayeredDriverUnderlyingApiMSFT) -> Self { + self.underlying_api = underlying_api; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceFaultFeaturesEXT<'a> { +pub struct PhysicalDevicePerStageDescriptorSetFeaturesNV<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub device_fault: Bool32, - pub device_fault_vendor_binary: Bool32, + pub per_stage_descriptor_set: Bool32, + pub dynamic_pipeline_layout: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceFaultFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceFaultFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceFaultFeaturesEXT<'_> { +unsafe impl Send for PhysicalDevicePerStageDescriptorSetFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDevicePerStageDescriptorSetFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDevicePerStageDescriptorSetFeaturesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - device_fault: Bool32::default(), - device_fault_vendor_binary: Bool32::default(), + per_stage_descriptor_set: Bool32::default(), + dynamic_pipeline_layout: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFaultFeaturesEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FAULT_FEATURES_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePerStageDescriptorSetFeaturesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV; } -unsafe impl Extends> for PhysicalDeviceFaultFeaturesEXT<'_> {} -unsafe impl Extends> for PhysicalDeviceFaultFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceFaultFeaturesEXT<'a> { +unsafe impl Extends> + for PhysicalDevicePerStageDescriptorSetFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDevicePerStageDescriptorSetFeaturesNV<'_> {} +impl<'a> PhysicalDevicePerStageDescriptorSetFeaturesNV<'a> { #[inline] - pub fn device_fault(mut self, device_fault: bool) -> Self { - self.device_fault = device_fault.into(); + pub fn per_stage_descriptor_set(mut self, per_stage_descriptor_set: bool) -> Self { + self.per_stage_descriptor_set = per_stage_descriptor_set.into(); self } #[inline] - pub fn device_fault_vendor_binary(mut self, device_fault_vendor_binary: bool) -> Self { - self.device_fault_vendor_binary = device_fault_vendor_binary.into(); + pub fn dynamic_pipeline_layout(mut self, dynamic_pipeline_layout: bool) -> Self { + self.dynamic_pipeline_layout = dynamic_pipeline_layout.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone, Default)] -#[doc = ""] +#[derive(Copy, Clone)] +#[doc = ""] #[must_use] -pub struct DeviceFaultAddressInfoEXT { - pub address_type: DeviceFaultAddressTypeEXT, - pub reported_address: DeviceAddress, - pub address_precision: DeviceSize, +pub struct PhysicalDeviceExternalFormatResolveFeaturesANDROID<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub external_format_resolve: Bool32, + pub _marker: PhantomData<&'a ()>, } -impl DeviceFaultAddressInfoEXT { - #[inline] - pub fn address_type(mut self, address_type: DeviceFaultAddressTypeEXT) -> Self { - self.address_type = address_type; - self - } +unsafe impl Send for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'_> {} +unsafe impl Sync for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'_> {} +impl ::core::default::Default for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'_> { #[inline] - pub fn reported_address(mut self, reported_address: DeviceAddress) -> Self { - self.reported_address = reported_address; - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + external_format_resolve: Bool32::default(), + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID; +} +unsafe impl Extends> + for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'_> +{ +} +impl<'a> PhysicalDeviceExternalFormatResolveFeaturesANDROID<'a> { #[inline] - pub fn address_precision(mut self, address_precision: DeviceSize) -> Self { - self.address_precision = address_precision; + pub fn external_format_resolve(mut self, external_format_resolve: bool) -> Self { + self.external_format_resolve = external_format_resolve.into(); self } } #[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DeviceFaultVendorInfoEXT { - pub description: [c_char; MAX_DESCRIPTION_SIZE], - pub vendor_fault_code: u64, - pub vendor_fault_data: u64, -} -#[cfg(feature = "debug")] -impl fmt::Debug for DeviceFaultVendorInfoEXT { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("DeviceFaultVendorInfoEXT") - .field("description", &self.description_as_c_str()) - .field("vendor_fault_code", &self.vendor_fault_code) - .field("vendor_fault_data", &self.vendor_fault_data) - .finish() - } +pub struct PhysicalDeviceExternalFormatResolvePropertiesANDROID<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub null_color_attachment_with_external_format_resolve: Bool32, + pub external_format_resolve_chroma_offset_x: ChromaLocation, + pub external_format_resolve_chroma_offset_y: ChromaLocation, + pub _marker: PhantomData<&'a ()>, } -impl ::core::default::Default for DeviceFaultVendorInfoEXT { +unsafe impl Send for PhysicalDeviceExternalFormatResolvePropertiesANDROID<'_> {} +unsafe impl Sync for PhysicalDeviceExternalFormatResolvePropertiesANDROID<'_> {} +impl ::core::default::Default for PhysicalDeviceExternalFormatResolvePropertiesANDROID<'_> { #[inline] fn default() -> Self { Self { - description: unsafe { ::core::mem::zeroed() }, - vendor_fault_code: u64::default(), - vendor_fault_data: u64::default(), + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + null_color_attachment_with_external_format_resolve: Bool32::default(), + external_format_resolve_chroma_offset_x: ChromaLocation::default(), + external_format_resolve_chroma_offset_y: ChromaLocation::default(), + _marker: PhantomData, } } } -impl DeviceFaultVendorInfoEXT { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExternalFormatResolvePropertiesANDROID<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID; +} +unsafe impl Extends> + for PhysicalDeviceExternalFormatResolvePropertiesANDROID<'_> +{ +} +impl<'a> PhysicalDeviceExternalFormatResolvePropertiesANDROID<'a> { #[inline] - pub fn description( + pub fn null_color_attachment_with_external_format_resolve( mut self, - description: &CStr, - ) -> core::result::Result { - write_c_str_slice_with_nul(&mut self.description, description).map(|()| self) - } - #[inline] - pub fn description_as_c_str(&self) -> core::result::Result<&CStr, FromBytesUntilNulError> { - wrap_c_str_slice_until_nul(&self.description) + null_color_attachment_with_external_format_resolve: bool, + ) -> Self { + self.null_color_attachment_with_external_format_resolve = + null_color_attachment_with_external_format_resolve.into(); + self } #[inline] - pub fn vendor_fault_code(mut self, vendor_fault_code: u64) -> Self { - self.vendor_fault_code = vendor_fault_code; + pub fn external_format_resolve_chroma_offset_x( + mut self, + external_format_resolve_chroma_offset_x: ChromaLocation, + ) -> Self { + self.external_format_resolve_chroma_offset_x = external_format_resolve_chroma_offset_x; self } #[inline] - pub fn vendor_fault_data(mut self, vendor_fault_data: u64) -> Self { - self.vendor_fault_data = vendor_fault_data; + pub fn external_format_resolve_chroma_offset_y( + mut self, + external_format_resolve_chroma_offset_y: ChromaLocation, + ) -> Self { + self.external_format_resolve_chroma_offset_y = external_format_resolve_chroma_offset_y; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DeviceFaultCountsEXT<'a> { +pub struct AndroidHardwareBufferFormatResolvePropertiesANDROID<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub address_info_count: u32, - pub vendor_info_count: u32, - pub vendor_binary_size: DeviceSize, + pub color_attachment_format: Format, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for DeviceFaultCountsEXT<'_> {} -unsafe impl Sync for DeviceFaultCountsEXT<'_> {} -impl ::core::default::Default for DeviceFaultCountsEXT<'_> { +unsafe impl Send for AndroidHardwareBufferFormatResolvePropertiesANDROID<'_> {} +unsafe impl Sync for AndroidHardwareBufferFormatResolvePropertiesANDROID<'_> {} +impl ::core::default::Default for AndroidHardwareBufferFormatResolvePropertiesANDROID<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - address_info_count: u32::default(), - vendor_info_count: u32::default(), - vendor_binary_size: DeviceSize::default(), + color_attachment_format: Format::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for DeviceFaultCountsEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_FAULT_COUNTS_EXT; +unsafe impl<'a> TaggedStructure<'a> for AndroidHardwareBufferFormatResolvePropertiesANDROID<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID; } -impl<'a> DeviceFaultCountsEXT<'a> { - #[inline] - pub fn address_info_count(mut self, address_info_count: u32) -> Self { - self.address_info_count = address_info_count; - self - } - #[inline] - pub fn vendor_info_count(mut self, vendor_info_count: u32) -> Self { - self.vendor_info_count = vendor_info_count; - self - } +unsafe impl Extends> + for AndroidHardwareBufferFormatResolvePropertiesANDROID<'_> +{ +} +impl<'a> AndroidHardwareBufferFormatResolvePropertiesANDROID<'a> { #[inline] - pub fn vendor_binary_size(mut self, vendor_binary_size: DeviceSize) -> Self { - self.vendor_binary_size = vendor_binary_size; + pub fn color_attachment_format(mut self, color_attachment_format: Format) -> Self { + self.color_attachment_format = color_attachment_format; self } } #[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DeviceFaultInfoEXT<'a> { +pub struct LatencySleepModeInfoNV<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub description: [c_char; MAX_DESCRIPTION_SIZE], - pub p_address_infos: *mut DeviceFaultAddressInfoEXT, - pub p_vendor_infos: *mut DeviceFaultVendorInfoEXT, - pub p_vendor_binary_data: *mut c_void, + pub p_next: *const c_void, + pub low_latency_mode: Bool32, + pub low_latency_boost: Bool32, + pub minimum_interval_us: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for DeviceFaultInfoEXT<'_> {} -unsafe impl Sync for DeviceFaultInfoEXT<'_> {} -#[cfg(feature = "debug")] -impl fmt::Debug for DeviceFaultInfoEXT<'_> { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("DeviceFaultInfoEXT") - .field("s_type", &self.s_type) - .field("p_next", &self.p_next) - .field("description", &self.description_as_c_str()) - .field("p_address_infos", &self.p_address_infos) - .field("p_vendor_infos", &self.p_vendor_infos) - .field("p_vendor_binary_data", &self.p_vendor_binary_data) - .finish() - } -} -impl ::core::default::Default for DeviceFaultInfoEXT<'_> { +unsafe impl Send for LatencySleepModeInfoNV<'_> {} +unsafe impl Sync for LatencySleepModeInfoNV<'_> {} +impl ::core::default::Default for LatencySleepModeInfoNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - description: unsafe { ::core::mem::zeroed() }, - p_address_infos: ::core::ptr::null_mut(), - p_vendor_infos: ::core::ptr::null_mut(), - p_vendor_binary_data: ::core::ptr::null_mut(), + p_next: ::core::ptr::null(), + low_latency_mode: Bool32::default(), + low_latency_boost: Bool32::default(), + minimum_interval_us: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for DeviceFaultInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_FAULT_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for LatencySleepModeInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_SLEEP_MODE_INFO_NV; } -impl<'a> DeviceFaultInfoEXT<'a> { - #[inline] - pub fn description( - mut self, - description: &CStr, - ) -> core::result::Result { - write_c_str_slice_with_nul(&mut self.description, description).map(|()| self) - } - #[inline] - pub fn description_as_c_str(&self) -> core::result::Result<&CStr, FromBytesUntilNulError> { - wrap_c_str_slice_until_nul(&self.description) - } +impl<'a> LatencySleepModeInfoNV<'a> { #[inline] - pub fn address_infos(mut self, address_infos: &'a mut DeviceFaultAddressInfoEXT) -> Self { - self.p_address_infos = address_infos; + pub fn low_latency_mode(mut self, low_latency_mode: bool) -> Self { + self.low_latency_mode = low_latency_mode.into(); self } #[inline] - pub fn vendor_infos(mut self, vendor_infos: &'a mut DeviceFaultVendorInfoEXT) -> Self { - self.p_vendor_infos = vendor_infos; + pub fn low_latency_boost(mut self, low_latency_boost: bool) -> Self { + self.low_latency_boost = low_latency_boost.into(); self } #[inline] - pub fn vendor_binary_data(mut self, vendor_binary_data: *mut c_void) -> Self { - self.p_vendor_binary_data = vendor_binary_data; + pub fn minimum_interval_us(mut self, minimum_interval_us: u32) -> Self { + self.minimum_interval_us = minimum_interval_us; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DeviceFaultVendorBinaryHeaderVersionOneEXT { - pub header_size: u32, - pub header_version: DeviceFaultVendorBinaryHeaderVersionEXT, - pub vendor_id: u32, - pub device_id: u32, - pub driver_version: u32, - pub pipeline_cache_uuid: [u8; UUID_SIZE], - pub application_name_offset: u32, - pub application_version: u32, - pub engine_name_offset: u32, - pub engine_version: u32, - pub api_version: u32, +pub struct LatencySleepInfoNV<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub signal_semaphore: Semaphore, + pub value: u64, + pub _marker: PhantomData<&'a ()>, } -impl ::core::default::Default for DeviceFaultVendorBinaryHeaderVersionOneEXT { +unsafe impl Send for LatencySleepInfoNV<'_> {} +unsafe impl Sync for LatencySleepInfoNV<'_> {} +impl ::core::default::Default for LatencySleepInfoNV<'_> { #[inline] fn default() -> Self { Self { - header_size: u32::default(), - header_version: DeviceFaultVendorBinaryHeaderVersionEXT::default(), - vendor_id: u32::default(), - device_id: u32::default(), - driver_version: u32::default(), - pipeline_cache_uuid: unsafe { ::core::mem::zeroed() }, - application_name_offset: u32::default(), - application_version: u32::default(), - engine_name_offset: u32::default(), - engine_version: u32::default(), - api_version: u32::default(), + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + signal_semaphore: Semaphore::default(), + value: u64::default(), + _marker: PhantomData, } } } -impl DeviceFaultVendorBinaryHeaderVersionOneEXT { - #[inline] - pub fn header_size(mut self, header_size: u32) -> Self { - self.header_size = header_size; - self - } - #[inline] - pub fn header_version( - mut self, - header_version: DeviceFaultVendorBinaryHeaderVersionEXT, - ) -> Self { - self.header_version = header_version; - self - } - #[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 driver_version(mut self, driver_version: u32) -> Self { - self.driver_version = driver_version; - self - } - #[inline] - pub fn pipeline_cache_uuid(mut self, pipeline_cache_uuid: [u8; UUID_SIZE]) -> Self { - self.pipeline_cache_uuid = pipeline_cache_uuid; - self - } - #[inline] - pub fn application_name_offset(mut self, application_name_offset: u32) -> Self { - self.application_name_offset = application_name_offset; - self - } - #[inline] - pub fn application_version(mut self, application_version: u32) -> Self { - self.application_version = application_version; - self - } - #[inline] - pub fn engine_name_offset(mut self, engine_name_offset: u32) -> Self { - self.engine_name_offset = engine_name_offset; - self - } +unsafe impl<'a> TaggedStructure<'a> for LatencySleepInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_SLEEP_INFO_NV; +} +impl<'a> LatencySleepInfoNV<'a> { #[inline] - pub fn engine_version(mut self, engine_version: u32) -> Self { - self.engine_version = engine_version; + pub fn signal_semaphore(mut self, signal_semaphore: Semaphore) -> Self { + self.signal_semaphore = signal_semaphore; self } #[inline] - pub fn api_version(mut self, api_version: u32) -> Self { - self.api_version = api_version; + pub fn value(mut self, value: u64) -> Self { + self.value = value; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'a> { +pub struct SetLatencyMarkerInfoNV<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub pipeline_library_group_handles: Bool32, + pub p_next: *const c_void, + pub present_id: u64, + pub marker: LatencyMarkerNV, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'_> { +unsafe impl Send for SetLatencyMarkerInfoNV<'_> {} +unsafe impl Sync for SetLatencyMarkerInfoNV<'_> {} +impl ::core::default::Default for SetLatencyMarkerInfoNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - pipeline_library_group_handles: Bool32::default(), + p_next: ::core::ptr::null(), + present_id: u64::default(), + marker: LatencyMarkerNV::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT; -} -unsafe impl Extends> - for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'_> -{ -} -unsafe impl Extends> - for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for SetLatencyMarkerInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SET_LATENCY_MARKER_INFO_NV; } -impl<'a> PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'a> { +impl<'a> SetLatencyMarkerInfoNV<'a> { #[inline] - pub fn pipeline_library_group_handles(mut self, pipeline_library_group_handles: bool) -> Self { - self.pipeline_library_group_handles = pipeline_library_group_handles.into(); + pub fn present_id(mut self, present_id: u64) -> Self { + self.present_id = present_id; + self + } + #[inline] + pub fn marker(mut self, marker: LatencyMarkerNV) -> Self { + self.marker = marker; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DepthBiasInfoEXT<'a> { +pub struct GetLatencyMarkerInfoNV<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub depth_bias_constant_factor: f32, - pub depth_bias_clamp: f32, - pub depth_bias_slope_factor: f32, + pub timing_count: u32, + pub p_timings: *mut LatencyTimingsFrameReportNV<'a>, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for DepthBiasInfoEXT<'_> {} -unsafe impl Sync for DepthBiasInfoEXT<'_> {} -impl ::core::default::Default for DepthBiasInfoEXT<'_> { +unsafe impl Send for GetLatencyMarkerInfoNV<'_> {} +unsafe impl Sync for GetLatencyMarkerInfoNV<'_> {} +impl ::core::default::Default for GetLatencyMarkerInfoNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - depth_bias_constant_factor: f32::default(), - depth_bias_clamp: f32::default(), - depth_bias_slope_factor: f32::default(), + timing_count: u32::default(), + p_timings: ::core::ptr::null_mut(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for DepthBiasInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::DEPTH_BIAS_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for GetLatencyMarkerInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::GET_LATENCY_MARKER_INFO_NV; } -impl<'a> DepthBiasInfoEXT<'a> { - #[inline] - pub fn depth_bias_constant_factor(mut self, depth_bias_constant_factor: f32) -> Self { - self.depth_bias_constant_factor = depth_bias_constant_factor; - self - } - #[inline] - pub fn depth_bias_clamp(mut self, depth_bias_clamp: f32) -> Self { - self.depth_bias_clamp = depth_bias_clamp; - self - } +impl<'a> GetLatencyMarkerInfoNV<'a> { #[inline] - pub fn depth_bias_slope_factor(mut self, depth_bias_slope_factor: f32) -> Self { - self.depth_bias_slope_factor = depth_bias_slope_factor; + pub fn timings(mut self, timings: &'a mut [LatencyTimingsFrameReportNV<'_>]) -> Self { + self.timing_count = timings.len() as _; + self.p_timings = timings.as_mut_ptr().cast(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DepthBiasRepresentationInfoEXT<'a> { +pub struct LatencyTimingsFrameReportNV<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub depth_bias_representation: DepthBiasRepresentationEXT, - pub depth_bias_exact: Bool32, + pub present_id: u64, + pub input_sample_time_us: u64, + pub sim_start_time_us: u64, + pub sim_end_time_us: u64, + pub render_submit_start_time_us: u64, + pub render_submit_end_time_us: u64, + pub present_start_time_us: u64, + pub present_end_time_us: u64, + pub driver_start_time_us: u64, + pub driver_end_time_us: u64, + pub os_render_queue_start_time_us: u64, + pub os_render_queue_end_time_us: u64, + pub gpu_render_start_time_us: u64, + pub gpu_render_end_time_us: u64, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for DepthBiasRepresentationInfoEXT<'_> {} -unsafe impl Sync for DepthBiasRepresentationInfoEXT<'_> {} -impl ::core::default::Default for DepthBiasRepresentationInfoEXT<'_> { +unsafe impl Send for LatencyTimingsFrameReportNV<'_> {} +unsafe impl Sync for LatencyTimingsFrameReportNV<'_> {} +impl ::core::default::Default for LatencyTimingsFrameReportNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - depth_bias_representation: DepthBiasRepresentationEXT::default(), - depth_bias_exact: Bool32::default(), + present_id: u64::default(), + input_sample_time_us: u64::default(), + sim_start_time_us: u64::default(), + sim_end_time_us: u64::default(), + render_submit_start_time_us: u64::default(), + render_submit_end_time_us: u64::default(), + present_start_time_us: u64::default(), + present_end_time_us: u64::default(), + driver_start_time_us: u64::default(), + driver_end_time_us: u64::default(), + os_render_queue_start_time_us: u64::default(), + os_render_queue_end_time_us: u64::default(), + gpu_render_start_time_us: u64::default(), + gpu_render_end_time_us: u64::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for DepthBiasRepresentationInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::DEPTH_BIAS_REPRESENTATION_INFO_EXT; -} -unsafe impl Extends> for DepthBiasRepresentationInfoEXT<'_> {} -unsafe impl Extends> - for DepthBiasRepresentationInfoEXT<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for LatencyTimingsFrameReportNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_TIMINGS_FRAME_REPORT_NV; } -impl<'a> DepthBiasRepresentationInfoEXT<'a> { +impl<'a> LatencyTimingsFrameReportNV<'a> { #[inline] - pub fn depth_bias_representation( - mut self, - depth_bias_representation: DepthBiasRepresentationEXT, - ) -> Self { - self.depth_bias_representation = depth_bias_representation; + pub fn present_id(mut self, present_id: u64) -> Self { + self.present_id = present_id; self } #[inline] - pub fn depth_bias_exact(mut self, depth_bias_exact: bool) -> Self { - self.depth_bias_exact = depth_bias_exact.into(); + pub fn input_sample_time_us(mut self, input_sample_time_us: u64) -> Self { + self.input_sample_time_us = input_sample_time_us; self } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone, Default)] -#[doc = ""] -#[must_use] -pub struct DecompressMemoryRegionNV { - pub src_address: DeviceAddress, - pub dst_address: DeviceAddress, - pub compressed_size: DeviceSize, - pub decompressed_size: DeviceSize, - pub decompression_method: MemoryDecompressionMethodFlagsNV, -} -impl DecompressMemoryRegionNV { #[inline] - pub fn src_address(mut self, src_address: DeviceAddress) -> Self { - self.src_address = src_address; + pub fn sim_start_time_us(mut self, sim_start_time_us: u64) -> Self { + self.sim_start_time_us = sim_start_time_us; self } #[inline] - pub fn dst_address(mut self, dst_address: DeviceAddress) -> Self { - self.dst_address = dst_address; + pub fn sim_end_time_us(mut self, sim_end_time_us: u64) -> Self { + self.sim_end_time_us = sim_end_time_us; self } #[inline] - pub fn compressed_size(mut self, compressed_size: DeviceSize) -> Self { - self.compressed_size = compressed_size; + pub fn render_submit_start_time_us(mut self, render_submit_start_time_us: u64) -> Self { + self.render_submit_start_time_us = render_submit_start_time_us; self } #[inline] - pub fn decompressed_size(mut self, decompressed_size: DeviceSize) -> Self { - self.decompressed_size = decompressed_size; + pub fn render_submit_end_time_us(mut self, render_submit_end_time_us: u64) -> Self { + self.render_submit_end_time_us = render_submit_end_time_us; self } #[inline] - pub fn decompression_method( - mut self, - decompression_method: MemoryDecompressionMethodFlagsNV, - ) -> Self { - self.decompression_method = decompression_method; + pub fn present_start_time_us(mut self, present_start_time_us: u64) -> Self { + self.present_start_time_us = present_start_time_us; + self + } + #[inline] + pub fn present_end_time_us(mut self, present_end_time_us: u64) -> Self { + self.present_end_time_us = present_end_time_us; + self + } + #[inline] + pub fn driver_start_time_us(mut self, driver_start_time_us: u64) -> Self { + self.driver_start_time_us = driver_start_time_us; + self + } + #[inline] + pub fn driver_end_time_us(mut self, driver_end_time_us: u64) -> Self { + self.driver_end_time_us = driver_end_time_us; + self + } + #[inline] + pub fn os_render_queue_start_time_us(mut self, os_render_queue_start_time_us: u64) -> Self { + self.os_render_queue_start_time_us = os_render_queue_start_time_us; + self + } + #[inline] + pub fn os_render_queue_end_time_us(mut self, os_render_queue_end_time_us: u64) -> Self { + self.os_render_queue_end_time_us = os_render_queue_end_time_us; + self + } + #[inline] + pub fn gpu_render_start_time_us(mut self, gpu_render_start_time_us: u64) -> Self { + self.gpu_render_start_time_us = gpu_render_start_time_us; + self + } + #[inline] + pub fn gpu_render_end_time_us(mut self, gpu_render_end_time_us: u64) -> Self { + self.gpu_render_end_time_us = gpu_render_end_time_us; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'a> { +pub struct OutOfBandQueueTypeInfoNV<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub shader_core_mask: u64, - pub shader_core_count: u32, - pub shader_warps_per_core: u32, + pub p_next: *const c_void, + pub queue_type: OutOfBandQueueTypeNV, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'_> {} -unsafe impl Sync for PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'_> { +unsafe impl Send for OutOfBandQueueTypeInfoNV<'_> {} +unsafe impl Sync for OutOfBandQueueTypeInfoNV<'_> {} +impl ::core::default::Default for OutOfBandQueueTypeInfoNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - shader_core_mask: u64::default(), - shader_core_count: u32::default(), - shader_warps_per_core: u32::default(), + p_next: ::core::ptr::null(), + queue_type: OutOfBandQueueTypeNV::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM; -} -unsafe impl Extends> - for PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for OutOfBandQueueTypeInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::OUT_OF_BAND_QUEUE_TYPE_INFO_NV; } -impl<'a> PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'a> { - #[inline] - pub fn shader_core_mask(mut self, shader_core_mask: u64) -> Self { - self.shader_core_mask = shader_core_mask; - self - } - #[inline] - pub fn shader_core_count(mut self, shader_core_count: u32) -> Self { - self.shader_core_count = shader_core_count; - self - } +impl<'a> OutOfBandQueueTypeInfoNV<'a> { #[inline] - pub fn shader_warps_per_core(mut self, shader_warps_per_core: u32) -> Self { - self.shader_warps_per_core = shader_warps_per_core; + pub fn queue_type(mut self, queue_type: OutOfBandQueueTypeNV) -> Self { + self.queue_type = queue_type; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a> { +pub struct LatencySubmissionPresentIdNV<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub shader_core_builtins: Bool32, + pub p_next: *const c_void, + pub present_id: u64, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'_> {} -unsafe impl Sync for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'_> { +unsafe impl Send for LatencySubmissionPresentIdNV<'_> {} +unsafe impl Sync for LatencySubmissionPresentIdNV<'_> {} +impl ::core::default::Default for LatencySubmissionPresentIdNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - shader_core_builtins: Bool32::default(), + p_next: ::core::ptr::null(), + present_id: u64::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM; -} -unsafe impl Extends> - for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for LatencySubmissionPresentIdNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_SUBMISSION_PRESENT_ID_NV; } -unsafe impl Extends> for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'_> {} -impl<'a> PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a> { +unsafe impl Extends> for LatencySubmissionPresentIdNV<'_> {} +unsafe impl Extends> for LatencySubmissionPresentIdNV<'_> {} +impl<'a> LatencySubmissionPresentIdNV<'a> { #[inline] - pub fn shader_core_builtins(mut self, shader_core_builtins: bool) -> Self { - self.shader_core_builtins = shader_core_builtins.into(); + pub fn present_id(mut self, present_id: u64) -> Self { + self.present_id = present_id; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct FrameBoundaryEXT<'a> { +pub struct SwapchainLatencyCreateInfoNV<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub flags: FrameBoundaryFlagsEXT, - pub frame_id: u64, - pub image_count: u32, - pub p_images: *const Image, - pub buffer_count: u32, - pub p_buffers: *const Buffer, - pub tag_name: u64, - pub tag_size: usize, - pub p_tag: *const c_void, + pub latency_mode_enable: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for FrameBoundaryEXT<'_> {} -unsafe impl Sync for FrameBoundaryEXT<'_> {} -impl ::core::default::Default for FrameBoundaryEXT<'_> { +unsafe impl Send for SwapchainLatencyCreateInfoNV<'_> {} +unsafe impl Sync for SwapchainLatencyCreateInfoNV<'_> {} +impl ::core::default::Default for SwapchainLatencyCreateInfoNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - flags: FrameBoundaryFlagsEXT::default(), - frame_id: u64::default(), - image_count: u32::default(), - p_images: ::core::ptr::null(), - buffer_count: u32::default(), - p_buffers: ::core::ptr::null(), - tag_name: u64::default(), - tag_size: usize::default(), - p_tag: ::core::ptr::null(), + latency_mode_enable: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for FrameBoundaryEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::FRAME_BOUNDARY_EXT; +unsafe impl<'a> TaggedStructure<'a> for SwapchainLatencyCreateInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_LATENCY_CREATE_INFO_NV; } -unsafe impl Extends> for FrameBoundaryEXT<'_> {} -unsafe impl Extends> for FrameBoundaryEXT<'_> {} -unsafe impl Extends> for FrameBoundaryEXT<'_> {} -unsafe impl Extends> for FrameBoundaryEXT<'_> {} -impl<'a> FrameBoundaryEXT<'a> { - #[inline] - pub fn flags(mut self, flags: FrameBoundaryFlagsEXT) -> Self { - self.flags = flags; - self - } - #[inline] - pub fn frame_id(mut self, frame_id: u64) -> Self { - self.frame_id = frame_id; - self - } - #[inline] - pub fn images(mut self, images: &'a [Image]) -> Self { - self.image_count = images.len() as _; - self.p_images = images.as_ptr(); - self - } +unsafe impl Extends> for SwapchainLatencyCreateInfoNV<'_> {} +impl<'a> SwapchainLatencyCreateInfoNV<'a> { #[inline] - pub fn buffers(mut self, buffers: &'a [Buffer]) -> Self { - self.buffer_count = buffers.len() as _; - self.p_buffers = buffers.as_ptr(); + pub fn latency_mode_enable(mut self, latency_mode_enable: bool) -> Self { + self.latency_mode_enable = latency_mode_enable.into(); self } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct LatencySurfaceCapabilitiesNV<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub present_mode_count: u32, + pub p_present_modes: *mut PresentModeKHR, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for LatencySurfaceCapabilitiesNV<'_> {} +unsafe impl Sync for LatencySurfaceCapabilitiesNV<'_> {} +impl ::core::default::Default for LatencySurfaceCapabilitiesNV<'_> { #[inline] - pub fn tag_name(mut self, tag_name: u64) -> Self { - self.tag_name = tag_name; - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + present_mode_count: u32::default(), + p_present_modes: ::core::ptr::null_mut(), + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for LatencySurfaceCapabilitiesNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_SURFACE_CAPABILITIES_NV; +} +unsafe impl Extends> for LatencySurfaceCapabilitiesNV<'_> {} +impl<'a> LatencySurfaceCapabilitiesNV<'a> { #[inline] - pub fn tag(mut self, tag: &'a [u8]) -> Self { - self.tag_size = tag.len(); - self.p_tag = tag.as_ptr().cast(); + pub fn present_modes(mut self, present_modes: &'a mut [PresentModeKHR]) -> Self { + self.present_mode_count = present_modes.len() as _; + self.p_present_modes = present_modes.as_mut_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceFrameBoundaryFeaturesEXT<'a> { +pub struct PhysicalDeviceCudaKernelLaunchFeaturesNV<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub frame_boundary: Bool32, + pub cuda_kernel_launch_features: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceFrameBoundaryFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceFrameBoundaryFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceFrameBoundaryFeaturesEXT<'_> { +unsafe impl Send for PhysicalDeviceCudaKernelLaunchFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDeviceCudaKernelLaunchFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceCudaKernelLaunchFeaturesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - frame_boundary: Bool32::default(), + cuda_kernel_launch_features: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFrameBoundaryFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCudaKernelLaunchFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT; + StructureType::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV; } -unsafe impl Extends> for PhysicalDeviceFrameBoundaryFeaturesEXT<'_> {} -unsafe impl Extends> for PhysicalDeviceFrameBoundaryFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceFrameBoundaryFeaturesEXT<'a> { +unsafe impl Extends> for PhysicalDeviceCudaKernelLaunchFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceCudaKernelLaunchFeaturesNV<'_> {} +impl<'a> PhysicalDeviceCudaKernelLaunchFeaturesNV<'a> { #[inline] - pub fn frame_boundary(mut self, frame_boundary: bool) -> Self { - self.frame_boundary = frame_boundary.into(); + pub fn cuda_kernel_launch_features(mut self, cuda_kernel_launch_features: bool) -> Self { + self.cuda_kernel_launch_features = cuda_kernel_launch_features.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'a> { +pub struct PhysicalDeviceCudaKernelLaunchPropertiesNV<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub dynamic_rendering_unused_attachments: Bool32, + pub compute_capability_minor: u32, + pub compute_capability_major: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'_> { +unsafe impl Send for PhysicalDeviceCudaKernelLaunchPropertiesNV<'_> {} +unsafe impl Sync for PhysicalDeviceCudaKernelLaunchPropertiesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceCudaKernelLaunchPropertiesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - dynamic_rendering_unused_attachments: Bool32::default(), + compute_capability_minor: u32::default(), + compute_capability_major: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> - for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'a> -{ +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCudaKernelLaunchPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT; -} -unsafe impl Extends> - for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'_> -{ + StructureType::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV; } -unsafe impl Extends> - for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'_> +unsafe impl Extends> + for PhysicalDeviceCudaKernelLaunchPropertiesNV<'_> { } -impl<'a> PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'a> { +impl<'a> PhysicalDeviceCudaKernelLaunchPropertiesNV<'a> { #[inline] - pub fn dynamic_rendering_unused_attachments( - mut self, - dynamic_rendering_unused_attachments: bool, - ) -> Self { - self.dynamic_rendering_unused_attachments = dynamic_rendering_unused_attachments.into(); + pub fn compute_capability_minor(mut self, compute_capability_minor: u32) -> Self { + self.compute_capability_minor = compute_capability_minor; + self + } + #[inline] + pub fn compute_capability_major(mut self, compute_capability_major: u32) -> Self { + self.compute_capability_major = compute_capability_major; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct SurfacePresentModeEXT<'a> { +pub struct DeviceQueueShaderCoreControlCreateInfoARM<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub present_mode: PresentModeKHR, + pub shader_core_count: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for SurfacePresentModeEXT<'_> {} -unsafe impl Sync for SurfacePresentModeEXT<'_> {} -impl ::core::default::Default for SurfacePresentModeEXT<'_> { +unsafe impl Send for DeviceQueueShaderCoreControlCreateInfoARM<'_> {} +unsafe impl Sync for DeviceQueueShaderCoreControlCreateInfoARM<'_> {} +impl ::core::default::Default for DeviceQueueShaderCoreControlCreateInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - present_mode: PresentModeKHR::default(), + shader_core_count: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for SurfacePresentModeEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_PRESENT_MODE_EXT; +unsafe impl<'a> TaggedStructure<'a> for DeviceQueueShaderCoreControlCreateInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM; } -unsafe impl Extends> for SurfacePresentModeEXT<'_> {} -impl<'a> SurfacePresentModeEXT<'a> { +unsafe impl Extends> for DeviceQueueShaderCoreControlCreateInfoARM<'_> {} +unsafe impl Extends> for DeviceQueueShaderCoreControlCreateInfoARM<'_> {} +impl<'a> DeviceQueueShaderCoreControlCreateInfoARM<'a> { #[inline] - pub fn present_mode(mut self, present_mode: PresentModeKHR) -> Self { - self.present_mode = present_mode; + pub fn shader_core_count(mut self, shader_core_count: u32) -> Self { + self.shader_core_count = shader_core_count; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct SurfacePresentScalingCapabilitiesEXT<'a> { +pub struct PhysicalDeviceSchedulingControlsFeaturesARM<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub supported_present_scaling: PresentScalingFlagsEXT, - pub supported_present_gravity_x: PresentGravityFlagsEXT, - pub supported_present_gravity_y: PresentGravityFlagsEXT, - pub min_scaled_image_extent: Extent2D, - pub max_scaled_image_extent: Extent2D, + pub scheduling_controls: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for SurfacePresentScalingCapabilitiesEXT<'_> {} -unsafe impl Sync for SurfacePresentScalingCapabilitiesEXT<'_> {} -impl ::core::default::Default for SurfacePresentScalingCapabilitiesEXT<'_> { +unsafe impl Send for PhysicalDeviceSchedulingControlsFeaturesARM<'_> {} +unsafe impl Sync for PhysicalDeviceSchedulingControlsFeaturesARM<'_> {} +impl ::core::default::Default for PhysicalDeviceSchedulingControlsFeaturesARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - supported_present_scaling: PresentScalingFlagsEXT::default(), - supported_present_gravity_x: PresentGravityFlagsEXT::default(), - supported_present_gravity_y: PresentGravityFlagsEXT::default(), - min_scaled_image_extent: Extent2D::default(), - max_scaled_image_extent: Extent2D::default(), + scheduling_controls: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for SurfacePresentScalingCapabilitiesEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_PRESENT_SCALING_CAPABILITIES_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSchedulingControlsFeaturesARM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM; } -unsafe impl Extends> for SurfacePresentScalingCapabilitiesEXT<'_> {} -impl<'a> SurfacePresentScalingCapabilitiesEXT<'a> { - #[inline] - pub fn supported_present_scaling( - mut self, - supported_present_scaling: PresentScalingFlagsEXT, - ) -> Self { - self.supported_present_scaling = supported_present_scaling; - self - } - #[inline] - pub fn supported_present_gravity_x( - mut self, - supported_present_gravity_x: PresentGravityFlagsEXT, - ) -> Self { - self.supported_present_gravity_x = supported_present_gravity_x; - self - } - #[inline] - pub fn supported_present_gravity_y( - mut self, - supported_present_gravity_y: PresentGravityFlagsEXT, - ) -> Self { - self.supported_present_gravity_y = supported_present_gravity_y; - self - } - #[inline] - pub fn min_scaled_image_extent(mut self, min_scaled_image_extent: Extent2D) -> Self { - self.min_scaled_image_extent = min_scaled_image_extent; - self - } +unsafe impl Extends> + for PhysicalDeviceSchedulingControlsFeaturesARM<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceSchedulingControlsFeaturesARM<'_> {} +impl<'a> PhysicalDeviceSchedulingControlsFeaturesARM<'a> { #[inline] - pub fn max_scaled_image_extent(mut self, max_scaled_image_extent: Extent2D) -> Self { - self.max_scaled_image_extent = max_scaled_image_extent; + pub fn scheduling_controls(mut self, scheduling_controls: bool) -> Self { + self.scheduling_controls = scheduling_controls.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct SurfacePresentModeCompatibilityEXT<'a> { +pub struct PhysicalDeviceSchedulingControlsPropertiesARM<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub present_mode_count: u32, - pub p_present_modes: *mut PresentModeKHR, + pub scheduling_controls_flags: PhysicalDeviceSchedulingControlsFlagsARM, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for SurfacePresentModeCompatibilityEXT<'_> {} -unsafe impl Sync for SurfacePresentModeCompatibilityEXT<'_> {} -impl ::core::default::Default for SurfacePresentModeCompatibilityEXT<'_> { +unsafe impl Send for PhysicalDeviceSchedulingControlsPropertiesARM<'_> {} +unsafe impl Sync for PhysicalDeviceSchedulingControlsPropertiesARM<'_> {} +impl ::core::default::Default for PhysicalDeviceSchedulingControlsPropertiesARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - present_mode_count: u32::default(), - p_present_modes: ::core::ptr::null_mut(), + scheduling_controls_flags: PhysicalDeviceSchedulingControlsFlagsARM::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for SurfacePresentModeCompatibilityEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_PRESENT_MODE_COMPATIBILITY_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSchedulingControlsPropertiesARM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM; +} +unsafe impl Extends> + for PhysicalDeviceSchedulingControlsPropertiesARM<'_> +{ } -unsafe impl Extends> for SurfacePresentModeCompatibilityEXT<'_> {} -impl<'a> SurfacePresentModeCompatibilityEXT<'a> { +impl<'a> PhysicalDeviceSchedulingControlsPropertiesARM<'a> { #[inline] - pub fn present_modes(mut self, present_modes: &'a mut [PresentModeKHR]) -> Self { - self.present_mode_count = present_modes.len() as _; - self.p_present_modes = present_modes.as_mut_ptr(); + pub fn scheduling_controls_flags( + mut self, + scheduling_controls_flags: PhysicalDeviceSchedulingControlsFlagsARM, + ) -> Self { + self.scheduling_controls_flags = scheduling_controls_flags; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'a> { +pub struct PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub swapchain_maintenance1: Bool32, + pub relaxed_line_rasterization: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'_> { +unsafe impl Send for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'_> {} +unsafe impl Sync for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'_> {} +impl ::core::default::Default for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - swapchain_maintenance1: Bool32::default(), + relaxed_line_rasterization: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT; + StructureType::PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG; } unsafe impl Extends> - for PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'_> + for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'_> { } -unsafe impl Extends> for PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'_> {} -impl<'a> PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'a> { +impl<'a> PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'a> { #[inline] - pub fn swapchain_maintenance1(mut self, swapchain_maintenance1: bool) -> Self { - self.swapchain_maintenance1 = swapchain_maintenance1.into(); + pub fn relaxed_line_rasterization(mut self, relaxed_line_rasterization: bool) -> Self { + self.relaxed_line_rasterization = relaxed_line_rasterization.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct SwapchainPresentFenceInfoEXT<'a> { +pub struct PhysicalDeviceRenderPassStripedFeaturesARM<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub swapchain_count: u32, - pub p_fences: *const Fence, + pub p_next: *mut c_void, + pub render_pass_striped: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for SwapchainPresentFenceInfoEXT<'_> {} -unsafe impl Sync for SwapchainPresentFenceInfoEXT<'_> {} -impl ::core::default::Default for SwapchainPresentFenceInfoEXT<'_> { +unsafe impl Send for PhysicalDeviceRenderPassStripedFeaturesARM<'_> {} +unsafe impl Sync for PhysicalDeviceRenderPassStripedFeaturesARM<'_> {} +impl ::core::default::Default for PhysicalDeviceRenderPassStripedFeaturesARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - swapchain_count: u32::default(), - p_fences: ::core::ptr::null(), + p_next: ::core::ptr::null_mut(), + render_pass_striped: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for SwapchainPresentFenceInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_FENCE_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRenderPassStripedFeaturesARM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM; +} +unsafe impl Extends> + for PhysicalDeviceRenderPassStripedFeaturesARM<'_> +{ } -unsafe impl Extends> for SwapchainPresentFenceInfoEXT<'_> {} -impl<'a> SwapchainPresentFenceInfoEXT<'a> { +unsafe impl Extends> for PhysicalDeviceRenderPassStripedFeaturesARM<'_> {} +impl<'a> PhysicalDeviceRenderPassStripedFeaturesARM<'a> { #[inline] - pub fn fences(mut self, fences: &'a [Fence]) -> Self { - self.swapchain_count = fences.len() as _; - self.p_fences = fences.as_ptr(); + pub fn render_pass_striped(mut self, render_pass_striped: bool) -> Self { + self.render_pass_striped = render_pass_striped.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct SwapchainPresentModesCreateInfoEXT<'a> { +pub struct PhysicalDeviceRenderPassStripedPropertiesARM<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub present_mode_count: u32, - pub p_present_modes: *const PresentModeKHR, + pub p_next: *mut c_void, + pub render_pass_stripe_granularity: Extent2D, + pub max_render_pass_stripes: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for SwapchainPresentModesCreateInfoEXT<'_> {} -unsafe impl Sync for SwapchainPresentModesCreateInfoEXT<'_> {} -impl ::core::default::Default for SwapchainPresentModesCreateInfoEXT<'_> { +unsafe impl Send for PhysicalDeviceRenderPassStripedPropertiesARM<'_> {} +unsafe impl Sync for PhysicalDeviceRenderPassStripedPropertiesARM<'_> {} +impl ::core::default::Default for PhysicalDeviceRenderPassStripedPropertiesARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - present_mode_count: u32::default(), - p_present_modes: ::core::ptr::null(), + p_next: ::core::ptr::null_mut(), + render_pass_stripe_granularity: Extent2D::default(), + max_render_pass_stripes: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for SwapchainPresentModesCreateInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRenderPassStripedPropertiesARM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM; +} +unsafe impl Extends> + for PhysicalDeviceRenderPassStripedPropertiesARM<'_> +{ } -unsafe impl Extends> for SwapchainPresentModesCreateInfoEXT<'_> {} -impl<'a> SwapchainPresentModesCreateInfoEXT<'a> { +impl<'a> PhysicalDeviceRenderPassStripedPropertiesARM<'a> { #[inline] - pub fn present_modes(mut self, present_modes: &'a [PresentModeKHR]) -> Self { - self.present_mode_count = present_modes.len() as _; - self.p_present_modes = present_modes.as_ptr(); + pub fn render_pass_stripe_granularity( + mut self, + render_pass_stripe_granularity: Extent2D, + ) -> Self { + self.render_pass_stripe_granularity = render_pass_stripe_granularity; + self + } + #[inline] + pub fn max_render_pass_stripes(mut self, max_render_pass_stripes: u32) -> Self { + self.max_render_pass_stripes = max_render_pass_stripes; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct SwapchainPresentModeInfoEXT<'a> { +pub struct RenderPassStripeInfoARM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub swapchain_count: u32, - pub p_present_modes: *const PresentModeKHR, + pub stripe_area: Rect2D, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for SwapchainPresentModeInfoEXT<'_> {} -unsafe impl Sync for SwapchainPresentModeInfoEXT<'_> {} -impl ::core::default::Default for SwapchainPresentModeInfoEXT<'_> { +unsafe impl Send for RenderPassStripeInfoARM<'_> {} +unsafe impl Sync for RenderPassStripeInfoARM<'_> {} +impl ::core::default::Default for RenderPassStripeInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - swapchain_count: u32::default(), - p_present_modes: ::core::ptr::null(), + stripe_area: Rect2D::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for SwapchainPresentModeInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_MODE_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for RenderPassStripeInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_INFO_ARM; } -unsafe impl Extends> for SwapchainPresentModeInfoEXT<'_> {} -impl<'a> SwapchainPresentModeInfoEXT<'a> { +impl<'a> RenderPassStripeInfoARM<'a> { #[inline] - pub fn present_modes(mut self, present_modes: &'a [PresentModeKHR]) -> Self { - self.swapchain_count = present_modes.len() as _; - self.p_present_modes = present_modes.as_ptr(); + pub fn stripe_area(mut self, stripe_area: Rect2D) -> Self { + self.stripe_area = stripe_area; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct SwapchainPresentScalingCreateInfoEXT<'a> { +pub struct RenderPassStripeBeginInfoARM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub scaling_behavior: PresentScalingFlagsEXT, - pub present_gravity_x: PresentGravityFlagsEXT, - pub present_gravity_y: PresentGravityFlagsEXT, + pub stripe_info_count: u32, + pub p_stripe_infos: *const RenderPassStripeInfoARM<'a>, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for SwapchainPresentScalingCreateInfoEXT<'_> {} -unsafe impl Sync for SwapchainPresentScalingCreateInfoEXT<'_> {} -impl ::core::default::Default for SwapchainPresentScalingCreateInfoEXT<'_> { +unsafe impl Send for RenderPassStripeBeginInfoARM<'_> {} +unsafe impl Sync for RenderPassStripeBeginInfoARM<'_> {} +impl ::core::default::Default for RenderPassStripeBeginInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - scaling_behavior: PresentScalingFlagsEXT::default(), - present_gravity_x: PresentGravityFlagsEXT::default(), - present_gravity_y: PresentGravityFlagsEXT::default(), + stripe_info_count: u32::default(), + p_stripe_infos: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for SwapchainPresentScalingCreateInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for RenderPassStripeBeginInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_BEGIN_INFO_ARM; } -unsafe impl Extends> for SwapchainPresentScalingCreateInfoEXT<'_> {} -impl<'a> SwapchainPresentScalingCreateInfoEXT<'a> { - #[inline] - pub fn scaling_behavior(mut self, scaling_behavior: PresentScalingFlagsEXT) -> Self { - self.scaling_behavior = scaling_behavior; - self - } - #[inline] - pub fn present_gravity_x(mut self, present_gravity_x: PresentGravityFlagsEXT) -> Self { - self.present_gravity_x = present_gravity_x; - self - } +unsafe impl Extends> for RenderPassStripeBeginInfoARM<'_> {} +unsafe impl Extends> for RenderPassStripeBeginInfoARM<'_> {} +impl<'a> RenderPassStripeBeginInfoARM<'a> { #[inline] - pub fn present_gravity_y(mut self, present_gravity_y: PresentGravityFlagsEXT) -> Self { - self.present_gravity_y = present_gravity_y; + pub fn stripe_infos(mut self, stripe_infos: &'a [RenderPassStripeInfoARM<'a>]) -> Self { + self.stripe_info_count = stripe_infos.len() as _; + self.p_stripe_infos = stripe_infos.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ReleaseSwapchainImagesInfoEXT<'a> { +pub struct RenderPassStripeSubmitInfoARM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub swapchain: SwapchainKHR, - pub image_index_count: u32, - pub p_image_indices: *const u32, + pub stripe_semaphore_info_count: u32, + pub p_stripe_semaphore_infos: *const SemaphoreSubmitInfo<'a>, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ReleaseSwapchainImagesInfoEXT<'_> {} -unsafe impl Sync for ReleaseSwapchainImagesInfoEXT<'_> {} -impl ::core::default::Default for ReleaseSwapchainImagesInfoEXT<'_> { +unsafe impl Send for RenderPassStripeSubmitInfoARM<'_> {} +unsafe impl Sync for RenderPassStripeSubmitInfoARM<'_> {} +impl ::core::default::Default for RenderPassStripeSubmitInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - swapchain: SwapchainKHR::default(), - image_index_count: u32::default(), - p_image_indices: ::core::ptr::null(), + stripe_semaphore_info_count: u32::default(), + p_stripe_semaphore_infos: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ReleaseSwapchainImagesInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::RELEASE_SWAPCHAIN_IMAGES_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for RenderPassStripeSubmitInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_SUBMIT_INFO_ARM; } -impl<'a> ReleaseSwapchainImagesInfoEXT<'a> { - #[inline] - pub fn swapchain(mut self, swapchain: SwapchainKHR) -> Self { - self.swapchain = swapchain; - self - } +unsafe impl Extends> for RenderPassStripeSubmitInfoARM<'_> {} +impl<'a> RenderPassStripeSubmitInfoARM<'a> { #[inline] - pub fn image_indices(mut self, image_indices: &'a [u32]) -> Self { - self.image_index_count = image_indices.len() as _; - self.p_image_indices = image_indices.as_ptr(); + pub fn stripe_semaphore_infos( + mut self, + stripe_semaphore_infos: &'a [SemaphoreSubmitInfo<'a>], + ) -> Self { + self.stripe_semaphore_info_count = stripe_semaphore_infos.len() as _; + self.p_stripe_semaphore_infos = stripe_semaphore_infos.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceDepthBiasControlFeaturesEXT<'a> { +pub struct PhysicalDevicePipelineOpacityMicromapFeaturesARM<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub depth_bias_control: Bool32, - pub least_representable_value_force_unorm_representation: Bool32, - pub float_representation: Bool32, - pub depth_bias_exact: Bool32, + pub pipeline_opacity_micromap: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceDepthBiasControlFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceDepthBiasControlFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceDepthBiasControlFeaturesEXT<'_> { +unsafe impl Send for PhysicalDevicePipelineOpacityMicromapFeaturesARM<'_> {} +unsafe impl Sync for PhysicalDevicePipelineOpacityMicromapFeaturesARM<'_> {} +impl ::core::default::Default for PhysicalDevicePipelineOpacityMicromapFeaturesARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - depth_bias_control: Bool32::default(), - least_representable_value_force_unorm_representation: Bool32::default(), - float_representation: Bool32::default(), - depth_bias_exact: Bool32::default(), + pipeline_opacity_micromap: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDepthBiasControlFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineOpacityMicromapFeaturesARM<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT; + StructureType::PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM; } -unsafe impl Extends> for PhysicalDeviceDepthBiasControlFeaturesEXT<'_> {} -unsafe impl Extends> for PhysicalDeviceDepthBiasControlFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceDepthBiasControlFeaturesEXT<'a> { - #[inline] - pub fn depth_bias_control(mut self, depth_bias_control: bool) -> Self { - self.depth_bias_control = depth_bias_control.into(); - self - } - #[inline] - pub fn least_representable_value_force_unorm_representation( - mut self, - least_representable_value_force_unorm_representation: bool, - ) -> Self { - self.least_representable_value_force_unorm_representation = - least_representable_value_force_unorm_representation.into(); - self - } - #[inline] - pub fn float_representation(mut self, float_representation: bool) -> Self { - self.float_representation = float_representation.into(); - self - } +unsafe impl Extends> + for PhysicalDevicePipelineOpacityMicromapFeaturesARM<'_> +{ +} +unsafe impl Extends> for PhysicalDevicePipelineOpacityMicromapFeaturesARM<'_> {} +impl<'a> PhysicalDevicePipelineOpacityMicromapFeaturesARM<'a> { #[inline] - pub fn depth_bias_exact(mut self, depth_bias_exact: bool) -> Self { - self.depth_bias_exact = depth_bias_exact.into(); + pub fn pipeline_opacity_micromap(mut self, pipeline_opacity_micromap: bool) -> Self { + self.pipeline_opacity_micromap = pipeline_opacity_micromap.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'a> { +pub struct PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub ray_tracing_invocation_reorder: Bool32, + pub shader_maximal_reconvergence: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'_> {} -unsafe impl Sync for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'_> { +unsafe impl Send for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - ray_tracing_invocation_reorder: Bool32::default(), + shader_maximal_reconvergence: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV; + StructureType::PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR; } unsafe impl Extends> - for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'_> + for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'_> { } unsafe impl Extends> - for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'_> + for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'_> { } -impl<'a> PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'a> { +impl<'a> PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'a> { #[inline] - pub fn ray_tracing_invocation_reorder(mut self, ray_tracing_invocation_reorder: bool) -> Self { - self.ray_tracing_invocation_reorder = ray_tracing_invocation_reorder.into(); + pub fn shader_maximal_reconvergence(mut self, shader_maximal_reconvergence: bool) -> Self { + self.shader_maximal_reconvergence = shader_maximal_reconvergence.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'a> { +pub struct PhysicalDeviceShaderSubgroupRotateFeatures<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub ray_tracing_invocation_reorder_reordering_hint: RayTracingInvocationReorderModeNV, + pub shader_subgroup_rotate: Bool32, + pub shader_subgroup_rotate_clustered: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'_> {} -unsafe impl Sync for PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'_> { +unsafe impl Send for PhysicalDeviceShaderSubgroupRotateFeatures<'_> {} +unsafe impl Sync for PhysicalDeviceShaderSubgroupRotateFeatures<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderSubgroupRotateFeatures<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - ray_tracing_invocation_reorder_reordering_hint: - RayTracingInvocationReorderModeNV::default(), + shader_subgroup_rotate: Bool32::default(), + shader_subgroup_rotate_clustered: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderSubgroupRotateFeatures<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV; + StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES; } -unsafe impl Extends> - for PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'_> +unsafe impl Extends> + for PhysicalDeviceShaderSubgroupRotateFeatures<'_> { } -impl<'a> PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'a> { +unsafe impl Extends> for PhysicalDeviceShaderSubgroupRotateFeatures<'_> {} +impl<'a> PhysicalDeviceShaderSubgroupRotateFeatures<'a> { #[inline] - pub fn ray_tracing_invocation_reorder_reordering_hint( + pub fn shader_subgroup_rotate(mut self, shader_subgroup_rotate: bool) -> Self { + self.shader_subgroup_rotate = shader_subgroup_rotate.into(); + self + } + #[inline] + pub fn shader_subgroup_rotate_clustered( mut self, - ray_tracing_invocation_reorder_reordering_hint: RayTracingInvocationReorderModeNV, + shader_subgroup_rotate_clustered: bool, ) -> Self { - self.ray_tracing_invocation_reorder_reordering_hint = - ray_tracing_invocation_reorder_reordering_hint; + self.shader_subgroup_rotate_clustered = shader_subgroup_rotate_clustered.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'a> { +pub struct PhysicalDeviceShaderExpectAssumeFeatures<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub extended_sparse_address_space: Bool32, + pub shader_expect_assume: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'_> {} -unsafe impl Sync for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'_> { +unsafe impl Send for PhysicalDeviceShaderExpectAssumeFeatures<'_> {} +unsafe impl Sync for PhysicalDeviceShaderExpectAssumeFeatures<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderExpectAssumeFeatures<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - extended_sparse_address_space: Bool32::default(), + shader_expect_assume: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderExpectAssumeFeatures<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV; -} -unsafe impl Extends> - for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'_> -{ -} -unsafe impl Extends> - for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'_> -{ + StructureType::PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES; } -impl<'a> PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'a> { +unsafe impl Extends> for PhysicalDeviceShaderExpectAssumeFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderExpectAssumeFeatures<'_> {} +impl<'a> PhysicalDeviceShaderExpectAssumeFeatures<'a> { #[inline] - pub fn extended_sparse_address_space(mut self, extended_sparse_address_space: bool) -> Self { - self.extended_sparse_address_space = extended_sparse_address_space.into(); + pub fn shader_expect_assume(mut self, shader_expect_assume: bool) -> Self { + self.shader_expect_assume = shader_expect_assume.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'a> { +pub struct PhysicalDeviceShaderFloatControls2Features<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub extended_sparse_address_space_size: DeviceSize, - pub extended_sparse_image_usage_flags: ImageUsageFlags, - pub extended_sparse_buffer_usage_flags: BufferUsageFlags, + pub shader_float_controls2: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'_> {} -unsafe impl Sync for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'_> { +unsafe impl Send for PhysicalDeviceShaderFloatControls2Features<'_> {} +unsafe impl Sync for PhysicalDeviceShaderFloatControls2Features<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderFloatControls2Features<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - extended_sparse_address_space_size: DeviceSize::default(), - extended_sparse_image_usage_flags: ImageUsageFlags::default(), - extended_sparse_buffer_usage_flags: BufferUsageFlags::default(), + shader_float_controls2: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderFloatControls2Features<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV; + StructureType::PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES; } -unsafe impl Extends> - for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'_> +unsafe impl Extends> + for PhysicalDeviceShaderFloatControls2Features<'_> { } -impl<'a> PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'a> { - #[inline] - pub fn extended_sparse_address_space_size( - mut self, - extended_sparse_address_space_size: DeviceSize, - ) -> Self { - self.extended_sparse_address_space_size = extended_sparse_address_space_size; - self - } - #[inline] - pub fn extended_sparse_image_usage_flags( - mut self, - extended_sparse_image_usage_flags: ImageUsageFlags, - ) -> Self { - self.extended_sparse_image_usage_flags = extended_sparse_image_usage_flags; - self - } +unsafe impl Extends> for PhysicalDeviceShaderFloatControls2Features<'_> {} +impl<'a> PhysicalDeviceShaderFloatControls2Features<'a> { #[inline] - pub fn extended_sparse_buffer_usage_flags( - mut self, - extended_sparse_buffer_usage_flags: BufferUsageFlags, - ) -> Self { - self.extended_sparse_buffer_usage_flags = extended_sparse_buffer_usage_flags; + pub fn shader_float_controls2(mut self, shader_float_controls2: bool) -> Self { + self.shader_float_controls2 = shader_float_controls2.into(); self } } #[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DirectDriverLoadingInfoLUNARG<'a> { +pub struct PhysicalDeviceDynamicRenderingLocalReadFeatures<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub flags: DirectDriverLoadingFlagsLUNARG, - pub pfn_get_instance_proc_addr: PFN_vkGetInstanceProcAddrLUNARG, + pub dynamic_rendering_local_read: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for DirectDriverLoadingInfoLUNARG<'_> {} -unsafe impl Sync for DirectDriverLoadingInfoLUNARG<'_> {} -#[cfg(feature = "debug")] -impl fmt::Debug for DirectDriverLoadingInfoLUNARG<'_> { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("DirectDriverLoadingInfoLUNARG") - .field("s_type", &self.s_type) - .field("p_next", &self.p_next) - .field("flags", &self.flags) - .field( - "pfn_get_instance_proc_addr", - &(self.pfn_get_instance_proc_addr.map(|x| x as *const ())), - ) - .finish() - } -} -impl ::core::default::Default for DirectDriverLoadingInfoLUNARG<'_> { +unsafe impl Send for PhysicalDeviceDynamicRenderingLocalReadFeatures<'_> {} +unsafe impl Sync for PhysicalDeviceDynamicRenderingLocalReadFeatures<'_> {} +impl ::core::default::Default for PhysicalDeviceDynamicRenderingLocalReadFeatures<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - flags: DirectDriverLoadingFlagsLUNARG::default(), - pfn_get_instance_proc_addr: PFN_vkGetInstanceProcAddrLUNARG::default(), + dynamic_rendering_local_read: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for DirectDriverLoadingInfoLUNARG<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::DIRECT_DRIVER_LOADING_INFO_LUNARG; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDynamicRenderingLocalReadFeatures<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES; } -impl<'a> DirectDriverLoadingInfoLUNARG<'a> { - #[inline] - pub fn flags(mut self, flags: DirectDriverLoadingFlagsLUNARG) -> Self { - self.flags = flags; - self - } +unsafe impl Extends> + for PhysicalDeviceDynamicRenderingLocalReadFeatures<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceDynamicRenderingLocalReadFeatures<'_> {} +impl<'a> PhysicalDeviceDynamicRenderingLocalReadFeatures<'a> { #[inline] - pub fn pfn_get_instance_proc_addr( - mut self, - pfn_get_instance_proc_addr: PFN_vkGetInstanceProcAddrLUNARG, - ) -> Self { - self.pfn_get_instance_proc_addr = pfn_get_instance_proc_addr; + pub fn dynamic_rendering_local_read(mut self, dynamic_rendering_local_read: bool) -> Self { + self.dynamic_rendering_local_read = dynamic_rendering_local_read.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DirectDriverLoadingListLUNARG<'a> { +pub struct RenderingAttachmentLocationInfo<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub mode: DirectDriverLoadingModeLUNARG, - pub driver_count: u32, - pub p_drivers: *const DirectDriverLoadingInfoLUNARG<'a>, + pub color_attachment_count: u32, + pub p_color_attachment_locations: *const u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for DirectDriverLoadingListLUNARG<'_> {} -unsafe impl Sync for DirectDriverLoadingListLUNARG<'_> {} -impl ::core::default::Default for DirectDriverLoadingListLUNARG<'_> { +unsafe impl Send for RenderingAttachmentLocationInfo<'_> {} +unsafe impl Sync for RenderingAttachmentLocationInfo<'_> {} +impl ::core::default::Default for RenderingAttachmentLocationInfo<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - mode: DirectDriverLoadingModeLUNARG::default(), - driver_count: u32::default(), - p_drivers: ::core::ptr::null(), + color_attachment_count: u32::default(), + p_color_attachment_locations: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for DirectDriverLoadingListLUNARG<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::DIRECT_DRIVER_LOADING_LIST_LUNARG; +unsafe impl<'a> TaggedStructure<'a> for RenderingAttachmentLocationInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_ATTACHMENT_LOCATION_INFO; } -unsafe impl Extends> for DirectDriverLoadingListLUNARG<'_> {} -impl<'a> DirectDriverLoadingListLUNARG<'a> { - #[inline] - pub fn mode(mut self, mode: DirectDriverLoadingModeLUNARG) -> Self { - self.mode = mode; - self - } +unsafe impl Extends> for RenderingAttachmentLocationInfo<'_> {} +unsafe impl Extends> for RenderingAttachmentLocationInfo<'_> {} +impl<'a> RenderingAttachmentLocationInfo<'a> { #[inline] - pub fn drivers(mut self, drivers: &'a [DirectDriverLoadingInfoLUNARG<'a>]) -> Self { - self.driver_count = drivers.len() as _; - self.p_drivers = drivers.as_ptr(); + pub fn color_attachment_locations(mut self, color_attachment_locations: &'a [u32]) -> Self { + self.color_attachment_count = color_attachment_locations.len() as _; + self.p_color_attachment_locations = color_attachment_locations.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'a> { +pub struct RenderingInputAttachmentIndexInfo<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub multiview_per_view_viewports: Bool32, + pub p_next: *const c_void, + pub color_attachment_count: u32, + pub p_color_attachment_input_indices: *const u32, + pub p_depth_input_attachment_index: *const u32, + pub p_stencil_input_attachment_index: *const u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'_> {} -unsafe impl Sync for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'_> {} -impl ::core::default::Default for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'_> { +unsafe impl Send for RenderingInputAttachmentIndexInfo<'_> {} +unsafe impl Sync for RenderingInputAttachmentIndexInfo<'_> {} +impl ::core::default::Default for RenderingInputAttachmentIndexInfo<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - multiview_per_view_viewports: Bool32::default(), + p_next: ::core::ptr::null(), + color_attachment_count: u32::default(), + p_color_attachment_input_indices: ::core::ptr::null(), + p_depth_input_attachment_index: ::core::ptr::null(), + p_stencil_input_attachment_index: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM; -} -unsafe impl Extends> - for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'_> -{ -} -unsafe impl Extends> - for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for RenderingInputAttachmentIndexInfo<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_INPUT_ATTACHMENT_INDEX_INFO; } -impl<'a> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'a> { +unsafe impl Extends> for RenderingInputAttachmentIndexInfo<'_> {} +unsafe impl Extends> for RenderingInputAttachmentIndexInfo<'_> {} +impl<'a> RenderingInputAttachmentIndexInfo<'a> { #[inline] - pub fn multiview_per_view_viewports(mut self, multiview_per_view_viewports: bool) -> Self { - self.multiview_per_view_viewports = multiview_per_view_viewports.into(); + pub fn color_attachment_input_indices( + mut self, + color_attachment_input_indices: &'a [u32], + ) -> Self { + self.color_attachment_count = color_attachment_input_indices.len() as _; + self.p_color_attachment_input_indices = color_attachment_input_indices.as_ptr(); + self + } + #[inline] + pub fn depth_input_attachment_index(mut self, depth_input_attachment_index: &'a u32) -> Self { + self.p_depth_input_attachment_index = depth_input_attachment_index; + self + } + #[inline] + pub fn stencil_input_attachment_index( + mut self, + stencil_input_attachment_index: &'a u32, + ) -> Self { + self.p_stencil_input_attachment_index = stencil_input_attachment_index; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'a> { +pub struct PhysicalDeviceShaderQuadControlFeaturesKHR<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub ray_tracing_position_fetch: Bool32, + pub shader_quad_control: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'_> { +unsafe impl Send for PhysicalDeviceShaderQuadControlFeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceShaderQuadControlFeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderQuadControlFeaturesKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - ray_tracing_position_fetch: Bool32::default(), + shader_quad_control: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderQuadControlFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR; + StructureType::PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR; } unsafe impl Extends> - for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'_> + for PhysicalDeviceShaderQuadControlFeaturesKHR<'_> { } -unsafe impl Extends> for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'_> {} -impl<'a> PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'a> { +unsafe impl Extends> for PhysicalDeviceShaderQuadControlFeaturesKHR<'_> {} +impl<'a> PhysicalDeviceShaderQuadControlFeaturesKHR<'a> { #[inline] - pub fn ray_tracing_position_fetch(mut self, ray_tracing_position_fetch: bool) -> Self { - self.ray_tracing_position_fetch = ray_tracing_position_fetch.into(); + pub fn shader_quad_control(mut self, shader_quad_control: bool) -> Self { + self.shader_quad_control = shader_quad_control.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DeviceImageSubresourceInfoKHR<'a> { +pub struct PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub p_create_info: *const ImageCreateInfo<'a>, - pub p_subresource: *const ImageSubresource2KHR<'a>, + pub p_next: *mut c_void, + pub shader_float16_vector_atomics: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for DeviceImageSubresourceInfoKHR<'_> {} -unsafe impl Sync for DeviceImageSubresourceInfoKHR<'_> {} -impl ::core::default::Default for DeviceImageSubresourceInfoKHR<'_> { +unsafe impl Send for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - p_create_info: ::core::ptr::null(), - p_subresource: ::core::ptr::null(), + p_next: ::core::ptr::null_mut(), + shader_float16_vector_atomics: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for DeviceImageSubresourceInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_IMAGE_SUBRESOURCE_INFO_KHR; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV; } -impl<'a> DeviceImageSubresourceInfoKHR<'a> { - #[inline] - pub fn create_info(mut self, create_info: &'a ImageCreateInfo<'a>) -> Self { - self.p_create_info = create_info; - self - } +unsafe impl Extends> + for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'_> +{ +} +impl<'a> PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'a> { #[inline] - pub fn subresource(mut self, subresource: &'a ImageSubresource2KHR<'a>) -> Self { - self.p_subresource = subresource; + pub fn shader_float16_vector_atomics(mut self, shader_float16_vector_atomics: bool) -> Self { + self.shader_float16_vector_atomics = shader_float16_vector_atomics.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderCorePropertiesARM<'a> { +pub struct PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub pixel_rate: u32, - pub texel_rate: u32, - pub fma_rate: u32, + pub memory_map_placed: Bool32, + pub memory_map_range_placed: Bool32, + pub memory_unmap_reserve: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderCorePropertiesARM<'_> {} -unsafe impl Sync for PhysicalDeviceShaderCorePropertiesARM<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderCorePropertiesARM<'_> { +unsafe impl Send for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - pixel_rate: u32::default(), - texel_rate: u32::default(), - fma_rate: u32::default(), + memory_map_placed: Bool32::default(), + memory_map_range_placed: Bool32::default(), + memory_unmap_reserve: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderCorePropertiesARM<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT; } -unsafe impl Extends> for PhysicalDeviceShaderCorePropertiesARM<'_> {} -impl<'a> PhysicalDeviceShaderCorePropertiesARM<'a> { +unsafe impl Extends> for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'_> {} +impl<'a> PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a> { #[inline] - pub fn pixel_rate(mut self, pixel_rate: u32) -> Self { - self.pixel_rate = pixel_rate; + pub fn memory_map_placed(mut self, memory_map_placed: bool) -> Self { + self.memory_map_placed = memory_map_placed.into(); self } #[inline] - pub fn texel_rate(mut self, texel_rate: u32) -> Self { - self.texel_rate = texel_rate; + pub fn memory_map_range_placed(mut self, memory_map_range_placed: bool) -> Self { + self.memory_map_range_placed = memory_map_range_placed.into(); self } #[inline] - pub fn fma_rate(mut self, fma_rate: u32) -> Self { - self.fma_rate = fma_rate; + pub fn memory_unmap_reserve(mut self, memory_unmap_reserve: bool) -> Self { + self.memory_unmap_reserve = memory_unmap_reserve.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'a> { +pub struct PhysicalDeviceMapMemoryPlacedPropertiesEXT<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub multiview_per_view_render_areas: Bool32, + pub min_placed_memory_map_alignment: DeviceSize, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'_> {} -unsafe impl Sync for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'_> {} -impl ::core::default::Default for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'_> { +unsafe impl Send for PhysicalDeviceMapMemoryPlacedPropertiesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceMapMemoryPlacedPropertiesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceMapMemoryPlacedPropertiesEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - multiview_per_view_render_areas: Bool32::default(), + min_placed_memory_map_alignment: DeviceSize::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMapMemoryPlacedPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM; -} -unsafe impl Extends> - for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'_> -{ + StructureType::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT; } -unsafe impl Extends> - for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'_> +unsafe impl Extends> + for PhysicalDeviceMapMemoryPlacedPropertiesEXT<'_> { } -impl<'a> PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'a> { +impl<'a> PhysicalDeviceMapMemoryPlacedPropertiesEXT<'a> { #[inline] - pub fn multiview_per_view_render_areas( + pub fn min_placed_memory_map_alignment( mut self, - multiview_per_view_render_areas: bool, + min_placed_memory_map_alignment: DeviceSize, ) -> Self { - self.multiview_per_view_render_areas = multiview_per_view_render_areas.into(); + self.min_placed_memory_map_alignment = min_placed_memory_map_alignment; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'a> { +pub struct MemoryMapPlacedInfoEXT<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub per_view_render_area_count: u32, - pub p_per_view_render_areas: *const Rect2D, + pub p_placed_address: *mut c_void, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'_> {} -unsafe impl Sync for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'_> {} -impl ::core::default::Default for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'_> { +unsafe impl Send for MemoryMapPlacedInfoEXT<'_> {} +unsafe impl Sync for MemoryMapPlacedInfoEXT<'_> {} +impl ::core::default::Default for MemoryMapPlacedInfoEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - per_view_render_area_count: u32::default(), - p_per_view_render_areas: ::core::ptr::null(), + p_placed_address: ::core::ptr::null_mut(), _marker: PhantomData, } } } -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 Extends> - for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for MemoryMapPlacedInfoEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_MAP_PLACED_INFO_EXT; } -unsafe impl Extends> for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'_> {} -impl<'a> MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'a> { +unsafe impl Extends> for MemoryMapPlacedInfoEXT<'_> {} +impl<'a> MemoryMapPlacedInfoEXT<'a> { #[inline] - pub fn per_view_render_areas(mut self, per_view_render_areas: &'a [Rect2D]) -> Self { - self.per_view_render_area_count = per_view_render_areas.len() as _; - self.p_per_view_render_areas = per_view_render_areas.as_ptr(); + pub fn placed_address(mut self, placed_address: *mut c_void) -> Self { + self.p_placed_address = placed_address; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct QueryLowLatencySupportNV<'a> { +pub struct PhysicalDeviceShaderBfloat16FeaturesKHR<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub p_queried_low_latency_data: *mut c_void, + pub p_next: *mut c_void, + pub shader_b_float16_type: Bool32, + pub shader_b_float16_dot_product: Bool32, + pub shader_b_float16_cooperative_matrix: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for QueryLowLatencySupportNV<'_> {} -unsafe impl Sync for QueryLowLatencySupportNV<'_> {} -impl ::core::default::Default for QueryLowLatencySupportNV<'_> { +unsafe impl Send for PhysicalDeviceShaderBfloat16FeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceShaderBfloat16FeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderBfloat16FeaturesKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - p_queried_low_latency_data: ::core::ptr::null_mut(), + p_next: ::core::ptr::null_mut(), + shader_b_float16_type: Bool32::default(), + shader_b_float16_dot_product: Bool32::default(), + shader_b_float16_cooperative_matrix: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for QueryLowLatencySupportNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::QUERY_LOW_LATENCY_SUPPORT_NV; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderBfloat16FeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR; } -unsafe impl Extends> for QueryLowLatencySupportNV<'_> {} -impl<'a> QueryLowLatencySupportNV<'a> { +unsafe impl Extends> for PhysicalDeviceShaderBfloat16FeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderBfloat16FeaturesKHR<'_> {} +impl<'a> PhysicalDeviceShaderBfloat16FeaturesKHR<'a> { #[inline] - pub fn queried_low_latency_data(mut self, queried_low_latency_data: *mut c_void) -> Self { - self.p_queried_low_latency_data = queried_low_latency_data; + pub fn shader_b_float16_type(mut self, shader_b_float16_type: bool) -> Self { + self.shader_b_float16_type = shader_b_float16_type.into(); + self + } + #[inline] + pub fn shader_b_float16_dot_product(mut self, shader_b_float16_dot_product: bool) -> Self { + self.shader_b_float16_dot_product = shader_b_float16_dot_product.into(); + self + } + #[inline] + pub fn shader_b_float16_cooperative_matrix( + mut self, + shader_b_float16_cooperative_matrix: bool, + ) -> Self { + self.shader_b_float16_cooperative_matrix = shader_b_float16_cooperative_matrix.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct MemoryMapInfoKHR<'a> { +pub struct PhysicalDeviceRawAccessChainsFeaturesNV<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub flags: MemoryMapFlags, - pub memory: DeviceMemory, - pub offset: DeviceSize, - pub size: DeviceSize, + pub p_next: *mut c_void, + pub shader_raw_access_chains: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for MemoryMapInfoKHR<'_> {} -unsafe impl Sync for MemoryMapInfoKHR<'_> {} -impl ::core::default::Default for MemoryMapInfoKHR<'_> { +unsafe impl Send for PhysicalDeviceRawAccessChainsFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDeviceRawAccessChainsFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceRawAccessChainsFeaturesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - flags: MemoryMapFlags::default(), - memory: DeviceMemory::default(), - offset: DeviceSize::default(), - size: DeviceSize::default(), + p_next: ::core::ptr::null_mut(), + shader_raw_access_chains: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for MemoryMapInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_MAP_INFO_KHR; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRawAccessChainsFeaturesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV; } -impl<'a> MemoryMapInfoKHR<'a> { - #[inline] - pub fn flags(mut self, flags: MemoryMapFlags) -> Self { - self.flags = flags; - self - } - #[inline] - pub fn memory(mut self, memory: DeviceMemory) -> Self { - self.memory = memory; - self - } - #[inline] - pub fn offset(mut self, offset: DeviceSize) -> Self { - self.offset = offset; - self - } +unsafe impl Extends> for PhysicalDeviceRawAccessChainsFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceRawAccessChainsFeaturesNV<'_> {} +impl<'a> PhysicalDeviceRawAccessChainsFeaturesNV<'a> { #[inline] - pub fn size(mut self, size: DeviceSize) -> Self { - self.size = size; + pub fn shader_raw_access_chains(mut self, shader_raw_access_chains: bool) -> Self { + self.shader_raw_access_chains = shader_raw_access_chains.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct MemoryUnmapInfoKHR<'a> { +pub struct PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub flags: MemoryUnmapFlagsKHR, - pub memory: DeviceMemory, + pub p_next: *mut c_void, + pub command_buffer_inheritance: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for MemoryUnmapInfoKHR<'_> {} -unsafe impl Sync for MemoryUnmapInfoKHR<'_> {} -impl ::core::default::Default for MemoryUnmapInfoKHR<'_> { +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(), - flags: MemoryUnmapFlagsKHR::default(), - memory: DeviceMemory::default(), + p_next: ::core::ptr::null_mut(), + command_buffer_inheritance: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for MemoryUnmapInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_UNMAP_INFO_KHR; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV; } -impl<'a> MemoryUnmapInfoKHR<'a> { - #[inline] - pub fn flags(mut self, flags: MemoryUnmapFlagsKHR) -> Self { - self.flags = flags; - self - } +unsafe impl Extends> + for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'_> {} +impl<'a> PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { #[inline] - pub fn memory(mut self, memory: DeviceMemory) -> Self { - self.memory = memory; + 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 = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderObjectFeaturesEXT<'a> { +pub struct PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub shader_object: Bool32, + pub image_alignment_control: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderObjectFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceShaderObjectFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderObjectFeaturesEXT<'_> { +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(), - shader_object: Bool32::default(), + image_alignment_control: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderObjectFeaturesEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA; } -unsafe impl Extends> for PhysicalDeviceShaderObjectFeaturesEXT<'_> {} -unsafe impl Extends> for PhysicalDeviceShaderObjectFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceShaderObjectFeaturesEXT<'a> { +unsafe impl Extends> + for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> {} +impl<'a> PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> { #[inline] - pub fn shader_object(mut self, shader_object: bool) -> Self { - self.shader_object = shader_object.into(); + 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 = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderObjectPropertiesEXT<'a> { +pub struct PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub shader_binary_uuid: [u8; UUID_SIZE], - pub shader_binary_version: u32, + pub supported_image_alignment_mask: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderObjectPropertiesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceShaderObjectPropertiesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderObjectPropertiesEXT<'_> { +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(), - shader_binary_uuid: unsafe { ::core::mem::zeroed() }, - shader_binary_version: u32::default(), + supported_image_alignment_mask: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderObjectPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT; + StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA; } -unsafe impl Extends> for PhysicalDeviceShaderObjectPropertiesEXT<'_> {} -impl<'a> PhysicalDeviceShaderObjectPropertiesEXT<'a> { - #[inline] - pub fn shader_binary_uuid(mut self, shader_binary_uuid: [u8; UUID_SIZE]) -> Self { - self.shader_binary_uuid = shader_binary_uuid; - self - } +unsafe impl Extends> + for PhysicalDeviceImageAlignmentControlPropertiesMESA<'_> +{ +} +impl<'a> PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> { #[inline] - pub fn shader_binary_version(mut self, shader_binary_version: u32) -> Self { - self.shader_binary_version = shader_binary_version; + 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 = ""] +#[doc = ""] #[must_use] -pub struct ShaderCreateInfoEXT<'a> { +pub struct ImageAlignmentControlCreateInfoMESA<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub flags: ShaderCreateFlagsEXT, - pub stage: ShaderStageFlags, - pub next_stage: ShaderStageFlags, - pub code_type: ShaderCodeTypeEXT, - pub code_size: usize, - pub p_code: *const c_void, - pub p_name: *const c_char, - pub set_layout_count: u32, - pub p_set_layouts: *const DescriptorSetLayout, - pub push_constant_range_count: u32, - pub p_push_constant_ranges: *const PushConstantRange, - pub p_specialization_info: *const SpecializationInfo<'a>, + pub maximum_requested_alignment: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ShaderCreateInfoEXT<'_> {} -unsafe impl Sync for ShaderCreateInfoEXT<'_> {} -impl ::core::default::Default for ShaderCreateInfoEXT<'_> { +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(), - flags: ShaderCreateFlagsEXT::default(), - stage: ShaderStageFlags::default(), - next_stage: ShaderStageFlags::default(), - code_type: ShaderCodeTypeEXT::default(), - code_size: usize::default(), - p_code: ::core::ptr::null(), - p_name: ::core::ptr::null(), - set_layout_count: u32::default(), - p_set_layouts: ::core::ptr::null(), - push_constant_range_count: u32::default(), - p_push_constant_ranges: ::core::ptr::null(), - p_specialization_info: ::core::ptr::null(), + maximum_requested_alignment: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ShaderCreateInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SHADER_CREATE_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for ImageAlignmentControlCreateInfoMESA<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA; } -impl<'a> ShaderCreateInfoEXT<'a> { - #[inline] - pub fn flags(mut self, flags: ShaderCreateFlagsEXT) -> Self { - self.flags = flags; - self - } - #[inline] - pub fn stage(mut self, stage: ShaderStageFlags) -> Self { - self.stage = stage; - self - } - #[inline] - pub fn next_stage(mut self, next_stage: ShaderStageFlags) -> Self { - self.next_stage = next_stage; - self - } - #[inline] - pub fn code_type(mut self, code_type: ShaderCodeTypeEXT) -> Self { - self.code_type = code_type; - self - } - #[inline] - pub fn code(mut self, code: &'a [u8]) -> Self { - self.code_size = code.len(); - self.p_code = code.as_ptr().cast(); - self - } +unsafe impl Extends> for ImageAlignmentControlCreateInfoMESA<'_> {} +impl<'a> ImageAlignmentControlCreateInfoMESA<'a> { #[inline] - pub fn name(mut self, name: &'a CStr) -> Self { - self.p_name = name.as_ptr(); + 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] - pub unsafe fn name_as_c_str(&self) -> Option<&CStr> { - if self.p_name.is_null() { - None - } else { - Some(CStr::from_ptr(self.p_name)) + 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<'a> for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT; +} +unsafe impl Extends> + for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'_> +{ +} +impl<'a> PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'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 - } - #[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 - } - #[inline] - pub fn specialization_info(mut self, specialization_info: &'a SpecializationInfo<'a>) -> Self { - self.p_specialization_info = specialization_info; + 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)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderTileImageFeaturesEXT<'a> { +pub struct PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub shader_tile_image_color_read_access: Bool32, - pub shader_tile_image_depth_read_access: Bool32, - pub shader_tile_image_stencil_read_access: Bool32, + pub present_mode_fifo_latest_ready: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderTileImageFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceShaderTileImageFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderTileImageFeaturesEXT<'_> { +unsafe impl Send for PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - shader_tile_image_color_read_access: Bool32::default(), - shader_tile_image_depth_read_access: Bool32::default(), - shader_tile_image_stencil_read_access: Bool32::default(), + present_mode_fifo_latest_ready: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderTileImageFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT; + StructureType::PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR; } -unsafe impl Extends> for PhysicalDeviceShaderTileImageFeaturesEXT<'_> {} -unsafe impl Extends> for PhysicalDeviceShaderTileImageFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceShaderTileImageFeaturesEXT<'a> { +unsafe impl Extends> + for PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR<'_> +{ +} +unsafe impl Extends> + for PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR<'_> +{ +} +impl<'a> PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR<'a> { #[inline] - pub fn shader_tile_image_color_read_access( - mut self, - shader_tile_image_color_read_access: bool, - ) -> Self { - self.shader_tile_image_color_read_access = shader_tile_image_color_read_access.into(); + pub fn present_mode_fifo_latest_ready(mut self, present_mode_fifo_latest_ready: bool) -> Self { + self.present_mode_fifo_latest_ready = present_mode_fifo_latest_ready.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 shader_tile_image_depth_read_access( - mut self, - shader_tile_image_depth_read_access: bool, - ) -> Self { - self.shader_tile_image_depth_read_access = shader_tile_image_depth_read_access.into(); + pub fn min_depth_clamp(mut self, min_depth_clamp: f32) -> Self { + self.min_depth_clamp = min_depth_clamp; self } #[inline] - pub fn shader_tile_image_stencil_read_access( - mut self, - shader_tile_image_stencil_read_access: bool, - ) -> Self { - self.shader_tile_image_stencil_read_access = shader_tile_image_stencil_read_access.into(); + pub fn max_depth_clamp(mut self, max_depth_clamp: f32) -> Self { + self.max_depth_clamp = max_depth_clamp; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderTileImagePropertiesEXT<'a> { +pub struct PhysicalDeviceCooperativeMatrix2FeaturesNV<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub shader_tile_image_coherent_read_accelerated: Bool32, - pub shader_tile_image_read_sample_from_pixel_rate_invocation: Bool32, - pub shader_tile_image_read_from_helper_invocation: Bool32, + pub cooperative_matrix_workgroup_scope: Bool32, + pub cooperative_matrix_flexible_dimensions: Bool32, + pub cooperative_matrix_reductions: Bool32, + pub cooperative_matrix_conversions: Bool32, + pub cooperative_matrix_per_element_operations: Bool32, + pub cooperative_matrix_tensor_addressing: Bool32, + pub cooperative_matrix_block_loads: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderTileImagePropertiesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceShaderTileImagePropertiesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderTileImagePropertiesEXT<'_> { +unsafe impl Send for PhysicalDeviceCooperativeMatrix2FeaturesNV<'_> {} +unsafe impl Sync for PhysicalDeviceCooperativeMatrix2FeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceCooperativeMatrix2FeaturesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - shader_tile_image_coherent_read_accelerated: Bool32::default(), - shader_tile_image_read_sample_from_pixel_rate_invocation: Bool32::default(), - shader_tile_image_read_from_helper_invocation: Bool32::default(), + cooperative_matrix_workgroup_scope: Bool32::default(), + cooperative_matrix_flexible_dimensions: Bool32::default(), + cooperative_matrix_reductions: Bool32::default(), + cooperative_matrix_conversions: Bool32::default(), + cooperative_matrix_per_element_operations: Bool32::default(), + cooperative_matrix_tensor_addressing: Bool32::default(), + cooperative_matrix_block_loads: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderTileImagePropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCooperativeMatrix2FeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT; + StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV; } -unsafe impl Extends> - for PhysicalDeviceShaderTileImagePropertiesEXT<'_> +unsafe impl Extends> + for PhysicalDeviceCooperativeMatrix2FeaturesNV<'_> { } -impl<'a> PhysicalDeviceShaderTileImagePropertiesEXT<'a> { +unsafe impl Extends> for PhysicalDeviceCooperativeMatrix2FeaturesNV<'_> {} +impl<'a> PhysicalDeviceCooperativeMatrix2FeaturesNV<'a> { #[inline] - pub fn shader_tile_image_coherent_read_accelerated( + pub fn cooperative_matrix_workgroup_scope( mut self, - shader_tile_image_coherent_read_accelerated: bool, + cooperative_matrix_workgroup_scope: bool, ) -> Self { - self.shader_tile_image_coherent_read_accelerated = - shader_tile_image_coherent_read_accelerated.into(); + self.cooperative_matrix_workgroup_scope = cooperative_matrix_workgroup_scope.into(); self } #[inline] - pub fn shader_tile_image_read_sample_from_pixel_rate_invocation( + pub fn cooperative_matrix_flexible_dimensions( mut self, - shader_tile_image_read_sample_from_pixel_rate_invocation: bool, + cooperative_matrix_flexible_dimensions: bool, ) -> Self { - self.shader_tile_image_read_sample_from_pixel_rate_invocation = - shader_tile_image_read_sample_from_pixel_rate_invocation.into(); + self.cooperative_matrix_flexible_dimensions = cooperative_matrix_flexible_dimensions.into(); + self + } + #[inline] + pub fn cooperative_matrix_reductions(mut self, cooperative_matrix_reductions: bool) -> Self { + self.cooperative_matrix_reductions = cooperative_matrix_reductions.into(); + self + } + #[inline] + pub fn cooperative_matrix_conversions(mut self, cooperative_matrix_conversions: bool) -> Self { + self.cooperative_matrix_conversions = cooperative_matrix_conversions.into(); self } #[inline] - pub fn shader_tile_image_read_from_helper_invocation( + pub fn cooperative_matrix_per_element_operations( mut self, - shader_tile_image_read_from_helper_invocation: bool, + cooperative_matrix_per_element_operations: bool, ) -> Self { - self.shader_tile_image_read_from_helper_invocation = - shader_tile_image_read_from_helper_invocation.into(); + self.cooperative_matrix_per_element_operations = + cooperative_matrix_per_element_operations.into(); self } -} -#[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] -#[derive(Copy, Clone)] -#[doc = ""] -#[must_use] -pub struct ImportScreenBufferInfoQNX<'a> { - pub s_type: StructureType, - pub p_next: *const c_void, - pub buffer: *mut _screen_buffer, - pub _marker: PhantomData<&'a ()>, -} -unsafe impl Send for ImportScreenBufferInfoQNX<'_> {} -unsafe impl Sync for ImportScreenBufferInfoQNX<'_> {} -impl ::core::default::Default for ImportScreenBufferInfoQNX<'_> { #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - buffer: ::core::ptr::null_mut(), - _marker: PhantomData, - } + pub fn cooperative_matrix_tensor_addressing( + mut self, + cooperative_matrix_tensor_addressing: bool, + ) -> Self { + self.cooperative_matrix_tensor_addressing = cooperative_matrix_tensor_addressing.into(); + self } -} -unsafe impl<'a> TaggedStructure<'a> for ImportScreenBufferInfoQNX<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_SCREEN_BUFFER_INFO_QNX; -} -unsafe impl Extends> for ImportScreenBufferInfoQNX<'_> {} -impl<'a> ImportScreenBufferInfoQNX<'a> { #[inline] - pub fn buffer(mut self, buffer: *mut _screen_buffer) -> Self { - self.buffer = buffer; + pub fn cooperative_matrix_block_loads(mut self, cooperative_matrix_block_loads: bool) -> Self { + self.cooperative_matrix_block_loads = cooperative_matrix_block_loads.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ScreenBufferPropertiesQNX<'a> { +pub struct PhysicalDeviceCooperativeMatrix2PropertiesNV<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub allocation_size: DeviceSize, - pub memory_type_bits: u32, + pub cooperative_matrix_workgroup_scope_max_workgroup_size: u32, + pub cooperative_matrix_flexible_dimensions_max_dimension: u32, + pub cooperative_matrix_workgroup_scope_reserved_shared_memory: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ScreenBufferPropertiesQNX<'_> {} -unsafe impl Sync for ScreenBufferPropertiesQNX<'_> {} -impl ::core::default::Default for ScreenBufferPropertiesQNX<'_> { +unsafe impl Send for PhysicalDeviceCooperativeMatrix2PropertiesNV<'_> {} +unsafe impl Sync for PhysicalDeviceCooperativeMatrix2PropertiesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceCooperativeMatrix2PropertiesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - allocation_size: DeviceSize::default(), - memory_type_bits: u32::default(), + cooperative_matrix_workgroup_scope_max_workgroup_size: u32::default(), + cooperative_matrix_flexible_dimensions_max_dimension: u32::default(), + cooperative_matrix_workgroup_scope_reserved_shared_memory: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ScreenBufferPropertiesQNX<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SCREEN_BUFFER_PROPERTIES_QNX; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCooperativeMatrix2PropertiesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV; } -impl<'a> ScreenBufferPropertiesQNX<'a> { +unsafe impl Extends> + for PhysicalDeviceCooperativeMatrix2PropertiesNV<'_> +{ +} +impl<'a> PhysicalDeviceCooperativeMatrix2PropertiesNV<'a> { #[inline] - pub fn allocation_size(mut self, allocation_size: DeviceSize) -> Self { - self.allocation_size = allocation_size; + pub fn cooperative_matrix_workgroup_scope_max_workgroup_size( + mut self, + cooperative_matrix_workgroup_scope_max_workgroup_size: u32, + ) -> Self { + self.cooperative_matrix_workgroup_scope_max_workgroup_size = + cooperative_matrix_workgroup_scope_max_workgroup_size; self } #[inline] - pub fn memory_type_bits(mut self, memory_type_bits: u32) -> Self { - self.memory_type_bits = memory_type_bits; + pub fn cooperative_matrix_flexible_dimensions_max_dimension( + mut self, + cooperative_matrix_flexible_dimensions_max_dimension: u32, + ) -> Self { + self.cooperative_matrix_flexible_dimensions_max_dimension = + cooperative_matrix_flexible_dimensions_max_dimension; + self + } + #[inline] + pub fn cooperative_matrix_workgroup_scope_reserved_shared_memory( + mut self, + cooperative_matrix_workgroup_scope_reserved_shared_memory: u32, + ) -> Self { + self.cooperative_matrix_workgroup_scope_reserved_shared_memory = + cooperative_matrix_workgroup_scope_reserved_shared_memory; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ScreenBufferFormatPropertiesQNX<'a> { +pub struct CooperativeMatrixFlexibleDimensionsPropertiesNV<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub format: Format, - pub external_format: u64, - pub screen_usage: u64, - pub format_features: FormatFeatureFlags, - pub sampler_ycbcr_conversion_components: ComponentMapping, - pub suggested_ycbcr_model: SamplerYcbcrModelConversion, - pub suggested_ycbcr_range: SamplerYcbcrRange, - pub suggested_x_chroma_offset: ChromaLocation, - pub suggested_y_chroma_offset: ChromaLocation, + pub m_granularity: u32, + pub n_granularity: u32, + pub k_granularity: u32, + pub a_type: ComponentTypeKHR, + pub b_type: ComponentTypeKHR, + pub c_type: ComponentTypeKHR, + pub result_type: ComponentTypeKHR, + pub saturating_accumulation: Bool32, + pub scope: ScopeKHR, + pub workgroup_invocations: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ScreenBufferFormatPropertiesQNX<'_> {} -unsafe impl Sync for ScreenBufferFormatPropertiesQNX<'_> {} -impl ::core::default::Default for ScreenBufferFormatPropertiesQNX<'_> { +unsafe impl Send for CooperativeMatrixFlexibleDimensionsPropertiesNV<'_> {} +unsafe impl Sync for CooperativeMatrixFlexibleDimensionsPropertiesNV<'_> {} +impl ::core::default::Default for CooperativeMatrixFlexibleDimensionsPropertiesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - format: Format::default(), - external_format: u64::default(), - screen_usage: u64::default(), - format_features: FormatFeatureFlags::default(), - sampler_ycbcr_conversion_components: ComponentMapping::default(), - suggested_ycbcr_model: SamplerYcbcrModelConversion::default(), - suggested_ycbcr_range: SamplerYcbcrRange::default(), - suggested_x_chroma_offset: ChromaLocation::default(), - suggested_y_chroma_offset: ChromaLocation::default(), + m_granularity: u32::default(), + n_granularity: u32::default(), + k_granularity: u32::default(), + a_type: ComponentTypeKHR::default(), + b_type: ComponentTypeKHR::default(), + c_type: ComponentTypeKHR::default(), + result_type: ComponentTypeKHR::default(), + saturating_accumulation: Bool32::default(), + scope: ScopeKHR::default(), + workgroup_invocations: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ScreenBufferFormatPropertiesQNX<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SCREEN_BUFFER_FORMAT_PROPERTIES_QNX; +unsafe impl<'a> TaggedStructure<'a> for CooperativeMatrixFlexibleDimensionsPropertiesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV; } -unsafe impl Extends> for ScreenBufferFormatPropertiesQNX<'_> {} -impl<'a> ScreenBufferFormatPropertiesQNX<'a> { +impl<'a> CooperativeMatrixFlexibleDimensionsPropertiesNV<'a> { #[inline] - pub fn format(mut self, format: Format) -> Self { - self.format = format; + pub fn m_granularity(mut self, m_granularity: u32) -> Self { + self.m_granularity = m_granularity; self } #[inline] - pub fn external_format(mut self, external_format: u64) -> Self { - self.external_format = external_format; + pub fn n_granularity(mut self, n_granularity: u32) -> Self { + self.n_granularity = n_granularity; self } #[inline] - pub fn screen_usage(mut self, screen_usage: u64) -> Self { - self.screen_usage = screen_usage; + pub fn k_granularity(mut self, k_granularity: u32) -> Self { + self.k_granularity = k_granularity; self } #[inline] - pub fn format_features(mut self, format_features: FormatFeatureFlags) -> Self { - self.format_features = format_features; + pub fn a_type(mut self, a_type: ComponentTypeKHR) -> Self { + self.a_type = a_type; self } #[inline] - pub fn sampler_ycbcr_conversion_components( - mut self, - sampler_ycbcr_conversion_components: ComponentMapping, - ) -> Self { - self.sampler_ycbcr_conversion_components = sampler_ycbcr_conversion_components; + pub fn b_type(mut self, b_type: ComponentTypeKHR) -> Self { + self.b_type = b_type; self } #[inline] - pub fn suggested_ycbcr_model( - mut self, - suggested_ycbcr_model: SamplerYcbcrModelConversion, - ) -> Self { - self.suggested_ycbcr_model = suggested_ycbcr_model; + pub fn c_type(mut self, c_type: ComponentTypeKHR) -> Self { + self.c_type = c_type; self } #[inline] - pub fn suggested_ycbcr_range(mut self, suggested_ycbcr_range: SamplerYcbcrRange) -> Self { - self.suggested_ycbcr_range = suggested_ycbcr_range; + pub fn result_type(mut self, result_type: ComponentTypeKHR) -> Self { + self.result_type = result_type; self } #[inline] - pub fn suggested_x_chroma_offset(mut self, suggested_x_chroma_offset: ChromaLocation) -> Self { - self.suggested_x_chroma_offset = suggested_x_chroma_offset; + pub fn saturating_accumulation(mut self, saturating_accumulation: bool) -> Self { + self.saturating_accumulation = saturating_accumulation.into(); self } #[inline] - pub fn suggested_y_chroma_offset(mut self, suggested_y_chroma_offset: ChromaLocation) -> Self { - self.suggested_y_chroma_offset = suggested_y_chroma_offset; + pub fn scope(mut self, scope: ScopeKHR) -> Self { + self.scope = scope; + self + } + #[inline] + pub fn workgroup_invocations(mut self, workgroup_invocations: u32) -> Self { + self.workgroup_invocations = workgroup_invocations; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ExternalFormatQNX<'a> { +pub struct PhysicalDeviceHdrVividFeaturesHUAWEI<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub external_format: u64, + pub hdr_vivid: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ExternalFormatQNX<'_> {} -unsafe impl Sync for ExternalFormatQNX<'_> {} -impl ::core::default::Default for ExternalFormatQNX<'_> { +unsafe impl Send for PhysicalDeviceHdrVividFeaturesHUAWEI<'_> {} +unsafe impl Sync for PhysicalDeviceHdrVividFeaturesHUAWEI<'_> {} +impl ::core::default::Default for PhysicalDeviceHdrVividFeaturesHUAWEI<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - external_format: u64::default(), + hdr_vivid: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ExternalFormatQNX<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_FORMAT_QNX; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceHdrVividFeaturesHUAWEI<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI; } -unsafe impl Extends> for ExternalFormatQNX<'_> {} -unsafe impl Extends> for ExternalFormatQNX<'_> {} -impl<'a> ExternalFormatQNX<'a> { +unsafe impl Extends> for PhysicalDeviceHdrVividFeaturesHUAWEI<'_> {} +unsafe impl Extends> for PhysicalDeviceHdrVividFeaturesHUAWEI<'_> {} +impl<'a> PhysicalDeviceHdrVividFeaturesHUAWEI<'a> { #[inline] - pub fn external_format(mut self, external_format: u64) -> Self { - self.external_format = external_format; + pub fn hdr_vivid(mut self, hdr_vivid: bool) -> Self { + self.hdr_vivid = hdr_vivid.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'a> { +pub struct PhysicalDeviceVertexAttributeRobustnessFeaturesEXT<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub screen_buffer_import: Bool32, + pub vertex_attribute_robustness: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'_> {} -unsafe impl Sync for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'_> {} -impl ::core::default::Default for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'_> { +unsafe impl Send for PhysicalDeviceVertexAttributeRobustnessFeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceVertexAttributeRobustnessFeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceVertexAttributeRobustnessFeaturesEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - screen_buffer_import: Bool32::default(), + vertex_attribute_robustness: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVertexAttributeRobustnessFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX; + StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT; } unsafe impl Extends> - for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'_> + for PhysicalDeviceVertexAttributeRobustnessFeaturesEXT<'_> { } unsafe impl Extends> - for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'_> + for PhysicalDeviceVertexAttributeRobustnessFeaturesEXT<'_> { } -impl<'a> PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'a> { +impl<'a> PhysicalDeviceVertexAttributeRobustnessFeaturesEXT<'a> { #[inline] - pub fn screen_buffer_import(mut self, screen_buffer_import: bool) -> Self { - self.screen_buffer_import = screen_buffer_import.into(); + pub fn vertex_attribute_robustness(mut self, vertex_attribute_robustness: bool) -> Self { + self.vertex_attribute_robustness = vertex_attribute_robustness.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceCooperativeMatrixFeaturesKHR<'a> { +pub struct PhysicalDeviceDenseGeometryFormatFeaturesAMDX<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub cooperative_matrix: Bool32, - pub cooperative_matrix_robust_buffer_access: Bool32, + pub dense_geometry_format: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceCooperativeMatrixFeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceCooperativeMatrixFeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceCooperativeMatrixFeaturesKHR<'_> { +unsafe impl Send for PhysicalDeviceDenseGeometryFormatFeaturesAMDX<'_> {} +unsafe impl Sync for PhysicalDeviceDenseGeometryFormatFeaturesAMDX<'_> {} +impl ::core::default::Default for PhysicalDeviceDenseGeometryFormatFeaturesAMDX<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - cooperative_matrix: Bool32::default(), - cooperative_matrix_robust_buffer_access: Bool32::default(), + dense_geometry_format: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCooperativeMatrixFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDenseGeometryFormatFeaturesAMDX<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR; + StructureType::PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX; } unsafe impl Extends> - for PhysicalDeviceCooperativeMatrixFeaturesKHR<'_> + for PhysicalDeviceDenseGeometryFormatFeaturesAMDX<'_> { } -unsafe impl Extends> for PhysicalDeviceCooperativeMatrixFeaturesKHR<'_> {} -impl<'a> PhysicalDeviceCooperativeMatrixFeaturesKHR<'a> { - #[inline] - pub fn cooperative_matrix(mut self, cooperative_matrix: bool) -> Self { - self.cooperative_matrix = cooperative_matrix.into(); - self - } +unsafe impl Extends> for PhysicalDeviceDenseGeometryFormatFeaturesAMDX<'_> {} +impl<'a> PhysicalDeviceDenseGeometryFormatFeaturesAMDX<'a> { #[inline] - pub fn cooperative_matrix_robust_buffer_access( - mut self, - cooperative_matrix_robust_buffer_access: bool, - ) -> Self { - self.cooperative_matrix_robust_buffer_access = - cooperative_matrix_robust_buffer_access.into(); + pub fn dense_geometry_format(mut self, dense_geometry_format: bool) -> Self { + self.dense_geometry_format = dense_geometry_format.into(); self } } #[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct CooperativeMatrixPropertiesKHR<'a> { +pub struct AccelerationStructureDenseGeometryFormatTrianglesDataAMDX<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub m_size: u32, - pub n_size: u32, - pub k_size: u32, - pub a_type: ComponentTypeKHR, - pub b_type: ComponentTypeKHR, - pub c_type: ComponentTypeKHR, - pub result_type: ComponentTypeKHR, - pub saturating_accumulation: Bool32, - pub scope: ScopeKHR, + pub p_next: *const c_void, + pub compressed_data: DeviceOrHostAddressConstKHR, + pub data_size: DeviceSize, + pub num_triangles: u32, + pub num_vertices: u32, + pub max_primitive_index: u32, + pub max_geometry_index: u32, + pub format: CompressedTriangleFormatAMDX, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for CooperativeMatrixPropertiesKHR<'_> {} -unsafe impl Sync for CooperativeMatrixPropertiesKHR<'_> {} -impl ::core::default::Default for CooperativeMatrixPropertiesKHR<'_> { +unsafe impl Send for AccelerationStructureDenseGeometryFormatTrianglesDataAMDX<'_> {} +unsafe impl Sync for AccelerationStructureDenseGeometryFormatTrianglesDataAMDX<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for AccelerationStructureDenseGeometryFormatTrianglesDataAMDX<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("AccelerationStructureDenseGeometryFormatTrianglesDataAMDX") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field("compressed_data", &"union") + .field("data_size", &self.data_size) + .field("num_triangles", &self.num_triangles) + .field("num_vertices", &self.num_vertices) + .field("max_primitive_index", &self.max_primitive_index) + .field("max_geometry_index", &self.max_geometry_index) + .field("format", &self.format) + .finish() + } +} +impl ::core::default::Default for AccelerationStructureDenseGeometryFormatTrianglesDataAMDX<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - m_size: u32::default(), - n_size: u32::default(), - k_size: u32::default(), - a_type: ComponentTypeKHR::default(), - b_type: ComponentTypeKHR::default(), - c_type: ComponentTypeKHR::default(), - result_type: ComponentTypeKHR::default(), - saturating_accumulation: Bool32::default(), - scope: ScopeKHR::default(), + p_next: ::core::ptr::null(), + compressed_data: DeviceOrHostAddressConstKHR::default(), + data_size: DeviceSize::default(), + num_triangles: u32::default(), + num_vertices: u32::default(), + max_primitive_index: u32::default(), + max_geometry_index: u32::default(), + format: CompressedTriangleFormatAMDX::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for CooperativeMatrixPropertiesKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::COOPERATIVE_MATRIX_PROPERTIES_KHR; +unsafe impl<'a> TaggedStructure<'a> + for AccelerationStructureDenseGeometryFormatTrianglesDataAMDX<'a> +{ + const STRUCTURE_TYPE: StructureType = + StructureType::ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX; } -impl<'a> CooperativeMatrixPropertiesKHR<'a> { +unsafe impl Extends> + for AccelerationStructureDenseGeometryFormatTrianglesDataAMDX<'_> +{ +} +impl<'a> AccelerationStructureDenseGeometryFormatTrianglesDataAMDX<'a> { #[inline] - pub fn m_size(mut self, m_size: u32) -> Self { - self.m_size = m_size; + pub fn compressed_data(mut self, compressed_data: DeviceOrHostAddressConstKHR) -> Self { + self.compressed_data = compressed_data; self } #[inline] - pub fn n_size(mut self, n_size: u32) -> Self { - self.n_size = n_size; + pub fn data_size(mut self, data_size: DeviceSize) -> Self { + self.data_size = data_size; self } #[inline] - pub fn k_size(mut self, k_size: u32) -> Self { - self.k_size = k_size; + pub fn num_triangles(mut self, num_triangles: u32) -> Self { + self.num_triangles = num_triangles; self } #[inline] - pub fn a_type(mut self, a_type: ComponentTypeKHR) -> Self { - self.a_type = a_type; + pub fn num_vertices(mut self, num_vertices: u32) -> Self { + self.num_vertices = num_vertices; self } #[inline] - pub fn b_type(mut self, b_type: ComponentTypeKHR) -> Self { - self.b_type = b_type; + pub fn max_primitive_index(mut self, max_primitive_index: u32) -> Self { + self.max_primitive_index = max_primitive_index; self } #[inline] - pub fn c_type(mut self, c_type: ComponentTypeKHR) -> Self { - self.c_type = c_type; + pub fn max_geometry_index(mut self, max_geometry_index: u32) -> Self { + self.max_geometry_index = max_geometry_index; self } #[inline] - pub fn result_type(mut self, result_type: ComponentTypeKHR) -> Self { - self.result_type = result_type; + pub fn format(mut self, format: CompressedTriangleFormatAMDX) -> Self { + self.format = format; self } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceDepthClampZeroOneFeaturesKHR<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub depth_clamp_zero_one: Bool32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceDepthClampZeroOneFeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceDepthClampZeroOneFeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceDepthClampZeroOneFeaturesKHR<'_> { #[inline] - pub fn saturating_accumulation(mut self, saturating_accumulation: bool) -> Self { - self.saturating_accumulation = saturating_accumulation.into(); - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + depth_clamp_zero_one: Bool32::default(), + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDepthClampZeroOneFeaturesKHR<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR; +} +unsafe impl Extends> + for PhysicalDeviceDepthClampZeroOneFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceDepthClampZeroOneFeaturesKHR<'_> {} +impl<'a> PhysicalDeviceDepthClampZeroOneFeaturesKHR<'a> { #[inline] - pub fn scope(mut self, scope: ScopeKHR) -> Self { - self.scope = scope; + pub fn depth_clamp_zero_one(mut self, depth_clamp_zero_one: bool) -> Self { + self.depth_clamp_zero_one = depth_clamp_zero_one.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceCooperativeMatrixPropertiesKHR<'a> { +pub struct PhysicalDeviceCooperativeVectorFeaturesNV<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub cooperative_matrix_supported_stages: ShaderStageFlags, + pub cooperative_vector: Bool32, + pub cooperative_vector_training: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceCooperativeMatrixPropertiesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceCooperativeMatrixPropertiesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceCooperativeMatrixPropertiesKHR<'_> { +unsafe impl Send for PhysicalDeviceCooperativeVectorFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDeviceCooperativeVectorFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceCooperativeVectorFeaturesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - cooperative_matrix_supported_stages: ShaderStageFlags::default(), + cooperative_vector: Bool32::default(), + cooperative_vector_training: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCooperativeMatrixPropertiesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCooperativeVectorFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR; -} -unsafe impl Extends> - for PhysicalDeviceCooperativeMatrixPropertiesKHR<'_> -{ + StructureType::PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV; } -impl<'a> PhysicalDeviceCooperativeMatrixPropertiesKHR<'a> { +unsafe impl Extends> for PhysicalDeviceCooperativeVectorFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceCooperativeVectorFeaturesNV<'_> {} +impl<'a> PhysicalDeviceCooperativeVectorFeaturesNV<'a> { #[inline] - pub fn cooperative_matrix_supported_stages( - mut self, - cooperative_matrix_supported_stages: ShaderStageFlags, - ) -> Self { - self.cooperative_matrix_supported_stages = cooperative_matrix_supported_stages; + pub fn cooperative_vector(mut self, cooperative_vector: bool) -> Self { + self.cooperative_vector = cooperative_vector.into(); + self + } + #[inline] + pub fn cooperative_vector_training(mut self, cooperative_vector_training: bool) -> Self { + self.cooperative_vector_training = cooperative_vector_training.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderEnqueuePropertiesAMDX<'a> { +pub struct CooperativeVectorPropertiesNV<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub max_execution_graph_depth: u32, - pub max_execution_graph_shader_output_nodes: u32, - pub max_execution_graph_shader_payload_size: u32, - pub max_execution_graph_shader_payload_count: u32, - pub execution_graph_dispatch_address_alignment: u32, + pub input_type: ComponentTypeKHR, + pub input_interpretation: ComponentTypeKHR, + pub matrix_interpretation: ComponentTypeKHR, + pub bias_interpretation: ComponentTypeKHR, + pub result_type: ComponentTypeKHR, + pub transpose: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderEnqueuePropertiesAMDX<'_> {} -unsafe impl Sync for PhysicalDeviceShaderEnqueuePropertiesAMDX<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderEnqueuePropertiesAMDX<'_> { +unsafe impl Send for CooperativeVectorPropertiesNV<'_> {} +unsafe impl Sync for CooperativeVectorPropertiesNV<'_> {} +impl ::core::default::Default for CooperativeVectorPropertiesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - max_execution_graph_depth: u32::default(), - max_execution_graph_shader_output_nodes: u32::default(), - max_execution_graph_shader_payload_size: u32::default(), - max_execution_graph_shader_payload_count: u32::default(), - execution_graph_dispatch_address_alignment: u32::default(), + input_type: ComponentTypeKHR::default(), + input_interpretation: ComponentTypeKHR::default(), + matrix_interpretation: ComponentTypeKHR::default(), + bias_interpretation: ComponentTypeKHR::default(), + result_type: ComponentTypeKHR::default(), + transpose: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderEnqueuePropertiesAMDX<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX; -} -unsafe impl Extends> - for PhysicalDeviceShaderEnqueuePropertiesAMDX<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for CooperativeVectorPropertiesNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::COOPERATIVE_VECTOR_PROPERTIES_NV; } -impl<'a> PhysicalDeviceShaderEnqueuePropertiesAMDX<'a> { +impl<'a> CooperativeVectorPropertiesNV<'a> { #[inline] - pub fn max_execution_graph_depth(mut self, max_execution_graph_depth: u32) -> Self { - self.max_execution_graph_depth = max_execution_graph_depth; + pub fn input_type(mut self, input_type: ComponentTypeKHR) -> Self { + self.input_type = input_type; self } #[inline] - pub fn max_execution_graph_shader_output_nodes( - mut self, - max_execution_graph_shader_output_nodes: u32, - ) -> Self { - self.max_execution_graph_shader_output_nodes = max_execution_graph_shader_output_nodes; + pub fn input_interpretation(mut self, input_interpretation: ComponentTypeKHR) -> Self { + self.input_interpretation = input_interpretation; self } #[inline] - pub fn max_execution_graph_shader_payload_size( - mut self, - max_execution_graph_shader_payload_size: u32, - ) -> Self { - self.max_execution_graph_shader_payload_size = max_execution_graph_shader_payload_size; + pub fn matrix_interpretation(mut self, matrix_interpretation: ComponentTypeKHR) -> Self { + self.matrix_interpretation = matrix_interpretation; self } #[inline] - pub fn max_execution_graph_shader_payload_count( - mut self, - max_execution_graph_shader_payload_count: u32, - ) -> Self { - self.max_execution_graph_shader_payload_count = max_execution_graph_shader_payload_count; + pub fn bias_interpretation(mut self, bias_interpretation: ComponentTypeKHR) -> Self { + self.bias_interpretation = bias_interpretation; self } #[inline] - pub fn execution_graph_dispatch_address_alignment( - mut self, - execution_graph_dispatch_address_alignment: u32, - ) -> Self { - self.execution_graph_dispatch_address_alignment = - execution_graph_dispatch_address_alignment; + pub fn result_type(mut self, result_type: ComponentTypeKHR) -> Self { + self.result_type = result_type; + self + } + #[inline] + pub fn transpose(mut self, transpose: bool) -> Self { + self.transpose = transpose.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> { +pub struct PhysicalDeviceCooperativeVectorPropertiesNV<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub shader_enqueue: Bool32, + pub cooperative_vector_supported_stages: ShaderStageFlags, + pub cooperative_vector_training_float16_accumulation: Bool32, + pub cooperative_vector_training_float32_accumulation: Bool32, + pub max_cooperative_vector_components: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> {} -unsafe impl Sync for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> { +unsafe impl Send for PhysicalDeviceCooperativeVectorPropertiesNV<'_> {} +unsafe impl Sync for PhysicalDeviceCooperativeVectorPropertiesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceCooperativeVectorPropertiesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - shader_enqueue: Bool32::default(), + cooperative_vector_supported_stages: ShaderStageFlags::default(), + cooperative_vector_training_float16_accumulation: Bool32::default(), + cooperative_vector_training_float32_accumulation: Bool32::default(), + max_cooperative_vector_components: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCooperativeVectorPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX; + StructureType::PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV; } -unsafe impl Extends> for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> {} -unsafe impl Extends> for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> {} -impl<'a> PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> { +unsafe impl Extends> + for PhysicalDeviceCooperativeVectorPropertiesNV<'_> +{ +} +impl<'a> PhysicalDeviceCooperativeVectorPropertiesNV<'a> { #[inline] - pub fn shader_enqueue(mut self, shader_enqueue: bool) -> Self { - self.shader_enqueue = shader_enqueue.into(); + pub fn cooperative_vector_supported_stages( + mut self, + cooperative_vector_supported_stages: ShaderStageFlags, + ) -> Self { + self.cooperative_vector_supported_stages = cooperative_vector_supported_stages; + self + } + #[inline] + pub fn cooperative_vector_training_float16_accumulation( + mut self, + cooperative_vector_training_float16_accumulation: bool, + ) -> Self { + self.cooperative_vector_training_float16_accumulation = + cooperative_vector_training_float16_accumulation.into(); + self + } + #[inline] + pub fn cooperative_vector_training_float32_accumulation( + mut self, + cooperative_vector_training_float32_accumulation: bool, + ) -> Self { + self.cooperative_vector_training_float32_accumulation = + cooperative_vector_training_float32_accumulation.into(); + self + } + #[inline] + pub fn max_cooperative_vector_components( + mut self, + max_cooperative_vector_components: u32, + ) -> Self { + self.max_cooperative_vector_components = max_cooperative_vector_components; self } } #[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ExecutionGraphPipelineCreateInfoAMDX<'a> { +pub struct ConvertCooperativeVectorMatrixInfoNV<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub flags: PipelineCreateFlags, - pub stage_count: u32, - pub p_stages: *const PipelineShaderStageCreateInfo<'a>, - pub p_library_info: *const PipelineLibraryCreateInfoKHR<'a>, - pub layout: PipelineLayout, - pub base_pipeline_handle: Pipeline, - pub base_pipeline_index: i32, - pub _marker: PhantomData<&'a ()>, + pub src_size: usize, + pub src_data: DeviceOrHostAddressConstKHR, + pub p_dst_size: *mut usize, + pub dst_data: DeviceOrHostAddressKHR, + pub src_component_type: ComponentTypeKHR, + pub dst_component_type: ComponentTypeKHR, + pub num_rows: u32, + pub num_columns: u32, + pub src_layout: CooperativeVectorMatrixLayoutNV, + pub src_stride: usize, + pub dst_layout: CooperativeVectorMatrixLayoutNV, + pub dst_stride: usize, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for ConvertCooperativeVectorMatrixInfoNV<'_> {} +unsafe impl Sync for ConvertCooperativeVectorMatrixInfoNV<'_> {} +#[cfg(feature = "debug")] +impl fmt::Debug for ConvertCooperativeVectorMatrixInfoNV<'_> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("ConvertCooperativeVectorMatrixInfoNV") + .field("s_type", &self.s_type) + .field("p_next", &self.p_next) + .field("src_size", &self.src_size) + .field("src_data", &"union") + .field("p_dst_size", &self.p_dst_size) + .field("dst_data", &"union") + .field("src_component_type", &self.src_component_type) + .field("dst_component_type", &self.dst_component_type) + .field("num_rows", &self.num_rows) + .field("num_columns", &self.num_columns) + .field("src_layout", &self.src_layout) + .field("src_stride", &self.src_stride) + .field("dst_layout", &self.dst_layout) + .field("dst_stride", &self.dst_stride) + .finish() + } } -unsafe impl Send for ExecutionGraphPipelineCreateInfoAMDX<'_> {} -unsafe impl Sync for ExecutionGraphPipelineCreateInfoAMDX<'_> {} -impl ::core::default::Default for ExecutionGraphPipelineCreateInfoAMDX<'_> { +impl ::core::default::Default for ConvertCooperativeVectorMatrixInfoNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - flags: PipelineCreateFlags::default(), - stage_count: u32::default(), - p_stages: ::core::ptr::null(), - p_library_info: ::core::ptr::null(), - layout: PipelineLayout::default(), - base_pipeline_handle: Pipeline::default(), - base_pipeline_index: i32::default(), + src_size: usize::default(), + src_data: DeviceOrHostAddressConstKHR::default(), + p_dst_size: ::core::ptr::null_mut(), + dst_data: DeviceOrHostAddressKHR::default(), + src_component_type: ComponentTypeKHR::default(), + dst_component_type: ComponentTypeKHR::default(), + num_rows: u32::default(), + num_columns: u32::default(), + src_layout: CooperativeVectorMatrixLayoutNV::default(), + src_stride: usize::default(), + dst_layout: CooperativeVectorMatrixLayoutNV::default(), + dst_stride: usize::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ExecutionGraphPipelineCreateInfoAMDX<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX; +unsafe impl<'a> TaggedStructure<'a> for ConvertCooperativeVectorMatrixInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV; } -impl<'a> ExecutionGraphPipelineCreateInfoAMDX<'a> { +impl<'a> ConvertCooperativeVectorMatrixInfoNV<'a> { #[inline] - pub fn flags(mut self, flags: PipelineCreateFlags) -> Self { - self.flags = flags; + pub fn src_size(mut self, src_size: usize) -> Self { + self.src_size = src_size; self } #[inline] - pub fn stages(mut self, stages: &'a [PipelineShaderStageCreateInfo<'a>]) -> Self { - self.stage_count = stages.len() as _; - self.p_stages = stages.as_ptr(); + pub fn src_data(mut self, src_data: DeviceOrHostAddressConstKHR) -> Self { + self.src_data = src_data; self } #[inline] - pub fn library_info(mut self, library_info: &'a PipelineLibraryCreateInfoKHR<'a>) -> Self { - self.p_library_info = library_info; + pub fn dst_size(mut self, dst_size: &'a mut usize) -> Self { + self.p_dst_size = dst_size; self } #[inline] - pub fn layout(mut self, layout: PipelineLayout) -> Self { - self.layout = layout; + pub fn dst_data(mut self, dst_data: DeviceOrHostAddressKHR) -> Self { + self.dst_data = dst_data; self } #[inline] - pub fn base_pipeline_handle(mut self, base_pipeline_handle: Pipeline) -> Self { - self.base_pipeline_handle = base_pipeline_handle; + pub fn src_component_type(mut self, src_component_type: ComponentTypeKHR) -> Self { + self.src_component_type = src_component_type; self } #[inline] - pub fn base_pipeline_index(mut self, base_pipeline_index: i32) -> Self { - self.base_pipeline_index = base_pipeline_index; + pub fn dst_component_type(mut self, dst_component_type: ComponentTypeKHR) -> Self { + self.dst_component_type = dst_component_type; + self + } + #[inline] + pub fn num_rows(mut self, num_rows: u32) -> Self { + self.num_rows = num_rows; + self + } + #[inline] + pub fn num_columns(mut self, num_columns: u32) -> Self { + self.num_columns = num_columns; + self + } + #[inline] + pub fn src_layout(mut self, src_layout: CooperativeVectorMatrixLayoutNV) -> Self { + self.src_layout = src_layout; + self + } + #[inline] + pub fn src_stride(mut self, src_stride: usize) -> Self { + self.src_stride = src_stride; + self + } + #[inline] + pub fn dst_layout(mut self, dst_layout: CooperativeVectorMatrixLayoutNV) -> Self { + self.dst_layout = dst_layout; + self + } + #[inline] + pub fn dst_stride(mut self, dst_stride: usize) -> Self { + self.dst_stride = dst_stride; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PipelineShaderStageNodeCreateInfoAMDX<'a> { +pub struct PhysicalDeviceTileShadingFeaturesQCOM<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub p_name: *const c_char, - pub index: u32, + pub p_next: *mut c_void, + pub tile_shading: Bool32, + pub tile_shading_fragment_stage: Bool32, + pub tile_shading_color_attachments: Bool32, + pub tile_shading_depth_attachments: Bool32, + pub tile_shading_stencil_attachments: Bool32, + pub tile_shading_input_attachments: Bool32, + pub tile_shading_sampled_attachments: Bool32, + pub tile_shading_per_tile_draw: Bool32, + pub tile_shading_per_tile_dispatch: Bool32, + pub tile_shading_dispatch_tile: Bool32, + pub tile_shading_apron: Bool32, + pub tile_shading_anisotropic_apron: Bool32, + pub tile_shading_atomic_ops: Bool32, + pub tile_shading_image_processing: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PipelineShaderStageNodeCreateInfoAMDX<'_> {} -unsafe impl Sync for PipelineShaderStageNodeCreateInfoAMDX<'_> {} -impl ::core::default::Default for PipelineShaderStageNodeCreateInfoAMDX<'_> { +unsafe impl Send for PhysicalDeviceTileShadingFeaturesQCOM<'_> {} +unsafe impl Sync for PhysicalDeviceTileShadingFeaturesQCOM<'_> {} +impl ::core::default::Default for PhysicalDeviceTileShadingFeaturesQCOM<'_> { + #[inline] + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + tile_shading: Bool32::default(), + tile_shading_fragment_stage: Bool32::default(), + tile_shading_color_attachments: Bool32::default(), + tile_shading_depth_attachments: Bool32::default(), + tile_shading_stencil_attachments: Bool32::default(), + tile_shading_input_attachments: Bool32::default(), + tile_shading_sampled_attachments: Bool32::default(), + tile_shading_per_tile_draw: Bool32::default(), + tile_shading_per_tile_dispatch: Bool32::default(), + tile_shading_dispatch_tile: Bool32::default(), + tile_shading_apron: Bool32::default(), + tile_shading_anisotropic_apron: Bool32::default(), + tile_shading_atomic_ops: Bool32::default(), + tile_shading_image_processing: Bool32::default(), + _marker: PhantomData, + } + } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceTileShadingFeaturesQCOM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM; +} +unsafe impl Extends> for PhysicalDeviceTileShadingFeaturesQCOM<'_> {} +unsafe impl Extends> for PhysicalDeviceTileShadingFeaturesQCOM<'_> {} +impl<'a> PhysicalDeviceTileShadingFeaturesQCOM<'a> { + #[inline] + pub fn tile_shading(mut self, tile_shading: bool) -> Self { + self.tile_shading = tile_shading.into(); + self + } + #[inline] + pub fn tile_shading_fragment_stage(mut self, tile_shading_fragment_stage: bool) -> Self { + self.tile_shading_fragment_stage = tile_shading_fragment_stage.into(); + self + } + #[inline] + pub fn tile_shading_color_attachments(mut self, tile_shading_color_attachments: bool) -> Self { + self.tile_shading_color_attachments = tile_shading_color_attachments.into(); + self + } + #[inline] + pub fn tile_shading_depth_attachments(mut self, tile_shading_depth_attachments: bool) -> Self { + self.tile_shading_depth_attachments = tile_shading_depth_attachments.into(); + self + } + #[inline] + pub fn tile_shading_stencil_attachments( + mut self, + tile_shading_stencil_attachments: bool, + ) -> Self { + self.tile_shading_stencil_attachments = tile_shading_stencil_attachments.into(); + self + } + #[inline] + pub fn tile_shading_input_attachments(mut self, tile_shading_input_attachments: bool) -> Self { + self.tile_shading_input_attachments = tile_shading_input_attachments.into(); + self + } + #[inline] + pub fn tile_shading_sampled_attachments( + mut self, + tile_shading_sampled_attachments: bool, + ) -> Self { + self.tile_shading_sampled_attachments = tile_shading_sampled_attachments.into(); + self + } + #[inline] + pub fn tile_shading_per_tile_draw(mut self, tile_shading_per_tile_draw: bool) -> Self { + self.tile_shading_per_tile_draw = tile_shading_per_tile_draw.into(); + self + } + #[inline] + pub fn tile_shading_per_tile_dispatch(mut self, tile_shading_per_tile_dispatch: bool) -> Self { + self.tile_shading_per_tile_dispatch = tile_shading_per_tile_dispatch.into(); + self + } + #[inline] + pub fn tile_shading_dispatch_tile(mut self, tile_shading_dispatch_tile: bool) -> Self { + self.tile_shading_dispatch_tile = tile_shading_dispatch_tile.into(); + self + } #[inline] - fn default() -> Self { - Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - p_name: ::core::ptr::null(), - index: u32::default(), - _marker: PhantomData, - } + pub fn tile_shading_apron(mut self, tile_shading_apron: bool) -> Self { + self.tile_shading_apron = tile_shading_apron.into(); + self } -} -unsafe impl<'a> TaggedStructure<'a> for PipelineShaderStageNodeCreateInfoAMDX<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX; -} -unsafe impl Extends> - for PipelineShaderStageNodeCreateInfoAMDX<'_> -{ -} -impl<'a> PipelineShaderStageNodeCreateInfoAMDX<'a> { #[inline] - pub fn name(mut self, name: &'a CStr) -> Self { - self.p_name = name.as_ptr(); + pub fn tile_shading_anisotropic_apron(mut self, tile_shading_anisotropic_apron: bool) -> Self { + self.tile_shading_anisotropic_apron = tile_shading_anisotropic_apron.into(); self } #[inline] - pub unsafe fn name_as_c_str(&self) -> Option<&CStr> { - if self.p_name.is_null() { - None - } else { - Some(CStr::from_ptr(self.p_name)) - } + pub fn tile_shading_atomic_ops(mut self, tile_shading_atomic_ops: bool) -> Self { + self.tile_shading_atomic_ops = tile_shading_atomic_ops.into(); + self } #[inline] - pub fn index(mut self, index: u32) -> Self { - self.index = index; + pub fn tile_shading_image_processing(mut self, tile_shading_image_processing: bool) -> Self { + self.tile_shading_image_processing = tile_shading_image_processing.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ExecutionGraphPipelineScratchSizeAMDX<'a> { +pub struct PhysicalDeviceTileShadingPropertiesQCOM<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub size: DeviceSize, + pub max_apron_size: u32, + pub prefer_non_coherent: Bool32, + pub tile_granularity: Extent2D, + pub max_tile_shading_rate: Extent2D, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ExecutionGraphPipelineScratchSizeAMDX<'_> {} -unsafe impl Sync for ExecutionGraphPipelineScratchSizeAMDX<'_> {} -impl ::core::default::Default for ExecutionGraphPipelineScratchSizeAMDX<'_> { +unsafe impl Send for PhysicalDeviceTileShadingPropertiesQCOM<'_> {} +unsafe impl Sync for PhysicalDeviceTileShadingPropertiesQCOM<'_> {} +impl ::core::default::Default for PhysicalDeviceTileShadingPropertiesQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - size: DeviceSize::default(), + max_apron_size: u32::default(), + prefer_non_coherent: Bool32::default(), + tile_granularity: Extent2D::default(), + max_tile_shading_rate: Extent2D::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ExecutionGraphPipelineScratchSizeAMDX<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX; -} -impl<'a> ExecutionGraphPipelineScratchSizeAMDX<'a> { - #[inline] - pub fn size(mut self, size: DeviceSize) -> Self { - self.size = size; - self - } -} -#[repr(C)] -#[derive(Copy, Clone, Default)] -#[doc = ""] -#[must_use] -pub struct DispatchGraphInfoAMDX { - pub node_index: u32, - pub payload_count: u32, - pub payloads: DeviceOrHostAddressConstAMDX, - pub payload_stride: u64, -} -#[cfg(feature = "debug")] -impl fmt::Debug for DispatchGraphInfoAMDX { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("DispatchGraphInfoAMDX") - .field("node_index", &self.node_index) - .field("payload_count", &self.payload_count) - .field("payloads", &"union") - .field("payload_stride", &self.payload_stride) - .finish() - } +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceTileShadingPropertiesQCOM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM; } -impl DispatchGraphInfoAMDX { +unsafe impl Extends> for PhysicalDeviceTileShadingPropertiesQCOM<'_> {} +impl<'a> PhysicalDeviceTileShadingPropertiesQCOM<'a> { #[inline] - pub fn node_index(mut self, node_index: u32) -> Self { - self.node_index = node_index; + pub fn max_apron_size(mut self, max_apron_size: u32) -> Self { + self.max_apron_size = max_apron_size; self } #[inline] - pub fn payload_count(mut self, payload_count: u32) -> Self { - self.payload_count = payload_count; + pub fn prefer_non_coherent(mut self, prefer_non_coherent: bool) -> Self { + self.prefer_non_coherent = prefer_non_coherent.into(); self } #[inline] - pub fn payloads(mut self, payloads: DeviceOrHostAddressConstAMDX) -> Self { - self.payloads = payloads; + pub fn tile_granularity(mut self, tile_granularity: Extent2D) -> Self { + self.tile_granularity = tile_granularity; self } #[inline] - pub fn payload_stride(mut self, payload_stride: u64) -> Self { - self.payload_stride = payload_stride; + pub fn max_tile_shading_rate(mut self, max_tile_shading_rate: Extent2D) -> Self { + self.max_tile_shading_rate = max_tile_shading_rate; self } } #[repr(C)] -#[derive(Copy, Clone, Default)] -#[doc = ""] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] #[must_use] -pub struct DispatchGraphCountInfoAMDX { - pub count: u32, - pub infos: DeviceOrHostAddressConstAMDX, - pub stride: u64, -} -#[cfg(feature = "debug")] -impl fmt::Debug for DispatchGraphCountInfoAMDX { - fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt.debug_struct("DispatchGraphCountInfoAMDX") - .field("count", &self.count) - .field("infos", &"union") - .field("stride", &self.stride) - .finish() - } +pub struct RenderPassTileShadingCreateInfoQCOM<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub flags: TileShadingRenderPassFlagsQCOM, + pub tile_apron_size: Extent2D, + pub _marker: PhantomData<&'a ()>, } -impl DispatchGraphCountInfoAMDX { +unsafe impl Send for RenderPassTileShadingCreateInfoQCOM<'_> {} +unsafe impl Sync for RenderPassTileShadingCreateInfoQCOM<'_> {} +impl ::core::default::Default for RenderPassTileShadingCreateInfoQCOM<'_> { #[inline] - pub fn count(mut self, count: u32) -> Self { - self.count = count; - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + flags: TileShadingRenderPassFlagsQCOM::default(), + tile_apron_size: Extent2D::default(), + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for RenderPassTileShadingCreateInfoQCOM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM; +} +unsafe impl Extends> for RenderPassTileShadingCreateInfoQCOM<'_> {} +unsafe impl Extends> for RenderPassTileShadingCreateInfoQCOM<'_> {} +unsafe impl Extends> for RenderPassTileShadingCreateInfoQCOM<'_> {} +unsafe impl Extends> for RenderPassTileShadingCreateInfoQCOM<'_> {} +impl<'a> RenderPassTileShadingCreateInfoQCOM<'a> { #[inline] - pub fn infos(mut self, infos: DeviceOrHostAddressConstAMDX) -> Self { - self.infos = infos; + pub fn flags(mut self, flags: TileShadingRenderPassFlagsQCOM) -> Self { + self.flags = flags; self } #[inline] - pub fn stride(mut self, stride: u64) -> Self { - self.stride = stride; + pub fn tile_apron_size(mut self, tile_apron_size: Extent2D) -> Self { + self.tile_apron_size = tile_apron_size; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceAntiLagFeaturesAMD<'a> { +pub struct PerTileBeginInfoQCOM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub anti_lag: Bool32, + pub p_next: *const c_void, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceAntiLagFeaturesAMD<'_> {} -unsafe impl Sync for PhysicalDeviceAntiLagFeaturesAMD<'_> {} -impl ::core::default::Default for PhysicalDeviceAntiLagFeaturesAMD<'_> { +unsafe impl Send for PerTileBeginInfoQCOM<'_> {} +unsafe impl Sync for PerTileBeginInfoQCOM<'_> {} +impl ::core::default::Default for PerTileBeginInfoQCOM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - anti_lag: Bool32::default(), + p_next: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceAntiLagFeaturesAMD<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD; +unsafe impl<'a> TaggedStructure<'a> for PerTileBeginInfoQCOM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PER_TILE_BEGIN_INFO_QCOM; } -unsafe impl Extends> for PhysicalDeviceAntiLagFeaturesAMD<'_> {} -unsafe impl Extends> for PhysicalDeviceAntiLagFeaturesAMD<'_> {} -impl<'a> PhysicalDeviceAntiLagFeaturesAMD<'a> { +impl<'a> PerTileBeginInfoQCOM<'a> {} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PerTileEndInfoQCOM<'a> { + pub s_type: StructureType, + pub p_next: *const c_void, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PerTileEndInfoQCOM<'_> {} +unsafe impl Sync for PerTileEndInfoQCOM<'_> {} +impl ::core::default::Default for PerTileEndInfoQCOM<'_> { #[inline] - pub fn anti_lag(mut self, anti_lag: bool) -> Self { - self.anti_lag = anti_lag.into(); - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null(), + _marker: PhantomData, + } } } +unsafe impl<'a> TaggedStructure<'a> for PerTileEndInfoQCOM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PER_TILE_END_INFO_QCOM; +} +impl<'a> PerTileEndInfoQCOM<'a> {} #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct AntiLagDataAMD<'a> { +pub struct DispatchTileInfoQCOM<'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<'_> { +unsafe impl Send for DispatchTileInfoQCOM<'_> {} +unsafe impl Sync for DispatchTileInfoQCOM<'_> {} +impl ::core::default::Default for DispatchTileInfoQCOM<'_> { #[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<'a> for AntiLagDataAMD<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::ANTI_LAG_DATA_AMD; +unsafe impl<'a> TaggedStructure<'a> for DispatchTileInfoQCOM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DISPATCH_TILE_INFO_QCOM; } -impl<'a> AntiLagDataAMD<'a> { - #[inline] - pub fn mode(mut self, mode: AntiLagModeAMD) -> Self { - self.mode = mode; - self - } +impl<'a> DispatchTileInfoQCOM<'a> {} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub max_fragment_density_map_layers: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE<'_> {} +unsafe impl Sync for PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE<'_> {} +impl ::core::default::Default for PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE<'_> { #[inline] - pub fn max_fps(mut self, max_fps: u32) -> Self { - self.max_fps = max_fps; - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + max_fragment_density_map_layers: u32::default(), + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE; +} +unsafe impl Extends> + for PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE<'_> +{ +} +impl<'a> PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE<'a> { #[inline] - pub fn presentation_info( - mut self, - presentation_info: &'a AntiLagPresentationInfoAMD<'a>, - ) -> Self { - self.p_presentation_info = presentation_info; + pub fn max_fragment_density_map_layers(mut self, max_fragment_density_map_layers: u32) -> Self { + self.max_fragment_density_map_layers = max_fragment_density_map_layers; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct AntiLagPresentationInfoAMD<'a> { +pub struct PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub stage: AntiLagStageAMD, - pub frame_index: u64, + pub fragment_density_map_layered: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for AntiLagPresentationInfoAMD<'_> {} -unsafe impl Sync for AntiLagPresentationInfoAMD<'_> {} -impl ::core::default::Default for AntiLagPresentationInfoAMD<'_> { +unsafe impl Send for PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE<'_> {} +unsafe impl Sync for PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE<'_> {} +impl ::core::default::Default for PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - stage: AntiLagStageAMD::default(), - frame_index: u64::default(), + fragment_density_map_layered: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for AntiLagPresentationInfoAMD<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::ANTI_LAG_PRESENTATION_INFO_AMD; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE; } -impl<'a> AntiLagPresentationInfoAMD<'a> { - #[inline] - pub fn stage(mut self, stage: AntiLagStageAMD) -> Self { - self.stage = stage; - self - } +unsafe impl Extends> + for PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE<'_> +{ +} +unsafe impl Extends> + for PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE<'_> +{ +} +impl<'a> PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE<'a> { #[inline] - pub fn frame_index(mut self, frame_index: u64) -> Self { - self.frame_index = frame_index; + pub fn fragment_density_map_layered(mut self, fragment_density_map_layered: bool) -> Self { + self.fragment_density_map_layered = fragment_density_map_layered.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct BindMemoryStatusKHR<'a> { +pub struct PipelineFragmentDensityMapLayeredCreateInfoVALVE<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub p_result: *mut Result, + pub max_fragment_density_map_layers: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for BindMemoryStatusKHR<'_> {} -unsafe impl Sync for BindMemoryStatusKHR<'_> {} -impl ::core::default::Default for BindMemoryStatusKHR<'_> { +unsafe impl Send for PipelineFragmentDensityMapLayeredCreateInfoVALVE<'_> {} +unsafe impl Sync for PipelineFragmentDensityMapLayeredCreateInfoVALVE<'_> {} +impl ::core::default::Default for PipelineFragmentDensityMapLayeredCreateInfoVALVE<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - p_result: ::core::ptr::null_mut(), + max_fragment_density_map_layers: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for BindMemoryStatusKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::BIND_MEMORY_STATUS_KHR; +unsafe impl<'a> TaggedStructure<'a> for PipelineFragmentDensityMapLayeredCreateInfoVALVE<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE; +} +unsafe impl Extends> + for PipelineFragmentDensityMapLayeredCreateInfoVALVE<'_> +{ } -unsafe impl Extends> for BindMemoryStatusKHR<'_> {} -unsafe impl Extends> for BindMemoryStatusKHR<'_> {} -impl<'a> BindMemoryStatusKHR<'a> { +impl<'a> PipelineFragmentDensityMapLayeredCreateInfoVALVE<'a> { #[inline] - pub fn result(mut self, result: &'a mut Result) -> Self { - self.p_result = result; + pub fn max_fragment_density_map_layers(mut self, max_fragment_density_map_layers: u32) -> Self { + self.max_fragment_density_map_layers = max_fragment_density_map_layers; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct BindDescriptorSetsInfoKHR<'a> { +pub struct SetPresentConfigNV<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub stage_flags: ShaderStageFlags, - pub layout: PipelineLayout, - pub first_set: u32, - pub descriptor_set_count: u32, - pub p_descriptor_sets: *const DescriptorSet, - pub dynamic_offset_count: u32, - pub p_dynamic_offsets: *const u32, + pub num_frames_per_batch: u32, + pub present_config_feedback: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for BindDescriptorSetsInfoKHR<'_> {} -unsafe impl Sync for BindDescriptorSetsInfoKHR<'_> {} -impl ::core::default::Default for BindDescriptorSetsInfoKHR<'_> { +unsafe impl Send for SetPresentConfigNV<'_> {} +unsafe impl Sync for SetPresentConfigNV<'_> {} +impl ::core::default::Default for SetPresentConfigNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - stage_flags: ShaderStageFlags::default(), - layout: PipelineLayout::default(), - first_set: u32::default(), - descriptor_set_count: u32::default(), - p_descriptor_sets: ::core::ptr::null(), - dynamic_offset_count: u32::default(), - p_dynamic_offsets: ::core::ptr::null(), + num_frames_per_batch: u32::default(), + present_config_feedback: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for BindDescriptorSetsInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::BIND_DESCRIPTOR_SETS_INFO_KHR; +unsafe impl<'a> TaggedStructure<'a> for SetPresentConfigNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SET_PRESENT_CONFIG_NV; } -impl<'a> BindDescriptorSetsInfoKHR<'a> { - #[inline] - pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { - self.stage_flags = stage_flags; - self - } - #[inline] - pub fn layout(mut self, layout: PipelineLayout) -> Self { - self.layout = layout; - self - } - #[inline] - pub fn first_set(mut self, first_set: u32) -> Self { - self.first_set = first_set; - self - } +unsafe impl Extends> for SetPresentConfigNV<'_> {} +impl<'a> SetPresentConfigNV<'a> { #[inline] - pub fn descriptor_sets(mut self, descriptor_sets: &'a [DescriptorSet]) -> Self { - self.descriptor_set_count = descriptor_sets.len() as _; - self.p_descriptor_sets = descriptor_sets.as_ptr(); + pub fn num_frames_per_batch(mut self, num_frames_per_batch: u32) -> Self { + self.num_frames_per_batch = num_frames_per_batch; self } #[inline] - pub fn dynamic_offsets(mut self, dynamic_offsets: &'a [u32]) -> Self { - self.dynamic_offset_count = dynamic_offsets.len() as _; - self.p_dynamic_offsets = dynamic_offsets.as_ptr(); + pub fn present_config_feedback(mut self, present_config_feedback: u32) -> Self { + self.present_config_feedback = present_config_feedback; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PushConstantsInfoKHR<'a> { +pub struct PhysicalDevicePresentMeteringFeaturesNV<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub layout: PipelineLayout, - pub stage_flags: ShaderStageFlags, - pub offset: u32, - pub size: u32, - pub p_values: *const c_void, + pub p_next: *mut c_void, + pub present_metering: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PushConstantsInfoKHR<'_> {} -unsafe impl Sync for PushConstantsInfoKHR<'_> {} -impl ::core::default::Default for PushConstantsInfoKHR<'_> { +unsafe impl Send for PhysicalDevicePresentMeteringFeaturesNV<'_> {} +unsafe impl Sync for PhysicalDevicePresentMeteringFeaturesNV<'_> {} +impl ::core::default::Default for PhysicalDevicePresentMeteringFeaturesNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - layout: PipelineLayout::default(), - stage_flags: ShaderStageFlags::default(), - offset: u32::default(), - size: u32::default(), - p_values: ::core::ptr::null(), + p_next: ::core::ptr::null_mut(), + present_metering: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PushConstantsInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PUSH_CONSTANTS_INFO_KHR; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePresentMeteringFeaturesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV; } -impl<'a> PushConstantsInfoKHR<'a> { - #[inline] - pub fn layout(mut self, layout: PipelineLayout) -> Self { - self.layout = layout; - self - } - #[inline] - pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { - self.stage_flags = stage_flags; - self - } - #[inline] - pub fn offset(mut self, offset: u32) -> Self { - self.offset = offset; - self - } +unsafe impl Extends> for PhysicalDevicePresentMeteringFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDevicePresentMeteringFeaturesNV<'_> {} +impl<'a> PhysicalDevicePresentMeteringFeaturesNV<'a> { #[inline] - pub fn values(mut self, values: &'a [u8]) -> Self { - self.size = values.len() as _; - self.p_values = values.as_ptr().cast(); + pub fn present_metering(mut self, present_metering: bool) -> Self { + self.present_metering = present_metering.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PushDescriptorSetInfoKHR<'a> { +pub struct ExternalComputeQueueDeviceCreateInfoNV<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub stage_flags: ShaderStageFlags, - pub layout: PipelineLayout, - pub set: u32, - pub descriptor_write_count: u32, - pub p_descriptor_writes: *const WriteDescriptorSet<'a>, + pub reserved_external_queues: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PushDescriptorSetInfoKHR<'_> {} -unsafe impl Sync for PushDescriptorSetInfoKHR<'_> {} -impl ::core::default::Default for PushDescriptorSetInfoKHR<'_> { +unsafe impl Send for ExternalComputeQueueDeviceCreateInfoNV<'_> {} +unsafe impl Sync for ExternalComputeQueueDeviceCreateInfoNV<'_> {} +impl ::core::default::Default for ExternalComputeQueueDeviceCreateInfoNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - stage_flags: ShaderStageFlags::default(), - layout: PipelineLayout::default(), - set: u32::default(), - descriptor_write_count: u32::default(), - p_descriptor_writes: ::core::ptr::null(), + reserved_external_queues: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PushDescriptorSetInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PUSH_DESCRIPTOR_SET_INFO_KHR; +unsafe impl<'a> TaggedStructure<'a> for ExternalComputeQueueDeviceCreateInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV; } -impl<'a> PushDescriptorSetInfoKHR<'a> { - #[inline] - pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { - self.stage_flags = stage_flags; - self - } - #[inline] - pub fn layout(mut self, layout: PipelineLayout) -> Self { - self.layout = layout; - self - } - #[inline] - pub fn set(mut self, set: u32) -> Self { - self.set = set; - self - } +unsafe impl Extends> for ExternalComputeQueueDeviceCreateInfoNV<'_> {} +impl<'a> ExternalComputeQueueDeviceCreateInfoNV<'a> { #[inline] - pub fn descriptor_writes(mut self, descriptor_writes: &'a [WriteDescriptorSet<'a>]) -> Self { - self.descriptor_write_count = descriptor_writes.len() as _; - self.p_descriptor_writes = descriptor_writes.as_ptr(); + pub fn reserved_external_queues(mut self, reserved_external_queues: u32) -> Self { + self.reserved_external_queues = reserved_external_queues; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PushDescriptorSetWithTemplateInfoKHR<'a> { +pub struct ExternalComputeQueueCreateInfoNV<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub descriptor_update_template: DescriptorUpdateTemplate, - pub layout: PipelineLayout, - pub set: u32, - pub p_data: *const c_void, + pub preferred_queue: Queue, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PushDescriptorSetWithTemplateInfoKHR<'_> {} -unsafe impl Sync for PushDescriptorSetWithTemplateInfoKHR<'_> {} -impl ::core::default::Default for PushDescriptorSetWithTemplateInfoKHR<'_> { +unsafe impl Send for ExternalComputeQueueCreateInfoNV<'_> {} +unsafe impl Sync for ExternalComputeQueueCreateInfoNV<'_> {} +impl ::core::default::Default for ExternalComputeQueueCreateInfoNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - descriptor_update_template: DescriptorUpdateTemplate::default(), - layout: PipelineLayout::default(), - set: u32::default(), - p_data: ::core::ptr::null(), + preferred_queue: Queue::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PushDescriptorSetWithTemplateInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR; +unsafe impl<'a> TaggedStructure<'a> for ExternalComputeQueueCreateInfoNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV; } -impl<'a> PushDescriptorSetWithTemplateInfoKHR<'a> { - #[inline] - pub fn descriptor_update_template( - mut self, - descriptor_update_template: DescriptorUpdateTemplate, - ) -> Self { - self.descriptor_update_template = descriptor_update_template; - self - } - #[inline] - pub fn layout(mut self, layout: PipelineLayout) -> Self { - self.layout = layout; - self - } - #[inline] - pub fn set(mut self, set: u32) -> Self { - self.set = set; - self - } +impl<'a> ExternalComputeQueueCreateInfoNV<'a> { #[inline] - pub fn data(mut self, data: *const c_void) -> Self { - self.p_data = data; + pub fn preferred_queue(mut self, preferred_queue: Queue) -> Self { + self.preferred_queue = preferred_queue; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct SetDescriptorBufferOffsetsInfoEXT<'a> { +pub struct ExternalComputeQueueDataParamsNV<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub stage_flags: ShaderStageFlags, - pub layout: PipelineLayout, - pub first_set: u32, - pub set_count: u32, - pub p_buffer_indices: *const u32, - pub p_offsets: *const DeviceSize, + pub device_index: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for SetDescriptorBufferOffsetsInfoEXT<'_> {} -unsafe impl Sync for SetDescriptorBufferOffsetsInfoEXT<'_> {} -impl ::core::default::Default for SetDescriptorBufferOffsetsInfoEXT<'_> { +unsafe impl Send for ExternalComputeQueueDataParamsNV<'_> {} +unsafe impl Sync for ExternalComputeQueueDataParamsNV<'_> {} +impl ::core::default::Default for ExternalComputeQueueDataParamsNV<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - stage_flags: ShaderStageFlags::default(), - layout: PipelineLayout::default(), - first_set: u32::default(), - set_count: u32::default(), - p_buffer_indices: ::core::ptr::null(), - p_offsets: ::core::ptr::null(), + device_index: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for SetDescriptorBufferOffsetsInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for ExternalComputeQueueDataParamsNV<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV; } -impl<'a> SetDescriptorBufferOffsetsInfoEXT<'a> { - #[inline] - pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { - self.stage_flags = stage_flags; - self - } +impl<'a> ExternalComputeQueueDataParamsNV<'a> { #[inline] - pub fn layout(mut self, layout: PipelineLayout) -> Self { - self.layout = layout; + pub fn device_index(mut self, device_index: u32) -> Self { + self.device_index = device_index; self } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceExternalComputeQueuePropertiesNV<'a> { + pub s_type: StructureType, + pub p_next: *mut c_void, + pub external_data_size: u32, + pub max_external_queues: u32, + pub _marker: PhantomData<&'a ()>, +} +unsafe impl Send for PhysicalDeviceExternalComputeQueuePropertiesNV<'_> {} +unsafe impl Sync for PhysicalDeviceExternalComputeQueuePropertiesNV<'_> {} +impl ::core::default::Default for PhysicalDeviceExternalComputeQueuePropertiesNV<'_> { #[inline] - pub fn first_set(mut self, first_set: u32) -> Self { - self.first_set = first_set; - self + fn default() -> Self { + Self { + s_type: Self::STRUCTURE_TYPE, + p_next: ::core::ptr::null_mut(), + external_data_size: u32::default(), + max_external_queues: u32::default(), + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExternalComputeQueuePropertiesNV<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV; +} +unsafe impl Extends> + for PhysicalDeviceExternalComputeQueuePropertiesNV<'_> +{ +} +impl<'a> PhysicalDeviceExternalComputeQueuePropertiesNV<'a> { #[inline] - pub fn buffer_indices(mut self, buffer_indices: &'a [u32]) -> Self { - self.set_count = buffer_indices.len() as _; - self.p_buffer_indices = buffer_indices.as_ptr(); + pub fn external_data_size(mut self, external_data_size: u32) -> Self { + self.external_data_size = external_data_size; self } #[inline] - pub fn offsets(mut self, offsets: &'a [DeviceSize]) -> Self { - self.set_count = offsets.len() as _; - self.p_offsets = offsets.as_ptr(); + pub fn max_external_queues(mut self, max_external_queues: u32) -> Self { + self.max_external_queues = max_external_queues; self } } +define_handle ! (ExternalComputeQueueNV , EXTERNAL_COMPUTE_QUEUE_NV , doc = "") ; #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct BindDescriptorBufferEmbeddedSamplersInfoEXT<'a> { +pub struct PhysicalDeviceFormatPackFeaturesARM<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub stage_flags: ShaderStageFlags, - pub layout: PipelineLayout, - pub set: u32, + pub p_next: *mut c_void, + pub format_pack: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for BindDescriptorBufferEmbeddedSamplersInfoEXT<'_> {} -unsafe impl Sync for BindDescriptorBufferEmbeddedSamplersInfoEXT<'_> {} -impl ::core::default::Default for BindDescriptorBufferEmbeddedSamplersInfoEXT<'_> { +unsafe impl Send for PhysicalDeviceFormatPackFeaturesARM<'_> {} +unsafe impl Sync for PhysicalDeviceFormatPackFeaturesARM<'_> {} +impl ::core::default::Default for PhysicalDeviceFormatPackFeaturesARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - stage_flags: ShaderStageFlags::default(), - layout: PipelineLayout::default(), - set: u32::default(), + p_next: ::core::ptr::null_mut(), + format_pack: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for BindDescriptorBufferEmbeddedSamplersInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceFormatPackFeaturesARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM; } -impl<'a> BindDescriptorBufferEmbeddedSamplersInfoEXT<'a> { - #[inline] - pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { - self.stage_flags = stage_flags; - self - } +unsafe impl Extends> for PhysicalDeviceFormatPackFeaturesARM<'_> {} +unsafe impl Extends> for PhysicalDeviceFormatPackFeaturesARM<'_> {} +impl<'a> PhysicalDeviceFormatPackFeaturesARM<'a> { #[inline] - pub fn layout(mut self, layout: PipelineLayout) -> Self { - self.layout = layout; - self - } - #[inline] - pub fn set(mut self, set: u32) -> Self { - self.set = set; + pub fn format_pack(mut self, format_pack: bool) -> Self { + self.format_pack = format_pack.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceCubicClampFeaturesQCOM<'a> { +pub struct TensorDescriptionARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub cubic_range_clamp: Bool32, + pub p_next: *const c_void, + pub tiling: TensorTilingARM, + pub format: Format, + pub dimension_count: u32, + pub p_dimensions: *const i64, + pub p_strides: *const i64, + pub usage: TensorUsageFlagsARM, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceCubicClampFeaturesQCOM<'_> {} -unsafe impl Sync for PhysicalDeviceCubicClampFeaturesQCOM<'_> {} -impl ::core::default::Default for PhysicalDeviceCubicClampFeaturesQCOM<'_> { +unsafe impl Send for TensorDescriptionARM<'_> {} +unsafe impl Sync for TensorDescriptionARM<'_> {} +impl ::core::default::Default for TensorDescriptionARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - cubic_range_clamp: Bool32::default(), + p_next: ::core::ptr::null(), + tiling: TensorTilingARM::default(), + format: Format::default(), + dimension_count: u32::default(), + p_dimensions: ::core::ptr::null(), + p_strides: ::core::ptr::null(), + usage: TensorUsageFlagsARM::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCubicClampFeaturesQCOM<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM; +unsafe impl<'a> TaggedStructure<'a> for TensorDescriptionARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::TENSOR_DESCRIPTION_ARM; } -unsafe impl Extends> for PhysicalDeviceCubicClampFeaturesQCOM<'_> {} -unsafe impl Extends> for PhysicalDeviceCubicClampFeaturesQCOM<'_> {} -impl<'a> PhysicalDeviceCubicClampFeaturesQCOM<'a> { +unsafe impl Extends> for TensorDescriptionARM<'_> {} +unsafe impl Extends> for TensorDescriptionARM<'_> {} +impl<'a> TensorDescriptionARM<'a> { #[inline] - pub fn cubic_range_clamp(mut self, cubic_range_clamp: bool) -> Self { - self.cubic_range_clamp = cubic_range_clamp.into(); + pub fn tiling(mut self, tiling: TensorTilingARM) -> Self { + self.tiling = tiling; + self + } + #[inline] + pub fn format(mut self, format: Format) -> Self { + self.format = format; + self + } + #[inline] + pub fn dimensions(mut self, dimensions: &'a [i64]) -> Self { + self.dimension_count = dimensions.len() as _; + self.p_dimensions = dimensions.as_ptr(); + self + } + #[inline] + pub fn strides(mut self, strides: &'a [i64]) -> Self { + self.dimension_count = strides.len() as _; + self.p_strides = strides.as_ptr(); + self + } + #[inline] + pub fn usage(mut self, usage: TensorUsageFlagsARM) -> Self { + self.usage = usage; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> { +pub struct TensorCreateInfoARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub ycbcr_degamma: Bool32, + pub p_next: *const c_void, + pub flags: TensorCreateFlagsARM, + pub p_description: *const TensorDescriptionARM<'a>, + pub sharing_mode: SharingMode, + pub queue_family_index_count: u32, + pub p_queue_family_indices: *const u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'_> {} -unsafe impl Sync for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'_> {} -impl ::core::default::Default for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'_> { +unsafe impl Send for TensorCreateInfoARM<'_> {} +unsafe impl Sync for TensorCreateInfoARM<'_> {} +impl ::core::default::Default for TensorCreateInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - ycbcr_degamma: Bool32::default(), + p_next: ::core::ptr::null(), + flags: TensorCreateFlagsARM::default(), + p_description: ::core::ptr::null(), + sharing_mode: SharingMode::default(), + queue_family_index_count: u32::default(), + p_queue_family_indices: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM; +unsafe impl<'a> TaggedStructure<'a> for TensorCreateInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::TENSOR_CREATE_INFO_ARM; } -unsafe impl Extends> for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'_> {} -unsafe impl Extends> for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'_> {} -impl<'a> PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> { +impl<'a> TensorCreateInfoARM<'a> { + #[inline] + pub fn flags(mut self, flags: TensorCreateFlagsARM) -> Self { + self.flags = flags; + self + } + #[inline] + pub fn description(mut self, description: &'a TensorDescriptionARM<'a>) -> Self { + self.p_description = description; + self + } #[inline] - pub fn ycbcr_degamma(mut self, ycbcr_degamma: bool) -> Self { - self.ycbcr_degamma = ycbcr_degamma.into(); + pub fn sharing_mode(mut self, sharing_mode: SharingMode) -> Self { + self.sharing_mode = sharing_mode; + self + } + #[inline] + pub fn queue_family_indices(mut self, queue_family_indices: &'a [u32]) -> Self { + self.queue_family_index_count = queue_family_indices.len() as _; + self.p_queue_family_indices = queue_family_indices.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'a> { +pub struct TensorViewCreateInfoARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub enable_y_degamma: Bool32, - pub enable_cb_cr_degamma: Bool32, + pub p_next: *const c_void, + pub flags: TensorViewCreateFlagsARM, + pub tensor: TensorARM, + pub format: Format, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'_> {} -unsafe impl Sync for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'_> {} -impl ::core::default::Default for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'_> { +unsafe impl Send for TensorViewCreateInfoARM<'_> {} +unsafe impl Sync for TensorViewCreateInfoARM<'_> {} +impl ::core::default::Default for TensorViewCreateInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - enable_y_degamma: Bool32::default(), - enable_cb_cr_degamma: Bool32::default(), + p_next: ::core::ptr::null(), + flags: TensorViewCreateFlagsARM::default(), + tensor: TensorARM::default(), + format: Format::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM; -} -unsafe impl Extends> - for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for TensorViewCreateInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::TENSOR_VIEW_CREATE_INFO_ARM; } -impl<'a> SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'a> { +impl<'a> TensorViewCreateInfoARM<'a> { #[inline] - pub fn enable_y_degamma(mut self, enable_y_degamma: bool) -> Self { - self.enable_y_degamma = enable_y_degamma.into(); + pub fn flags(mut self, flags: TensorViewCreateFlagsARM) -> Self { + self.flags = flags; self } #[inline] - pub fn enable_cb_cr_degamma(mut self, enable_cb_cr_degamma: bool) -> Self { - self.enable_cb_cr_degamma = enable_cb_cr_degamma.into(); + pub fn tensor(mut self, tensor: TensorARM) -> Self { + self.tensor = tensor; + self + } + #[inline] + pub fn format(mut self, format: Format) -> Self { + self.format = format; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceCubicWeightsFeaturesQCOM<'a> { +pub struct TensorMemoryRequirementsInfoARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub selectable_cubic_weights: Bool32, + pub p_next: *const c_void, + pub tensor: TensorARM, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceCubicWeightsFeaturesQCOM<'_> {} -unsafe impl Sync for PhysicalDeviceCubicWeightsFeaturesQCOM<'_> {} -impl ::core::default::Default for PhysicalDeviceCubicWeightsFeaturesQCOM<'_> { +unsafe impl Send for TensorMemoryRequirementsInfoARM<'_> {} +unsafe impl Sync for TensorMemoryRequirementsInfoARM<'_> {} +impl ::core::default::Default for TensorMemoryRequirementsInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - selectable_cubic_weights: Bool32::default(), + p_next: ::core::ptr::null(), + tensor: TensorARM::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCubicWeightsFeaturesQCOM<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM; +unsafe impl<'a> TaggedStructure<'a> for TensorMemoryRequirementsInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::TENSOR_MEMORY_REQUIREMENTS_INFO_ARM; } -unsafe impl Extends> for PhysicalDeviceCubicWeightsFeaturesQCOM<'_> {} -unsafe impl Extends> for PhysicalDeviceCubicWeightsFeaturesQCOM<'_> {} -impl<'a> PhysicalDeviceCubicWeightsFeaturesQCOM<'a> { +impl<'a> TensorMemoryRequirementsInfoARM<'a> { #[inline] - pub fn selectable_cubic_weights(mut self, selectable_cubic_weights: bool) -> Self { - self.selectable_cubic_weights = selectable_cubic_weights.into(); + pub fn tensor(mut self, tensor: TensorARM) -> Self { + self.tensor = tensor; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct SamplerCubicWeightsCreateInfoQCOM<'a> { +pub struct BindTensorMemoryInfoARM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub cubic_weights: CubicFilterWeightsQCOM, + pub tensor: TensorARM, + pub memory: DeviceMemory, + pub memory_offset: DeviceSize, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for SamplerCubicWeightsCreateInfoQCOM<'_> {} -unsafe impl Sync for SamplerCubicWeightsCreateInfoQCOM<'_> {} -impl ::core::default::Default for SamplerCubicWeightsCreateInfoQCOM<'_> { +unsafe impl Send for BindTensorMemoryInfoARM<'_> {} +unsafe impl Sync for BindTensorMemoryInfoARM<'_> {} +impl ::core::default::Default for BindTensorMemoryInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - cubic_weights: CubicFilterWeightsQCOM::default(), + tensor: TensorARM::default(), + memory: DeviceMemory::default(), + memory_offset: DeviceSize::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for SamplerCubicWeightsCreateInfoQCOM<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM; +unsafe impl<'a> TaggedStructure<'a> for BindTensorMemoryInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::BIND_TENSOR_MEMORY_INFO_ARM; } -unsafe impl Extends> for SamplerCubicWeightsCreateInfoQCOM<'_> {} -impl<'a> SamplerCubicWeightsCreateInfoQCOM<'a> { +impl<'a> BindTensorMemoryInfoARM<'a> { #[inline] - pub fn cubic_weights(mut self, cubic_weights: CubicFilterWeightsQCOM) -> Self { - self.cubic_weights = cubic_weights; + pub fn tensor(mut self, tensor: TensorARM) -> Self { + self.tensor = tensor; + self + } + #[inline] + pub fn memory(mut self, memory: DeviceMemory) -> Self { + self.memory = memory; + self + } + #[inline] + pub fn memory_offset(mut self, memory_offset: DeviceSize) -> Self { + self.memory_offset = memory_offset; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct BlitImageCubicWeightsInfoQCOM<'a> { +pub struct WriteDescriptorSetTensorARM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub cubic_weights: CubicFilterWeightsQCOM, + pub tensor_view_count: u32, + pub p_tensor_views: *const TensorViewARM, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for BlitImageCubicWeightsInfoQCOM<'_> {} -unsafe impl Sync for BlitImageCubicWeightsInfoQCOM<'_> {} -impl ::core::default::Default for BlitImageCubicWeightsInfoQCOM<'_> { +unsafe impl Send for WriteDescriptorSetTensorARM<'_> {} +unsafe impl Sync for WriteDescriptorSetTensorARM<'_> {} +impl ::core::default::Default for WriteDescriptorSetTensorARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - cubic_weights: CubicFilterWeightsQCOM::default(), + tensor_view_count: u32::default(), + p_tensor_views: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for BlitImageCubicWeightsInfoQCOM<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM; +unsafe impl<'a> TaggedStructure<'a> for WriteDescriptorSetTensorARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET_TENSOR_ARM; } -unsafe impl Extends> for BlitImageCubicWeightsInfoQCOM<'_> {} -impl<'a> BlitImageCubicWeightsInfoQCOM<'a> { +unsafe impl Extends> for WriteDescriptorSetTensorARM<'_> {} +impl<'a> WriteDescriptorSetTensorARM<'a> { #[inline] - pub fn cubic_weights(mut self, cubic_weights: CubicFilterWeightsQCOM) -> Self { - self.cubic_weights = cubic_weights; + pub fn tensor_views(mut self, tensor_views: &'a [TensorViewARM]) -> Self { + self.tensor_view_count = tensor_views.len() as _; + self.p_tensor_views = tensor_views.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceImageProcessing2FeaturesQCOM<'a> { +pub struct TensorFormatPropertiesARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub texture_block_match2: Bool32, + pub p_next: *const c_void, + pub optimal_tiling_tensor_features: FormatFeatureFlags2, + pub linear_tiling_tensor_features: FormatFeatureFlags2, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceImageProcessing2FeaturesQCOM<'_> {} -unsafe impl Sync for PhysicalDeviceImageProcessing2FeaturesQCOM<'_> {} -impl ::core::default::Default for PhysicalDeviceImageProcessing2FeaturesQCOM<'_> { +unsafe impl Send for TensorFormatPropertiesARM<'_> {} +unsafe impl Sync for TensorFormatPropertiesARM<'_> {} +impl ::core::default::Default for TensorFormatPropertiesARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - texture_block_match2: Bool32::default(), + p_next: ::core::ptr::null(), + optimal_tiling_tensor_features: FormatFeatureFlags2::default(), + linear_tiling_tensor_features: FormatFeatureFlags2::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageProcessing2FeaturesQCOM<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM; -} -unsafe impl Extends> - for PhysicalDeviceImageProcessing2FeaturesQCOM<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for TensorFormatPropertiesARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::TENSOR_FORMAT_PROPERTIES_ARM; } -unsafe impl Extends> for PhysicalDeviceImageProcessing2FeaturesQCOM<'_> {} -impl<'a> PhysicalDeviceImageProcessing2FeaturesQCOM<'a> { +unsafe impl Extends> for TensorFormatPropertiesARM<'_> {} +impl<'a> TensorFormatPropertiesARM<'a> { #[inline] - pub fn texture_block_match2(mut self, texture_block_match2: bool) -> Self { - self.texture_block_match2 = texture_block_match2.into(); + pub fn optimal_tiling_tensor_features( + mut self, + optimal_tiling_tensor_features: FormatFeatureFlags2, + ) -> Self { + self.optimal_tiling_tensor_features = optimal_tiling_tensor_features; + self + } + #[inline] + pub fn linear_tiling_tensor_features( + mut self, + linear_tiling_tensor_features: FormatFeatureFlags2, + ) -> Self { + self.linear_tiling_tensor_features = linear_tiling_tensor_features; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceImageProcessing2PropertiesQCOM<'a> { +pub struct PhysicalDeviceTensorPropertiesARM<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub max_block_match_window: Extent2D, + pub max_tensor_dimension_count: u32, + pub max_tensor_elements: u64, + pub max_per_dimension_tensor_elements: u64, + pub max_tensor_stride: i64, + pub max_tensor_size: u64, + pub max_tensor_shader_access_array_length: u32, + pub max_tensor_shader_access_size: u32, + pub max_descriptor_set_storage_tensors: u32, + pub max_per_stage_descriptor_set_storage_tensors: u32, + pub max_descriptor_set_update_after_bind_storage_tensors: u32, + pub max_per_stage_descriptor_update_after_bind_storage_tensors: u32, + pub shader_storage_tensor_array_non_uniform_indexing_native: Bool32, + pub shader_tensor_supported_stages: ShaderStageFlags, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceImageProcessing2PropertiesQCOM<'_> {} -unsafe impl Sync for PhysicalDeviceImageProcessing2PropertiesQCOM<'_> {} -impl ::core::default::Default for PhysicalDeviceImageProcessing2PropertiesQCOM<'_> { +unsafe impl Send for PhysicalDeviceTensorPropertiesARM<'_> {} +unsafe impl Sync for PhysicalDeviceTensorPropertiesARM<'_> {} +impl ::core::default::Default for PhysicalDeviceTensorPropertiesARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - max_block_match_window: Extent2D::default(), + max_tensor_dimension_count: u32::default(), + max_tensor_elements: u64::default(), + max_per_dimension_tensor_elements: u64::default(), + max_tensor_stride: i64::default(), + max_tensor_size: u64::default(), + max_tensor_shader_access_array_length: u32::default(), + max_tensor_shader_access_size: u32::default(), + max_descriptor_set_storage_tensors: u32::default(), + max_per_stage_descriptor_set_storage_tensors: u32::default(), + max_descriptor_set_update_after_bind_storage_tensors: u32::default(), + max_per_stage_descriptor_update_after_bind_storage_tensors: u32::default(), + shader_storage_tensor_array_non_uniform_indexing_native: Bool32::default(), + shader_tensor_supported_stages: ShaderStageFlags::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageProcessing2PropertiesQCOM<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM; -} -unsafe impl Extends> - for PhysicalDeviceImageProcessing2PropertiesQCOM<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceTensorPropertiesARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM; } -impl<'a> PhysicalDeviceImageProcessing2PropertiesQCOM<'a> { +unsafe impl Extends> for PhysicalDeviceTensorPropertiesARM<'_> {} +impl<'a> PhysicalDeviceTensorPropertiesARM<'a> { #[inline] - pub fn max_block_match_window(mut self, max_block_match_window: Extent2D) -> Self { - self.max_block_match_window = max_block_match_window; + pub fn max_tensor_dimension_count(mut self, max_tensor_dimension_count: u32) -> Self { + self.max_tensor_dimension_count = max_tensor_dimension_count; + self + } + #[inline] + pub fn max_tensor_elements(mut self, max_tensor_elements: u64) -> Self { + self.max_tensor_elements = max_tensor_elements; + self + } + #[inline] + pub fn max_per_dimension_tensor_elements( + mut self, + max_per_dimension_tensor_elements: u64, + ) -> Self { + self.max_per_dimension_tensor_elements = max_per_dimension_tensor_elements; + self + } + #[inline] + pub fn max_tensor_stride(mut self, max_tensor_stride: i64) -> Self { + self.max_tensor_stride = max_tensor_stride; + self + } + #[inline] + pub fn max_tensor_size(mut self, max_tensor_size: u64) -> Self { + self.max_tensor_size = max_tensor_size; + self + } + #[inline] + pub fn max_tensor_shader_access_array_length( + mut self, + max_tensor_shader_access_array_length: u32, + ) -> Self { + self.max_tensor_shader_access_array_length = max_tensor_shader_access_array_length; + self + } + #[inline] + pub fn max_tensor_shader_access_size(mut self, max_tensor_shader_access_size: u32) -> Self { + self.max_tensor_shader_access_size = max_tensor_shader_access_size; + self + } + #[inline] + pub fn max_descriptor_set_storage_tensors( + mut self, + max_descriptor_set_storage_tensors: u32, + ) -> Self { + self.max_descriptor_set_storage_tensors = max_descriptor_set_storage_tensors; + self + } + #[inline] + pub fn max_per_stage_descriptor_set_storage_tensors( + mut self, + max_per_stage_descriptor_set_storage_tensors: u32, + ) -> Self { + self.max_per_stage_descriptor_set_storage_tensors = + max_per_stage_descriptor_set_storage_tensors; + self + } + #[inline] + pub fn max_descriptor_set_update_after_bind_storage_tensors( + mut self, + max_descriptor_set_update_after_bind_storage_tensors: u32, + ) -> Self { + self.max_descriptor_set_update_after_bind_storage_tensors = + max_descriptor_set_update_after_bind_storage_tensors; + self + } + #[inline] + pub fn max_per_stage_descriptor_update_after_bind_storage_tensors( + mut self, + max_per_stage_descriptor_update_after_bind_storage_tensors: u32, + ) -> Self { + self.max_per_stage_descriptor_update_after_bind_storage_tensors = + max_per_stage_descriptor_update_after_bind_storage_tensors; + self + } + #[inline] + pub fn shader_storage_tensor_array_non_uniform_indexing_native( + mut self, + shader_storage_tensor_array_non_uniform_indexing_native: bool, + ) -> Self { + self.shader_storage_tensor_array_non_uniform_indexing_native = + shader_storage_tensor_array_non_uniform_indexing_native.into(); + self + } + #[inline] + pub fn shader_tensor_supported_stages( + mut self, + shader_tensor_supported_stages: ShaderStageFlags, + ) -> Self { + self.shader_tensor_supported_stages = shader_tensor_supported_stages; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct SamplerBlockMatchWindowCreateInfoQCOM<'a> { +pub struct TensorMemoryBarrierARM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub window_extent: Extent2D, - pub window_compare_mode: BlockMatchWindowCompareModeQCOM, + pub src_stage_mask: PipelineStageFlags2, + pub src_access_mask: AccessFlags2, + pub dst_stage_mask: PipelineStageFlags2, + pub dst_access_mask: AccessFlags2, + pub src_queue_family_index: u32, + pub dst_queue_family_index: u32, + pub tensor: TensorARM, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for SamplerBlockMatchWindowCreateInfoQCOM<'_> {} -unsafe impl Sync for SamplerBlockMatchWindowCreateInfoQCOM<'_> {} -impl ::core::default::Default for SamplerBlockMatchWindowCreateInfoQCOM<'_> { +unsafe impl Send for TensorMemoryBarrierARM<'_> {} +unsafe impl Sync for TensorMemoryBarrierARM<'_> {} +impl ::core::default::Default for TensorMemoryBarrierARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - window_extent: Extent2D::default(), - window_compare_mode: BlockMatchWindowCompareModeQCOM::default(), + src_stage_mask: PipelineStageFlags2::default(), + src_access_mask: AccessFlags2::default(), + dst_stage_mask: PipelineStageFlags2::default(), + dst_access_mask: AccessFlags2::default(), + src_queue_family_index: u32::default(), + dst_queue_family_index: u32::default(), + tensor: TensorARM::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for SamplerBlockMatchWindowCreateInfoQCOM<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM; +unsafe impl<'a> TaggedStructure<'a> for TensorMemoryBarrierARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::TENSOR_MEMORY_BARRIER_ARM; } -unsafe impl Extends> for SamplerBlockMatchWindowCreateInfoQCOM<'_> {} -impl<'a> SamplerBlockMatchWindowCreateInfoQCOM<'a> { +unsafe impl Extends> for TensorMemoryBarrierARM<'_> {} +impl<'a> TensorMemoryBarrierARM<'a> { #[inline] - pub fn window_extent(mut self, window_extent: Extent2D) -> Self { - self.window_extent = window_extent; + pub fn src_stage_mask(mut self, src_stage_mask: PipelineStageFlags2) -> Self { + self.src_stage_mask = src_stage_mask; self } #[inline] - pub fn window_compare_mode( - mut self, - window_compare_mode: BlockMatchWindowCompareModeQCOM, - ) -> Self { - self.window_compare_mode = window_compare_mode; + pub fn src_access_mask(mut self, src_access_mask: AccessFlags2) -> Self { + self.src_access_mask = src_access_mask; + self + } + #[inline] + pub fn dst_stage_mask(mut self, dst_stage_mask: PipelineStageFlags2) -> Self { + self.dst_stage_mask = dst_stage_mask; + self + } + #[inline] + pub fn dst_access_mask(mut self, dst_access_mask: AccessFlags2) -> Self { + self.dst_access_mask = dst_access_mask; + self + } + #[inline] + pub fn src_queue_family_index(mut self, src_queue_family_index: u32) -> Self { + self.src_queue_family_index = src_queue_family_index; + self + } + #[inline] + pub fn dst_queue_family_index(mut self, dst_queue_family_index: u32) -> Self { + self.dst_queue_family_index = dst_queue_family_index; + self + } + #[inline] + pub fn tensor(mut self, tensor: TensorARM) -> Self { + self.tensor = tensor; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'a> { +pub struct TensorDependencyInfoARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub descriptor_pool_overallocation: Bool32, + pub p_next: *const c_void, + pub tensor_memory_barrier_count: u32, + pub p_tensor_memory_barriers: *const TensorMemoryBarrierARM<'a>, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'_> {} -unsafe impl Sync for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'_> { +unsafe impl Send for TensorDependencyInfoARM<'_> {} +unsafe impl Sync for TensorDependencyInfoARM<'_> {} +impl ::core::default::Default for TensorDependencyInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - descriptor_pool_overallocation: Bool32::default(), + p_next: ::core::ptr::null(), + tensor_memory_barrier_count: u32::default(), + p_tensor_memory_barriers: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV; -} -unsafe impl Extends> - for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'_> -{ -} -unsafe impl Extends> - for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for TensorDependencyInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::TENSOR_DEPENDENCY_INFO_ARM; } -impl<'a> PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'a> { +unsafe impl Extends> for TensorDependencyInfoARM<'_> {} +impl<'a> TensorDependencyInfoARM<'a> { #[inline] - pub fn descriptor_pool_overallocation(mut self, descriptor_pool_overallocation: bool) -> Self { - self.descriptor_pool_overallocation = descriptor_pool_overallocation.into(); + pub fn tensor_memory_barrier_count(mut self, tensor_memory_barrier_count: u32) -> Self { + self.tensor_memory_barrier_count = tensor_memory_barrier_count; + self + } + #[inline] + pub fn tensor_memory_barriers( + mut self, + tensor_memory_barriers: &'a TensorMemoryBarrierARM<'a>, + ) -> Self { + self.p_tensor_memory_barriers = tensor_memory_barriers; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceLayeredDriverPropertiesMSFT<'a> { +pub struct PhysicalDeviceTensorFeaturesARM<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub underlying_api: LayeredDriverUnderlyingApiMSFT, + pub tensor_non_packed: Bool32, + pub shader_tensor_access: Bool32, + pub shader_storage_tensor_array_dynamic_indexing: Bool32, + pub shader_storage_tensor_array_non_uniform_indexing: Bool32, + pub descriptor_binding_storage_tensor_update_after_bind: Bool32, + pub tensors: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceLayeredDriverPropertiesMSFT<'_> {} -unsafe impl Sync for PhysicalDeviceLayeredDriverPropertiesMSFT<'_> {} -impl ::core::default::Default for PhysicalDeviceLayeredDriverPropertiesMSFT<'_> { +unsafe impl Send for PhysicalDeviceTensorFeaturesARM<'_> {} +unsafe impl Sync for PhysicalDeviceTensorFeaturesARM<'_> {} +impl ::core::default::Default for PhysicalDeviceTensorFeaturesARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - underlying_api: LayeredDriverUnderlyingApiMSFT::default(), + tensor_non_packed: Bool32::default(), + shader_tensor_access: Bool32::default(), + shader_storage_tensor_array_dynamic_indexing: Bool32::default(), + shader_storage_tensor_array_non_uniform_indexing: Bool32::default(), + descriptor_binding_storage_tensor_update_after_bind: Bool32::default(), + tensors: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceLayeredDriverPropertiesMSFT<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT; -} -unsafe impl Extends> - for PhysicalDeviceLayeredDriverPropertiesMSFT<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceTensorFeaturesARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TENSOR_FEATURES_ARM; } -impl<'a> PhysicalDeviceLayeredDriverPropertiesMSFT<'a> { +unsafe impl Extends> for PhysicalDeviceTensorFeaturesARM<'_> {} +unsafe impl Extends> for PhysicalDeviceTensorFeaturesARM<'_> {} +impl<'a> PhysicalDeviceTensorFeaturesARM<'a> { #[inline] - pub fn underlying_api(mut self, underlying_api: LayeredDriverUnderlyingApiMSFT) -> Self { - self.underlying_api = underlying_api; + pub fn tensor_non_packed(mut self, tensor_non_packed: bool) -> Self { + self.tensor_non_packed = tensor_non_packed.into(); + self + } + #[inline] + pub fn shader_tensor_access(mut self, shader_tensor_access: bool) -> Self { + self.shader_tensor_access = shader_tensor_access.into(); + self + } + #[inline] + pub fn shader_storage_tensor_array_dynamic_indexing( + mut self, + shader_storage_tensor_array_dynamic_indexing: bool, + ) -> Self { + self.shader_storage_tensor_array_dynamic_indexing = + shader_storage_tensor_array_dynamic_indexing.into(); + self + } + #[inline] + pub fn shader_storage_tensor_array_non_uniform_indexing( + mut self, + shader_storage_tensor_array_non_uniform_indexing: bool, + ) -> Self { + self.shader_storage_tensor_array_non_uniform_indexing = + shader_storage_tensor_array_non_uniform_indexing.into(); + self + } + #[inline] + pub fn descriptor_binding_storage_tensor_update_after_bind( + mut self, + descriptor_binding_storage_tensor_update_after_bind: bool, + ) -> Self { + self.descriptor_binding_storage_tensor_update_after_bind = + descriptor_binding_storage_tensor_update_after_bind.into(); + self + } + #[inline] + pub fn tensors(mut self, tensors: bool) -> Self { + self.tensors = tensors.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDevicePerStageDescriptorSetFeaturesNV<'a> { +pub struct DeviceTensorMemoryRequirementsARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub per_stage_descriptor_set: Bool32, - pub dynamic_pipeline_layout: Bool32, + pub p_next: *const c_void, + pub p_create_info: *const TensorCreateInfoARM<'a>, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDevicePerStageDescriptorSetFeaturesNV<'_> {} -unsafe impl Sync for PhysicalDevicePerStageDescriptorSetFeaturesNV<'_> {} -impl ::core::default::Default for PhysicalDevicePerStageDescriptorSetFeaturesNV<'_> { +unsafe impl Send for DeviceTensorMemoryRequirementsARM<'_> {} +unsafe impl Sync for DeviceTensorMemoryRequirementsARM<'_> {} +impl ::core::default::Default for DeviceTensorMemoryRequirementsARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - per_stage_descriptor_set: Bool32::default(), - dynamic_pipeline_layout: Bool32::default(), + p_next: ::core::ptr::null(), + p_create_info: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePerStageDescriptorSetFeaturesNV<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV; -} -unsafe impl Extends> - for PhysicalDevicePerStageDescriptorSetFeaturesNV<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for DeviceTensorMemoryRequirementsARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM; } -unsafe impl Extends> for PhysicalDevicePerStageDescriptorSetFeaturesNV<'_> {} -impl<'a> PhysicalDevicePerStageDescriptorSetFeaturesNV<'a> { +impl<'a> DeviceTensorMemoryRequirementsARM<'a> { #[inline] - pub fn per_stage_descriptor_set(mut self, per_stage_descriptor_set: bool) -> Self { - self.per_stage_descriptor_set = per_stage_descriptor_set.into(); - self - } - #[inline] - pub fn dynamic_pipeline_layout(mut self, dynamic_pipeline_layout: bool) -> Self { - self.dynamic_pipeline_layout = dynamic_pipeline_layout.into(); + pub fn create_info(mut self, create_info: &'a TensorCreateInfoARM<'a>) -> Self { + self.p_create_info = create_info; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceExternalFormatResolveFeaturesANDROID<'a> { +pub struct CopyTensorInfoARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub external_format_resolve: Bool32, + pub p_next: *const c_void, + pub src_tensor: TensorARM, + pub dst_tensor: TensorARM, + pub region_count: u32, + pub p_regions: *const TensorCopyARM<'a>, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'_> {} -unsafe impl Sync for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'_> {} -impl ::core::default::Default for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'_> { +unsafe impl Send for CopyTensorInfoARM<'_> {} +unsafe impl Sync for CopyTensorInfoARM<'_> {} +impl ::core::default::Default for CopyTensorInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - external_format_resolve: Bool32::default(), + p_next: ::core::ptr::null(), + src_tensor: TensorARM::default(), + dst_tensor: TensorARM::default(), + region_count: u32::default(), + p_regions: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID; -} -unsafe impl Extends> - for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'_> -{ -} -unsafe impl Extends> - for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for CopyTensorInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::COPY_TENSOR_INFO_ARM; } -impl<'a> PhysicalDeviceExternalFormatResolveFeaturesANDROID<'a> { +impl<'a> CopyTensorInfoARM<'a> { #[inline] - pub fn external_format_resolve(mut self, external_format_resolve: bool) -> Self { - self.external_format_resolve = external_format_resolve.into(); + pub fn src_tensor(mut self, src_tensor: TensorARM) -> Self { + self.src_tensor = src_tensor; + self + } + #[inline] + pub fn dst_tensor(mut self, dst_tensor: TensorARM) -> Self { + self.dst_tensor = dst_tensor; + self + } + #[inline] + pub fn regions(mut self, regions: &'a [TensorCopyARM<'a>]) -> Self { + self.region_count = regions.len() as _; + self.p_regions = regions.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceExternalFormatResolvePropertiesANDROID<'a> { +pub struct TensorCopyARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub null_color_attachment_with_external_format_resolve: Bool32, - pub external_format_resolve_chroma_offset_x: ChromaLocation, - pub external_format_resolve_chroma_offset_y: ChromaLocation, + pub p_next: *const c_void, + pub dimension_count: u32, + pub p_src_offset: *const u64, + pub p_dst_offset: *const u64, + pub p_extent: *const u64, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceExternalFormatResolvePropertiesANDROID<'_> {} -unsafe impl Sync for PhysicalDeviceExternalFormatResolvePropertiesANDROID<'_> {} -impl ::core::default::Default for PhysicalDeviceExternalFormatResolvePropertiesANDROID<'_> { +unsafe impl Send for TensorCopyARM<'_> {} +unsafe impl Sync for TensorCopyARM<'_> {} +impl ::core::default::Default for TensorCopyARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - null_color_attachment_with_external_format_resolve: Bool32::default(), - external_format_resolve_chroma_offset_x: ChromaLocation::default(), - external_format_resolve_chroma_offset_y: ChromaLocation::default(), + p_next: ::core::ptr::null(), + dimension_count: u32::default(), + p_src_offset: ::core::ptr::null(), + p_dst_offset: ::core::ptr::null(), + p_extent: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExternalFormatResolvePropertiesANDROID<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID; -} -unsafe impl Extends> - for PhysicalDeviceExternalFormatResolvePropertiesANDROID<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for TensorCopyARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::TENSOR_COPY_ARM; } -impl<'a> PhysicalDeviceExternalFormatResolvePropertiesANDROID<'a> { +impl<'a> TensorCopyARM<'a> { #[inline] - pub fn null_color_attachment_with_external_format_resolve( - mut self, - null_color_attachment_with_external_format_resolve: bool, - ) -> Self { - self.null_color_attachment_with_external_format_resolve = - null_color_attachment_with_external_format_resolve.into(); + pub fn src_offset(mut self, src_offset: &'a [u64]) -> Self { + self.dimension_count = src_offset.len() as _; + self.p_src_offset = src_offset.as_ptr(); self } #[inline] - pub fn external_format_resolve_chroma_offset_x( - mut self, - external_format_resolve_chroma_offset_x: ChromaLocation, - ) -> Self { - self.external_format_resolve_chroma_offset_x = external_format_resolve_chroma_offset_x; + pub fn dst_offset(mut self, dst_offset: &'a [u64]) -> Self { + self.dimension_count = dst_offset.len() as _; + self.p_dst_offset = dst_offset.as_ptr(); self } #[inline] - pub fn external_format_resolve_chroma_offset_y( - mut self, - external_format_resolve_chroma_offset_y: ChromaLocation, - ) -> Self { - self.external_format_resolve_chroma_offset_y = external_format_resolve_chroma_offset_y; + pub fn extent(mut self, extent: &'a [u64]) -> Self { + self.dimension_count = extent.len() as _; + self.p_extent = extent.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct AndroidHardwareBufferFormatResolvePropertiesANDROID<'a> { +pub struct MemoryDedicatedAllocateInfoTensorARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub color_attachment_format: Format, + pub p_next: *const c_void, + pub tensor: TensorARM, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for AndroidHardwareBufferFormatResolvePropertiesANDROID<'_> {} -unsafe impl Sync for AndroidHardwareBufferFormatResolvePropertiesANDROID<'_> {} -impl ::core::default::Default for AndroidHardwareBufferFormatResolvePropertiesANDROID<'_> { +unsafe impl Send for MemoryDedicatedAllocateInfoTensorARM<'_> {} +unsafe impl Sync for MemoryDedicatedAllocateInfoTensorARM<'_> {} +impl ::core::default::Default for MemoryDedicatedAllocateInfoTensorARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - color_attachment_format: Format::default(), + p_next: ::core::ptr::null(), + tensor: TensorARM::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for AndroidHardwareBufferFormatResolvePropertiesANDROID<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID; -} -unsafe impl Extends> - for AndroidHardwareBufferFormatResolvePropertiesANDROID<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for MemoryDedicatedAllocateInfoTensorARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM; } -impl<'a> AndroidHardwareBufferFormatResolvePropertiesANDROID<'a> { +unsafe impl Extends> for MemoryDedicatedAllocateInfoTensorARM<'_> {} +impl<'a> MemoryDedicatedAllocateInfoTensorARM<'a> { #[inline] - pub fn color_attachment_format(mut self, color_attachment_format: Format) -> Self { - self.color_attachment_format = color_attachment_format; + pub fn tensor(mut self, tensor: TensorARM) -> Self { + self.tensor = tensor; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct LatencySleepModeInfoNV<'a> { +pub struct PhysicalDeviceDescriptorBufferTensorPropertiesARM<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub low_latency_mode: Bool32, - pub low_latency_boost: Bool32, - pub minimum_interval_us: u32, + pub p_next: *mut c_void, + pub tensor_capture_replay_descriptor_data_size: usize, + pub tensor_view_capture_replay_descriptor_data_size: usize, + pub tensor_descriptor_size: usize, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for LatencySleepModeInfoNV<'_> {} -unsafe impl Sync for LatencySleepModeInfoNV<'_> {} -impl ::core::default::Default for LatencySleepModeInfoNV<'_> { +unsafe impl Send for PhysicalDeviceDescriptorBufferTensorPropertiesARM<'_> {} +unsafe impl Sync for PhysicalDeviceDescriptorBufferTensorPropertiesARM<'_> {} +impl ::core::default::Default for PhysicalDeviceDescriptorBufferTensorPropertiesARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - low_latency_mode: Bool32::default(), - low_latency_boost: Bool32::default(), - minimum_interval_us: u32::default(), + p_next: ::core::ptr::null_mut(), + tensor_capture_replay_descriptor_data_size: usize::default(), + tensor_view_capture_replay_descriptor_data_size: usize::default(), + tensor_descriptor_size: usize::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for LatencySleepModeInfoNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_SLEEP_MODE_INFO_NV; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorBufferTensorPropertiesARM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM; } -impl<'a> LatencySleepModeInfoNV<'a> { +unsafe impl Extends> + for PhysicalDeviceDescriptorBufferTensorPropertiesARM<'_> +{ +} +impl<'a> PhysicalDeviceDescriptorBufferTensorPropertiesARM<'a> { #[inline] - pub fn low_latency_mode(mut self, low_latency_mode: bool) -> Self { - self.low_latency_mode = low_latency_mode.into(); + pub fn tensor_capture_replay_descriptor_data_size( + mut self, + tensor_capture_replay_descriptor_data_size: usize, + ) -> Self { + self.tensor_capture_replay_descriptor_data_size = + tensor_capture_replay_descriptor_data_size; self } #[inline] - pub fn low_latency_boost(mut self, low_latency_boost: bool) -> Self { - self.low_latency_boost = low_latency_boost.into(); + pub fn tensor_view_capture_replay_descriptor_data_size( + mut self, + tensor_view_capture_replay_descriptor_data_size: usize, + ) -> Self { + self.tensor_view_capture_replay_descriptor_data_size = + tensor_view_capture_replay_descriptor_data_size; self } #[inline] - pub fn minimum_interval_us(mut self, minimum_interval_us: u32) -> Self { - self.minimum_interval_us = minimum_interval_us; + pub fn tensor_descriptor_size(mut self, tensor_descriptor_size: usize) -> Self { + self.tensor_descriptor_size = tensor_descriptor_size; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct LatencySleepInfoNV<'a> { +pub struct PhysicalDeviceDescriptorBufferTensorFeaturesARM<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub signal_semaphore: Semaphore, - pub value: u64, + pub p_next: *mut c_void, + pub descriptor_buffer_tensor_descriptors: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for LatencySleepInfoNV<'_> {} -unsafe impl Sync for LatencySleepInfoNV<'_> {} -impl ::core::default::Default for LatencySleepInfoNV<'_> { +unsafe impl Send for PhysicalDeviceDescriptorBufferTensorFeaturesARM<'_> {} +unsafe impl Sync for PhysicalDeviceDescriptorBufferTensorFeaturesARM<'_> {} +impl ::core::default::Default for PhysicalDeviceDescriptorBufferTensorFeaturesARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - signal_semaphore: Semaphore::default(), - value: u64::default(), - _marker: PhantomData, - } - } -} -unsafe impl<'a> TaggedStructure<'a> for LatencySleepInfoNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_SLEEP_INFO_NV; -} -impl<'a> LatencySleepInfoNV<'a> { - #[inline] - pub fn signal_semaphore(mut self, signal_semaphore: Semaphore) -> Self { - self.signal_semaphore = signal_semaphore; - self + p_next: ::core::ptr::null_mut(), + descriptor_buffer_tensor_descriptors: Bool32::default(), + _marker: PhantomData, + } } +} +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDescriptorBufferTensorFeaturesARM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM; +} +unsafe impl Extends> + for PhysicalDeviceDescriptorBufferTensorFeaturesARM<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceDescriptorBufferTensorFeaturesARM<'_> {} +impl<'a> PhysicalDeviceDescriptorBufferTensorFeaturesARM<'a> { #[inline] - pub fn value(mut self, value: u64) -> Self { - self.value = value; + pub fn descriptor_buffer_tensor_descriptors( + mut self, + descriptor_buffer_tensor_descriptors: bool, + ) -> Self { + self.descriptor_buffer_tensor_descriptors = descriptor_buffer_tensor_descriptors.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct SetLatencyMarkerInfoNV<'a> { +pub struct TensorCaptureDescriptorDataInfoARM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub present_id: u64, - pub marker: LatencyMarkerNV, + pub tensor: TensorARM, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for SetLatencyMarkerInfoNV<'_> {} -unsafe impl Sync for SetLatencyMarkerInfoNV<'_> {} -impl ::core::default::Default for SetLatencyMarkerInfoNV<'_> { +unsafe impl Send for TensorCaptureDescriptorDataInfoARM<'_> {} +unsafe impl Sync for TensorCaptureDescriptorDataInfoARM<'_> {} +impl ::core::default::Default for TensorCaptureDescriptorDataInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - present_id: u64::default(), - marker: LatencyMarkerNV::default(), + tensor: TensorARM::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for SetLatencyMarkerInfoNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SET_LATENCY_MARKER_INFO_NV; +unsafe impl<'a> TaggedStructure<'a> for TensorCaptureDescriptorDataInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM; } -impl<'a> SetLatencyMarkerInfoNV<'a> { - #[inline] - pub fn present_id(mut self, present_id: u64) -> Self { - self.present_id = present_id; - self - } +impl<'a> TensorCaptureDescriptorDataInfoARM<'a> { #[inline] - pub fn marker(mut self, marker: LatencyMarkerNV) -> Self { - self.marker = marker; + pub fn tensor(mut self, tensor: TensorARM) -> Self { + self.tensor = tensor; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct GetLatencyMarkerInfoNV<'a> { +pub struct TensorViewCaptureDescriptorDataInfoARM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub timing_count: u32, - pub p_timings: *mut LatencyTimingsFrameReportNV<'a>, + pub tensor_view: TensorViewARM, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for GetLatencyMarkerInfoNV<'_> {} -unsafe impl Sync for GetLatencyMarkerInfoNV<'_> {} -impl ::core::default::Default for GetLatencyMarkerInfoNV<'_> { +unsafe impl Send for TensorViewCaptureDescriptorDataInfoARM<'_> {} +unsafe impl Sync for TensorViewCaptureDescriptorDataInfoARM<'_> {} +impl ::core::default::Default for TensorViewCaptureDescriptorDataInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - timing_count: u32::default(), - p_timings: ::core::ptr::null_mut(), + tensor_view: TensorViewARM::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for GetLatencyMarkerInfoNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::GET_LATENCY_MARKER_INFO_NV; +unsafe impl<'a> TaggedStructure<'a> for TensorViewCaptureDescriptorDataInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM; } -impl<'a> GetLatencyMarkerInfoNV<'a> { +impl<'a> TensorViewCaptureDescriptorDataInfoARM<'a> { #[inline] - pub fn timings(mut self, timings: &'a mut [LatencyTimingsFrameReportNV<'_>]) -> Self { - self.timing_count = timings.len() as _; - self.p_timings = timings.as_mut_ptr().cast(); + pub fn tensor_view(mut self, tensor_view: TensorViewARM) -> Self { + self.tensor_view = tensor_view; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct LatencyTimingsFrameReportNV<'a> { +pub struct DescriptorGetTensorInfoARM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub present_id: u64, - pub input_sample_time_us: u64, - pub sim_start_time_us: u64, - pub sim_end_time_us: u64, - pub render_submit_start_time_us: u64, - pub render_submit_end_time_us: u64, - pub present_start_time_us: u64, - pub present_end_time_us: u64, - pub driver_start_time_us: u64, - pub driver_end_time_us: u64, - pub os_render_queue_start_time_us: u64, - pub os_render_queue_end_time_us: u64, - pub gpu_render_start_time_us: u64, - pub gpu_render_end_time_us: u64, + pub tensor_view: TensorViewARM, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for LatencyTimingsFrameReportNV<'_> {} -unsafe impl Sync for LatencyTimingsFrameReportNV<'_> {} -impl ::core::default::Default for LatencyTimingsFrameReportNV<'_> { +unsafe impl Send for DescriptorGetTensorInfoARM<'_> {} +unsafe impl Sync for DescriptorGetTensorInfoARM<'_> {} +impl ::core::default::Default for DescriptorGetTensorInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - present_id: u64::default(), - input_sample_time_us: u64::default(), - sim_start_time_us: u64::default(), - sim_end_time_us: u64::default(), - render_submit_start_time_us: u64::default(), - render_submit_end_time_us: u64::default(), - present_start_time_us: u64::default(), - present_end_time_us: u64::default(), - driver_start_time_us: u64::default(), - driver_end_time_us: u64::default(), - os_render_queue_start_time_us: u64::default(), - os_render_queue_end_time_us: u64::default(), - gpu_render_start_time_us: u64::default(), - gpu_render_end_time_us: u64::default(), + tensor_view: TensorViewARM::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for LatencyTimingsFrameReportNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_TIMINGS_FRAME_REPORT_NV; +unsafe impl<'a> TaggedStructure<'a> for DescriptorGetTensorInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_GET_TENSOR_INFO_ARM; } -impl<'a> LatencyTimingsFrameReportNV<'a> { - #[inline] - pub fn present_id(mut self, present_id: u64) -> Self { - self.present_id = present_id; - self - } - #[inline] - pub fn input_sample_time_us(mut self, input_sample_time_us: u64) -> Self { - self.input_sample_time_us = input_sample_time_us; - self - } - #[inline] - pub fn sim_start_time_us(mut self, sim_start_time_us: u64) -> Self { - self.sim_start_time_us = sim_start_time_us; - self - } - #[inline] - pub fn sim_end_time_us(mut self, sim_end_time_us: u64) -> Self { - self.sim_end_time_us = sim_end_time_us; - self - } - #[inline] - pub fn render_submit_start_time_us(mut self, render_submit_start_time_us: u64) -> Self { - self.render_submit_start_time_us = render_submit_start_time_us; - self - } - #[inline] - pub fn render_submit_end_time_us(mut self, render_submit_end_time_us: u64) -> Self { - self.render_submit_end_time_us = render_submit_end_time_us; - self - } - #[inline] - pub fn present_start_time_us(mut self, present_start_time_us: u64) -> Self { - self.present_start_time_us = present_start_time_us; - self - } - #[inline] - pub fn present_end_time_us(mut self, present_end_time_us: u64) -> Self { - self.present_end_time_us = present_end_time_us; - self - } - #[inline] - pub fn driver_start_time_us(mut self, driver_start_time_us: u64) -> Self { - self.driver_start_time_us = driver_start_time_us; - self - } - #[inline] - pub fn driver_end_time_us(mut self, driver_end_time_us: u64) -> Self { - self.driver_end_time_us = driver_end_time_us; - self - } - #[inline] - pub fn os_render_queue_start_time_us(mut self, os_render_queue_start_time_us: u64) -> Self { - self.os_render_queue_start_time_us = os_render_queue_start_time_us; - self - } - #[inline] - pub fn os_render_queue_end_time_us(mut self, os_render_queue_end_time_us: u64) -> Self { - self.os_render_queue_end_time_us = os_render_queue_end_time_us; - self - } +unsafe impl Extends> for DescriptorGetTensorInfoARM<'_> {} +impl<'a> DescriptorGetTensorInfoARM<'a> { #[inline] - pub fn gpu_render_start_time_us(mut self, gpu_render_start_time_us: u64) -> Self { - self.gpu_render_start_time_us = gpu_render_start_time_us; - self - } - #[inline] - pub fn gpu_render_end_time_us(mut self, gpu_render_end_time_us: u64) -> Self { - self.gpu_render_end_time_us = gpu_render_end_time_us; + pub fn tensor_view(mut self, tensor_view: TensorViewARM) -> Self { + self.tensor_view = tensor_view; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct OutOfBandQueueTypeInfoNV<'a> { +pub struct FrameBoundaryTensorsARM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub queue_type: OutOfBandQueueTypeNV, + pub tensor_count: u32, + pub p_tensors: *const TensorARM, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for OutOfBandQueueTypeInfoNV<'_> {} -unsafe impl Sync for OutOfBandQueueTypeInfoNV<'_> {} -impl ::core::default::Default for OutOfBandQueueTypeInfoNV<'_> { +unsafe impl Send for FrameBoundaryTensorsARM<'_> {} +unsafe impl Sync for FrameBoundaryTensorsARM<'_> {} +impl ::core::default::Default for FrameBoundaryTensorsARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - queue_type: OutOfBandQueueTypeNV::default(), + tensor_count: u32::default(), + p_tensors: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for OutOfBandQueueTypeInfoNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::OUT_OF_BAND_QUEUE_TYPE_INFO_NV; +unsafe impl<'a> TaggedStructure<'a> for FrameBoundaryTensorsARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::FRAME_BOUNDARY_TENSORS_ARM; } -impl<'a> OutOfBandQueueTypeInfoNV<'a> { +unsafe impl Extends> for FrameBoundaryTensorsARM<'_> {} +unsafe impl Extends> for FrameBoundaryTensorsARM<'_> {} +unsafe impl Extends> for FrameBoundaryTensorsARM<'_> {} +unsafe impl Extends> for FrameBoundaryTensorsARM<'_> {} +impl<'a> FrameBoundaryTensorsARM<'a> { #[inline] - pub fn queue_type(mut self, queue_type: OutOfBandQueueTypeNV) -> Self { - self.queue_type = queue_type; + pub fn tensors(mut self, tensors: &'a [TensorARM]) -> Self { + self.tensor_count = tensors.len() as _; + self.p_tensors = tensors.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct LatencySubmissionPresentIdNV<'a> { +pub struct PhysicalDeviceExternalTensorInfoARM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub present_id: u64, + pub flags: TensorCreateFlagsARM, + pub p_description: *const TensorDescriptionARM<'a>, + pub handle_type: ExternalMemoryHandleTypeFlags, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for LatencySubmissionPresentIdNV<'_> {} -unsafe impl Sync for LatencySubmissionPresentIdNV<'_> {} -impl ::core::default::Default for LatencySubmissionPresentIdNV<'_> { +unsafe impl Send for PhysicalDeviceExternalTensorInfoARM<'_> {} +unsafe impl Sync for PhysicalDeviceExternalTensorInfoARM<'_> {} +impl ::core::default::Default for PhysicalDeviceExternalTensorInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - present_id: u64::default(), + flags: TensorCreateFlagsARM::default(), + p_description: ::core::ptr::null(), + handle_type: ExternalMemoryHandleTypeFlags::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for LatencySubmissionPresentIdNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_SUBMISSION_PRESENT_ID_NV; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceExternalTensorInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM; } -unsafe impl Extends> for LatencySubmissionPresentIdNV<'_> {} -unsafe impl Extends> for LatencySubmissionPresentIdNV<'_> {} -impl<'a> LatencySubmissionPresentIdNV<'a> { +impl<'a> PhysicalDeviceExternalTensorInfoARM<'a> { #[inline] - pub fn present_id(mut self, present_id: u64) -> Self { - self.present_id = present_id; + pub fn flags(mut self, flags: TensorCreateFlagsARM) -> Self { + self.flags = flags; + self + } + #[inline] + pub fn description(mut self, description: &'a TensorDescriptionARM<'a>) -> Self { + self.p_description = description; + self + } + #[inline] + pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { + self.handle_type = handle_type; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct SwapchainLatencyCreateInfoNV<'a> { +pub struct ExternalTensorPropertiesARM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub latency_mode_enable: Bool32, + pub external_memory_properties: ExternalMemoryProperties, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for SwapchainLatencyCreateInfoNV<'_> {} -unsafe impl Sync for SwapchainLatencyCreateInfoNV<'_> {} -impl ::core::default::Default for SwapchainLatencyCreateInfoNV<'_> { +unsafe impl Send for ExternalTensorPropertiesARM<'_> {} +unsafe impl Sync for ExternalTensorPropertiesARM<'_> {} +impl ::core::default::Default for ExternalTensorPropertiesARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - latency_mode_enable: Bool32::default(), + external_memory_properties: ExternalMemoryProperties::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for SwapchainLatencyCreateInfoNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_LATENCY_CREATE_INFO_NV; +unsafe impl<'a> TaggedStructure<'a> for ExternalTensorPropertiesARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_TENSOR_PROPERTIES_ARM; } -unsafe impl Extends> for SwapchainLatencyCreateInfoNV<'_> {} -impl<'a> SwapchainLatencyCreateInfoNV<'a> { +impl<'a> ExternalTensorPropertiesARM<'a> { #[inline] - pub fn latency_mode_enable(mut self, latency_mode_enable: bool) -> Self { - self.latency_mode_enable = latency_mode_enable.into(); + pub fn external_memory_properties( + mut self, + external_memory_properties: ExternalMemoryProperties, + ) -> Self { + self.external_memory_properties = external_memory_properties; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct LatencySurfaceCapabilitiesNV<'a> { +pub struct ExternalMemoryTensorCreateInfoARM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub present_mode_count: u32, - pub p_present_modes: *mut PresentModeKHR, + pub handle_types: ExternalMemoryHandleTypeFlags, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for LatencySurfaceCapabilitiesNV<'_> {} -unsafe impl Sync for LatencySurfaceCapabilitiesNV<'_> {} -impl ::core::default::Default for LatencySurfaceCapabilitiesNV<'_> { +unsafe impl Send for ExternalMemoryTensorCreateInfoARM<'_> {} +unsafe impl Sync for ExternalMemoryTensorCreateInfoARM<'_> {} +impl ::core::default::Default for ExternalMemoryTensorCreateInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - present_mode_count: u32::default(), - p_present_modes: ::core::ptr::null_mut(), + handle_types: ExternalMemoryHandleTypeFlags::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for LatencySurfaceCapabilitiesNV<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_SURFACE_CAPABILITIES_NV; +unsafe impl<'a> TaggedStructure<'a> for ExternalMemoryTensorCreateInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM; } -unsafe impl Extends> for LatencySurfaceCapabilitiesNV<'_> {} -impl<'a> LatencySurfaceCapabilitiesNV<'a> { +unsafe impl Extends> for ExternalMemoryTensorCreateInfoARM<'_> {} +impl<'a> ExternalMemoryTensorCreateInfoARM<'a> { #[inline] - pub fn present_modes(mut self, present_modes: &'a mut [PresentModeKHR]) -> Self { - self.present_mode_count = present_modes.len() as _; - self.p_present_modes = present_modes.as_mut_ptr(); + pub fn handle_types(mut self, handle_types: ExternalMemoryHandleTypeFlags) -> Self { + self.handle_types = handle_types; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceCudaKernelLaunchFeaturesNV<'a> { +pub struct PhysicalDeviceShaderFloat8FeaturesEXT<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub cuda_kernel_launch_features: Bool32, + pub shader_float8: Bool32, + pub shader_float8_cooperative_matrix: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceCudaKernelLaunchFeaturesNV<'_> {} -unsafe impl Sync for PhysicalDeviceCudaKernelLaunchFeaturesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceCudaKernelLaunchFeaturesNV<'_> { +unsafe impl Send for PhysicalDeviceShaderFloat8FeaturesEXT<'_> {} +unsafe impl Sync for PhysicalDeviceShaderFloat8FeaturesEXT<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderFloat8FeaturesEXT<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - cuda_kernel_launch_features: Bool32::default(), + shader_float8: Bool32::default(), + shader_float8_cooperative_matrix: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCudaKernelLaunchFeaturesNV<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderFloat8FeaturesEXT<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT; } -unsafe impl Extends> for PhysicalDeviceCudaKernelLaunchFeaturesNV<'_> {} -unsafe impl Extends> for PhysicalDeviceCudaKernelLaunchFeaturesNV<'_> {} -impl<'a> PhysicalDeviceCudaKernelLaunchFeaturesNV<'a> { +unsafe impl Extends> for PhysicalDeviceShaderFloat8FeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderFloat8FeaturesEXT<'_> {} +impl<'a> PhysicalDeviceShaderFloat8FeaturesEXT<'a> { #[inline] - pub fn cuda_kernel_launch_features(mut self, cuda_kernel_launch_features: bool) -> Self { - self.cuda_kernel_launch_features = cuda_kernel_launch_features.into(); + pub fn shader_float8(mut self, shader_float8: bool) -> Self { + self.shader_float8 = shader_float8.into(); + self + } + #[inline] + pub fn shader_float8_cooperative_matrix( + mut self, + shader_float8_cooperative_matrix: bool, + ) -> Self { + self.shader_float8_cooperative_matrix = shader_float8_cooperative_matrix.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceCudaKernelLaunchPropertiesNV<'a> { +pub struct SurfaceCreateInfoOHOS<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub compute_capability_minor: u32, - pub compute_capability_major: u32, + pub p_next: *const c_void, + pub flags: SurfaceCreateFlagsOHOS, + pub window: *mut OHNativeWindow, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceCudaKernelLaunchPropertiesNV<'_> {} -unsafe impl Sync for PhysicalDeviceCudaKernelLaunchPropertiesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceCudaKernelLaunchPropertiesNV<'_> { +unsafe impl Send for SurfaceCreateInfoOHOS<'_> {} +unsafe impl Sync for SurfaceCreateInfoOHOS<'_> {} +impl ::core::default::Default for SurfaceCreateInfoOHOS<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - compute_capability_minor: u32::default(), - compute_capability_major: u32::default(), + p_next: ::core::ptr::null(), + flags: SurfaceCreateFlagsOHOS::default(), + window: ::core::ptr::null_mut(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCudaKernelLaunchPropertiesNV<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV; -} -unsafe impl Extends> - for PhysicalDeviceCudaKernelLaunchPropertiesNV<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for SurfaceCreateInfoOHOS<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_CREATE_INFO_OHOS; } -impl<'a> PhysicalDeviceCudaKernelLaunchPropertiesNV<'a> { +impl<'a> SurfaceCreateInfoOHOS<'a> { #[inline] - pub fn compute_capability_minor(mut self, compute_capability_minor: u32) -> Self { - self.compute_capability_minor = compute_capability_minor; + pub fn flags(mut self, flags: SurfaceCreateFlagsOHOS) -> Self { + self.flags = flags; self } #[inline] - pub fn compute_capability_major(mut self, compute_capability_major: u32) -> Self { - self.compute_capability_major = compute_capability_major; + pub fn window(mut self, window: *mut OHNativeWindow) -> Self { + self.window = window; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct DeviceQueueShaderCoreControlCreateInfoARM<'a> { +pub struct PhysicalDeviceDataGraphFeaturesARM<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub shader_core_count: u32, + pub data_graph: Bool32, + pub data_graph_update_after_bind: Bool32, + pub data_graph_specialization_constants: Bool32, + pub data_graph_descriptor_buffer: Bool32, + pub data_graph_shader_module: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for DeviceQueueShaderCoreControlCreateInfoARM<'_> {} -unsafe impl Sync for DeviceQueueShaderCoreControlCreateInfoARM<'_> {} -impl ::core::default::Default for DeviceQueueShaderCoreControlCreateInfoARM<'_> { +unsafe impl Send for PhysicalDeviceDataGraphFeaturesARM<'_> {} +unsafe impl Sync for PhysicalDeviceDataGraphFeaturesARM<'_> {} +impl ::core::default::Default for PhysicalDeviceDataGraphFeaturesARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - shader_core_count: u32::default(), + data_graph: Bool32::default(), + data_graph_update_after_bind: Bool32::default(), + data_graph_specialization_constants: Bool32::default(), + data_graph_descriptor_buffer: Bool32::default(), + data_graph_shader_module: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for DeviceQueueShaderCoreControlCreateInfoARM<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM; +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDataGraphFeaturesARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM; } -unsafe impl Extends> for DeviceQueueShaderCoreControlCreateInfoARM<'_> {} -unsafe impl Extends> for DeviceQueueShaderCoreControlCreateInfoARM<'_> {} -impl<'a> DeviceQueueShaderCoreControlCreateInfoARM<'a> { +unsafe impl Extends> for PhysicalDeviceDataGraphFeaturesARM<'_> {} +unsafe impl Extends> for PhysicalDeviceDataGraphFeaturesARM<'_> {} +impl<'a> PhysicalDeviceDataGraphFeaturesARM<'a> { #[inline] - pub fn shader_core_count(mut self, shader_core_count: u32) -> Self { - self.shader_core_count = shader_core_count; + pub fn data_graph(mut self, data_graph: bool) -> Self { + self.data_graph = data_graph.into(); + self + } + #[inline] + pub fn data_graph_update_after_bind(mut self, data_graph_update_after_bind: bool) -> Self { + self.data_graph_update_after_bind = data_graph_update_after_bind.into(); + self + } + #[inline] + pub fn data_graph_specialization_constants( + mut self, + data_graph_specialization_constants: bool, + ) -> Self { + self.data_graph_specialization_constants = data_graph_specialization_constants.into(); + self + } + #[inline] + pub fn data_graph_descriptor_buffer(mut self, data_graph_descriptor_buffer: bool) -> Self { + self.data_graph_descriptor_buffer = data_graph_descriptor_buffer.into(); + self + } + #[inline] + pub fn data_graph_shader_module(mut self, data_graph_shader_module: bool) -> Self { + self.data_graph_shader_module = data_graph_shader_module.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceSchedulingControlsFeaturesARM<'a> { +pub struct DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub scheduling_controls: Bool32, + pub p_next: *const c_void, + pub dimension: u32, + pub zero_count: u32, + pub group_size: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceSchedulingControlsFeaturesARM<'_> {} -unsafe impl Sync for PhysicalDeviceSchedulingControlsFeaturesARM<'_> {} -impl ::core::default::Default for PhysicalDeviceSchedulingControlsFeaturesARM<'_> { +unsafe impl Send for DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM<'_> {} +unsafe impl Sync for DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM<'_> {} +impl ::core::default::Default for DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - scheduling_controls: Bool32::default(), + p_next: ::core::ptr::null(), + dimension: u32::default(), + zero_count: u32::default(), + group_size: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSchedulingControlsFeaturesARM<'a> { +unsafe impl<'a> TaggedStructure<'a> + for DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM<'a> +{ const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM; + StructureType::DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM; } -unsafe impl Extends> - for PhysicalDeviceSchedulingControlsFeaturesARM<'_> +unsafe impl Extends> + for DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM<'_> { } -unsafe impl Extends> for PhysicalDeviceSchedulingControlsFeaturesARM<'_> {} -impl<'a> PhysicalDeviceSchedulingControlsFeaturesARM<'a> { +impl<'a> DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM<'a> { #[inline] - pub fn scheduling_controls(mut self, scheduling_controls: bool) -> Self { - self.scheduling_controls = scheduling_controls.into(); + pub fn dimension(mut self, dimension: u32) -> Self { + self.dimension = dimension; + self + } + #[inline] + pub fn zero_count(mut self, zero_count: u32) -> Self { + self.zero_count = zero_count; + self + } + #[inline] + pub fn group_size(mut self, group_size: u32) -> Self { + self.group_size = group_size; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceSchedulingControlsPropertiesARM<'a> { +pub struct DataGraphPipelineConstantARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub scheduling_controls_flags: PhysicalDeviceSchedulingControlsFlagsARM, + pub p_next: *const c_void, + pub id: u32, + pub p_constant_data: *const c_void, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceSchedulingControlsPropertiesARM<'_> {} -unsafe impl Sync for PhysicalDeviceSchedulingControlsPropertiesARM<'_> {} -impl ::core::default::Default for PhysicalDeviceSchedulingControlsPropertiesARM<'_> { +unsafe impl Send for DataGraphPipelineConstantARM<'_> {} +unsafe impl Sync for DataGraphPipelineConstantARM<'_> {} +impl ::core::default::Default for DataGraphPipelineConstantARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - scheduling_controls_flags: PhysicalDeviceSchedulingControlsFlagsARM::default(), + p_next: ::core::ptr::null(), + id: u32::default(), + p_constant_data: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceSchedulingControlsPropertiesARM<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM; -} -unsafe impl Extends> - for PhysicalDeviceSchedulingControlsPropertiesARM<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for DataGraphPipelineConstantARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_CONSTANT_ARM; } -impl<'a> PhysicalDeviceSchedulingControlsPropertiesARM<'a> { +impl<'a> DataGraphPipelineConstantARM<'a> { #[inline] - pub fn scheduling_controls_flags( - mut self, - scheduling_controls_flags: PhysicalDeviceSchedulingControlsFlagsARM, - ) -> Self { - self.scheduling_controls_flags = scheduling_controls_flags; + pub fn id(mut self, id: u32) -> Self { + self.id = id; + self + } + #[inline] + pub fn constant_data(mut self, constant_data: *const c_void) -> Self { + self.p_constant_data = constant_data; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'a> { +pub struct DataGraphPipelineResourceInfoARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub relaxed_line_rasterization: Bool32, + pub p_next: *const c_void, + pub descriptor_set: u32, + pub binding: u32, + pub array_element: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'_> {} -unsafe impl Sync for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'_> {} -impl ::core::default::Default for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'_> { +unsafe impl Send for DataGraphPipelineResourceInfoARM<'_> {} +unsafe impl Sync for DataGraphPipelineResourceInfoARM<'_> {} +impl ::core::default::Default for DataGraphPipelineResourceInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - relaxed_line_rasterization: Bool32::default(), + p_next: ::core::ptr::null(), + descriptor_set: u32::default(), + binding: u32::default(), + array_element: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG; -} -unsafe impl Extends> - for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'_> -{ -} -unsafe impl Extends> - for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for DataGraphPipelineResourceInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM; } -impl<'a> PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'a> { +impl<'a> DataGraphPipelineResourceInfoARM<'a> { #[inline] - pub fn relaxed_line_rasterization(mut self, relaxed_line_rasterization: bool) -> Self { - self.relaxed_line_rasterization = relaxed_line_rasterization.into(); + pub fn descriptor_set(mut self, descriptor_set: u32) -> Self { + self.descriptor_set = descriptor_set; + self + } + #[inline] + pub fn binding(mut self, binding: u32) -> Self { + self.binding = binding; + self + } + #[inline] + pub fn array_element(mut self, array_element: u32) -> Self { + self.array_element = array_element; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceRenderPassStripedFeaturesARM<'a> { +pub struct DataGraphPipelineCompilerControlCreateInfoARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub render_pass_striped: Bool32, + pub p_next: *const c_void, + pub p_vendor_options: *const c_char, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceRenderPassStripedFeaturesARM<'_> {} -unsafe impl Sync for PhysicalDeviceRenderPassStripedFeaturesARM<'_> {} -impl ::core::default::Default for PhysicalDeviceRenderPassStripedFeaturesARM<'_> { +unsafe impl Send for DataGraphPipelineCompilerControlCreateInfoARM<'_> {} +unsafe impl Sync for DataGraphPipelineCompilerControlCreateInfoARM<'_> {} +impl ::core::default::Default for DataGraphPipelineCompilerControlCreateInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - render_pass_striped: Bool32::default(), + p_next: ::core::ptr::null(), + p_vendor_options: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRenderPassStripedFeaturesARM<'a> { +unsafe impl<'a> TaggedStructure<'a> for DataGraphPipelineCompilerControlCreateInfoARM<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM; + StructureType::DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM; } -unsafe impl Extends> - for PhysicalDeviceRenderPassStripedFeaturesARM<'_> +unsafe impl Extends> + for DataGraphPipelineCompilerControlCreateInfoARM<'_> { } -unsafe impl Extends> for PhysicalDeviceRenderPassStripedFeaturesARM<'_> {} -impl<'a> PhysicalDeviceRenderPassStripedFeaturesARM<'a> { +impl<'a> DataGraphPipelineCompilerControlCreateInfoARM<'a> { #[inline] - pub fn render_pass_striped(mut self, render_pass_striped: bool) -> Self { - self.render_pass_striped = render_pass_striped.into(); + pub fn vendor_options(mut self, vendor_options: &'a CStr) -> Self { + self.p_vendor_options = vendor_options.as_ptr(); self } + #[inline] + pub unsafe fn vendor_options_as_c_str(&self) -> Option<&CStr> { + if self.p_vendor_options.is_null() { + None + } else { + Some(CStr::from_ptr(self.p_vendor_options)) + } + } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceRenderPassStripedPropertiesARM<'a> { +pub struct DataGraphPipelineCreateInfoARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub render_pass_stripe_granularity: Extent2D, - pub max_render_pass_stripes: u32, + pub p_next: *const c_void, + pub flags: PipelineCreateFlags2KHR, + pub layout: PipelineLayout, + pub resource_info_count: u32, + pub p_resource_infos: *const DataGraphPipelineResourceInfoARM<'a>, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceRenderPassStripedPropertiesARM<'_> {} -unsafe impl Sync for PhysicalDeviceRenderPassStripedPropertiesARM<'_> {} -impl ::core::default::Default for PhysicalDeviceRenderPassStripedPropertiesARM<'_> { +unsafe impl Send for DataGraphPipelineCreateInfoARM<'_> {} +unsafe impl Sync for DataGraphPipelineCreateInfoARM<'_> {} +impl ::core::default::Default for DataGraphPipelineCreateInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - render_pass_stripe_granularity: Extent2D::default(), - max_render_pass_stripes: u32::default(), + p_next: ::core::ptr::null(), + flags: PipelineCreateFlags2KHR::default(), + layout: PipelineLayout::default(), + resource_info_count: u32::default(), + p_resource_infos: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRenderPassStripedPropertiesARM<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM; -} -unsafe impl Extends> - for PhysicalDeviceRenderPassStripedPropertiesARM<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for DataGraphPipelineCreateInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_CREATE_INFO_ARM; } -impl<'a> PhysicalDeviceRenderPassStripedPropertiesARM<'a> { +impl<'a> DataGraphPipelineCreateInfoARM<'a> { #[inline] - pub fn render_pass_stripe_granularity( - mut self, - render_pass_stripe_granularity: Extent2D, - ) -> Self { - self.render_pass_stripe_granularity = render_pass_stripe_granularity; + pub fn flags(mut self, flags: PipelineCreateFlags2KHR) -> Self { + self.flags = flags; self } #[inline] - pub fn max_render_pass_stripes(mut self, max_render_pass_stripes: u32) -> Self { - self.max_render_pass_stripes = max_render_pass_stripes; + pub fn layout(mut self, layout: PipelineLayout) -> Self { + self.layout = layout; + self + } + #[inline] + pub fn resource_infos( + mut self, + resource_infos: &'a [DataGraphPipelineResourceInfoARM<'a>], + ) -> Self { + self.resource_info_count = resource_infos.len() as _; + self.p_resource_infos = resource_infos.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct RenderPassStripeInfoARM<'a> { +pub struct DataGraphPipelineShaderModuleCreateInfoARM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub stripe_area: Rect2D, + pub module: ShaderModule, + pub p_name: *const c_char, + pub p_specialization_info: *const SpecializationInfo<'a>, + pub constant_count: u32, + pub p_constants: *const DataGraphPipelineConstantARM<'a>, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for RenderPassStripeInfoARM<'_> {} -unsafe impl Sync for RenderPassStripeInfoARM<'_> {} -impl ::core::default::Default for RenderPassStripeInfoARM<'_> { +unsafe impl Send for DataGraphPipelineShaderModuleCreateInfoARM<'_> {} +unsafe impl Sync for DataGraphPipelineShaderModuleCreateInfoARM<'_> {} +impl ::core::default::Default for DataGraphPipelineShaderModuleCreateInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - stripe_area: Rect2D::default(), + module: ShaderModule::default(), + p_name: ::core::ptr::null(), + p_specialization_info: ::core::ptr::null(), + constant_count: u32::default(), + p_constants: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for RenderPassStripeInfoARM<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_INFO_ARM; +unsafe impl<'a> TaggedStructure<'a> for DataGraphPipelineShaderModuleCreateInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM; } -impl<'a> RenderPassStripeInfoARM<'a> { +unsafe impl Extends> + for DataGraphPipelineShaderModuleCreateInfoARM<'_> +{ +} +impl<'a> DataGraphPipelineShaderModuleCreateInfoARM<'a> { #[inline] - pub fn stripe_area(mut self, stripe_area: Rect2D) -> Self { - self.stripe_area = stripe_area; + pub fn module(mut self, module: ShaderModule) -> Self { + self.module = module; + self + } + #[inline] + pub fn name(mut self, name: &'a CStr) -> Self { + self.p_name = name.as_ptr(); + self + } + #[inline] + pub unsafe fn name_as_c_str(&self) -> Option<&CStr> { + if self.p_name.is_null() { + None + } else { + Some(CStr::from_ptr(self.p_name)) + } + } + #[inline] + pub fn specialization_info(mut self, specialization_info: &'a SpecializationInfo<'a>) -> Self { + self.p_specialization_info = specialization_info; + self + } + #[inline] + pub fn constants(mut self, constants: &'a [DataGraphPipelineConstantARM<'a>]) -> Self { + self.constant_count = constants.len() as _; + self.p_constants = constants.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct RenderPassStripeBeginInfoARM<'a> { +pub struct DataGraphPipelineSessionCreateInfoARM<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub stripe_info_count: u32, - pub p_stripe_infos: *const RenderPassStripeInfoARM<'a>, + pub p_next: *const c_void, + pub flags: DataGraphPipelineSessionCreateFlagsARM, + pub data_graph_pipeline: Pipeline, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for RenderPassStripeBeginInfoARM<'_> {} -unsafe impl Sync for RenderPassStripeBeginInfoARM<'_> {} -impl ::core::default::Default for RenderPassStripeBeginInfoARM<'_> { +unsafe impl Send for DataGraphPipelineSessionCreateInfoARM<'_> {} +unsafe impl Sync for DataGraphPipelineSessionCreateInfoARM<'_> {} +impl ::core::default::Default for DataGraphPipelineSessionCreateInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - stripe_info_count: u32::default(), - p_stripe_infos: ::core::ptr::null(), + flags: DataGraphPipelineSessionCreateFlagsARM::default(), + data_graph_pipeline: Pipeline::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for RenderPassStripeBeginInfoARM<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_BEGIN_INFO_ARM; +unsafe impl<'a> TaggedStructure<'a> for DataGraphPipelineSessionCreateInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM; } -unsafe impl Extends> for RenderPassStripeBeginInfoARM<'_> {} -unsafe impl Extends> for RenderPassStripeBeginInfoARM<'_> {} -impl<'a> RenderPassStripeBeginInfoARM<'a> { +impl<'a> DataGraphPipelineSessionCreateInfoARM<'a> { #[inline] - pub fn stripe_infos(mut self, stripe_infos: &'a [RenderPassStripeInfoARM<'a>]) -> Self { - self.stripe_info_count = stripe_infos.len() as _; - self.p_stripe_infos = stripe_infos.as_ptr(); + pub fn flags(mut self, flags: DataGraphPipelineSessionCreateFlagsARM) -> Self { + self.flags = flags; + self + } + #[inline] + pub fn data_graph_pipeline(mut self, data_graph_pipeline: Pipeline) -> Self { + self.data_graph_pipeline = data_graph_pipeline; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct RenderPassStripeSubmitInfoARM<'a> { +pub struct DataGraphPipelineSessionBindPointRequirementsInfoARM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub stripe_semaphore_info_count: u32, - pub p_stripe_semaphore_infos: *const SemaphoreSubmitInfo<'a>, + pub session: DataGraphPipelineSessionARM, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for RenderPassStripeSubmitInfoARM<'_> {} -unsafe impl Sync for RenderPassStripeSubmitInfoARM<'_> {} -impl ::core::default::Default for RenderPassStripeSubmitInfoARM<'_> { +unsafe impl Send for DataGraphPipelineSessionBindPointRequirementsInfoARM<'_> {} +unsafe impl Sync for DataGraphPipelineSessionBindPointRequirementsInfoARM<'_> {} +impl ::core::default::Default for DataGraphPipelineSessionBindPointRequirementsInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - stripe_semaphore_info_count: u32::default(), - p_stripe_semaphore_infos: ::core::ptr::null(), + session: DataGraphPipelineSessionARM::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for RenderPassStripeSubmitInfoARM<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_SUBMIT_INFO_ARM; +unsafe impl<'a> TaggedStructure<'a> for DataGraphPipelineSessionBindPointRequirementsInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM; } -unsafe impl Extends> for RenderPassStripeSubmitInfoARM<'_> {} -impl<'a> RenderPassStripeSubmitInfoARM<'a> { +impl<'a> DataGraphPipelineSessionBindPointRequirementsInfoARM<'a> { #[inline] - pub fn stripe_semaphore_infos( - mut self, - stripe_semaphore_infos: &'a [SemaphoreSubmitInfo<'a>], - ) -> Self { - self.stripe_semaphore_info_count = stripe_semaphore_infos.len() as _; - self.p_stripe_semaphore_infos = stripe_semaphore_infos.as_ptr(); + pub fn session(mut self, session: DataGraphPipelineSessionARM) -> Self { + self.session = session; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'a> { +pub struct DataGraphPipelineSessionBindPointRequirementARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub shader_maximal_reconvergence: Bool32, + pub p_next: *const c_void, + pub bind_point: DataGraphPipelineSessionBindPointARM, + pub bind_point_type: DataGraphPipelineSessionBindPointTypeARM, + pub num_objects: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'_> { +unsafe impl Send for DataGraphPipelineSessionBindPointRequirementARM<'_> {} +unsafe impl Sync for DataGraphPipelineSessionBindPointRequirementARM<'_> {} +impl ::core::default::Default for DataGraphPipelineSessionBindPointRequirementARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - shader_maximal_reconvergence: Bool32::default(), + p_next: ::core::ptr::null(), + bind_point: DataGraphPipelineSessionBindPointARM::default(), + bind_point_type: DataGraphPipelineSessionBindPointTypeARM::default(), + num_objects: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for DataGraphPipelineSessionBindPointRequirementARM<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR; -} -unsafe impl Extends> - for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'_> -{ + StructureType::DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM; } -unsafe impl Extends> - for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'_> -{ -} -impl<'a> PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'a> { +impl<'a> DataGraphPipelineSessionBindPointRequirementARM<'a> { #[inline] - pub fn shader_maximal_reconvergence(mut self, shader_maximal_reconvergence: bool) -> Self { - self.shader_maximal_reconvergence = shader_maximal_reconvergence.into(); + pub fn bind_point(mut self, bind_point: DataGraphPipelineSessionBindPointARM) -> Self { + self.bind_point = bind_point; + self + } + #[inline] + pub fn bind_point_type( + mut self, + bind_point_type: DataGraphPipelineSessionBindPointTypeARM, + ) -> Self { + self.bind_point_type = bind_point_type; + self + } + #[inline] + pub fn num_objects(mut self, num_objects: u32) -> Self { + self.num_objects = num_objects; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'a> { +pub struct DataGraphPipelineSessionMemoryRequirementsInfoARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub shader_subgroup_rotate: Bool32, - pub shader_subgroup_rotate_clustered: Bool32, + pub p_next: *const c_void, + pub session: DataGraphPipelineSessionARM, + pub bind_point: DataGraphPipelineSessionBindPointARM, + pub object_index: u32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'_> { +unsafe impl Send for DataGraphPipelineSessionMemoryRequirementsInfoARM<'_> {} +unsafe impl Sync for DataGraphPipelineSessionMemoryRequirementsInfoARM<'_> {} +impl ::core::default::Default for DataGraphPipelineSessionMemoryRequirementsInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - shader_subgroup_rotate: Bool32::default(), - shader_subgroup_rotate_clustered: Bool32::default(), + p_next: ::core::ptr::null(), + session: DataGraphPipelineSessionARM::default(), + bind_point: DataGraphPipelineSessionBindPointARM::default(), + object_index: u32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for DataGraphPipelineSessionMemoryRequirementsInfoARM<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR; -} -unsafe impl Extends> - for PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'_> -{ + StructureType::DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM; } -unsafe impl Extends> for PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'_> {} -impl<'a> PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'a> { +impl<'a> DataGraphPipelineSessionMemoryRequirementsInfoARM<'a> { #[inline] - pub fn shader_subgroup_rotate(mut self, shader_subgroup_rotate: bool) -> Self { - self.shader_subgroup_rotate = shader_subgroup_rotate.into(); + pub fn session(mut self, session: DataGraphPipelineSessionARM) -> Self { + self.session = session; self } #[inline] - pub fn shader_subgroup_rotate_clustered( - mut self, - shader_subgroup_rotate_clustered: bool, - ) -> Self { - self.shader_subgroup_rotate_clustered = shader_subgroup_rotate_clustered.into(); + pub fn bind_point(mut self, bind_point: DataGraphPipelineSessionBindPointARM) -> Self { + self.bind_point = bind_point; + self + } + #[inline] + pub fn object_index(mut self, object_index: u32) -> Self { + self.object_index = object_index; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderExpectAssumeFeaturesKHR<'a> { +pub struct BindDataGraphPipelineSessionMemoryInfoARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub shader_expect_assume: Bool32, + pub p_next: *const c_void, + pub session: DataGraphPipelineSessionARM, + pub bind_point: DataGraphPipelineSessionBindPointARM, + pub object_index: u32, + pub memory: DeviceMemory, + pub memory_offset: DeviceSize, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'_> { +unsafe impl Send for BindDataGraphPipelineSessionMemoryInfoARM<'_> {} +unsafe impl Sync for BindDataGraphPipelineSessionMemoryInfoARM<'_> {} +impl ::core::default::Default for BindDataGraphPipelineSessionMemoryInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - shader_expect_assume: Bool32::default(), + p_next: ::core::ptr::null(), + session: DataGraphPipelineSessionARM::default(), + bind_point: DataGraphPipelineSessionBindPointARM::default(), + object_index: u32::default(), + memory: DeviceMemory::default(), + memory_offset: DeviceSize::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for BindDataGraphPipelineSessionMemoryInfoARM<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR; -} -unsafe impl Extends> - for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'_> -{ + StructureType::BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM; } -unsafe impl Extends> for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'_> {} -impl<'a> PhysicalDeviceShaderExpectAssumeFeaturesKHR<'a> { +impl<'a> BindDataGraphPipelineSessionMemoryInfoARM<'a> { #[inline] - pub fn shader_expect_assume(mut self, shader_expect_assume: bool) -> Self { - self.shader_expect_assume = shader_expect_assume.into(); + pub fn session(mut self, session: DataGraphPipelineSessionARM) -> Self { + self.session = session; + self + } + #[inline] + pub fn bind_point(mut self, bind_point: DataGraphPipelineSessionBindPointARM) -> Self { + self.bind_point = bind_point; + self + } + #[inline] + pub fn object_index(mut self, object_index: u32) -> Self { + self.object_index = object_index; + self + } + #[inline] + pub fn memory(mut self, memory: DeviceMemory) -> Self { + self.memory = memory; + self + } + #[inline] + pub fn memory_offset(mut self, memory_offset: DeviceSize) -> Self { + self.memory_offset = memory_offset; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderFloatControls2FeaturesKHR<'a> { +pub struct DataGraphPipelineInfoARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub shader_float_controls2: Bool32, + pub p_next: *const c_void, + pub data_graph_pipeline: Pipeline, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderFloatControls2FeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceShaderFloatControls2FeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderFloatControls2FeaturesKHR<'_> { +unsafe impl Send for DataGraphPipelineInfoARM<'_> {} +unsafe impl Sync for DataGraphPipelineInfoARM<'_> {} +impl ::core::default::Default for DataGraphPipelineInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - shader_float_controls2: Bool32::default(), + p_next: ::core::ptr::null(), + data_graph_pipeline: Pipeline::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderFloatControls2FeaturesKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR; -} -unsafe impl Extends> - for PhysicalDeviceShaderFloatControls2FeaturesKHR<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for DataGraphPipelineInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_INFO_ARM; } -unsafe impl Extends> for PhysicalDeviceShaderFloatControls2FeaturesKHR<'_> {} -impl<'a> PhysicalDeviceShaderFloatControls2FeaturesKHR<'a> { +impl<'a> DataGraphPipelineInfoARM<'a> { #[inline] - pub fn shader_float_controls2(mut self, shader_float_controls2: bool) -> Self { - self.shader_float_controls2 = shader_float_controls2.into(); + pub fn data_graph_pipeline(mut self, data_graph_pipeline: Pipeline) -> Self { + self.data_graph_pipeline = data_graph_pipeline; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'a> { +pub struct DataGraphPipelinePropertyQueryResultARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub dynamic_rendering_local_read: Bool32, + pub p_next: *const c_void, + pub property: DataGraphPipelinePropertyARM, + pub is_text: Bool32, + pub data_size: usize, + pub p_data: *mut c_void, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'_> { +unsafe impl Send for DataGraphPipelinePropertyQueryResultARM<'_> {} +unsafe impl Sync for DataGraphPipelinePropertyQueryResultARM<'_> {} +impl ::core::default::Default for DataGraphPipelinePropertyQueryResultARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - dynamic_rendering_local_read: Bool32::default(), + p_next: ::core::ptr::null(), + property: DataGraphPipelinePropertyARM::default(), + is_text: Bool32::default(), + data_size: usize::default(), + p_data: ::core::ptr::null_mut(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'a> { +unsafe impl<'a> TaggedStructure<'a> for DataGraphPipelinePropertyQueryResultARM<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR; -} -unsafe impl Extends> - for PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'_> -{ -} -unsafe impl Extends> - for PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'_> -{ + StructureType::DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM; } -impl<'a> PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'a> { +impl<'a> DataGraphPipelinePropertyQueryResultARM<'a> { #[inline] - pub fn dynamic_rendering_local_read(mut self, dynamic_rendering_local_read: bool) -> Self { - self.dynamic_rendering_local_read = dynamic_rendering_local_read.into(); + pub fn property(mut self, property: DataGraphPipelinePropertyARM) -> Self { + self.property = property; + self + } + #[inline] + pub fn is_text(mut self, is_text: bool) -> Self { + self.is_text = is_text.into(); + self + } + #[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 = ""] +#[doc = ""] #[must_use] -pub struct RenderingAttachmentLocationInfoKHR<'a> { +pub struct DataGraphPipelineIdentifierCreateInfoARM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub color_attachment_count: u32, - pub p_color_attachment_locations: *const u32, + pub identifier_size: u32, + pub p_identifier: *const u8, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for RenderingAttachmentLocationInfoKHR<'_> {} -unsafe impl Sync for RenderingAttachmentLocationInfoKHR<'_> {} -impl ::core::default::Default for RenderingAttachmentLocationInfoKHR<'_> { +unsafe impl Send for DataGraphPipelineIdentifierCreateInfoARM<'_> {} +unsafe impl Sync for DataGraphPipelineIdentifierCreateInfoARM<'_> {} +impl ::core::default::Default for DataGraphPipelineIdentifierCreateInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - color_attachment_count: u32::default(), - p_color_attachment_locations: ::core::ptr::null(), + identifier_size: u32::default(), + p_identifier: ::core::ptr::null(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for RenderingAttachmentLocationInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_ATTACHMENT_LOCATION_INFO_KHR; +unsafe impl<'a> TaggedStructure<'a> for DataGraphPipelineIdentifierCreateInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM; +} +unsafe impl Extends> + for DataGraphPipelineIdentifierCreateInfoARM<'_> +{ } -unsafe impl Extends> for RenderingAttachmentLocationInfoKHR<'_> {} -unsafe impl Extends> for RenderingAttachmentLocationInfoKHR<'_> {} -impl<'a> RenderingAttachmentLocationInfoKHR<'a> { +impl<'a> DataGraphPipelineIdentifierCreateInfoARM<'a> { #[inline] - pub fn color_attachment_locations(mut self, color_attachment_locations: &'a [u32]) -> Self { - self.color_attachment_count = color_attachment_locations.len() as _; - self.p_color_attachment_locations = color_attachment_locations.as_ptr(); + pub fn identifier(mut self, identifier: &'a [u8]) -> Self { + self.identifier_size = identifier.len() as _; + self.p_identifier = identifier.as_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct RenderingInputAttachmentIndexInfoKHR<'a> { +pub struct DataGraphPipelineDispatchInfoARM<'a> { pub s_type: StructureType, - pub p_next: *const c_void, - pub color_attachment_count: u32, - pub p_color_attachment_input_indices: *const u32, - pub p_depth_input_attachment_index: *const u32, - pub p_stencil_input_attachment_index: *const u32, + pub p_next: *mut c_void, + pub flags: DataGraphPipelineDispatchFlagsARM, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for RenderingInputAttachmentIndexInfoKHR<'_> {} -unsafe impl Sync for RenderingInputAttachmentIndexInfoKHR<'_> {} -impl ::core::default::Default for RenderingInputAttachmentIndexInfoKHR<'_> { +unsafe impl Send for DataGraphPipelineDispatchInfoARM<'_> {} +unsafe impl Sync for DataGraphPipelineDispatchInfoARM<'_> {} +impl ::core::default::Default for DataGraphPipelineDispatchInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null(), - color_attachment_count: u32::default(), - p_color_attachment_input_indices: ::core::ptr::null(), - p_depth_input_attachment_index: ::core::ptr::null(), - p_stencil_input_attachment_index: ::core::ptr::null(), + p_next: ::core::ptr::null_mut(), + flags: DataGraphPipelineDispatchFlagsARM::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for RenderingInputAttachmentIndexInfoKHR<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR; +unsafe impl<'a> TaggedStructure<'a> for DataGraphPipelineDispatchInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM; } -unsafe impl Extends> for RenderingInputAttachmentIndexInfoKHR<'_> {} -unsafe impl Extends> for RenderingInputAttachmentIndexInfoKHR<'_> {} -impl<'a> RenderingInputAttachmentIndexInfoKHR<'a> { +impl<'a> DataGraphPipelineDispatchInfoARM<'a> { #[inline] - pub fn color_attachment_input_indices( - mut self, - color_attachment_input_indices: &'a [u32], - ) -> Self { - self.color_attachment_count = color_attachment_input_indices.len() as _; - self.p_color_attachment_input_indices = color_attachment_input_indices.as_ptr(); + pub fn flags(mut self, flags: DataGraphPipelineDispatchFlagsARM) -> Self { + self.flags = flags; self } +} +#[repr(C)] +#[cfg_attr(feature = "debug", derive(Debug))] +#[derive(Copy, Clone, Default)] +#[doc = ""] +#[must_use] +pub struct PhysicalDeviceDataGraphProcessingEngineARM { + pub ty: PhysicalDeviceDataGraphProcessingEngineTypeARM, + pub is_foreign: Bool32, +} +impl PhysicalDeviceDataGraphProcessingEngineARM { #[inline] - pub fn depth_input_attachment_index(mut self, depth_input_attachment_index: &'a u32) -> Self { - self.p_depth_input_attachment_index = depth_input_attachment_index; + pub fn ty(mut self, ty: PhysicalDeviceDataGraphProcessingEngineTypeARM) -> Self { + self.ty = ty; self } #[inline] - pub fn stencil_input_attachment_index( - mut self, - stencil_input_attachment_index: &'a u32, - ) -> Self { - self.p_stencil_input_attachment_index = stencil_input_attachment_index; + pub fn is_foreign(mut self, is_foreign: bool) -> Self { + self.is_foreign = is_foreign.into(); self } } #[repr(C)] -#[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderQuadControlFeaturesKHR<'a> { - pub s_type: StructureType, - pub p_next: *mut c_void, - pub shader_quad_control: Bool32, - pub _marker: PhantomData<&'a ()>, +pub struct PhysicalDeviceDataGraphOperationSupportARM { + pub operation_type: PhysicalDeviceDataGraphOperationTypeARM, + pub name: [c_char; MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM], + pub version: u32, } -unsafe impl Send for PhysicalDeviceShaderQuadControlFeaturesKHR<'_> {} -unsafe impl Sync for PhysicalDeviceShaderQuadControlFeaturesKHR<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderQuadControlFeaturesKHR<'_> { +#[cfg(feature = "debug")] +impl fmt::Debug for PhysicalDeviceDataGraphOperationSupportARM { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.debug_struct("PhysicalDeviceDataGraphOperationSupportARM") + .field("operation_type", &self.operation_type) + .field("name", &self.name_as_c_str()) + .field("version", &self.version) + .finish() + } +} +impl ::core::default::Default for PhysicalDeviceDataGraphOperationSupportARM { #[inline] fn default() -> Self { Self { - s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - shader_quad_control: Bool32::default(), - _marker: PhantomData, + operation_type: PhysicalDeviceDataGraphOperationTypeARM::default(), + name: unsafe { ::core::mem::zeroed() }, + version: u32::default(), } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderQuadControlFeaturesKHR<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR; -} -unsafe impl Extends> - for PhysicalDeviceShaderQuadControlFeaturesKHR<'_> -{ -} -unsafe impl Extends> for PhysicalDeviceShaderQuadControlFeaturesKHR<'_> {} -impl<'a> PhysicalDeviceShaderQuadControlFeaturesKHR<'a> { +impl PhysicalDeviceDataGraphOperationSupportARM { #[inline] - pub fn shader_quad_control(mut self, shader_quad_control: bool) -> Self { - self.shader_quad_control = shader_quad_control.into(); + pub fn operation_type( + mut self, + operation_type: PhysicalDeviceDataGraphOperationTypeARM, + ) -> Self { + self.operation_type = operation_type; + self + } + #[inline] + pub fn name(mut self, name: &CStr) -> core::result::Result { + write_c_str_slice_with_nul(&mut self.name, name).map(|()| self) + } + #[inline] + pub fn name_as_c_str(&self) -> core::result::Result<&CStr, FromBytesUntilNulError> { + wrap_c_str_slice_until_nul(&self.name) + } + #[inline] + pub fn version(mut self, version: u32) -> Self { + self.version = version; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'a> { +pub struct QueueFamilyDataGraphPropertiesARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub shader_float16_vector_atomics: Bool32, + pub p_next: *const c_void, + pub engine: PhysicalDeviceDataGraphProcessingEngineARM, + pub operation: PhysicalDeviceDataGraphOperationSupportARM, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'_> {} -unsafe impl Sync for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'_> { +unsafe impl Send for QueueFamilyDataGraphPropertiesARM<'_> {} +unsafe impl Sync for QueueFamilyDataGraphPropertiesARM<'_> {} +impl ::core::default::Default for QueueFamilyDataGraphPropertiesARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - shader_float16_vector_atomics: Bool32::default(), + p_next: ::core::ptr::null(), + engine: PhysicalDeviceDataGraphProcessingEngineARM::default(), + operation: PhysicalDeviceDataGraphOperationSupportARM::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'a> { - const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV; -} -unsafe impl Extends> - for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'_> -{ -} -unsafe impl Extends> - for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'_> -{ +unsafe impl<'a> TaggedStructure<'a> for QueueFamilyDataGraphPropertiesARM<'a> { + const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM; } -impl<'a> PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'a> { +impl<'a> QueueFamilyDataGraphPropertiesARM<'a> { #[inline] - pub fn shader_float16_vector_atomics(mut self, shader_float16_vector_atomics: bool) -> Self { - self.shader_float16_vector_atomics = shader_float16_vector_atomics.into(); + pub fn engine(mut self, engine: PhysicalDeviceDataGraphProcessingEngineARM) -> Self { + self.engine = engine; + self + } + #[inline] + pub fn operation(mut self, operation: PhysicalDeviceDataGraphOperationSupportARM) -> Self { + self.operation = operation; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a> { +pub struct PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub memory_map_placed: Bool32, - pub memory_map_range_placed: Bool32, - pub memory_unmap_reserve: Bool32, + pub p_next: *const c_void, + pub queue_family_index: u32, + pub engine_type: PhysicalDeviceDataGraphProcessingEngineTypeARM, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'_> { +unsafe impl Send for PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM<'_> {} +unsafe impl Sync for PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM<'_> {} +impl ::core::default::Default for PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - memory_map_placed: Bool32::default(), - memory_map_range_placed: Bool32::default(), - memory_unmap_reserve: Bool32::default(), + p_next: ::core::ptr::null(), + queue_family_index: u32::default(), + engine_type: PhysicalDeviceDataGraphProcessingEngineTypeARM::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> + for PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM<'a> +{ const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT; + StructureType::PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM; } -unsafe impl Extends> for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'_> {} -unsafe impl Extends> for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'_> {} -impl<'a> PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a> { - #[inline] - pub fn memory_map_placed(mut self, memory_map_placed: bool) -> Self { - self.memory_map_placed = memory_map_placed.into(); - self - } +impl<'a> PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM<'a> { #[inline] - pub fn memory_map_range_placed(mut self, memory_map_range_placed: bool) -> Self { - self.memory_map_range_placed = memory_map_range_placed.into(); + pub fn queue_family_index(mut self, queue_family_index: u32) -> Self { + self.queue_family_index = queue_family_index; self } #[inline] - pub fn memory_unmap_reserve(mut self, memory_unmap_reserve: bool) -> Self { - self.memory_unmap_reserve = memory_unmap_reserve.into(); + pub fn engine_type( + mut self, + engine_type: PhysicalDeviceDataGraphProcessingEngineTypeARM, + ) -> Self { + self.engine_type = engine_type; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceMapMemoryPlacedPropertiesEXT<'a> { +pub struct QueueFamilyDataGraphProcessingEnginePropertiesARM<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub min_placed_memory_map_alignment: DeviceSize, + pub p_next: *const c_void, + pub foreign_semaphore_handle_types: ExternalSemaphoreHandleTypeFlags, + pub foreign_memory_handle_types: ExternalMemoryHandleTypeFlags, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceMapMemoryPlacedPropertiesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceMapMemoryPlacedPropertiesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceMapMemoryPlacedPropertiesEXT<'_> { +unsafe impl Send for QueueFamilyDataGraphProcessingEnginePropertiesARM<'_> {} +unsafe impl Sync for QueueFamilyDataGraphProcessingEnginePropertiesARM<'_> {} +impl ::core::default::Default for QueueFamilyDataGraphProcessingEnginePropertiesARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - min_placed_memory_map_alignment: DeviceSize::default(), + p_next: ::core::ptr::null(), + foreign_semaphore_handle_types: ExternalSemaphoreHandleTypeFlags::default(), + foreign_memory_handle_types: ExternalMemoryHandleTypeFlags::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceMapMemoryPlacedPropertiesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for QueueFamilyDataGraphProcessingEnginePropertiesARM<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT; -} -unsafe impl Extends> - for PhysicalDeviceMapMemoryPlacedPropertiesEXT<'_> -{ + StructureType::QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM; } -impl<'a> PhysicalDeviceMapMemoryPlacedPropertiesEXT<'a> { +impl<'a> QueueFamilyDataGraphProcessingEnginePropertiesARM<'a> { #[inline] - pub fn min_placed_memory_map_alignment( + pub fn foreign_semaphore_handle_types( mut self, - min_placed_memory_map_alignment: DeviceSize, + foreign_semaphore_handle_types: ExternalSemaphoreHandleTypeFlags, ) -> Self { - self.min_placed_memory_map_alignment = min_placed_memory_map_alignment; + self.foreign_semaphore_handle_types = foreign_semaphore_handle_types; + self + } + #[inline] + pub fn foreign_memory_handle_types( + mut self, + foreign_memory_handle_types: ExternalMemoryHandleTypeFlags, + ) -> Self { + self.foreign_memory_handle_types = foreign_memory_handle_types; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct MemoryMapPlacedInfoEXT<'a> { +pub struct DataGraphProcessingEngineCreateInfoARM<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub p_placed_address: *mut c_void, + pub processing_engine_count: u32, + pub p_processing_engines: *mut PhysicalDeviceDataGraphProcessingEngineARM, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for MemoryMapPlacedInfoEXT<'_> {} -unsafe impl Sync for MemoryMapPlacedInfoEXT<'_> {} -impl ::core::default::Default for MemoryMapPlacedInfoEXT<'_> { +unsafe impl Send for DataGraphProcessingEngineCreateInfoARM<'_> {} +unsafe impl Sync for DataGraphProcessingEngineCreateInfoARM<'_> {} +impl ::core::default::Default for DataGraphProcessingEngineCreateInfoARM<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - p_placed_address: ::core::ptr::null_mut(), + processing_engine_count: u32::default(), + p_processing_engines: ::core::ptr::null_mut(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for MemoryMapPlacedInfoEXT<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_MAP_PLACED_INFO_EXT; +unsafe impl<'a> TaggedStructure<'a> for DataGraphProcessingEngineCreateInfoARM<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM; } -unsafe impl Extends> for MemoryMapPlacedInfoEXT<'_> {} -impl<'a> MemoryMapPlacedInfoEXT<'a> { +unsafe impl Extends> + for DataGraphProcessingEngineCreateInfoARM<'_> +{ +} +unsafe impl Extends> for DataGraphProcessingEngineCreateInfoARM<'_> {} +unsafe impl Extends> for DataGraphProcessingEngineCreateInfoARM<'_> {} +impl<'a> DataGraphProcessingEngineCreateInfoARM<'a> { #[inline] - pub fn placed_address(mut self, placed_address: *mut c_void) -> Self { - self.p_placed_address = placed_address; + pub fn processing_engines( + mut self, + processing_engines: &'a mut [PhysicalDeviceDataGraphProcessingEngineARM], + ) -> Self { + self.processing_engine_count = processing_engines.len() as _; + self.p_processing_engines = processing_engines.as_mut_ptr(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceRawAccessChainsFeaturesNV<'a> { +pub struct PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub shader_raw_access_chains: Bool32, + pub pipeline_cache_incremental_mode: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceRawAccessChainsFeaturesNV<'_> {} -unsafe impl Sync for PhysicalDeviceRawAccessChainsFeaturesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceRawAccessChainsFeaturesNV<'_> { +unsafe impl Send for PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC<'_> {} +unsafe impl Sync for PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC<'_> {} +impl ::core::default::Default for PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - shader_raw_access_chains: Bool32::default(), + pipeline_cache_incremental_mode: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceRawAccessChainsFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV; + StructureType::PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC; } -unsafe impl Extends> for PhysicalDeviceRawAccessChainsFeaturesNV<'_> {} -unsafe impl Extends> for PhysicalDeviceRawAccessChainsFeaturesNV<'_> {} -impl<'a> PhysicalDeviceRawAccessChainsFeaturesNV<'a> { +unsafe impl Extends> + for PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC<'_> +{ +} +unsafe impl Extends> + for PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC<'_> +{ +} +impl<'a> PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC<'a> { #[inline] - pub fn shader_raw_access_chains(mut self, shader_raw_access_chains: bool) -> Self { - self.shader_raw_access_chains = shader_raw_access_chains.into(); + pub fn pipeline_cache_incremental_mode( + mut self, + pipeline_cache_incremental_mode: bool, + ) -> Self { + self.pipeline_cache_incremental_mode = pipeline_cache_incremental_mode.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { +pub struct PhysicalDeviceShaderUntypedPointersFeaturesKHR<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub command_buffer_inheritance: Bool32, + pub shader_untyped_pointers: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'_> {} -unsafe impl Sync for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'_> {} -impl ::core::default::Default for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'_> { +unsafe impl Send for PhysicalDeviceShaderUntypedPointersFeaturesKHR<'_> {} +unsafe impl Sync for PhysicalDeviceShaderUntypedPointersFeaturesKHR<'_> {} +impl ::core::default::Default for PhysicalDeviceShaderUntypedPointersFeaturesKHR<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - command_buffer_inheritance: Bool32::default(), + shader_untyped_pointers: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderUntypedPointersFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV; + StructureType::PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR; } unsafe impl Extends> - for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'_> + for PhysicalDeviceShaderUntypedPointersFeaturesKHR<'_> { } -unsafe impl Extends> for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'_> {} -impl<'a> PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { +unsafe impl Extends> for PhysicalDeviceShaderUntypedPointersFeaturesKHR<'_> {} +impl<'a> PhysicalDeviceShaderUntypedPointersFeaturesKHR<'a> { #[inline] - pub fn command_buffer_inheritance(mut self, command_buffer_inheritance: bool) -> Self { - self.command_buffer_inheritance = command_buffer_inheritance.into(); + pub fn shader_untyped_pointers(mut self, shader_untyped_pointers: bool) -> Self { + self.shader_untyped_pointers = shader_untyped_pointers.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> { +pub struct PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub image_alignment_control: Bool32, + pub video_encode_rgb_conversion: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> {} -unsafe impl Sync for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> {} -impl ::core::default::Default for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> { +unsafe impl Send for PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE<'_> {} +unsafe impl Sync for PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE<'_> {} +impl ::core::default::Default for PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - image_alignment_control: Bool32::default(), + video_encode_rgb_conversion: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> { +unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA; + StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE; } unsafe impl Extends> - for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> + for PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE<'_> { } -unsafe impl Extends> for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> {} -impl<'a> PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> { +unsafe impl Extends> + for PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE<'_> +{ +} +impl<'a> PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE<'a> { #[inline] - pub fn image_alignment_control(mut self, image_alignment_control: bool) -> Self { - self.image_alignment_control = image_alignment_control.into(); + pub fn video_encode_rgb_conversion(mut self, video_encode_rgb_conversion: bool) -> Self { + self.video_encode_rgb_conversion = video_encode_rgb_conversion.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> { +pub struct VideoEncodeRgbConversionCapabilitiesVALVE<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub supported_image_alignment_mask: u32, + pub rgb_models: VideoEncodeRgbModelConversionFlagsVALVE, + pub rgb_ranges: VideoEncodeRgbRangeCompressionFlagsVALVE, + pub x_chroma_offsets: VideoEncodeRgbChromaOffsetFlagsVALVE, + pub y_chroma_offsets: VideoEncodeRgbChromaOffsetFlagsVALVE, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceImageAlignmentControlPropertiesMESA<'_> {} -unsafe impl Sync for PhysicalDeviceImageAlignmentControlPropertiesMESA<'_> {} -impl ::core::default::Default for PhysicalDeviceImageAlignmentControlPropertiesMESA<'_> { +unsafe impl Send for VideoEncodeRgbConversionCapabilitiesVALVE<'_> {} +unsafe impl Sync for VideoEncodeRgbConversionCapabilitiesVALVE<'_> {} +impl ::core::default::Default for VideoEncodeRgbConversionCapabilitiesVALVE<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - supported_image_alignment_mask: u32::default(), + rgb_models: VideoEncodeRgbModelConversionFlagsVALVE::default(), + rgb_ranges: VideoEncodeRgbRangeCompressionFlagsVALVE::default(), + x_chroma_offsets: VideoEncodeRgbChromaOffsetFlagsVALVE::default(), + y_chroma_offsets: VideoEncodeRgbChromaOffsetFlagsVALVE::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeRgbConversionCapabilitiesVALVE<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA; + StructureType::VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE; } -unsafe impl Extends> - for PhysicalDeviceImageAlignmentControlPropertiesMESA<'_> -{ -} -impl<'a> PhysicalDeviceImageAlignmentControlPropertiesMESA<'a> { +unsafe impl Extends> for VideoEncodeRgbConversionCapabilitiesVALVE<'_> {} +impl<'a> VideoEncodeRgbConversionCapabilitiesVALVE<'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; + pub fn rgb_models(mut self, rgb_models: VideoEncodeRgbModelConversionFlagsVALVE) -> Self { + self.rgb_models = rgb_models; + self + } + #[inline] + pub fn rgb_ranges(mut self, rgb_ranges: VideoEncodeRgbRangeCompressionFlagsVALVE) -> Self { + self.rgb_ranges = rgb_ranges; + self + } + #[inline] + pub fn x_chroma_offsets( + mut self, + x_chroma_offsets: VideoEncodeRgbChromaOffsetFlagsVALVE, + ) -> Self { + self.x_chroma_offsets = x_chroma_offsets; + self + } + #[inline] + pub fn y_chroma_offsets( + mut self, + y_chroma_offsets: VideoEncodeRgbChromaOffsetFlagsVALVE, + ) -> Self { + self.y_chroma_offsets = y_chroma_offsets; self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct ImageAlignmentControlCreateInfoMESA<'a> { +pub struct VideoEncodeProfileRgbConversionInfoVALVE<'a> { pub s_type: StructureType, pub p_next: *const c_void, - pub maximum_requested_alignment: u32, + pub perform_encode_rgb_conversion: Bool32, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for ImageAlignmentControlCreateInfoMESA<'_> {} -unsafe impl Sync for ImageAlignmentControlCreateInfoMESA<'_> {} -impl ::core::default::Default for ImageAlignmentControlCreateInfoMESA<'_> { +unsafe impl Send for VideoEncodeProfileRgbConversionInfoVALVE<'_> {} +unsafe impl Sync for VideoEncodeProfileRgbConversionInfoVALVE<'_> {} +impl ::core::default::Default for VideoEncodeProfileRgbConversionInfoVALVE<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null(), - maximum_requested_alignment: u32::default(), + perform_encode_rgb_conversion: Bool32::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for ImageAlignmentControlCreateInfoMESA<'a> { - const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA; +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeProfileRgbConversionInfoVALVE<'a> { + const STRUCTURE_TYPE: StructureType = + StructureType::VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE; } -unsafe impl Extends> for ImageAlignmentControlCreateInfoMESA<'_> {} -impl<'a> ImageAlignmentControlCreateInfoMESA<'a> { +unsafe impl Extends> for VideoEncodeProfileRgbConversionInfoVALVE<'_> {} +impl<'a> VideoEncodeProfileRgbConversionInfoVALVE<'a> { #[inline] - pub fn maximum_requested_alignment(mut self, maximum_requested_alignment: u32) -> Self { - self.maximum_requested_alignment = maximum_requested_alignment; + pub fn perform_encode_rgb_conversion(mut self, perform_encode_rgb_conversion: bool) -> Self { + self.perform_encode_rgb_conversion = perform_encode_rgb_conversion.into(); self } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] #[derive(Copy, Clone)] -#[doc = ""] +#[doc = ""] #[must_use] -pub struct PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> { +pub struct VideoEncodeSessionRgbConversionCreateInfoVALVE<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, - pub shader_replicated_composites: Bool32, + pub p_next: *const c_void, + pub rgb_model: VideoEncodeRgbModelConversionFlagsVALVE, + pub rgb_range: VideoEncodeRgbRangeCompressionFlagsVALVE, + pub x_chroma_offset: VideoEncodeRgbChromaOffsetFlagsVALVE, + pub y_chroma_offset: VideoEncodeRgbChromaOffsetFlagsVALVE, pub _marker: PhantomData<&'a ()>, } -unsafe impl Send for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'_> {} -unsafe impl Sync for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'_> {} -impl ::core::default::Default for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'_> { +unsafe impl Send for VideoEncodeSessionRgbConversionCreateInfoVALVE<'_> {} +unsafe impl Sync for VideoEncodeSessionRgbConversionCreateInfoVALVE<'_> {} +impl ::core::default::Default for VideoEncodeSessionRgbConversionCreateInfoVALVE<'_> { #[inline] fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), - shader_replicated_composites: Bool32::default(), + p_next: ::core::ptr::null(), + rgb_model: VideoEncodeRgbModelConversionFlagsVALVE::default(), + rgb_range: VideoEncodeRgbRangeCompressionFlagsVALVE::default(), + x_chroma_offset: VideoEncodeRgbChromaOffsetFlagsVALVE::default(), + y_chroma_offset: VideoEncodeRgbChromaOffsetFlagsVALVE::default(), _marker: PhantomData, } } } -unsafe impl<'a> TaggedStructure<'a> for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> { +unsafe impl<'a> TaggedStructure<'a> for VideoEncodeSessionRgbConversionCreateInfoVALVE<'a> { const STRUCTURE_TYPE: StructureType = - StructureType::PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT; -} -unsafe impl Extends> - for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'_> -{ + StructureType::VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE; } -unsafe impl Extends> - for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'_> +unsafe impl Extends> + for VideoEncodeSessionRgbConversionCreateInfoVALVE<'_> { } -impl<'a> PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> { +impl<'a> VideoEncodeSessionRgbConversionCreateInfoVALVE<'a> { #[inline] - pub fn shader_replicated_composites(mut self, shader_replicated_composites: bool) -> Self { - self.shader_replicated_composites = shader_replicated_composites.into(); + pub fn rgb_model(mut self, rgb_model: VideoEncodeRgbModelConversionFlagsVALVE) -> Self { + self.rgb_model = rgb_model; 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; + pub fn rgb_range(mut self, rgb_range: VideoEncodeRgbRangeCompressionFlagsVALVE) -> Self { + self.rgb_range = rgb_range; self } #[inline] - pub fn max_depth_clamp(mut self, max_depth_clamp: f32) -> Self { - self.max_depth_clamp = max_depth_clamp; + pub fn x_chroma_offset( + mut self, + x_chroma_offset: VideoEncodeRgbChromaOffsetFlagsVALVE, + ) -> Self { + self.x_chroma_offset = x_chroma_offset; + self + } + #[inline] + pub fn y_chroma_offset( + mut self, + y_chroma_offset: VideoEncodeRgbChromaOffsetFlagsVALVE, + ) -> Self { + self.y_chroma_offset = y_chroma_offset; self } } diff --git a/ash/src/vk/enums.rs b/ash/src/vk/enums.rs index 636868213..11f50fcf0 100644 --- a/ash/src/vk/enums.rs +++ b/ash/src/vk/enums.rs @@ -1104,6 +1104,42 @@ impl RayTracingInvocationReorderModeNV { } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] +#[doc = ""] +pub struct RayTracingLssIndexingModeNV(pub(crate) i32); +impl RayTracingLssIndexingModeNV { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl RayTracingLssIndexingModeNV { + pub const LIST: Self = Self(0); + pub const SUCCESSIVE: Self = Self(1); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +#[doc = ""] +pub struct RayTracingLssPrimitiveEndCapsModeNV(pub(crate) i32); +impl RayTracingLssPrimitiveEndCapsModeNV { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl RayTracingLssPrimitiveEndCapsModeNV { + pub const NONE: Self = Self(0); + pub const CHAINED: Self = Self(1); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] #[doc = ""] pub struct DirectDriverLoadingModeLUNARG(pub(crate) i32); impl DirectDriverLoadingModeLUNARG { @@ -1214,6 +1250,26 @@ impl ColorSpaceKHR { } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] +#[doc = ""] +pub struct DisplaySurfaceStereoTypeNV(pub(crate) i32); +impl DisplaySurfaceStereoTypeNV { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl DisplaySurfaceStereoTypeNV { + pub const NONE: Self = Self(0); + pub const ONBOARD_DIN: Self = Self(1); + pub const HDMI_3D: Self = Self(2); + pub const INBAND_DISPLAYPORT: Self = Self(3); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] #[doc = ""] pub struct TimeDomainKHR(pub(crate) i32); impl TimeDomainKHR { @@ -1321,6 +1377,66 @@ impl RasterizationOrderAMD { } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] +#[doc = ""] +pub struct ClusterAccelerationStructureTypeNV(pub(crate) i32); +impl ClusterAccelerationStructureTypeNV { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl ClusterAccelerationStructureTypeNV { + pub const CLUSTERS_BOTTOM_LEVEL: Self = Self(0); + pub const TRIANGLE_CLUSTER: Self = Self(1); + pub const TRIANGLE_CLUSTER_TEMPLATE: Self = Self(2); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +#[doc = ""] +pub struct ClusterAccelerationStructureOpTypeNV(pub(crate) i32); +impl ClusterAccelerationStructureOpTypeNV { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl ClusterAccelerationStructureOpTypeNV { + pub const MOVE_OBJECTS: Self = Self(0); + pub const BUILD_CLUSTERS_BOTTOM_LEVEL: Self = Self(1); + pub const BUILD_TRIANGLE_CLUSTER: Self = Self(2); + pub const BUILD_TRIANGLE_CLUSTER_TEMPLATE: Self = Self(3); + pub const INSTANTIATE_TRIANGLE_CLUSTER: Self = Self(4); + pub const GET_CLUSTER_TEMPLATE_INDICES: Self = Self(5); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +#[doc = ""] +pub struct ClusterAccelerationStructureOpModeNV(pub(crate) i32); +impl ClusterAccelerationStructureOpModeNV { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl ClusterAccelerationStructureOpModeNV { + pub const IMPLICIT_DESTINATIONS: Self = Self(0); + pub const EXPLICIT_DESTINATIONS: Self = Self(1); + pub const COMPUTE_SIZES: Self = Self(2); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] #[doc = ""] pub struct ValidationCheckEXT(pub(crate) i32); impl ValidationCheckEXT { @@ -1738,9 +1854,9 @@ impl ShaderInfoTypeAMD { } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] -#[doc = ""] -pub struct QueueGlobalPriorityKHR(pub(crate) i32); -impl QueueGlobalPriorityKHR { +#[doc = ""] +pub struct QueueGlobalPriority(pub(crate) i32); +impl QueueGlobalPriority { #[inline] pub const fn from_raw(x: i32) -> Self { Self(x) @@ -1750,15 +1866,11 @@ impl QueueGlobalPriorityKHR { self.0 } } -impl QueueGlobalPriorityKHR { +impl QueueGlobalPriority { pub const LOW: Self = Self(128); pub const MEDIUM: Self = Self(256); pub const HIGH: Self = Self(512); pub const REALTIME: Self = Self(1_024); - pub const LOW_EXT: Self = Self::LOW; - pub const MEDIUM_EXT: Self = Self::MEDIUM; - pub const HIGH_EXT: Self = Self::HIGH; - pub const REALTIME_EXT: Self = Self::REALTIME; } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] @@ -1878,8 +1990,8 @@ impl DriverId { 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); + #[doc = "Vulkan SC Emulation on Vulkan"] + pub const VULKAN_SC_EMULATION_ON_VULKAN: Self = Self(27); } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] @@ -1946,8 +2058,6 @@ impl CopyAccelerationStructureModeKHR { impl CopyAccelerationStructureModeKHR { pub const CLONE: Self = Self(0); pub const COMPACT: Self = Self(1); - pub const SERIALIZE: Self = Self(2); - pub const DESERIALIZE: Self = Self(3); } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] @@ -2339,9 +2449,9 @@ impl PipelineExecutableStatisticFormatKHR { } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] -#[doc = ""] -pub struct LineRasterizationModeKHR(pub(crate) i32); -impl LineRasterizationModeKHR { +#[doc = ""] +pub struct LineRasterizationMode(pub(crate) i32); +impl LineRasterizationMode { #[inline] pub const fn from_raw(x: i32) -> Self { Self(x) @@ -2351,15 +2461,11 @@ impl LineRasterizationModeKHR { self.0 } } -impl LineRasterizationModeKHR { +impl LineRasterizationMode { pub const DEFAULT: Self = Self(0); - pub const DEFAULT_EXT: Self = Self::DEFAULT; pub const RECTANGULAR: Self = Self(1); - pub const RECTANGULAR_EXT: Self = Self::RECTANGULAR; pub const BRESENHAM: Self = Self(2); - pub const BRESENHAM_EXT: Self = Self::BRESENHAM; pub const RECTANGULAR_SMOOTH: Self = Self(3); - pub const RECTANGULAR_SMOOTH_EXT: Self = Self::RECTANGULAR_SMOOTH; } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] @@ -2555,9 +2661,9 @@ impl VideoEncodeTuningModeKHR { } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] -#[doc = ""] -pub struct PipelineRobustnessBufferBehaviorEXT(pub(crate) i32); -impl PipelineRobustnessBufferBehaviorEXT { +#[doc = ""] +pub struct PartitionedAccelerationStructureOpTypeNV(pub(crate) i32); +impl PartitionedAccelerationStructureOpTypeNV { #[inline] pub const fn from_raw(x: i32) -> Self { Self(x) @@ -2567,7 +2673,65 @@ impl PipelineRobustnessBufferBehaviorEXT { self.0 } } -impl PipelineRobustnessBufferBehaviorEXT { +impl PartitionedAccelerationStructureOpTypeNV { + pub const WRITE_INSTANCE: Self = Self(0); + pub const UPDATE_INSTANCE: Self = Self(1); + pub const WRITE_PARTITION_TRANSLATION: Self = Self(2); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +#[doc = ""] +pub struct VideoEncodeAV1PredictionModeKHR(pub(crate) i32); +impl VideoEncodeAV1PredictionModeKHR { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl VideoEncodeAV1PredictionModeKHR { + pub const INTRA_ONLY: Self = Self(0); + pub const SINGLE_REFERENCE: Self = Self(1); + pub const UNIDIRECTIONAL_COMPOUND: Self = Self(2); + pub const BIDIRECTIONAL_COMPOUND: Self = Self(3); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +#[doc = ""] +pub struct VideoEncodeAV1RateControlGroupKHR(pub(crate) i32); +impl VideoEncodeAV1RateControlGroupKHR { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl VideoEncodeAV1RateControlGroupKHR { + pub const INTRA: Self = Self(0); + pub const PREDICTIVE: Self = Self(1); + pub const BIPREDICTIVE: Self = Self(2); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +#[doc = ""] +pub struct PipelineRobustnessBufferBehavior(pub(crate) i32); +impl PipelineRobustnessBufferBehavior { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl PipelineRobustnessBufferBehavior { pub const DEVICE_DEFAULT: Self = Self(0); pub const DISABLED: Self = Self(1); pub const ROBUST_BUFFER_ACCESS: Self = Self(2); @@ -2575,9 +2739,9 @@ impl PipelineRobustnessBufferBehaviorEXT { } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] -#[doc = ""] -pub struct PipelineRobustnessImageBehaviorEXT(pub(crate) i32); -impl PipelineRobustnessImageBehaviorEXT { +#[doc = ""] +pub struct PipelineRobustnessImageBehavior(pub(crate) i32); +impl PipelineRobustnessImageBehavior { #[inline] pub const fn from_raw(x: i32) -> Self { Self(x) @@ -2587,7 +2751,7 @@ impl PipelineRobustnessImageBehaviorEXT { self.0 } } -impl PipelineRobustnessImageBehaviorEXT { +impl PipelineRobustnessImageBehavior { pub const DEVICE_DEFAULT: Self = Self(0); pub const DISABLED: Self = Self(1); pub const ROBUST_IMAGE_ACCESS: Self = Self(2); @@ -3043,6 +3207,23 @@ impl OutOfBandQueueTypeNV { } #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] +#[doc = ""] +pub struct CompressedTriangleFormatAMDX(pub(crate) i32); +impl CompressedTriangleFormatAMDX { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl CompressedTriangleFormatAMDX { + pub const DGF1: Self = Self(0); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] #[doc = ""] pub struct DepthClampModeEXT(pub(crate) i32); impl DepthClampModeEXT { @@ -3059,6 +3240,148 @@ impl DepthClampModeEXT { pub const VIEWPORT_RANGE: Self = Self(0); pub const USER_DEFINED_RANGE: Self = Self(1); } +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +#[doc = ""] +pub struct CooperativeVectorMatrixLayoutNV(pub(crate) i32); +impl CooperativeVectorMatrixLayoutNV { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl CooperativeVectorMatrixLayoutNV { + pub const ROW_MAJOR: Self = Self(0); + pub const COLUMN_MAJOR: Self = Self(1); + pub const INFERENCING_OPTIMAL: Self = Self(2); + pub const TRAINING_OPTIMAL: Self = Self(3); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +#[doc = ""] +pub struct TensorTilingARM(pub(crate) i32); +impl TensorTilingARM { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl TensorTilingARM { + pub const OPTIMAL: Self = Self(0); + pub const LINEAR: Self = Self(1); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +#[doc = ""] +pub struct DefaultVertexAttributeValueKHR(pub(crate) i32); +impl DefaultVertexAttributeValueKHR { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl DefaultVertexAttributeValueKHR { + pub const ZERO_ZERO_ZERO_ZERO: Self = Self(0); + pub const ZERO_ZERO_ZERO_ONE: Self = Self(1); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +#[doc = ""] +pub struct DataGraphPipelineSessionBindPointARM(pub(crate) i32); +impl DataGraphPipelineSessionBindPointARM { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl DataGraphPipelineSessionBindPointARM { + pub const TRANSIENT: Self = Self(0); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +#[doc = ""] +pub struct DataGraphPipelineSessionBindPointTypeARM(pub(crate) i32); +impl DataGraphPipelineSessionBindPointTypeARM { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl DataGraphPipelineSessionBindPointTypeARM { + pub const MEMORY: Self = Self(0); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +#[doc = ""] +pub struct DataGraphPipelinePropertyARM(pub(crate) i32); +impl DataGraphPipelinePropertyARM { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl DataGraphPipelinePropertyARM { + pub const CREATION_LOG: Self = Self(0); + pub const IDENTIFIER: Self = Self(1); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +#[doc = ""] +pub struct PhysicalDeviceDataGraphProcessingEngineTypeARM(pub(crate) i32); +impl PhysicalDeviceDataGraphProcessingEngineTypeARM { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl PhysicalDeviceDataGraphProcessingEngineTypeARM { + pub const DEFAULT: Self = Self(0); +} +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +#[doc = ""] +pub struct PhysicalDeviceDataGraphOperationTypeARM(pub(crate) i32); +impl PhysicalDeviceDataGraphOperationTypeARM { + #[inline] + pub const fn from_raw(x: i32) -> Self { + Self(x) + } + #[inline] + pub const fn as_raw(self) -> i32 { + self.0 + } +} +impl PhysicalDeviceDataGraphOperationTypeARM { + pub const SPIRV_EXTENDED_INSTRUCTION_SET: Self = Self(0); +} impl fmt::Debug for ObjectType { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let name = match *self { @@ -3108,9 +3431,13 @@ impl fmt::Debug for ObjectType { Self::CUDA_FUNCTION_NV => Some("CUDA_FUNCTION_NV"), Self::BUFFER_COLLECTION_FUCHSIA => Some("BUFFER_COLLECTION_FUCHSIA"), Self::MICROMAP_EXT => Some("MICROMAP_EXT"), + Self::TENSOR_ARM => Some("TENSOR_ARM"), + Self::TENSOR_VIEW_ARM => Some("TENSOR_VIEW_ARM"), 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::DATA_GRAPH_PIPELINE_SESSION_ARM => Some("DATA_GRAPH_PIPELINE_SESSION_ARM"), + Self::EXTERNAL_COMPUTE_QUEUE_NV => Some("EXTERNAL_COMPUTE_QUEUE_NV"), 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"), @@ -3152,7 +3479,6 @@ impl fmt::Debug for Result { Self::SUBOPTIMAL_KHR => Some("SUBOPTIMAL_KHR"), Self::ERROR_OUT_OF_DATE_KHR => Some("ERROR_OUT_OF_DATE_KHR"), Self::ERROR_INCOMPATIBLE_DISPLAY_KHR => Some("ERROR_INCOMPATIBLE_DISPLAY_KHR"), - Self::ERROR_VALIDATION_FAILED_EXT => Some("ERROR_VALIDATION_FAILED_EXT"), Self::ERROR_INVALID_SHADER_NV => Some("ERROR_INVALID_SHADER_NV"), Self::ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR => { Some("ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR") @@ -3175,7 +3501,6 @@ impl fmt::Debug for Result { Self::ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT => { Some("ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT") } - Self::ERROR_NOT_PERMITTED_KHR => Some("ERROR_NOT_PERMITTED_KHR"), Self::ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT => { Some("ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT") } @@ -3190,6 +3515,7 @@ impl fmt::Debug for Result { 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_VALIDATION_FAILED => Some("ERROR_VALIDATION_FAILED"), 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"), @@ -3197,6 +3523,7 @@ impl fmt::Debug for Result { Some("ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS") } Self::PIPELINE_COMPILE_REQUIRED => Some("PIPELINE_COMPILE_REQUIRED"), + Self::ERROR_NOT_PERMITTED => Some("ERROR_NOT_PERMITTED"), _ => None, }; if let Some(x) = name { diff --git a/ash/src/vk/extensions.rs b/ash/src/vk/extensions.rs index d3ecf1d0a..0fac15b9e 100644 --- a/ash/src/vk/extensions.rs +++ b/ash/src/vk/extensions.rs @@ -100,7 +100,7 @@ impl ObjectType { } #[doc = "Generated from 'VK_EXT_debug_report'"] impl Result { - pub const ERROR_VALIDATION_FAILED_EXT: Self = Self(-1_000_011_001); + pub const ERROR_VALIDATION_FAILED_EXT: Self = Self::ERROR_VALIDATION_FAILED; } #[doc = "Generated from 'VK_EXT_debug_report'"] impl StructureType { @@ -271,6 +271,7 @@ impl StructureType { pub const CU_MODULE_CREATE_INFO_NVX: Self = Self(1_000_029_000); pub const CU_FUNCTION_CREATE_INFO_NVX: Self = Self(1_000_029_001); pub const CU_LAUNCH_INFO_NVX: Self = Self(1_000_029_002); + pub const CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX: Self = Self(1_000_029_004); } #[doc = "Generated from 'VK_NVX_image_view_handle'"] impl StructureType { @@ -341,11 +342,11 @@ impl AttachmentStoreOp { pub const NONE_KHR: Self = Self::NONE; } #[doc = "Generated from 'VK_KHR_dynamic_rendering'"] -impl PipelineCreateFlags { - pub const RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self = - Self(0b10_0000_0000_0000_0000_0000); - pub const RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT: Self = - Self(0b100_0000_0000_0000_0000_0000); +impl RenderingFlags { + pub const CONTENTS_SECONDARY_COMMAND_BUFFERS_KHR: Self = + Self::CONTENTS_SECONDARY_COMMAND_BUFFERS; + pub const SUSPENDING_KHR: Self = Self::SUSPENDING; + pub const RESUMING_KHR: Self = Self::RESUMING; } #[doc = "Generated from 'VK_KHR_dynamic_rendering'"] impl StructureType { @@ -356,11 +357,6 @@ impl StructureType { Self::PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES; pub const COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR: Self = Self::COMMAND_BUFFER_INHERITANCE_RENDERING_INFO; - pub const RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: Self = Self(1_000_044_006); - pub const RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: Self = Self(1_000_044_007); - pub const ATTACHMENT_SAMPLE_COUNT_INFO_AMD: Self = Self(1_000_044_008); - pub const ATTACHMENT_SAMPLE_COUNT_INFO_NV: Self = Self::ATTACHMENT_SAMPLE_COUNT_INFO_AMD; - pub const MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: Self = Self(1_000_044_009); } #[doc = "Generated from 'VK_GGP_stream_descriptor_surface'"] impl StructureType { @@ -499,10 +495,26 @@ impl StructureType { pub const PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT: Self = Self(1_000_067_001); } #[doc = "Generated from 'VK_EXT_pipeline_robustness'"] +impl PipelineRobustnessBufferBehavior { + pub const DEVICE_DEFAULT_EXT: Self = Self::DEVICE_DEFAULT; + pub const DISABLED_EXT: Self = Self::DISABLED; + pub const ROBUST_BUFFER_ACCESS_EXT: Self = Self::ROBUST_BUFFER_ACCESS; + pub const ROBUST_BUFFER_ACCESS_2_EXT: Self = Self::ROBUST_BUFFER_ACCESS_2; +} +#[doc = "Generated from 'VK_EXT_pipeline_robustness'"] +impl PipelineRobustnessImageBehavior { + pub const DEVICE_DEFAULT_EXT: Self = Self::DEVICE_DEFAULT; + pub const DISABLED_EXT: Self = Self::DISABLED; + pub const ROBUST_IMAGE_ACCESS_EXT: Self = Self::ROBUST_IMAGE_ACCESS; + pub const ROBUST_IMAGE_ACCESS_2_EXT: Self = Self::ROBUST_IMAGE_ACCESS_2; +} +#[doc = "Generated from 'VK_EXT_pipeline_robustness'"] impl StructureType { - pub const PIPELINE_ROBUSTNESS_CREATE_INFO_EXT: Self = Self(1_000_068_000); - pub const PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT: Self = Self(1_000_068_001); - pub const PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT: Self = Self(1_000_068_002); + pub const PIPELINE_ROBUSTNESS_CREATE_INFO_EXT: Self = Self::PIPELINE_ROBUSTNESS_CREATE_INFO; + pub const PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT: Self = + Self::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES; + pub const PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT: Self = + Self::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES; } #[doc = "Generated from 'VK_KHR_maintenance1'"] impl FormatFeatureFlags { @@ -621,17 +633,18 @@ impl StructureType { } #[doc = "Generated from 'VK_KHR_push_descriptor'"] impl DescriptorSetLayoutCreateFlags { - #[doc = "Descriptors are pushed via flink:vkCmdPushDescriptorSetKHR"] - pub const PUSH_DESCRIPTOR_KHR: Self = Self(0b1); + #[doc = "Descriptors are pushed via flink:vkCmdPushDescriptorSet"] + pub const PUSH_DESCRIPTOR_KHR: Self = Self::PUSH_DESCRIPTOR; } #[doc = "Generated from 'VK_KHR_push_descriptor'"] impl DescriptorUpdateTemplateType { #[doc = "Create descriptor update template for pushed descriptor updates"] - pub const PUSH_DESCRIPTORS_KHR: Self = Self(1); + pub const PUSH_DESCRIPTORS_KHR: Self = Self::PUSH_DESCRIPTORS; } #[doc = "Generated from 'VK_KHR_push_descriptor'"] impl StructureType { - pub const PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: Self = Self(1_000_080_000); + pub const PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: Self = + Self::PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES; } #[doc = "Generated from 'VK_EXT_conditional_rendering'"] impl AccessFlags { @@ -714,6 +727,7 @@ impl StructureType { impl StructureType { pub const PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: Self = Self(1_000_097_000); + pub const MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: Self = Self(1_000_044_009); } #[doc = "Generated from 'VK_NVX_multiview_per_view_attributes'"] impl SubpassDescriptionFlags { @@ -976,7 +990,7 @@ impl BufferUsageFlags { pub const EXECUTION_GRAPH_SCRATCH_AMDX: Self = Self(0b10_0000_0000_0000_0000_0000_0000); } #[doc = "Generated from 'VK_AMDX_shader_enqueue'"] -impl BufferUsageFlags2KHR { +impl BufferUsageFlags2 { pub const EXECUTION_GRAPH_SCRATCH_AMDX: Self = Self(0b10_0000_0000_0000_0000_0000_0000); } #[doc = "Generated from 'VK_AMDX_shader_enqueue'"] @@ -984,6 +998,10 @@ impl PipelineBindPoint { pub const EXECUTION_GRAPH_AMDX: Self = Self(1_000_134_000); } #[doc = "Generated from 'VK_AMDX_shader_enqueue'"] +impl PipelineCreateFlags2 { + pub const EXECUTION_GRAPH_AMDX: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_AMDX_shader_enqueue'"] impl StructureType { pub const PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX: Self = Self(1_000_134_000); pub const PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX: Self = Self(1_000_134_001); @@ -991,6 +1009,10 @@ impl StructureType { pub const EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX: Self = Self(1_000_134_003); pub const PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX: Self = Self(1_000_134_004); } +#[doc = "Generated from 'VK_AMD_mixed_attachment_samples'"] +impl StructureType { + pub const ATTACHMENT_SAMPLE_COUNT_INFO_AMD: Self = Self(1_000_044_008); +} #[doc = "Generated from 'VK_EXT_inline_uniform_block'"] impl DescriptorType { pub const INLINE_UNIFORM_BLOCK_EXT: Self = Self::INLINE_UNIFORM_BLOCK; @@ -1006,6 +1028,14 @@ impl StructureType { pub const DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT: Self = Self::DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO; } +#[doc = "Generated from 'VK_KHR_shader_bfloat16'"] +impl ComponentTypeKHR { + pub const BFLOAT16: Self = Self(1_000_141_000); +} +#[doc = "Generated from 'VK_KHR_shader_bfloat16'"] +impl StructureType { + pub const PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR: Self = Self(1_000_141_000); +} #[doc = "Generated from 'VK_EXT_sample_locations'"] impl DynamicState { pub const SAMPLE_LOCATIONS_EXT: Self = Self(1_000_143_000); @@ -1111,6 +1141,11 @@ impl BufferUsageFlags { pub const ACCELERATION_STRUCTURE_STORAGE_KHR: Self = Self(0b1_0000_0000_0000_0000_0000); } #[doc = "Generated from 'VK_KHR_acceleration_structure'"] +impl CopyAccelerationStructureModeKHR { + pub const SERIALIZE: Self = Self(2); + pub const DESERIALIZE: Self = Self(3); +} +#[doc = "Generated from 'VK_KHR_acceleration_structure'"] impl DebugReportObjectTypeEXT { pub const ACCELERATION_STRUCTURE_KHR: Self = Self(1_000_150_000); } @@ -1187,6 +1222,10 @@ impl PipelineCreateFlags { Self(0b1000_0000_0000_0000_0000); } #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"] +impl PipelineCreateFlags2 { + pub const RAY_TRACING_SKIP_BUILT_IN_PRIMITIVES_KHR: Self = Self::RAY_TRACING_SKIP_TRIANGLES_KHR; +} +#[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"] impl PipelineStageFlags { pub const RAY_TRACING_SHADER_KHR: Self = Self(0b10_0000_0000_0000_0000_0000); } @@ -1214,6 +1253,7 @@ impl StructureType { #[doc = "Generated from 'VK_NV_framebuffer_mixed_samples'"] impl StructureType { pub const PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: Self = Self(1_000_152_000); + pub const ATTACHMENT_SAMPLE_COUNT_INFO_NV: Self = Self::ATTACHMENT_SAMPLE_COUNT_INFO_AMD; } #[doc = "Generated from 'VK_NV_fill_rectangle'"] impl PolygonMode { @@ -1585,13 +1625,20 @@ impl SubpassDescriptionFlags { pub const SHADER_RESOLVE_QCOM: Self = Self(0b1000); } #[doc = "Generated from 'VK_EXT_global_priority'"] +impl QueueGlobalPriority { + pub const LOW_EXT: Self = Self::LOW; + pub const MEDIUM_EXT: Self = Self::MEDIUM; + pub const HIGH_EXT: Self = Self::HIGH; + pub const REALTIME_EXT: Self = Self::REALTIME; +} +#[doc = "Generated from 'VK_EXT_global_priority'"] impl Result { - pub const ERROR_NOT_PERMITTED_EXT: Self = Self::ERROR_NOT_PERMITTED_KHR; + pub const ERROR_NOT_PERMITTED_EXT: Self = Self::ERROR_NOT_PERMITTED; } #[doc = "Generated from 'VK_EXT_global_priority'"] impl StructureType { pub const DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT: Self = - Self::DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR; + Self::DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO; } #[doc = "Generated from 'VK_KHR_shader_subgroup_extended_types'"] impl StructureType { @@ -1656,14 +1703,24 @@ impl VideoCodecOperationFlagsKHR { pub const DECODE_H265: Self = Self(0b10); } #[doc = "Generated from 'VK_KHR_global_priority'"] +impl QueueGlobalPriority { + pub const LOW_KHR: Self = Self::LOW; + pub const MEDIUM_KHR: Self = Self::MEDIUM; + pub const HIGH_KHR: Self = Self::HIGH; + pub const REALTIME_KHR: Self = Self::REALTIME; +} +#[doc = "Generated from 'VK_KHR_global_priority'"] impl Result { - pub const ERROR_NOT_PERMITTED_KHR: Self = Self(-1_000_174_001); + pub const ERROR_NOT_PERMITTED_KHR: Self = Self::ERROR_NOT_PERMITTED; } #[doc = "Generated from 'VK_KHR_global_priority'"] impl StructureType { - pub const DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR: Self = Self(1_000_174_000); - pub const PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR: Self = Self(1_000_388_000); - pub const QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR: Self = Self(1_000_388_001); + pub const DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR: Self = + Self::DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO; + pub const PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR: Self = + Self::PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES; + pub const QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR: Self = + Self::QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES; } #[doc = "Generated from 'VK_AMD_memory_overallocation_behavior'"] impl StructureType { @@ -1673,15 +1730,21 @@ impl StructureType { impl StructureType { pub const PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: Self = Self(1_000_190_000); pub const PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: Self = - Self::PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR; + Self::PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO; pub const PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: Self = - Self::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR; + Self::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES; } #[doc = "Generated from 'VK_GGP_frame_token'"] impl StructureType { pub const PRESENT_FRAME_TOKEN_GGP: Self = Self(1_000_191_000); } #[doc = "Generated from 'VK_EXT_pipeline_creation_feedback'"] +impl PipelineCreationFeedbackFlags { + pub const VALID_EXT: Self = Self::VALID; + pub const APPLICATION_PIPELINE_CACHE_HIT_EXT: Self = Self::APPLICATION_PIPELINE_CACHE_HIT; + pub const BASE_PIPELINE_ACCELERATION_EXT: Self = Self::BASE_PIPELINE_ACCELERATION; +} +#[doc = "Generated from 'VK_EXT_pipeline_creation_feedback'"] impl StructureType { pub const PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT: Self = Self::PIPELINE_CREATION_FEEDBACK_CREATE_INFO; @@ -1787,6 +1850,8 @@ impl StructureType { impl StructureType { pub const CHECKPOINT_DATA_NV: Self = Self(1_000_206_000); pub const QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV: Self = Self(1_000_206_001); + pub const QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: Self = Self(1_000_314_008); + pub const CHECKPOINT_DATA_2_NV: Self = Self(1_000_314_009); } #[doc = "Generated from 'VK_KHR_timeline_semaphore'"] impl SemaphoreType { @@ -1889,6 +1954,11 @@ impl ImageViewCreateFlags { pub const FRAGMENT_DENSITY_MAP_DYNAMIC_EXT: Self = Self(0b1); } #[doc = "Generated from 'VK_EXT_fragment_density_map'"] +impl PipelineCreateFlags { + pub const RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT: Self = + Self(0b100_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_EXT_fragment_density_map'"] impl PipelineStageFlags { pub const FRAGMENT_DENSITY_PROCESS_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000); } @@ -1902,6 +1972,7 @@ impl StructureType { pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: Self = Self(1_000_218_000); pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: Self = Self(1_000_218_001); pub const RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: Self = Self(1_000_218_002); + pub const RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: Self = Self(1_000_044_007); } #[doc = "Generated from 'VK_EXT_scalar_block_layout'"] impl StructureType { @@ -1950,6 +2021,11 @@ impl ImageUsageFlags { pub const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self = Self(0b1_0000_0000); } #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"] +impl PipelineCreateFlags { + pub const RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self = + Self(0b10_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_KHR_fragment_shading_rate'"] impl PipelineStageFlags { pub const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self = Self(0b100_0000_0000_0000_0000_0000); } @@ -1960,6 +2036,7 @@ impl StructureType { pub const PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: Self = Self(1_000_226_002); pub const PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: Self = Self(1_000_226_003); pub const PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR: Self = Self(1_000_226_004); + pub const RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: Self = Self(1_000_044_006); } #[doc = "Generated from 'VK_AMD_shader_core_properties2'"] impl StructureType { @@ -1976,13 +2053,16 @@ impl StructureType { } #[doc = "Generated from 'VK_KHR_dynamic_rendering_local_read'"] impl ImageLayout { - pub const RENDERING_LOCAL_READ_KHR: Self = Self(1_000_232_000); + pub const RENDERING_LOCAL_READ_KHR: Self = Self::RENDERING_LOCAL_READ; } #[doc = "Generated from 'VK_KHR_dynamic_rendering_local_read'"] impl StructureType { - pub const PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR: Self = Self(1_000_232_000); - pub const RENDERING_ATTACHMENT_LOCATION_INFO_KHR: Self = Self(1_000_232_001); - pub const RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR: Self = Self(1_000_232_002); + pub const PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR: Self = + Self::PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES; + pub const RENDERING_ATTACHMENT_LOCATION_INFO_KHR: Self = + Self::RENDERING_ATTACHMENT_LOCATION_INFO; + pub const RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR: Self = + Self::RENDERING_INPUT_ATTACHMENT_INDEX_INFO; } #[doc = "Generated from 'VK_EXT_shader_image_atomic_int64'"] impl StructureType { @@ -2052,6 +2132,11 @@ impl StructureType { } #[doc = "Generated from 'VK_EXT_tooling_info'"] impl ToolPurposeFlags { + pub const VALIDATION_EXT: Self = Self::VALIDATION; + pub const PROFILING_EXT: Self = Self::PROFILING; + pub const TRACING_EXT: Self = Self::TRACING; + pub const ADDITIONAL_FEATURES_EXT: Self = Self::ADDITIONAL_FEATURES; + pub const MODIFYING_FEATURES_EXT: Self = Self::MODIFYING_FEATURES; pub const DEBUG_REPORTING_EXT: Self = Self(0b10_0000); pub const DEBUG_MARKERS_EXT: Self = Self(0b100_0000); } @@ -2166,16 +2251,23 @@ impl StructureType { } #[doc = "Generated from 'VK_EXT_line_rasterization'"] impl DynamicState { - pub const LINE_STIPPLE_EXT: Self = Self::LINE_STIPPLE_KHR; + pub const LINE_STIPPLE_EXT: Self = Self::LINE_STIPPLE; +} +#[doc = "Generated from 'VK_EXT_line_rasterization'"] +impl LineRasterizationMode { + pub const DEFAULT_EXT: Self = Self::DEFAULT; + pub const RECTANGULAR_EXT: Self = Self::RECTANGULAR; + pub const BRESENHAM_EXT: Self = Self::BRESENHAM; + pub const RECTANGULAR_SMOOTH_EXT: Self = Self::RECTANGULAR_SMOOTH; } #[doc = "Generated from 'VK_EXT_line_rasterization'"] impl StructureType { pub const PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT: Self = - Self::PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR; + Self::PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES; pub const PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT: Self = - Self::PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR; + Self::PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO; pub const PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT: Self = - Self::PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR; + Self::PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES; } #[doc = "Generated from 'VK_EXT_shader_atomic_float'"] impl StructureType { @@ -2188,12 +2280,12 @@ impl StructureType { } #[doc = "Generated from 'VK_EXT_index_type_uint8'"] impl IndexType { - pub const UINT8_EXT: Self = Self::UINT8_KHR; + pub const UINT8_EXT: Self = Self::UINT8; } #[doc = "Generated from 'VK_EXT_index_type_uint8'"] impl StructureType { pub const PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: Self = - Self::PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR; + Self::PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES; } #[doc = "Generated from 'VK_EXT_extended_dynamic_state'"] impl DynamicState { @@ -2244,38 +2336,44 @@ impl StructureType { #[doc = "Generated from 'VK_EXT_host_image_copy'"] impl FormatFeatureFlags2 { #[doc = "Host image copies are supported"] - pub const HOST_IMAGE_TRANSFER_EXT: Self = - Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000); + pub const HOST_IMAGE_TRANSFER_EXT: Self = Self::HOST_IMAGE_TRANSFER; +} +#[doc = "Generated from 'VK_EXT_host_image_copy'"] +impl HostImageCopyFlags { + pub const MEMCPY_EXT: Self = Self::MEMCPY; } #[doc = "Generated from 'VK_EXT_host_image_copy'"] impl ImageUsageFlags { #[doc = "Can be used with host image copies"] - pub const HOST_TRANSFER_EXT: Self = Self(0b100_0000_0000_0000_0000_0000); + pub const HOST_TRANSFER_EXT: Self = Self::HOST_TRANSFER; } #[doc = "Generated from 'VK_EXT_host_image_copy'"] impl StructureType { - pub const PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT: Self = Self(1_000_270_000); - pub const PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT: Self = Self(1_000_270_001); - pub const MEMORY_TO_IMAGE_COPY_EXT: Self = Self(1_000_270_002); - pub const IMAGE_TO_MEMORY_COPY_EXT: Self = Self(1_000_270_003); - pub const COPY_IMAGE_TO_MEMORY_INFO_EXT: Self = Self(1_000_270_004); - pub const COPY_MEMORY_TO_IMAGE_INFO_EXT: Self = Self(1_000_270_005); - pub const HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT: Self = Self(1_000_270_006); - pub const COPY_IMAGE_TO_IMAGE_INFO_EXT: Self = Self(1_000_270_007); - pub const SUBRESOURCE_HOST_MEMCPY_SIZE_EXT: Self = Self(1_000_270_008); - pub const HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT: Self = Self(1_000_270_009); + pub const PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT: Self = + Self::PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES; + pub const PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT: Self = + Self::PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES; + pub const MEMORY_TO_IMAGE_COPY_EXT: Self = Self::MEMORY_TO_IMAGE_COPY; + pub const IMAGE_TO_MEMORY_COPY_EXT: Self = Self::IMAGE_TO_MEMORY_COPY; + pub const COPY_IMAGE_TO_MEMORY_INFO_EXT: Self = Self::COPY_IMAGE_TO_MEMORY_INFO; + pub const COPY_MEMORY_TO_IMAGE_INFO_EXT: Self = Self::COPY_MEMORY_TO_IMAGE_INFO; + pub const HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT: Self = Self::HOST_IMAGE_LAYOUT_TRANSITION_INFO; + pub const COPY_IMAGE_TO_IMAGE_INFO_EXT: Self = Self::COPY_IMAGE_TO_IMAGE_INFO; + pub const SUBRESOURCE_HOST_MEMCPY_SIZE_EXT: Self = Self::SUBRESOURCE_HOST_MEMCPY_SIZE; + pub const HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT: Self = + Self::HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY; } #[doc = "Generated from 'VK_KHR_map_memory2'"] impl StructureType { - pub const MEMORY_MAP_INFO_KHR: Self = Self(1_000_271_000); - pub const MEMORY_UNMAP_INFO_KHR: Self = Self(1_000_271_001); + pub const MEMORY_MAP_INFO_KHR: Self = Self::MEMORY_MAP_INFO; + pub const MEMORY_UNMAP_INFO_KHR: Self = Self::MEMORY_UNMAP_INFO; } #[doc = "Generated from 'VK_EXT_map_memory_placed'"] impl MemoryMapFlags { pub const PLACED_EXT: Self = Self(0b1); } #[doc = "Generated from 'VK_EXT_map_memory_placed'"] -impl MemoryUnmapFlagsKHR { +impl MemoryUnmapFlags { pub const RESERVE_EXT: Self = Self(0b1); } #[doc = "Generated from 'VK_EXT_map_memory_placed'"] @@ -2290,22 +2388,27 @@ impl StructureType { } #[doc = "Generated from 'VK_EXT_surface_maintenance1'"] impl StructureType { - pub const SURFACE_PRESENT_MODE_EXT: Self = Self(1_000_274_000); - pub const SURFACE_PRESENT_SCALING_CAPABILITIES_EXT: Self = Self(1_000_274_001); - pub const SURFACE_PRESENT_MODE_COMPATIBILITY_EXT: Self = Self(1_000_274_002); + pub const SURFACE_PRESENT_MODE_EXT: Self = Self::SURFACE_PRESENT_MODE_KHR; + pub const SURFACE_PRESENT_SCALING_CAPABILITIES_EXT: Self = + Self::SURFACE_PRESENT_SCALING_CAPABILITIES_KHR; + pub const SURFACE_PRESENT_MODE_COMPATIBILITY_EXT: Self = + Self::SURFACE_PRESENT_MODE_COMPATIBILITY_KHR; } #[doc = "Generated from 'VK_EXT_swapchain_maintenance1'"] impl StructureType { - pub const PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: Self = Self(1_000_275_000); - pub const SWAPCHAIN_PRESENT_FENCE_INFO_EXT: Self = Self(1_000_275_001); - pub const SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: Self = Self(1_000_275_002); - pub const SWAPCHAIN_PRESENT_MODE_INFO_EXT: Self = Self(1_000_275_003); - pub const SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: Self = Self(1_000_275_004); - pub const RELEASE_SWAPCHAIN_IMAGES_INFO_EXT: Self = Self(1_000_275_005); + pub const PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: Self = + Self::PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR; + pub const SWAPCHAIN_PRESENT_FENCE_INFO_EXT: Self = Self::SWAPCHAIN_PRESENT_FENCE_INFO_KHR; + pub const SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: Self = + Self::SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR; + pub const SWAPCHAIN_PRESENT_MODE_INFO_EXT: Self = Self::SWAPCHAIN_PRESENT_MODE_INFO_KHR; + pub const SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: Self = + Self::SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR; + pub const RELEASE_SWAPCHAIN_IMAGES_INFO_EXT: Self = Self::RELEASE_SWAPCHAIN_IMAGES_INFO_KHR; } #[doc = "Generated from 'VK_EXT_swapchain_maintenance1'"] impl SwapchainCreateFlagsKHR { - pub const DEFERRED_MEMORY_ALLOCATION_EXT: Self = Self(0b1000); + pub const DEFERRED_MEMORY_ALLOCATION_EXT: Self = Self::DEFERRED_MEMORY_ALLOCATION; } #[doc = "Generated from 'VK_EXT_shader_demote_to_helper_invocation'"] impl StructureType { @@ -2314,8 +2417,8 @@ impl StructureType { } #[doc = "Generated from 'VK_NV_device_generated_commands'"] impl AccessFlags { - 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_NV: Self = Self::COMMAND_PREPROCESS_READ_EXT; + pub const COMMAND_PREPROCESS_WRITE_NV: Self = Self::COMMAND_PREPROCESS_WRITE_EXT; } #[doc = "Generated from 'VK_NV_device_generated_commands'"] impl ObjectType { @@ -2327,7 +2430,7 @@ impl PipelineCreateFlags { } #[doc = "Generated from 'VK_NV_device_generated_commands'"] impl PipelineStageFlags { - pub const COMMAND_PREPROCESS_NV: Self = Self(0b10_0000_0000_0000_0000); + pub const COMMAND_PREPROCESS_NV: Self = Self::COMMAND_PREPROCESS_EXT; } #[doc = "Generated from 'VK_NV_device_generated_commands'"] impl StructureType { @@ -2383,8 +2486,10 @@ impl StructureType { } #[doc = "Generated from 'VK_EXT_robustness2'"] impl StructureType { - pub const PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: Self = Self(1_000_286_000); - pub const PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: Self = Self(1_000_286_001); + pub const PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: Self = + Self::PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR; + pub const PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: Self = + Self::PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR; } #[doc = "Generated from 'VK_EXT_custom_border_color'"] impl BorderColor { @@ -2549,6 +2654,26 @@ impl StructureType { pub const PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV: Self = Self(1_000_307_003); pub const PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV: Self = Self(1_000_307_004); } +#[doc = "Generated from 'VK_QCOM_tile_shading'"] +impl AccessFlags2 { + pub const SHADER_TILE_ATTACHMENT_READ_QCOM: Self = + Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000); + pub const SHADER_TILE_ATTACHMENT_WRITE_QCOM: Self = + Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_QCOM_tile_shading'"] +impl StructureType { + pub const PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM: Self = Self(1_000_309_000); + pub const PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM: Self = Self(1_000_309_001); + pub const RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM: Self = Self(1_000_309_002); + pub const PER_TILE_BEGIN_INFO_QCOM: Self = Self(1_000_309_003); + pub const PER_TILE_END_INFO_QCOM: Self = Self(1_000_309_004); + pub const DISPATCH_TILE_INFO_QCOM: Self = Self(1_000_309_005); +} +#[doc = "Generated from 'VK_QCOM_tile_shading'"] +impl SubpassDescriptionFlags { + pub const TILE_SHADING_APRON_QCOM: Self = Self(0b1_0000_0000); +} #[doc = "Generated from 'VK_NV_low_latency'"] impl StructureType { pub const QUERY_LOW_LATENCY_SUPPORT_NV: Self = Self(1_000_310_000); @@ -2574,16 +2699,37 @@ impl AccessFlags { } #[doc = "Generated from 'VK_KHR_synchronization2'"] impl AccessFlags2 { + pub const NONE_KHR: Self = Self::NONE; + pub const INDIRECT_COMMAND_READ_KHR: Self = Self::INDIRECT_COMMAND_READ; + pub const INDEX_READ_KHR: Self = Self::INDEX_READ; + pub const VERTEX_ATTRIBUTE_READ_KHR: Self = Self::VERTEX_ATTRIBUTE_READ; + pub const UNIFORM_READ_KHR: Self = Self::UNIFORM_READ; + pub const INPUT_ATTACHMENT_READ_KHR: Self = Self::INPUT_ATTACHMENT_READ; + pub const SHADER_READ_KHR: Self = Self::SHADER_READ; + pub const SHADER_WRITE_KHR: Self = Self::SHADER_WRITE; + pub const COLOR_ATTACHMENT_READ_KHR: Self = Self::COLOR_ATTACHMENT_READ; + pub const COLOR_ATTACHMENT_WRITE_KHR: Self = Self::COLOR_ATTACHMENT_WRITE; + pub const DEPTH_STENCIL_ATTACHMENT_READ_KHR: Self = Self::DEPTH_STENCIL_ATTACHMENT_READ; + pub const DEPTH_STENCIL_ATTACHMENT_WRITE_KHR: Self = Self::DEPTH_STENCIL_ATTACHMENT_WRITE; + pub const TRANSFER_READ_KHR: Self = Self::TRANSFER_READ; + pub const TRANSFER_WRITE_KHR: Self = Self::TRANSFER_WRITE; + pub const HOST_READ_KHR: Self = Self::HOST_READ; + pub const HOST_WRITE_KHR: Self = Self::HOST_WRITE; + pub const MEMORY_READ_KHR: Self = Self::MEMORY_READ; + pub const MEMORY_WRITE_KHR: Self = Self::MEMORY_WRITE; + pub const SHADER_SAMPLED_READ_KHR: Self = Self::SHADER_SAMPLED_READ; + pub const SHADER_STORAGE_READ_KHR: Self = Self::SHADER_STORAGE_READ; + pub const SHADER_STORAGE_WRITE_KHR: Self = Self::SHADER_STORAGE_WRITE; pub const TRANSFORM_FEEDBACK_WRITE_EXT: Self = Self(0b10_0000_0000_0000_0000_0000_0000); pub const TRANSFORM_FEEDBACK_COUNTER_READ_EXT: Self = Self(0b100_0000_0000_0000_0000_0000_0000); pub const TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000_0000); #[doc = "read access flag for reading conditional rendering predicate"] 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 COMMAND_PREPROCESS_READ_NV: Self = Self::COMMAND_PREPROCESS_READ_EXT; + pub const COMMAND_PREPROCESS_WRITE_NV: Self = Self::COMMAND_PREPROCESS_WRITE_EXT; + pub const COMMAND_PREPROCESS_READ_EXT: Self = Self(0b10_0000_0000_0000_0000); + pub const COMMAND_PREPROCESS_WRITE_EXT: Self = Self(0b100_0000_0000_0000_0000); 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; @@ -2609,11 +2755,37 @@ impl PipelineStageFlags { } #[doc = "Generated from 'VK_KHR_synchronization2'"] impl PipelineStageFlags2 { + pub const NONE_KHR: Self = Self::NONE; + pub const TOP_OF_PIPE_KHR: Self = Self::TOP_OF_PIPE; + pub const DRAW_INDIRECT_KHR: Self = Self::DRAW_INDIRECT; + pub const VERTEX_INPUT_KHR: Self = Self::VERTEX_INPUT; + pub const VERTEX_SHADER_KHR: Self = Self::VERTEX_SHADER; + pub const TESSELLATION_CONTROL_SHADER_KHR: Self = Self::TESSELLATION_CONTROL_SHADER; + pub const TESSELLATION_EVALUATION_SHADER_KHR: Self = Self::TESSELLATION_EVALUATION_SHADER; + pub const GEOMETRY_SHADER_KHR: Self = Self::GEOMETRY_SHADER; + pub const FRAGMENT_SHADER_KHR: Self = Self::FRAGMENT_SHADER; + pub const EARLY_FRAGMENT_TESTS_KHR: Self = Self::EARLY_FRAGMENT_TESTS; + pub const LATE_FRAGMENT_TESTS_KHR: Self = Self::LATE_FRAGMENT_TESTS; + pub const COLOR_ATTACHMENT_OUTPUT_KHR: Self = Self::COLOR_ATTACHMENT_OUTPUT; + pub const COMPUTE_SHADER_KHR: Self = Self::COMPUTE_SHADER; + pub const ALL_TRANSFER_KHR: Self = Self::ALL_TRANSFER; + pub const TRANSFER_KHR: Self = Self::ALL_TRANSFER; + pub const BOTTOM_OF_PIPE_KHR: Self = Self::BOTTOM_OF_PIPE; + pub const HOST_KHR: Self = Self::HOST; + pub const ALL_GRAPHICS_KHR: Self = Self::ALL_GRAPHICS; + pub const ALL_COMMANDS_KHR: Self = Self::ALL_COMMANDS; + pub const COPY_KHR: Self = Self::COPY; + pub const RESOLVE_KHR: Self = Self::RESOLVE; + pub const BLIT_KHR: Self = Self::BLIT; + pub const CLEAR_KHR: Self = Self::CLEAR; + pub const INDEX_INPUT_KHR: Self = Self::INDEX_INPUT; + pub const VERTEX_ATTRIBUTE_INPUT_KHR: Self = Self::VERTEX_ATTRIBUTE_INPUT; + pub const PRE_RASTERIZATION_SHADERS_KHR: Self = Self::PRE_RASTERIZATION_SHADERS; pub const TRANSFORM_FEEDBACK_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000); #[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 COMMAND_PREPROCESS_NV: Self = Self::COMMAND_PREPROCESS_EXT; + pub const COMMAND_PREPROCESS_EXT: Self = Self(0b10_0000_0000_0000_0000); 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); @@ -2637,8 +2809,10 @@ impl StructureType { pub const COMMAND_BUFFER_SUBMIT_INFO_KHR: Self = Self::COMMAND_BUFFER_SUBMIT_INFO; pub const PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR: Self = Self::PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES; - pub const QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: Self = Self(1_000_314_008); - pub const CHECKPOINT_DATA_2_NV: Self = Self(1_000_314_009); +} +#[doc = "Generated from 'VK_KHR_synchronization2'"] +impl SubmitFlags { + pub const PROTECTED_KHR: Self = Self::PROTECTED; } #[doc = "Generated from 'VK_EXT_descriptor_buffer'"] impl AccelerationStructureCreateFlagsKHR { @@ -2850,8 +3024,8 @@ impl Result { impl StructureType { pub const PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: Self = Self(1_000_338_000); pub const IMAGE_COMPRESSION_CONTROL_EXT: Self = Self(1_000_338_001); - pub const SUBRESOURCE_LAYOUT_2_EXT: Self = Self::SUBRESOURCE_LAYOUT_2_KHR; - pub const IMAGE_SUBRESOURCE_2_EXT: Self = Self::IMAGE_SUBRESOURCE_2_KHR; + pub const SUBRESOURCE_LAYOUT_2_EXT: Self = Self::SUBRESOURCE_LAYOUT_2; + pub const IMAGE_SUBRESOURCE_2_EXT: Self = Self::IMAGE_SUBRESOURCE_2; pub const IMAGE_COMPRESSION_PROPERTIES_EXT: Self = Self(1_000_338_004); } #[doc = "Generated from 'VK_EXT_attachment_feedback_loop_layout'"] @@ -2980,9 +3154,52 @@ impl StructureType { Self(1_000_356_000); } #[doc = "Generated from 'VK_KHR_format_feature_flags2'"] +impl FormatFeatureFlags2 { + pub const SAMPLED_IMAGE_KHR: Self = Self::SAMPLED_IMAGE; + pub const STORAGE_IMAGE_KHR: Self = Self::STORAGE_IMAGE; + pub const STORAGE_IMAGE_ATOMIC_KHR: Self = Self::STORAGE_IMAGE_ATOMIC; + pub const UNIFORM_TEXEL_BUFFER_KHR: Self = Self::UNIFORM_TEXEL_BUFFER; + pub const STORAGE_TEXEL_BUFFER_KHR: Self = Self::STORAGE_TEXEL_BUFFER; + pub const STORAGE_TEXEL_BUFFER_ATOMIC_KHR: Self = Self::STORAGE_TEXEL_BUFFER_ATOMIC; + pub const VERTEX_BUFFER_KHR: Self = Self::VERTEX_BUFFER; + pub const COLOR_ATTACHMENT_KHR: Self = Self::COLOR_ATTACHMENT; + pub const COLOR_ATTACHMENT_BLEND_KHR: Self = Self::COLOR_ATTACHMENT_BLEND; + pub const DEPTH_STENCIL_ATTACHMENT_KHR: Self = Self::DEPTH_STENCIL_ATTACHMENT; + pub const BLIT_SRC_KHR: Self = Self::BLIT_SRC; + pub const BLIT_DST_KHR: Self = Self::BLIT_DST; + pub const SAMPLED_IMAGE_FILTER_LINEAR_KHR: Self = Self::SAMPLED_IMAGE_FILTER_LINEAR; + pub const TRANSFER_SRC_KHR: Self = Self::TRANSFER_SRC; + pub const TRANSFER_DST_KHR: Self = Self::TRANSFER_DST; + pub const MIDPOINT_CHROMA_SAMPLES_KHR: Self = Self::MIDPOINT_CHROMA_SAMPLES; + pub const SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_KHR: Self = + Self::SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER; + pub const SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_KHR: Self = + Self::SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER; + pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_KHR: Self = + Self::SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT; + pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_KHR: Self = + Self::SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE; + pub const DISJOINT_KHR: Self = Self::DISJOINT; + pub const COSITED_CHROMA_SAMPLES_KHR: Self = Self::COSITED_CHROMA_SAMPLES; + pub const STORAGE_READ_WITHOUT_FORMAT_KHR: Self = Self::STORAGE_READ_WITHOUT_FORMAT; + pub const STORAGE_WRITE_WITHOUT_FORMAT_KHR: Self = Self::STORAGE_WRITE_WITHOUT_FORMAT; + pub const SAMPLED_IMAGE_DEPTH_COMPARISON_KHR: Self = Self::SAMPLED_IMAGE_DEPTH_COMPARISON; + pub const SAMPLED_IMAGE_FILTER_MINMAX_KHR: Self = Self::SAMPLED_IMAGE_FILTER_MINMAX; + pub const SAMPLED_IMAGE_FILTER_CUBIC_EXT: Self = Self::SAMPLED_IMAGE_FILTER_CUBIC; +} +#[doc = "Generated from 'VK_KHR_format_feature_flags2'"] impl StructureType { pub const FORMAT_PROPERTIES_3_KHR: Self = Self::FORMAT_PROPERTIES_3; } +#[doc = "Generated from 'VK_EXT_present_mode_fifo_latest_ready'"] +impl PresentModeKHR { + pub const FIFO_LATEST_READY_EXT: Self = Self::FIFO_LATEST_READY; +} +#[doc = "Generated from 'VK_EXT_present_mode_fifo_latest_ready'"] +impl StructureType { + pub const PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT: Self = + Self::PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR; +} #[doc = "Generated from 'VK_FUCHSIA_external_memory'"] impl ExternalMemoryHandleTypeFlags { pub const ZIRCON_VMO_FUCHSIA: Self = Self(0b1000_0000_0000); @@ -3155,12 +3372,24 @@ impl QueryType { impl StructureType { pub const PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR: Self = Self(1_000_386_000); } +#[doc = "Generated from 'VK_KHR_shader_untyped_pointers'"] +impl StructureType { + pub const PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR: Self = Self(1_000_387_000); +} #[doc = "Generated from 'VK_EXT_global_priority_query'"] impl StructureType { pub const PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT: Self = - Self::PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR; + Self::PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES; pub const QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT: Self = - Self::QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR; + Self::QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES; +} +#[doc = "Generated from 'VK_VALVE_video_encode_rgb_conversion'"] +impl StructureType { + pub const PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE: Self = + Self(1_000_390_000); + pub const VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE: Self = Self(1_000_390_001); + pub const VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE: Self = Self(1_000_390_002); + pub const VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE: Self = Self(1_000_390_003); } #[doc = "Generated from 'VK_EXT_image_view_min_lod'"] impl StructureType { @@ -3264,7 +3493,7 @@ impl StructureType { } #[doc = "Generated from 'VK_EXT_load_store_op_none'"] impl AttachmentLoadOp { - pub const NONE_EXT: Self = Self::NONE_KHR; + pub const NONE_EXT: Self = Self::NONE; } #[doc = "Generated from 'VK_EXT_load_store_op_none'"] impl AttachmentStoreOp { @@ -3318,12 +3547,13 @@ impl StructureType { } #[doc = "Generated from 'VK_KHR_shader_subgroup_rotate'"] impl StructureType { - pub const PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR: Self = Self(1_000_416_000); + pub const PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR: Self = + Self::PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES; } #[doc = "Generated from 'VK_KHR_shader_subgroup_rotate'"] impl SubgroupFeatureFlags { - pub const ROTATE_KHR: Self = Self(0b10_0000_0000); - pub const ROTATE_CLUSTERED_KHR: Self = Self(0b100_0000_0000); + pub const ROTATE_KHR: Self = Self::ROTATE; + pub const ROTATE_CLUSTERED_KHR: Self = Self::ROTATE_CLUSTERED; } #[doc = "Generated from 'VK_ARM_scheduling_controls'"] impl StructureType { @@ -3345,7 +3575,8 @@ impl StructureType { } #[doc = "Generated from 'VK_EXT_depth_clamp_zero_one'"] impl StructureType { - pub const PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT: Self = Self(1_000_421_000); + pub const PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT: Self = + Self::PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR; } #[doc = "Generated from 'VK_EXT_non_seamless_cube_map'"] impl SamplerCreateFlags { @@ -3365,19 +3596,22 @@ impl StructureType { } #[doc = "Generated from 'VK_QCOM_fragment_density_map_offset'"] impl ImageCreateFlags { - pub const FRAGMENT_DENSITY_MAP_OFFSET_QCOM: Self = Self(0b1000_0000_0000_0000); + pub const FRAGMENT_DENSITY_MAP_OFFSET_QCOM: Self = Self::FRAGMENT_DENSITY_MAP_OFFSET_EXT; } #[doc = "Generated from 'VK_QCOM_fragment_density_map_offset'"] impl StructureType { - pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM: Self = Self(1_000_425_000); + pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM: Self = + Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT; pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM: Self = - Self(1_000_425_001); - pub const SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM: Self = Self(1_000_425_002); + Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT; + pub const SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM: Self = + Self::RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT; } #[doc = "Generated from 'VK_NV_copy_memory_indirect'"] impl StructureType { pub const PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV: Self = Self(1_000_426_000); - pub const PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV: Self = Self(1_000_426_001); + pub const PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV: Self = + Self::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR; } #[doc = "Generated from 'VK_NV_memory_decompression'"] impl StructureType { @@ -3400,6 +3634,29 @@ impl StructureType { pub const COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV: Self = Self(1_000_428_001); pub const PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV: Self = Self(1_000_428_002); } +#[doc = "Generated from 'VK_NV_ray_tracing_linear_swept_spheres'"] +impl FormatFeatureFlags2 { + pub const ACCELERATION_STRUCTURE_RADIUS_BUFFER_NV: Self = + Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_NV_ray_tracing_linear_swept_spheres'"] +impl GeometryTypeKHR { + pub const SPHERES_NV: Self = Self(1_000_429_004); + pub const LINEAR_SWEPT_SPHERES_NV: Self = Self(1_000_429_005); +} +#[doc = "Generated from 'VK_NV_ray_tracing_linear_swept_spheres'"] +impl PipelineCreateFlags2 { + pub const RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_NV: Self = + Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_NV_ray_tracing_linear_swept_spheres'"] +impl StructureType { + pub const PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV: Self = + Self(1_000_429_008); + pub const ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV: Self = + Self(1_000_429_009); + pub const ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV: Self = Self(1_000_429_010); +} #[doc = "Generated from 'VK_NV_linear_color_attachment'"] impl FormatFeatureFlags2 { #[doc = "Format support linear image as render target, it cannot be mixed with non linear attachment"] @@ -3517,6 +3774,68 @@ impl StructureType { pub const DIRECT_DRIVER_LOADING_INFO_LUNARG: Self = Self(1_000_459_000); pub const DIRECT_DRIVER_LOADING_LIST_LUNARG: Self = Self(1_000_459_001); } +#[doc = "Generated from 'VK_ARM_tensors'"] +impl DescriptorType { + pub const TENSOR_ARM: Self = Self(1_000_460_000); +} +#[doc = "Generated from 'VK_ARM_tensors'"] +impl Format { + pub const R8_BOOL_ARM: Self = Self(1_000_460_000); +} +#[doc = "Generated from 'VK_ARM_tensors'"] +impl FormatFeatureFlags2 { + pub const TENSOR_SHADER_ARM: Self = Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000_0000); + pub const TENSOR_IMAGE_ALIASING_ARM: Self = + Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_ARM_tensors'"] +impl ImageLayout { + pub const TENSOR_ALIASING_ARM: Self = Self(1_000_460_000); +} +#[doc = "Generated from 'VK_ARM_tensors'"] +impl ImageUsageFlags { + pub const TENSOR_ALIASING_ARM: Self = Self(0b1000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_ARM_tensors'"] +impl ObjectType { + pub const TENSOR_ARM: Self = Self(1_000_460_000); + pub const TENSOR_VIEW_ARM: Self = Self(1_000_460_001); +} +#[doc = "Generated from 'VK_ARM_tensors'"] +impl StructureType { + pub const TENSOR_CREATE_INFO_ARM: Self = Self(1_000_460_000); + pub const TENSOR_VIEW_CREATE_INFO_ARM: Self = Self(1_000_460_001); + pub const BIND_TENSOR_MEMORY_INFO_ARM: Self = Self(1_000_460_002); + pub const WRITE_DESCRIPTOR_SET_TENSOR_ARM: Self = Self(1_000_460_003); + pub const PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM: Self = Self(1_000_460_004); + pub const TENSOR_FORMAT_PROPERTIES_ARM: Self = Self(1_000_460_005); + pub const TENSOR_DESCRIPTION_ARM: Self = Self(1_000_460_006); + pub const TENSOR_MEMORY_REQUIREMENTS_INFO_ARM: Self = Self(1_000_460_007); + pub const TENSOR_MEMORY_BARRIER_ARM: Self = Self(1_000_460_008); + pub const PHYSICAL_DEVICE_TENSOR_FEATURES_ARM: Self = Self(1_000_460_009); + pub const DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM: Self = Self(1_000_460_010); + pub const COPY_TENSOR_INFO_ARM: Self = Self(1_000_460_011); + pub const TENSOR_COPY_ARM: Self = Self(1_000_460_012); + pub const TENSOR_DEPENDENCY_INFO_ARM: Self = Self(1_000_460_013); + pub const MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM: Self = Self(1_000_460_014); + pub const PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM: Self = Self(1_000_460_015); + pub const EXTERNAL_TENSOR_PROPERTIES_ARM: Self = Self(1_000_460_016); + pub const EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM: Self = Self(1_000_460_017); + pub const PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM: Self = Self(1_000_460_018); + pub const PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM: Self = Self(1_000_460_019); + pub const DESCRIPTOR_GET_TENSOR_INFO_ARM: Self = Self(1_000_460_020); + pub const TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM: Self = Self(1_000_460_021); + pub const TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM: Self = Self(1_000_460_022); + pub const FRAME_BOUNDARY_TENSORS_ARM: Self = Self(1_000_460_023); +} +#[doc = "Generated from 'VK_ARM_tensors'"] +impl TensorCreateFlagsARM { + pub const DESCRIPTOR_BUFFER_CAPTURE_REPLAY: Self = Self(0b100); +} +#[doc = "Generated from 'VK_ARM_tensors'"] +impl TensorViewCreateFlagsARM { + pub const DESCRIPTOR_BUFFER_CAPTURE_REPLAY: Self = Self(0b1); +} #[doc = "Generated from 'VK_EXT_shader_module_identifier'"] impl StructureType { pub const PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: Self = Self(1_000_462_000); @@ -3587,7 +3906,7 @@ 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 { +impl PipelineCreateFlags2 { pub const ENABLE_LEGACY_DITHERING_EXT: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000); } @@ -3605,12 +3924,13 @@ impl SubpassDescriptionFlags { } #[doc = "Generated from 'VK_EXT_pipeline_protected_access'"] impl PipelineCreateFlags { - pub const NO_PROTECTED_ACCESS_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000_0000); - pub const PROTECTED_ACCESS_ONLY_EXT: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000); + pub const NO_PROTECTED_ACCESS_EXT: Self = Self::NO_PROTECTED_ACCESS; + pub const PROTECTED_ACCESS_ONLY_EXT: Self = Self::PROTECTED_ACCESS_ONLY; } #[doc = "Generated from 'VK_EXT_pipeline_protected_access'"] impl StructureType { - pub const PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT: Self = Self(1_000_466_000); + pub const PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT: Self = + Self::PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES; } #[doc = "Generated from 'VK_ANDROID_external_format_resolve'"] impl ResolveModeFlags { @@ -3624,19 +3944,29 @@ impl StructureType { pub const ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID: Self = Self(1_000_468_002); } #[doc = "Generated from 'VK_KHR_maintenance5'"] -impl BufferUsageFlags2KHR { +impl BufferUsageFlags2 { + pub const TRANSFER_SRC_KHR: Self = Self::TRANSFER_SRC; + pub const TRANSFER_DST_KHR: Self = Self::TRANSFER_DST; + pub const UNIFORM_TEXEL_BUFFER_KHR: Self = Self::UNIFORM_TEXEL_BUFFER; + pub const STORAGE_TEXEL_BUFFER_KHR: Self = Self::STORAGE_TEXEL_BUFFER; + pub const UNIFORM_BUFFER_KHR: Self = Self::UNIFORM_BUFFER; + pub const STORAGE_BUFFER_KHR: Self = Self::STORAGE_BUFFER; + pub const INDEX_BUFFER_KHR: Self = Self::INDEX_BUFFER; + pub const VERTEX_BUFFER_KHR: Self = Self::VERTEX_BUFFER; + pub const INDIRECT_BUFFER_KHR: Self = Self::INDIRECT_BUFFER; pub const CONDITIONAL_RENDERING_EXT: Self = Self(0b10_0000_0000); - pub const SHADER_BINDING_TABLE: Self = Self(0b100_0000_0000); - pub const RAY_TRACING_NV: Self = Self::SHADER_BINDING_TABLE; + pub const SHADER_BINDING_TABLE_KHR: Self = Self(0b100_0000_0000); + pub const RAY_TRACING_NV: Self = Self::SHADER_BINDING_TABLE_KHR; pub const TRANSFORM_FEEDBACK_BUFFER_EXT: Self = Self(0b1000_0000_0000); pub const TRANSFORM_FEEDBACK_COUNTER_BUFFER_EXT: Self = Self(0b1_0000_0000_0000); - pub const VIDEO_DECODE_SRC: Self = Self(0b10_0000_0000_0000); - pub const VIDEO_DECODE_DST: Self = Self(0b100_0000_0000_0000); - pub const VIDEO_ENCODE_DST: Self = Self(0b1000_0000_0000_0000); - pub const VIDEO_ENCODE_SRC: Self = Self(0b1_0000_0000_0000_0000); - pub const SHADER_DEVICE_ADDRESS: Self = Self(0b10_0000_0000_0000_0000); - pub const ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY: Self = Self(0b1000_0000_0000_0000_0000); - pub const ACCELERATION_STRUCTURE_STORAGE: Self = Self(0b1_0000_0000_0000_0000_0000); + pub const VIDEO_DECODE_SRC_KHR: Self = Self(0b10_0000_0000_0000); + pub const VIDEO_DECODE_DST_KHR: Self = Self(0b100_0000_0000_0000); + pub const VIDEO_ENCODE_DST_KHR: Self = Self(0b1000_0000_0000_0000); + pub const VIDEO_ENCODE_SRC_KHR: Self = Self(0b1_0000_0000_0000_0000); + pub const SHADER_DEVICE_ADDRESS_KHR: Self = Self::SHADER_DEVICE_ADDRESS; + pub const ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_KHR: Self = + Self(0b1000_0000_0000_0000_0000); + pub const ACCELERATION_STRUCTURE_STORAGE_KHR: Self = Self(0b1_0000_0000_0000_0000_0000); pub const SAMPLER_DESCRIPTOR_BUFFER_EXT: Self = Self(0b10_0000_0000_0000_0000_0000); pub const RESOURCE_DESCRIPTOR_BUFFER_EXT: Self = Self(0b100_0000_0000_0000_0000_0000); pub const PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_EXT: Self = @@ -3646,32 +3976,34 @@ impl BufferUsageFlags2KHR { } #[doc = "Generated from 'VK_KHR_maintenance5'"] impl Format { - pub const A1B5G5R5_UNORM_PACK16_KHR: Self = Self(1_000_470_000); - pub const A8_UNORM_KHR: Self = Self(1_000_470_001); + pub const A1B5G5R5_UNORM_PACK16_KHR: Self = Self::A1B5G5R5_UNORM_PACK16; + pub const A8_UNORM_KHR: Self = Self::A8_UNORM; } #[doc = "Generated from 'VK_KHR_maintenance5'"] -impl PipelineCreateFlags2KHR { - pub const VIEW_INDEX_FROM_DEVICE_INDEX: Self = Self(0b1000); - pub const DISPATCH_BASE: Self = Self(0b1_0000); +impl PipelineCreateFlags2 { + pub const DISABLE_OPTIMIZATION_KHR: Self = Self::DISABLE_OPTIMIZATION; + pub const ALLOW_DERIVATIVES_KHR: Self = Self::ALLOW_DERIVATIVES; + pub const DERIVATIVE_KHR: Self = Self::DERIVATIVE; + pub const VIEW_INDEX_FROM_DEVICE_INDEX_KHR: Self = Self::VIEW_INDEX_FROM_DEVICE_INDEX; pub const DEFER_COMPILE_NV: Self = Self(0b10_0000); - pub const CAPTURE_STATISTICS: Self = Self(0b100_0000); - pub const CAPTURE_INTERNAL_REPRESENTATIONS: Self = Self(0b1000_0000); - pub const FAIL_ON_PIPELINE_COMPILE_REQUIRED: Self = Self(0b1_0000_0000); - pub const EARLY_RETURN_ON_FAILURE: Self = Self(0b10_0000_0000); + pub const CAPTURE_STATISTICS_KHR: Self = Self(0b100_0000); + pub const CAPTURE_INTERNAL_REPRESENTATIONS_KHR: Self = Self(0b1000_0000); + pub const FAIL_ON_PIPELINE_COMPILE_REQUIRED_KHR: Self = Self::FAIL_ON_PIPELINE_COMPILE_REQUIRED; + pub const EARLY_RETURN_ON_FAILURE_KHR: Self = Self::EARLY_RETURN_ON_FAILURE; pub const LINK_TIME_OPTIMIZATION_EXT: Self = Self(0b100_0000_0000); pub const RETAIN_LINK_TIME_OPTIMIZATION_INFO_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000); - pub const LIBRARY: Self = Self(0b1000_0000_0000); - pub const RAY_TRACING_SKIP_TRIANGLES: Self = Self(0b1_0000_0000_0000); - pub const RAY_TRACING_SKIP_AABBS: Self = Self(0b10_0000_0000_0000); - pub const RAY_TRACING_NO_NULL_ANY_HIT_SHADERS: Self = Self(0b100_0000_0000_0000); - pub const RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS: Self = Self(0b1000_0000_0000_0000); - pub const RAY_TRACING_NO_NULL_MISS_SHADERS: Self = Self(0b1_0000_0000_0000_0000); - pub const RAY_TRACING_NO_NULL_INTERSECTION_SHADERS: Self = Self(0b10_0000_0000_0000_0000); - pub const RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY: Self = + pub const LIBRARY_KHR: Self = Self(0b1000_0000_0000); + pub const RAY_TRACING_SKIP_TRIANGLES_KHR: Self = Self(0b1_0000_0000_0000); + pub const RAY_TRACING_SKIP_AABBS_KHR: Self = Self(0b10_0000_0000_0000); + pub const RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_KHR: Self = Self(0b100_0000_0000_0000); + pub const RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_KHR: Self = Self(0b1000_0000_0000_0000); + pub const RAY_TRACING_NO_NULL_MISS_SHADERS_KHR: Self = Self(0b1_0000_0000_0000_0000); + pub const RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_KHR: Self = Self(0b10_0000_0000_0000_0000); + pub const RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_KHR: Self = Self(0b1000_0000_0000_0000_0000); pub const INDIRECT_BINDABLE_NV: Self = Self(0b100_0000_0000_0000_0000); pub const RAY_TRACING_ALLOW_MOTION_NV: Self = Self(0b1_0000_0000_0000_0000_0000); - pub const RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT: Self = + pub const RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self = Self(0b10_0000_0000_0000_0000_0000); pub const RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT: Self = Self(0b100_0000_0000_0000_0000_0000); @@ -3679,22 +4011,27 @@ impl PipelineCreateFlags2KHR { pub const COLOR_ATTACHMENT_FEEDBACK_LOOP_EXT: Self = Self(0b10_0000_0000_0000_0000_0000_0000); pub const DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_EXT: Self = Self(0b100_0000_0000_0000_0000_0000_0000); - pub const NO_PROTECTED_ACCESS_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000_0000); - pub const PROTECTED_ACCESS_ONLY_EXT: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000); + pub const NO_PROTECTED_ACCESS_EXT: Self = Self::NO_PROTECTED_ACCESS; + pub const PROTECTED_ACCESS_ONLY_EXT: Self = Self::PROTECTED_ACCESS_ONLY; pub const RAY_TRACING_DISPLACEMENT_MICROMAP_NV: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000); pub const DESCRIPTOR_BUFFER_EXT: Self = Self(0b10_0000_0000_0000_0000_0000_0000_0000); + pub const DISALLOW_OPACITY_MICROMAP_ARM: Self = + Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000); } #[doc = "Generated from 'VK_KHR_maintenance5'"] impl StructureType { - pub const PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR: Self = Self(1_000_470_000); - pub const PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR: Self = Self(1_000_470_001); - pub const RENDERING_AREA_INFO_KHR: Self = Self(1_000_470_003); - pub const DEVICE_IMAGE_SUBRESOURCE_INFO_KHR: Self = Self(1_000_470_004); - pub const SUBRESOURCE_LAYOUT_2_KHR: Self = Self(1_000_338_002); - pub const IMAGE_SUBRESOURCE_2_KHR: Self = Self(1_000_338_003); - 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); + pub const PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR: Self = + Self::PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES; + pub const PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR: Self = + Self::PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES; + pub const RENDERING_AREA_INFO_KHR: Self = Self::RENDERING_AREA_INFO; + pub const DEVICE_IMAGE_SUBRESOURCE_INFO_KHR: Self = Self::DEVICE_IMAGE_SUBRESOURCE_INFO; + pub const SUBRESOURCE_LAYOUT_2_KHR: Self = Self::SUBRESOURCE_LAYOUT_2; + pub const IMAGE_SUBRESOURCE_2_KHR: Self = Self::IMAGE_SUBRESOURCE_2; + pub const PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR: Self = + Self::PIPELINE_CREATE_FLAGS_2_CREATE_INFO; + pub const BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR: Self = Self::BUFFER_USAGE_FLAGS_2_CREATE_INFO; } #[doc = "Generated from 'VK_AMD_anti_lag'"] impl StructureType { @@ -3702,6 +4039,42 @@ impl StructureType { 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_AMDX_dense_geometry_format'"] +impl BufferUsageFlags2 { + pub const COMPRESSED_DATA_DGF1_AMDX: Self = Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_AMDX_dense_geometry_format'"] +impl GeometryTypeKHR { + pub const DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX: Self = Self(1_000_478_000); +} +#[doc = "Generated from 'VK_AMDX_dense_geometry_format'"] +impl StructureType { + pub const PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX: Self = Self(1_000_478_000); + pub const ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX: Self = + Self(1_000_478_001); +} +#[doc = "Generated from 'VK_KHR_present_id2'"] +impl StructureType { + pub const SURFACE_CAPABILITIES_PRESENT_ID_2_KHR: Self = Self(1_000_479_000); + pub const PRESENT_ID_2_KHR: Self = Self(1_000_479_001); + pub const PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR: Self = Self(1_000_479_002); +} +#[doc = "Generated from 'VK_KHR_present_id2'"] +impl SwapchainCreateFlagsKHR { + #[doc = "Allow use of VK_KHR_present_id2 with this swapchain"] + pub const PRESENT_ID_2: Self = Self(0b100_0000); +} +#[doc = "Generated from 'VK_KHR_present_wait2'"] +impl StructureType { + pub const SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR: Self = Self(1_000_480_000); + pub const PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR: Self = Self(1_000_480_001); + pub const PRESENT_WAIT_2_INFO_KHR: Self = Self(1_000_480_002); +} +#[doc = "Generated from 'VK_KHR_present_wait2'"] +impl SwapchainCreateFlagsKHR { + #[doc = "Allow use of VK_KHR_present_wait2 with this swapchain"] + pub const PRESENT_WAIT_2: Self = Self(0b1000_0000); +} #[doc = "Generated from 'VK_KHR_ray_tracing_position_fetch'"] impl BuildAccelerationStructureFlagsKHR { pub const ALLOW_DATA_ACCESS: Self = Self(0b1000_0000_0000); @@ -3740,8 +4113,8 @@ 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); +impl PipelineCreateFlags2 { + pub const CAPTURE_DATA_KHR: Self = Self(0b1000_0000_0000_0000_0000_0000_0000_0000); } #[doc = "Generated from 'VK_KHR_pipeline_binary'"] impl Result { @@ -3771,6 +4144,25 @@ impl StructureType { pub const PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC: Self = Self(1_000_485_000); pub const AMIGO_PROFILING_SUBMIT_INFO_SEC: Self = Self(1_000_485_001); } +#[doc = "Generated from 'VK_KHR_surface_maintenance1'"] +impl StructureType { + pub const SURFACE_PRESENT_MODE_KHR: Self = Self(1_000_274_000); + pub const SURFACE_PRESENT_SCALING_CAPABILITIES_KHR: Self = Self(1_000_274_001); + pub const SURFACE_PRESENT_MODE_COMPATIBILITY_KHR: Self = Self(1_000_274_002); +} +#[doc = "Generated from 'VK_KHR_swapchain_maintenance1'"] +impl StructureType { + pub const PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR: Self = Self(1_000_275_000); + pub const SWAPCHAIN_PRESENT_FENCE_INFO_KHR: Self = Self(1_000_275_001); + pub const SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR: Self = Self(1_000_275_002); + pub const SWAPCHAIN_PRESENT_MODE_INFO_KHR: Self = Self(1_000_275_003); + pub const SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR: Self = Self(1_000_275_004); + pub const RELEASE_SWAPCHAIN_IMAGES_INFO_KHR: Self = Self(1_000_275_005); +} +#[doc = "Generated from 'VK_KHR_swapchain_maintenance1'"] +impl SwapchainCreateFlagsKHR { + pub const DEFERRED_MEMORY_ALLOCATION: Self = Self(0b1000); +} #[doc = "Generated from 'VK_QCOM_multiview_per_view_viewports'"] impl StructureType { pub const PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM: Self = @@ -3783,6 +4175,25 @@ impl StructureType { pub const PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV: Self = Self(1_000_490_001); } +#[doc = "Generated from 'VK_NV_cooperative_vector'"] +impl ComponentTypeKHR { + pub const SINT8_PACKED_NV: Self = Self(1_000_491_000); + pub const UINT8_PACKED_NV: Self = Self(1_000_491_001); + pub const FLOAT_E4M3_NV: Self = Self::FLOAT8_E4M3_EXT; + pub const FLOAT_E5M2_NV: Self = Self::FLOAT8_E5M2_EXT; +} +#[doc = "Generated from 'VK_NV_cooperative_vector'"] +impl PipelineStageFlags2 { + pub const CONVERT_COOPERATIVE_VECTOR_MATRIX_NV: Self = + Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_NV_cooperative_vector'"] +impl StructureType { + pub const PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV: Self = Self(1_000_491_000); + pub const PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV: Self = Self(1_000_491_001); + pub const COOPERATIVE_VECTOR_PROPERTIES_NV: Self = Self(1_000_491_002); + pub const CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV: Self = Self(1_000_491_004); +} #[doc = "Generated from 'VK_NV_extended_sparse_address_space'"] impl StructureType { pub const PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV: Self = Self(1_000_492_000); @@ -3848,6 +4259,69 @@ impl StructureType { pub const COOPERATIVE_MATRIX_PROPERTIES_KHR: Self = Self(1_000_506_001); pub const PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR: Self = Self(1_000_506_002); } +#[doc = "Generated from 'VK_ARM_data_graph'"] +impl AccessFlags2 { + pub const DATA_GRAPH_READ_ARM: Self = + Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000); + pub const DATA_GRAPH_WRITE_ARM: Self = + Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_ARM_data_graph'"] +impl BufferUsageFlags2 { + pub const DATA_GRAPH_FOREIGN_DESCRIPTOR_ARM: Self = + Self(0b10_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_ARM_data_graph'"] +impl FormatFeatureFlags2 { + pub const TENSOR_DATA_GRAPH_ARM: Self = + Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_ARM_data_graph'"] +impl ObjectType { + pub const DATA_GRAPH_PIPELINE_SESSION_ARM: Self = Self(1_000_507_000); +} +#[doc = "Generated from 'VK_ARM_data_graph'"] +impl PipelineBindPoint { + pub const DATA_GRAPH_ARM: Self = Self(1_000_507_000); +} +#[doc = "Generated from 'VK_ARM_data_graph'"] +impl PipelineStageFlags2 { + pub const DATA_GRAPH_ARM: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_ARM_data_graph'"] +impl QueueFlags { + pub const DATA_GRAPH_ARM: Self = Self(0b100_0000_0000); +} +#[doc = "Generated from 'VK_ARM_data_graph'"] +impl StructureType { + pub const DATA_GRAPH_PIPELINE_CREATE_INFO_ARM: Self = Self(1_000_507_000); + pub const DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM: Self = Self(1_000_507_001); + pub const DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM: Self = Self(1_000_507_002); + pub const DATA_GRAPH_PIPELINE_CONSTANT_ARM: Self = Self(1_000_507_003); + pub const DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM: Self = Self(1_000_507_004); + pub const BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM: Self = Self(1_000_507_005); + pub const PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM: Self = Self(1_000_507_006); + pub const DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM: Self = Self(1_000_507_007); + pub const DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM: Self = Self(1_000_507_008); + pub const DATA_GRAPH_PIPELINE_INFO_ARM: Self = Self(1_000_507_009); + pub const DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM: Self = Self(1_000_507_010); + pub const DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM: Self = + Self(1_000_507_011); + pub const DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM: Self = Self(1_000_507_012); + pub const DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM: Self = Self(1_000_507_013); + pub const DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM: Self = Self(1_000_507_014); + pub const DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM: Self = Self(1_000_507_016); + pub const QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM: Self = Self(1_000_507_017); + pub const QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM: Self = Self(1_000_507_018); + pub const PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM: Self = + Self(1_000_507_019); + pub const DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM: Self = + Self(1_000_507_015); +} +#[doc = "Generated from 'VK_ARM_data_graph'"] +impl TensorUsageFlagsARM { + pub const DATA_GRAPH: Self = Self(0b10_0000); +} #[doc = "Generated from 'VK_QCOM_multiview_per_view_render_areas'"] impl StructureType { pub const PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM: Self = @@ -3872,6 +4346,35 @@ impl StructureType { impl VideoCodecOperationFlagsKHR { pub const DECODE_AV1: Self = Self(0b100); } +#[doc = "Generated from 'VK_KHR_video_encode_av1'"] +impl StructureType { + pub const VIDEO_ENCODE_AV1_CAPABILITIES_KHR: Self = Self(1_000_513_000); + pub const VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR: Self = Self(1_000_513_001); + pub const VIDEO_ENCODE_AV1_PICTURE_INFO_KHR: Self = Self(1_000_513_002); + pub const VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR: Self = Self(1_000_513_003); + pub const PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR: Self = Self(1_000_513_004); + pub const VIDEO_ENCODE_AV1_PROFILE_INFO_KHR: Self = Self(1_000_513_005); + pub const VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR: Self = Self(1_000_513_006); + pub const VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR: Self = Self(1_000_513_007); + pub const VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR: Self = Self(1_000_513_008); + pub const VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR: Self = Self(1_000_513_009); + pub const VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR: Self = Self(1_000_513_010); +} +#[doc = "Generated from 'VK_KHR_video_encode_av1'"] +impl VideoCodecOperationFlagsKHR { + pub const ENCODE_AV1: Self = Self(0b100_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_KHR_video_decode_vp9'"] +impl StructureType { + pub const PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR: Self = Self(1_000_514_000); + pub const VIDEO_DECODE_VP9_CAPABILITIES_KHR: Self = Self(1_000_514_001); + pub const VIDEO_DECODE_VP9_PICTURE_INFO_KHR: Self = Self(1_000_514_002); + pub const VIDEO_DECODE_VP9_PROFILE_INFO_KHR: Self = Self(1_000_514_003); +} +#[doc = "Generated from 'VK_KHR_video_decode_vp9'"] +impl VideoCodecOperationFlagsKHR { + pub const DECODE_VP9: Self = Self(0b1000); +} #[doc = "Generated from 'VK_KHR_video_maintenance1'"] impl BufferCreateFlags { pub const VIDEO_PROFILE_INDEPENDENT_KHR: Self = Self(0b100_0000); @@ -3933,17 +4436,26 @@ impl StructureType { } #[doc = "Generated from 'VK_KHR_vertex_attribute_divisor'"] impl StructureType { - pub const PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR: Self = Self(1_000_525_000); - pub const PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR: Self = Self(1_000_190_001); - pub const PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR: Self = Self(1_000_190_002); + pub const PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR: Self = + Self::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES; + pub const PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR: Self = + Self::PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO; + pub const PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR: Self = + Self::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES; } #[doc = "Generated from 'VK_KHR_load_store_op_none'"] impl AttachmentLoadOp { - pub const NONE_KHR: Self = Self(1_000_400_000); + pub const NONE_KHR: Self = Self::NONE; +} +#[doc = "Generated from 'VK_KHR_unified_image_layouts'"] +impl StructureType { + pub const PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR: Self = Self(1_000_527_000); + pub const ATTACHMENT_FEEDBACK_LOOP_INFO_EXT: Self = Self(1_000_527_001); } #[doc = "Generated from 'VK_KHR_shader_float_controls2'"] impl StructureType { - pub const PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR: Self = Self(1_000_528_000); + pub const PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR: Self = + Self::PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES; } #[doc = "Generated from 'VK_QNX_external_memory_screen_buffer'"] impl ExternalMemoryHandleTypeFlags { @@ -3964,21 +4476,32 @@ impl StructureType { } #[doc = "Generated from 'VK_KHR_index_type_uint8'"] impl IndexType { - pub const UINT8_KHR: Self = Self(1_000_265_000); + pub const UINT8_KHR: Self = Self::UINT8; } #[doc = "Generated from 'VK_KHR_index_type_uint8'"] impl StructureType { - pub const PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR: Self = Self(1_000_265_000); + pub const PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR: Self = + Self::PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES; } #[doc = "Generated from 'VK_KHR_line_rasterization'"] impl DynamicState { - pub const LINE_STIPPLE_KHR: Self = Self(1_000_259_000); + pub const LINE_STIPPLE_KHR: Self = Self::LINE_STIPPLE; +} +#[doc = "Generated from 'VK_KHR_line_rasterization'"] +impl LineRasterizationMode { + pub const DEFAULT_KHR: Self = Self::DEFAULT; + pub const RECTANGULAR_KHR: Self = Self::RECTANGULAR; + pub const BRESENHAM_KHR: Self = Self::BRESENHAM; + pub const RECTANGULAR_SMOOTH_KHR: Self = Self::RECTANGULAR_SMOOTH; } #[doc = "Generated from 'VK_KHR_line_rasterization'"] impl StructureType { - pub const PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR: Self = Self(1_000_259_000); - pub const PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR: Self = Self(1_000_259_001); - pub const PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR: Self = Self(1_000_259_002); + pub const PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR: Self = + Self::PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES; + pub const PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR: Self = + Self::PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO; + pub const PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR: Self = + Self::PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES; } #[doc = "Generated from 'VK_KHR_calibrated_timestamps'"] impl StructureType { @@ -3986,17 +4509,21 @@ impl StructureType { } #[doc = "Generated from 'VK_KHR_shader_expect_assume'"] impl StructureType { - pub const PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR: Self = Self(1_000_544_000); + pub const PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR: Self = + Self::PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES; } #[doc = "Generated from 'VK_KHR_maintenance6'"] impl StructureType { - pub const PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR: Self = Self(1_000_545_000); - pub const PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR: Self = Self(1_000_545_001); - pub const BIND_MEMORY_STATUS_KHR: Self = Self(1_000_545_002); - pub const BIND_DESCRIPTOR_SETS_INFO_KHR: Self = Self(1_000_545_003); - pub const PUSH_CONSTANTS_INFO_KHR: Self = Self(1_000_545_004); - pub const PUSH_DESCRIPTOR_SET_INFO_KHR: Self = Self(1_000_545_005); - pub const PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR: Self = Self(1_000_545_006); + pub const PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR: Self = + Self::PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES; + pub const PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR: Self = + Self::PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES; + pub const BIND_MEMORY_STATUS_KHR: Self = Self::BIND_MEMORY_STATUS; + pub const BIND_DESCRIPTOR_SETS_INFO_KHR: Self = Self::BIND_DESCRIPTOR_SETS_INFO; + pub const PUSH_CONSTANTS_INFO_KHR: Self = Self::PUSH_CONSTANTS_INFO; + pub const PUSH_DESCRIPTOR_SET_INFO_KHR: Self = Self::PUSH_DESCRIPTOR_SET_INFO; + pub const PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR: Self = + Self::PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO; pub const SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT: Self = Self(1_000_545_007); pub const BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT: Self = Self(1_000_545_008); } @@ -4010,10 +4537,150 @@ impl StructureType { pub const PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV: Self = Self(1_000_546_000); } +#[doc = "Generated from 'VK_QCOM_tile_memory_heap'"] +impl BufferUsageFlags { + pub const TILE_MEMORY_QCOM: Self = Self(0b1000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_QCOM_tile_memory_heap'"] +impl BufferUsageFlags2 { + pub const TILE_MEMORY_QCOM: Self = Self(0b1000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_QCOM_tile_memory_heap'"] +impl ImageUsageFlags { + pub const TILE_MEMORY_QCOM: Self = Self(0b1000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_QCOM_tile_memory_heap'"] +impl MemoryHeapFlags { + pub const TILE_MEMORY_QCOM: Self = Self(0b1000); +} +#[doc = "Generated from 'VK_QCOM_tile_memory_heap'"] +impl StructureType { + pub const PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM: Self = Self(1_000_547_000); + pub const PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM: Self = Self(1_000_547_001); + pub const TILE_MEMORY_REQUIREMENTS_QCOM: Self = Self(1_000_547_002); + pub const TILE_MEMORY_BIND_INFO_QCOM: Self = Self(1_000_547_003); + pub const TILE_MEMORY_SIZE_INFO_QCOM: Self = Self(1_000_547_004); +} +#[doc = "Generated from 'VK_KHR_copy_memory_indirect'"] +impl FormatFeatureFlags2 { + pub const COPY_IMAGE_INDIRECT_DST_KHR: Self = + Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_KHR_copy_memory_indirect'"] +impl PipelineStageFlags2 { + pub const COPY_INDIRECT_KHR: Self = + Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_KHR_copy_memory_indirect'"] +impl StructureType { + pub const PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR: Self = Self(1_000_549_000); + pub const PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR: Self = Self(1_000_426_001); + pub const COPY_MEMORY_INDIRECT_INFO_KHR: Self = Self(1_000_549_002); + pub const COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR: Self = Self(1_000_549_003); +} +#[doc = "Generated from 'VK_NV_display_stereo'"] +impl StructureType { + pub const DISPLAY_SURFACE_STEREO_CREATE_INFO_NV: Self = Self(1_000_551_000); + pub const DISPLAY_MODE_STEREO_PROPERTIES_NV: Self = Self(1_000_551_001); +} +#[doc = "Generated from 'VK_KHR_video_encode_intra_refresh'"] +impl StructureType { + pub const VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR: Self = Self(1_000_552_000); + pub const VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR: Self = Self(1_000_552_001); + pub const VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR: Self = Self(1_000_552_002); + pub const VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR: Self = Self(1_000_552_003); + pub const PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR: Self = Self(1_000_552_004); +} +#[doc = "Generated from 'VK_KHR_video_encode_intra_refresh'"] +impl VideoEncodeAV1CapabilityFlagsKHR { + pub const COMPOUND_PREDICTION_INTRA_REFRESH: Self = Self(0b10_0000); +} +#[doc = "Generated from 'VK_KHR_video_encode_intra_refresh'"] +impl VideoEncodeFlagsKHR { + pub const INTRA_REFRESH: Self = Self(0b100); +} +#[doc = "Generated from 'VK_KHR_video_encode_intra_refresh'"] +impl VideoEncodeH264CapabilityFlagsKHR { + pub const B_PICTURE_INTRA_REFRESH: Self = Self(0b100_0000_0000); +} +#[doc = "Generated from 'VK_KHR_video_encode_intra_refresh'"] +impl VideoEncodeH265CapabilityFlagsKHR { + pub const B_PICTURE_INTRA_REFRESH: Self = Self(0b1000_0000_0000); +} +#[doc = "Generated from 'VK_KHR_video_encode_quantization_map'"] +impl FormatFeatureFlags2 { + pub const VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_KHR: Self = + Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000); + pub const VIDEO_ENCODE_EMPHASIS_MAP_KHR: Self = + Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_KHR_video_encode_quantization_map'"] +impl ImageLayout { + pub const VIDEO_ENCODE_QUANTIZATION_MAP_KHR: Self = Self(1_000_553_000); +} +#[doc = "Generated from 'VK_KHR_video_encode_quantization_map'"] +impl ImageUsageFlags { + pub const VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_KHR: Self = + Self(0b10_0000_0000_0000_0000_0000_0000); + pub const VIDEO_ENCODE_EMPHASIS_MAP_KHR: Self = Self(0b100_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_KHR_video_encode_quantization_map'"] +impl StructureType { + pub const VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR: Self = Self(1_000_553_000); + pub const VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR: Self = Self(1_000_553_001); + pub const VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR: Self = Self(1_000_553_002); + pub const VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR: Self = + Self(1_000_553_005); + pub const PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR: Self = + Self(1_000_553_009); + pub const VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR: Self = Self(1_000_553_003); + pub const VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR: Self = Self(1_000_553_004); + pub const VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR: Self = Self(1_000_553_006); + pub const VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR: Self = Self(1_000_553_007); + pub const VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR: Self = Self(1_000_553_008); +} +#[doc = "Generated from 'VK_KHR_video_encode_quantization_map'"] +impl VideoEncodeCapabilityFlagsKHR { + pub const QUANTIZATION_DELTA_MAP: Self = Self(0b100); + pub const EMPHASIS_MAP: Self = Self(0b1000); +} +#[doc = "Generated from 'VK_KHR_video_encode_quantization_map'"] +impl VideoEncodeFlagsKHR { + pub const WITH_QUANTIZATION_DELTA_MAP: Self = Self(0b1); + pub const WITH_EMPHASIS_MAP: Self = Self(0b10); +} +#[doc = "Generated from 'VK_KHR_video_encode_quantization_map'"] +impl VideoEncodeH264CapabilityFlagsKHR { + pub const MB_QP_DIFF_WRAPAROUND: Self = Self(0b10_0000_0000); +} +#[doc = "Generated from 'VK_KHR_video_encode_quantization_map'"] +impl VideoEncodeH265CapabilityFlagsKHR { + pub const CU_QP_DIFF_WRAPAROUND: Self = Self(0b100_0000_0000); +} +#[doc = "Generated from 'VK_KHR_video_encode_quantization_map'"] +impl VideoSessionCreateFlagsKHR { + pub const ALLOW_ENCODE_QUANTIZATION_DELTA_MAP: Self = Self(0b1000); + pub const ALLOW_ENCODE_EMPHASIS_MAP: Self = Self(0b1_0000); +} +#[doc = "Generated from 'VK_KHR_video_encode_quantization_map'"] +impl VideoSessionParametersCreateFlagsKHR { + pub const QUANTIZATION_MAP_COMPATIBLE: Self = Self(0b1); +} #[doc = "Generated from 'VK_NV_raw_access_chains'"] impl StructureType { pub const PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV: Self = Self(1_000_555_000); } +#[doc = "Generated from 'VK_NV_external_compute_queue'"] +impl ObjectType { + pub const EXTERNAL_COMPUTE_QUEUE_NV: Self = Self(1_000_556_000); +} +#[doc = "Generated from 'VK_NV_external_compute_queue'"] +impl StructureType { + pub const EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV: Self = Self(1_000_556_000); + pub const EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV: Self = Self(1_000_556_001); + pub const EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV: Self = Self(1_000_556_002); + pub const PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV: Self = Self(1_000_556_003); +} #[doc = "Generated from 'VK_KHR_shader_relaxed_extended_instruction'"] impl StructureType { pub const PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR: Self = @@ -4048,17 +4715,65 @@ impl StructureType { impl StructureType { pub const PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT: Self = Self(1_000_564_000); } +#[doc = "Generated from 'VK_EXT_shader_float8'"] +impl ComponentTypeKHR { + pub const FLOAT8_E4M3_EXT: Self = Self(1_000_491_002); + pub const FLOAT8_E5M2_EXT: Self = Self(1_000_491_003); +} +#[doc = "Generated from 'VK_EXT_shader_float8'"] +impl StructureType { + pub const PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT: Self = Self(1_000_567_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_NV_cluster_acceleration_structure'"] +impl BuildAccelerationStructureFlagsKHR { + pub const ALLOW_CLUSTER_OPACITY_MICROMAPS_NV: Self = Self(0b1_0000_0000_0000); +} +#[doc = "Generated from 'VK_NV_cluster_acceleration_structure'"] +impl OpacityMicromapSpecialIndexEXT { + pub const CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV: Self = Self(-5); +} +#[doc = "Generated from 'VK_NV_cluster_acceleration_structure'"] +impl StructureType { + pub const PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV: Self = + Self(1_000_569_000); + pub const PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV: Self = + Self(1_000_569_001); + pub const CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV: Self = + Self(1_000_569_002); + pub const CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV: Self = Self(1_000_569_003); + pub const CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV: Self = Self(1_000_569_004); + pub const CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV: Self = Self(1_000_569_005); + pub const CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV: Self = Self(1_000_569_006); + pub const RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV: Self = + Self(1_000_569_007); +} +#[doc = "Generated from 'VK_NV_partitioned_acceleration_structure'"] +impl DescriptorType { + pub const PARTITIONED_ACCELERATION_STRUCTURE_NV: Self = Self(1_000_570_000); +} +#[doc = "Generated from 'VK_NV_partitioned_acceleration_structure'"] +impl StructureType { + pub const PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV: Self = + Self(1_000_570_000); + pub const PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV: Self = + Self(1_000_570_001); + pub const WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV: Self = + Self(1_000_570_002); + pub const PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV: Self = Self(1_000_570_003); + pub const BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV: Self = Self(1_000_570_004); + pub const PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV: Self = Self(1_000_570_005); +} #[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; + pub const COMMAND_PREPROCESS_READ_EXT: Self = Self(0b10_0000_0000_0000_0000); + pub const COMMAND_PREPROCESS_WRITE_EXT: Self = Self(0b100_0000_0000_0000_0000); } #[doc = "Generated from 'VK_EXT_device_generated_commands'"] -impl BufferUsageFlags2KHR { +impl BufferUsageFlags2 { pub const PREPROCESS_BUFFER_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000_0000_0000); } #[doc = "Generated from 'VK_EXT_device_generated_commands'"] @@ -4067,13 +4782,13 @@ impl ObjectType { pub const INDIRECT_EXECUTION_SET_EXT: Self = Self(1_000_572_001); } #[doc = "Generated from 'VK_EXT_device_generated_commands'"] -impl PipelineCreateFlags2KHR { +impl PipelineCreateFlags2 { 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; + pub const COMMAND_PREPROCESS_EXT: Self = Self(0b10_0000_0000_0000_0000); } #[doc = "Generated from 'VK_EXT_device_generated_commands'"] impl ShaderCreateFlagsEXT { @@ -4096,12 +4811,29 @@ impl StructureType { 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_KHR_maintenance8'"] +impl DependencyFlags { + pub const QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_KHR: Self = Self(0b10_0000); +} +#[doc = "Generated from 'VK_KHR_maintenance8'"] +impl PipelineCacheCreateFlags { + pub const INTERNALLY_SYNCHRONIZED_MERGE_KHR: Self = Self(0b1000); +} +#[doc = "Generated from 'VK_KHR_maintenance8'"] +impl StructureType { + pub const PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR: Self = Self(1_000_574_000); + pub const MEMORY_BARRIER_ACCESS_FLAGS_3_KHR: Self = Self(1_000_574_002); +} #[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_KHR_shader_fma'"] +impl StructureType { + pub const PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR: Self = Self(1_000_579_000); +} #[doc = "Generated from 'VK_EXT_depth_clamp_control'"] impl DynamicState { pub const DEPTH_CLAMP_RANGE_EXT: Self = Self(1_000_582_000); @@ -4111,6 +4843,161 @@ 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); } +#[doc = "Generated from 'VK_KHR_maintenance9'"] +impl DependencyFlags { + pub const ASYMMETRIC_EVENT_KHR: Self = Self(0b100_0000); +} +#[doc = "Generated from 'VK_KHR_maintenance9'"] +impl QueryPoolCreateFlags { + pub const RESET_KHR: Self = Self(0b1); +} +#[doc = "Generated from 'VK_KHR_maintenance9'"] +impl StructureType { + pub const PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR: Self = Self(1_000_584_000); + pub const PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR: Self = Self(1_000_584_001); + pub const QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR: Self = Self(1_000_584_002); +} +#[doc = "Generated from 'VK_KHR_video_maintenance2'"] +impl StructureType { + pub const PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR: Self = Self(1_000_586_000); + pub const VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR: Self = Self(1_000_586_001); + pub const VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR: Self = Self(1_000_586_002); + pub const VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR: Self = Self(1_000_586_003); +} +#[doc = "Generated from 'VK_KHR_video_maintenance2'"] +impl VideoSessionCreateFlagsKHR { + pub const INLINE_SESSION_PARAMETERS: Self = Self(0b10_0000); +} +#[doc = "Generated from 'VK_OHOS_surface'"] +impl StructureType { + pub const SURFACE_CREATE_INFO_OHOS: Self = Self(1_000_685_000); +} +#[doc = "Generated from 'VK_HUAWEI_hdr_vivid'"] +impl StructureType { + pub const PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI: Self = Self(1_000_590_000); + pub const HDR_VIVID_DYNAMIC_METADATA_HUAWEI: Self = Self(1_000_590_001); +} +#[doc = "Generated from 'VK_NV_cooperative_matrix2'"] +impl StructureType { + pub const PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV: Self = Self(1_000_593_000); + pub const COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV: Self = Self(1_000_593_001); + pub const PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV: Self = Self(1_000_593_002); +} +#[doc = "Generated from 'VK_ARM_pipeline_opacity_micromap'"] +impl StructureType { + pub const PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM: Self = Self(1_000_596_000); +} +#[doc = "Generated from 'VK_EXT_external_memory_metal'"] +impl ExternalMemoryHandleTypeFlags { + pub const MTLBUFFER_EXT: Self = Self(0b1_0000_0000_0000_0000); + pub const MTLTEXTURE_EXT: Self = Self(0b10_0000_0000_0000_0000); + pub const MTLHEAP_EXT: Self = Self(0b100_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_EXT_external_memory_metal'"] +impl StructureType { + pub const IMPORT_MEMORY_METAL_HANDLE_INFO_EXT: Self = Self(1_000_602_000); + pub const MEMORY_METAL_HANDLE_PROPERTIES_EXT: Self = Self(1_000_602_001); + pub const MEMORY_GET_METAL_HANDLE_INFO_EXT: Self = Self(1_000_602_002); +} +#[doc = "Generated from 'VK_KHR_depth_clamp_zero_one'"] +impl StructureType { + pub const PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR: Self = Self(1_000_421_000); +} +#[doc = "Generated from 'VK_EXT_vertex_attribute_robustness'"] +impl StructureType { + pub const PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT: Self = Self(1_000_608_000); +} +#[doc = "Generated from 'VK_ARM_format_pack'"] +impl Format { + pub const R10X6_UINT_PACK16_ARM: Self = Self(1_000_609_000); + pub const R10X6G10X6_UINT_2PACK16_ARM: Self = Self(1_000_609_001); + pub const R10X6G10X6B10X6A10X6_UINT_4PACK16_ARM: Self = Self(1_000_609_002); + pub const R12X4_UINT_PACK16_ARM: Self = Self(1_000_609_003); + pub const R12X4G12X4_UINT_2PACK16_ARM: Self = Self(1_000_609_004); + pub const R12X4G12X4B12X4A12X4_UINT_4PACK16_ARM: Self = Self(1_000_609_005); + pub const R14X2_UINT_PACK16_ARM: Self = Self(1_000_609_006); + pub const R14X2G14X2_UINT_2PACK16_ARM: Self = Self(1_000_609_007); + pub const R14X2G14X2B14X2A14X2_UINT_4PACK16_ARM: Self = Self(1_000_609_008); + pub const R14X2_UNORM_PACK16_ARM: Self = Self(1_000_609_009); + pub const R14X2G14X2_UNORM_2PACK16_ARM: Self = Self(1_000_609_010); + pub const R14X2G14X2B14X2A14X2_UNORM_4PACK16_ARM: Self = Self(1_000_609_011); + pub const G14X2_B14X2R14X2_2PLANE_420_UNORM_3PACK16_ARM: Self = Self(1_000_609_012); + pub const G14X2_B14X2R14X2_2PLANE_422_UNORM_3PACK16_ARM: Self = Self(1_000_609_013); +} +#[doc = "Generated from 'VK_ARM_format_pack'"] +impl StructureType { + pub const PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM: Self = Self(1_000_609_000); +} +#[doc = "Generated from 'VK_VALVE_fragment_density_map_layered'"] +impl PipelineCreateFlags2 { + pub const PER_LAYER_FRAGMENT_DENSITY_VALVE: Self = + Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_VALVE_fragment_density_map_layered'"] +impl RenderPassCreateFlags { + pub const PER_LAYER_FRAGMENT_DENSITY_VALVE: Self = Self(0b100); +} +#[doc = "Generated from 'VK_VALVE_fragment_density_map_layered'"] +impl RenderingFlags { + pub const PER_LAYER_FRAGMENT_DENSITY_VALVE: Self = Self(0b10_0000); +} +#[doc = "Generated from 'VK_VALVE_fragment_density_map_layered'"] +impl StructureType { + pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE: Self = + Self(1_000_611_000); + pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE: Self = + Self(1_000_611_001); + pub const PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE: Self = Self(1_000_611_002); +} +#[doc = "Generated from 'VK_KHR_robustness2'"] +impl StructureType { + pub const PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR: Self = Self(1_000_286_000); + pub const PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR: Self = Self(1_000_286_001); +} +#[doc = "Generated from 'VK_NV_present_metering'"] +impl StructureType { + pub const SET_PRESENT_CONFIG_NV: Self = Self(1_000_613_000); + pub const PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV: Self = Self(1_000_613_001); +} +#[doc = "Generated from 'VK_EXT_fragment_density_map_offset'"] +impl ImageCreateFlags { + pub const FRAGMENT_DENSITY_MAP_OFFSET_EXT: Self = Self(0b1000_0000_0000_0000); +} +#[doc = "Generated from 'VK_EXT_fragment_density_map_offset'"] +impl StructureType { + pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT: Self = Self(1_000_425_000); + pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT: Self = + Self(1_000_425_001); + pub const RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT: Self = Self(1_000_425_002); + pub const RENDERING_END_INFO_EXT: Self = Self(1_000_619_003); +} +#[doc = "Generated from 'VK_EXT_zero_initialize_device_memory'"] +impl ImageLayout { + pub const ZERO_INITIALIZED_EXT: Self = Self(1_000_620_000); +} +#[doc = "Generated from 'VK_EXT_zero_initialize_device_memory'"] +impl MemoryAllocateFlags { + pub const ZERO_INITIALIZE_EXT: Self = Self(0b1000); +} +#[doc = "Generated from 'VK_EXT_zero_initialize_device_memory'"] +impl StructureType { + pub const PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT: Self = + Self(1_000_620_000); +} +#[doc = "Generated from 'VK_KHR_present_mode_fifo_latest_ready'"] +impl PresentModeKHR { + pub const FIFO_LATEST_READY: Self = Self(1_000_361_000); +} +#[doc = "Generated from 'VK_KHR_present_mode_fifo_latest_ready'"] +impl StructureType { + pub const PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR: Self = + Self(1_000_361_000); +} +#[doc = "Generated from 'VK_SEC_pipeline_cache_incremental_mode'"] +impl StructureType { + pub const PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC: Self = + Self(1_000_637_000); +} 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; @@ -4596,7 +5483,7 @@ pub type PFN_vkCmdDrawIndirectByteCountEXT = unsafe extern "system" fn( ); pub const NVX_BINARY_IMPORT_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NVX_binary_import\0") }; -pub const NVX_BINARY_IMPORT_SPEC_VERSION: u32 = 1u32; +pub const NVX_BINARY_IMPORT_SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateCuModuleNVX = unsafe extern "system" fn( device: crate::vk::Device, @@ -4630,13 +5517,18 @@ pub type PFN_vkCmdCuLaunchKernelNVX = unsafe extern "system" fn( ); pub const NVX_IMAGE_VIEW_HANDLE_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NVX_image_view_handle\0") }; -pub const NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION: u32 = 2u32; +pub const NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION: u32 = 3u32; #[allow(non_camel_case_types)] pub type PFN_vkGetImageViewHandleNVX = unsafe extern "system" fn( device: crate::vk::Device, p_info: *const ImageViewHandleInfoNVX<'_>, ) -> u32; #[allow(non_camel_case_types)] +pub type PFN_vkGetImageViewHandle64NVX = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const ImageViewHandleInfoNVX<'_>, +) -> u64; +#[allow(non_camel_case_types)] pub type PFN_vkGetImageViewAddressNVX = unsafe extern "system" fn( device: crate::vk::Device, image_view: ImageView, @@ -4968,7 +5860,7 @@ pub const KHR_PUSH_DESCRIPTOR_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_push_descriptor\0") }; pub const KHR_PUSH_DESCRIPTOR_SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] -pub type PFN_vkCmdPushDescriptorSetKHR = unsafe extern "system" fn( +pub type PFN_vkCmdPushDescriptorSet = unsafe extern "system" fn( command_buffer: CommandBuffer, pipeline_bind_point: PipelineBindPoint, layout: PipelineLayout, @@ -4977,7 +5869,7 @@ pub type PFN_vkCmdPushDescriptorSetKHR = unsafe extern "system" fn( p_descriptor_writes: *const WriteDescriptorSet<'_>, ); #[allow(non_camel_case_types)] -pub type PFN_vkCmdPushDescriptorSetWithTemplateKHR = unsafe extern "system" fn( +pub type PFN_vkCmdPushDescriptorSetWithTemplate = unsafe extern "system" fn( command_buffer: CommandBuffer, descriptor_update_template: DescriptorUpdateTemplate, layout: PipelineLayout, @@ -5173,6 +6065,7 @@ pub const KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION: u32 = 1u32; pub const KHR_CREATE_RENDERPASS2_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_create_renderpass2\0") }; pub const KHR_CREATE_RENDERPASS2_SPEC_VERSION: u32 = 1u32; +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkCreateRenderPass2 = unsafe extern "system" fn( device: crate::vk::Device, @@ -5180,18 +6073,21 @@ pub type PFN_vkCreateRenderPass2 = unsafe extern "system" fn( p_allocator: *const AllocationCallbacks, p_render_pass: *mut RenderPass, ) -> Result; +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkCmdBeginRenderPass2 = unsafe extern "system" fn( command_buffer: CommandBuffer, p_render_pass_begin: *const RenderPassBeginInfo<'_>, p_subpass_begin_info: *const SubpassBeginInfo<'_>, ); +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkCmdNextSubpass2 = unsafe extern "system" fn( command_buffer: CommandBuffer, p_subpass_begin_info: *const SubpassBeginInfo<'_>, p_subpass_end_info: *const SubpassEndInfo<'_>, ); +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkCmdEndRenderPass2 = unsafe extern "system" fn( command_buffer: CommandBuffer, @@ -5431,7 +6327,7 @@ pub const AMD_GPU_SHADER_INT16_NAME: &CStr = pub const AMD_GPU_SHADER_INT16_SPEC_VERSION: u32 = 2u32; pub const AMDX_SHADER_ENQUEUE_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMDX_shader_enqueue\0") }; -pub const AMDX_SHADER_ENQUEUE_SPEC_VERSION: u32 = 1u32; +pub const AMDX_SHADER_ENQUEUE_SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateExecutionGraphPipelinesAMDX = unsafe extern "system" fn( device: crate::vk::Device, @@ -5455,24 +6351,31 @@ pub type PFN_vkGetExecutionGraphPipelineNodeIndexAMDX = unsafe extern "system" f p_node_index: *mut u32, ) -> Result; #[allow(non_camel_case_types)] -pub type PFN_vkCmdInitializeGraphScratchMemoryAMDX = - unsafe extern "system" fn(command_buffer: CommandBuffer, scratch: DeviceAddress); +pub type PFN_vkCmdInitializeGraphScratchMemoryAMDX = unsafe extern "system" fn( + command_buffer: CommandBuffer, + execution_graph: Pipeline, + scratch: DeviceAddress, + scratch_size: DeviceSize, +); #[allow(non_camel_case_types)] pub type PFN_vkCmdDispatchGraphAMDX = unsafe extern "system" fn( command_buffer: CommandBuffer, scratch: DeviceAddress, + scratch_size: DeviceSize, p_count_info: *const DispatchGraphCountInfoAMDX, ); #[allow(non_camel_case_types)] pub type PFN_vkCmdDispatchGraphIndirectAMDX = unsafe extern "system" fn( command_buffer: CommandBuffer, scratch: DeviceAddress, + scratch_size: DeviceSize, p_count_info: *const DispatchGraphCountInfoAMDX, ); #[allow(non_camel_case_types)] pub type PFN_vkCmdDispatchGraphIndirectCountAMDX = unsafe extern "system" fn( command_buffer: CommandBuffer, scratch: DeviceAddress, + scratch_size: DeviceSize, count_info: DeviceAddress, ); pub const AMD_MIXED_ATTACHMENT_SAMPLES_NAME: &CStr = @@ -5487,6 +6390,9 @@ pub const EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION: u32 = 1u32; pub const EXT_SHADER_STENCIL_EXPORT_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_stencil_export\0") }; pub const EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION: u32 = 1u32; +pub const KHR_SHADER_BFLOAT16_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_bfloat16\0") }; +pub const KHR_SHADER_BFLOAT16_SPEC_VERSION: u32 = 1u32; pub const EXT_SAMPLE_LOCATIONS_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_sample_locations\0") }; pub const EXT_SAMPLE_LOCATIONS_SPEC_VERSION: u32 = 1u32; @@ -5970,6 +6876,14 @@ pub type PFN_vkCmdWriteBufferMarkerAMD = unsafe extern "system" fn( dst_offset: DeviceSize, marker: u32, ); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdWriteBufferMarker2AMD = unsafe extern "system" fn( + command_buffer: CommandBuffer, + stage: PipelineStageFlags2, + dst_buffer: Buffer, + dst_offset: DeviceSize, + marker: u32, +); pub const KHR_SHADER_ATOMIC_INT64_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_atomic_int64\0") }; pub const KHR_SHADER_ATOMIC_INT64_SPEC_VERSION: u32 = 1u32; @@ -6094,6 +7008,12 @@ pub type PFN_vkGetQueueCheckpointDataNV = unsafe extern "system" fn( p_checkpoint_data_count: *mut u32, p_checkpoint_data: *mut CheckpointDataNV<'_>, ); +#[allow(non_camel_case_types)] +pub type PFN_vkGetQueueCheckpointData2NV = unsafe extern "system" fn( + queue: Queue, + p_checkpoint_data_count: *mut u32, + p_checkpoint_data: *mut CheckpointData2NV<'_>, +); pub const KHR_TIMELINE_SEMAPHORE_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_timeline_semaphore\0") }; pub const KHR_TIMELINE_SEMAPHORE_SPEC_VERSION: u32 = 2u32; @@ -6241,14 +7161,14 @@ pub const KHR_DYNAMIC_RENDERING_LOCAL_READ_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_dynamic_rendering_local_read\0") }; pub const KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] -pub type PFN_vkCmdSetRenderingAttachmentLocationsKHR = unsafe extern "system" fn( +pub type PFN_vkCmdSetRenderingAttachmentLocations = unsafe extern "system" fn( command_buffer: CommandBuffer, - p_location_info: *const RenderingAttachmentLocationInfoKHR<'_>, + p_location_info: *const RenderingAttachmentLocationInfo<'_>, ); #[allow(non_camel_case_types)] -pub type PFN_vkCmdSetRenderingInputAttachmentIndicesKHR = unsafe extern "system" fn( +pub type PFN_vkCmdSetRenderingInputAttachmentIndices = unsafe extern "system" fn( command_buffer: CommandBuffer, - p_input_attachment_index_info: *const RenderingInputAttachmentIndexInfoKHR<'_>, + p_input_attachment_index_info: *const RenderingInputAttachmentIndexInfo<'_>, ); pub const EXT_SHADER_IMAGE_ATOMIC_INT64_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_image_atomic_int64\0") }; @@ -6388,7 +7308,7 @@ pub const EXT_LINE_RASTERIZATION_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_line_rasterization\0") }; pub const EXT_LINE_RASTERIZATION_SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] -pub type PFN_vkCmdSetLineStippleKHR = unsafe extern "system" fn( +pub type PFN_vkCmdSetLineStipple = unsafe extern "system" fn( command_buffer: CommandBuffer, line_stipple_factor: u32, line_stipple_pattern: u16, @@ -6520,46 +7440,46 @@ pub const EXT_HOST_IMAGE_COPY_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_host_image_copy\0") }; pub const EXT_HOST_IMAGE_COPY_SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] -pub type PFN_vkCopyMemoryToImageEXT = unsafe extern "system" fn( +pub type PFN_vkCopyMemoryToImage = unsafe extern "system" fn( device: crate::vk::Device, - p_copy_memory_to_image_info: *const CopyMemoryToImageInfoEXT<'_>, + p_copy_memory_to_image_info: *const CopyMemoryToImageInfo<'_>, ) -> Result; #[allow(non_camel_case_types)] -pub type PFN_vkCopyImageToMemoryEXT = unsafe extern "system" fn( +pub type PFN_vkCopyImageToMemory = unsafe extern "system" fn( device: crate::vk::Device, - p_copy_image_to_memory_info: *const CopyImageToMemoryInfoEXT<'_>, + p_copy_image_to_memory_info: *const CopyImageToMemoryInfo<'_>, ) -> Result; #[allow(non_camel_case_types)] -pub type PFN_vkCopyImageToImageEXT = unsafe extern "system" fn( +pub type PFN_vkCopyImageToImage = unsafe extern "system" fn( device: crate::vk::Device, - p_copy_image_to_image_info: *const CopyImageToImageInfoEXT<'_>, + p_copy_image_to_image_info: *const CopyImageToImageInfo<'_>, ) -> Result; #[allow(non_camel_case_types)] -pub type PFN_vkTransitionImageLayoutEXT = unsafe extern "system" fn( +pub type PFN_vkTransitionImageLayout = unsafe extern "system" fn( device: crate::vk::Device, transition_count: u32, - p_transitions: *const HostImageLayoutTransitionInfoEXT<'_>, + p_transitions: *const HostImageLayoutTransitionInfo<'_>, ) -> Result; #[allow(non_camel_case_types)] -pub type PFN_vkGetImageSubresourceLayout2KHR = unsafe extern "system" fn( +pub type PFN_vkGetImageSubresourceLayout2 = unsafe extern "system" fn( device: crate::vk::Device, image: Image, - p_subresource: *const ImageSubresource2KHR<'_>, - p_layout: *mut SubresourceLayout2KHR<'_>, + p_subresource: *const ImageSubresource2<'_>, + p_layout: *mut SubresourceLayout2<'_>, ); pub const KHR_MAP_MEMORY2_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_map_memory2\0") }; pub const KHR_MAP_MEMORY2_SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] -pub type PFN_vkMapMemory2KHR = unsafe extern "system" fn( +pub type PFN_vkMapMemory2 = unsafe extern "system" fn( device: crate::vk::Device, - p_memory_map_info: *const MemoryMapInfoKHR<'_>, + p_memory_map_info: *const MemoryMapInfo<'_>, pp_data: *mut *mut c_void, ) -> Result; #[allow(non_camel_case_types)] -pub type PFN_vkUnmapMemory2KHR = unsafe extern "system" fn( +pub type PFN_vkUnmapMemory2 = unsafe extern "system" fn( device: crate::vk::Device, - p_memory_unmap_info: *const MemoryUnmapInfoKHR<'_>, + p_memory_unmap_info: *const MemoryUnmapInfo<'_>, ) -> Result; pub const EXT_MAP_MEMORY_PLACED_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_map_memory_placed\0") }; @@ -6574,9 +7494,9 @@ pub const EXT_SWAPCHAIN_MAINTENANCE1_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_swapchain_maintenance1\0") }; pub const EXT_SWAPCHAIN_MAINTENANCE1_SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] -pub type PFN_vkReleaseSwapchainImagesEXT = unsafe extern "system" fn( +pub type PFN_vkReleaseSwapchainImagesKHR = unsafe extern "system" fn( device: crate::vk::Device, - p_release_info: *const ReleaseSwapchainImagesInfoEXT<'_>, + p_release_info: *const ReleaseSwapchainImagesInfoKHR<'_>, ) -> Result; pub const EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_demote_to_helper_invocation\0") }; @@ -6632,7 +7552,7 @@ pub const EXT_TEXEL_BUFFER_ALIGNMENT_NAME: &CStr = pub const EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION: u32 = 1u32; pub const QCOM_RENDER_PASS_TRANSFORM_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_render_pass_transform\0") }; -pub const QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION: u32 = 4u32; +pub const QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION: u32 = 5u32; pub const EXT_DEPTH_BIAS_CONTROL_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_bias_control\0") }; pub const EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION: u32 = 1u32; @@ -6786,6 +7706,24 @@ pub type PFN_vkCmdCudaLaunchKernelNV = unsafe extern "system" fn( command_buffer: CommandBuffer, p_launch_info: *const CudaLaunchInfoNV<'_>, ); +pub const QCOM_TILE_SHADING_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_tile_shading\0") }; +pub const QCOM_TILE_SHADING_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDispatchTileQCOM = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_dispatch_tile_info: *const DispatchTileInfoQCOM<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBeginPerTileExecutionQCOM = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_per_tile_begin_info: *const PerTileBeginInfoQCOM<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdEndPerTileExecutionQCOM = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_per_tile_end_info: *const PerTileEndInfoQCOM<'_>, +); pub const NV_LOW_LATENCY_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_low_latency\0") }; pub const NV_LOW_LATENCY_SPEC_VERSION: u32 = 1u32; @@ -6838,20 +7776,6 @@ pub type PFN_vkQueueSubmit2 = unsafe extern "system" fn( p_submits: *const SubmitInfo2<'_>, fence: Fence, ) -> Result; -#[allow(non_camel_case_types)] -pub type PFN_vkCmdWriteBufferMarker2AMD = unsafe extern "system" fn( - command_buffer: CommandBuffer, - stage: PipelineStageFlags2, - dst_buffer: Buffer, - dst_offset: DeviceSize, - marker: u32, -); -#[allow(non_camel_case_types)] -pub type PFN_vkGetQueueCheckpointData2NV = unsafe extern "system" fn( - queue: Queue, - p_checkpoint_data_count: *mut u32, - p_checkpoint_data: *mut CheckpointData2NV<'_>, -); pub const EXT_DESCRIPTOR_BUFFER_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_descriptor_buffer\0") }; pub const EXT_DESCRIPTOR_BUFFER_SPEC_VERSION: u32 = 1u32; @@ -7117,6 +8041,9 @@ pub const EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION: u32 = 1u32; pub const KHR_FORMAT_FEATURE_FLAGS2_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_format_feature_flags2\0") }; pub const KHR_FORMAT_FEATURE_FLAGS2_SPEC_VERSION: u32 = 2u32; +pub const EXT_PRESENT_MODE_FIFO_LATEST_READY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_present_mode_fifo_latest_ready\0") }; +pub const EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION: u32 = 1u32; pub const FUCHSIA_EXTERNAL_MEMORY_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_external_memory\0") }; pub const FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION: u32 = 1u32; @@ -7280,9 +8207,15 @@ pub type PFN_vkCmdTraceRaysIndirect2KHR = unsafe extern "system" fn( command_buffer: CommandBuffer, indirect_device_address: DeviceAddress, ); +pub const KHR_SHADER_UNTYPED_POINTERS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_untyped_pointers\0") }; +pub const KHR_SHADER_UNTYPED_POINTERS_SPEC_VERSION: u32 = 1u32; pub const EXT_GLOBAL_PRIORITY_QUERY_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_global_priority_query\0") }; pub const EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION: u32 = 1u32; +pub const VALVE_VIDEO_ENCODE_RGB_CONVERSION_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_VALVE_video_encode_rgb_conversion\0") }; +pub const VALVE_VIDEO_ENCODE_RGB_CONVERSION_SPEC_VERSION: u32 = 1u32; pub const EXT_IMAGE_VIEW_MIN_LOD_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_view_min_lod\0") }; pub const EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION: u32 = 1u32; @@ -7499,7 +8432,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 = 3u32; 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; @@ -7556,6 +8489,9 @@ pub type PFN_vkGetPipelineIndirectDeviceAddressNV = unsafe extern "system" fn( device: crate::vk::Device, p_info: *const PipelineIndirectDeviceAddressInfoNV<'_>, ) -> DeviceAddress; +pub const NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_ray_tracing_linear_swept_spheres\0") }; +pub const NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSION: u32 = 1u32; pub const NV_LINEAR_COLOR_ATTACHMENT_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_linear_color_attachment\0") }; pub const NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION: u32 = 1u32; @@ -7725,6 +8661,76 @@ pub const EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION: u32 = 2u32; pub const LUNARG_DIRECT_DRIVER_LOADING_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_LUNARG_direct_driver_loading\0") }; pub const LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION: u32 = 1u32; +pub const ARM_TENSORS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_ARM_tensors\0") }; +pub const ARM_TENSORS_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_external_tensor_info: *const PhysicalDeviceExternalTensorInfoARM<'_>, + p_external_tensor_properties: *mut ExternalTensorPropertiesARM<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCreateTensorARM = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const TensorCreateInfoARM<'_>, + p_allocator: *const AllocationCallbacks, + p_tensor: *mut TensorARM, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyTensorARM = unsafe extern "system" fn( + device: crate::vk::Device, + tensor: TensorARM, + p_allocator: *const AllocationCallbacks, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCreateTensorViewARM = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const TensorViewCreateInfoARM<'_>, + p_allocator: *const AllocationCallbacks, + p_view: *mut TensorViewARM, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyTensorViewARM = unsafe extern "system" fn( + device: crate::vk::Device, + tensor_view: TensorViewARM, + p_allocator: *const AllocationCallbacks, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetTensorMemoryRequirementsARM = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const TensorMemoryRequirementsInfoARM<'_>, + p_memory_requirements: *mut MemoryRequirements2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkBindTensorMemoryARM = unsafe extern "system" fn( + device: crate::vk::Device, + bind_info_count: u32, + p_bind_infos: *const BindTensorMemoryInfoARM<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDeviceTensorMemoryRequirementsARM = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const DeviceTensorMemoryRequirementsARM<'_>, + p_memory_requirements: *mut MemoryRequirements2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdCopyTensorARM = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_copy_tensor_info: *const CopyTensorInfoARM<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetTensorOpaqueCaptureDescriptorDataARM = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const TensorCaptureDescriptorDataInfoARM<'_>, + p_data: *mut c_void, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const TensorViewCaptureDescriptorDataInfoARM<'_>, + p_data: *mut c_void, +) -> Result; pub const EXT_SHADER_MODULE_IDENTIFIER_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_module_identifier\0") }; pub const EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION: u32 = 1u32; @@ -7794,7 +8800,7 @@ pub const KHR_MAINTENANCE5_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance5\0") }; pub const KHR_MAINTENANCE5_SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] -pub type PFN_vkCmdBindIndexBuffer2KHR = unsafe extern "system" fn( +pub type PFN_vkCmdBindIndexBuffer2 = unsafe extern "system" fn( command_buffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, @@ -7802,16 +8808,16 @@ pub type PFN_vkCmdBindIndexBuffer2KHR = unsafe extern "system" fn( index_type: IndexType, ); #[allow(non_camel_case_types)] -pub type PFN_vkGetRenderingAreaGranularityKHR = unsafe extern "system" fn( +pub type PFN_vkGetRenderingAreaGranularity = unsafe extern "system" fn( device: crate::vk::Device, - p_rendering_area_info: *const RenderingAreaInfoKHR<'_>, + p_rendering_area_info: *const RenderingAreaInfo<'_>, p_granularity: *mut Extent2D, ); #[allow(non_camel_case_types)] -pub type PFN_vkGetDeviceImageSubresourceLayoutKHR = unsafe extern "system" fn( +pub type PFN_vkGetDeviceImageSubresourceLayout = unsafe extern "system" fn( device: crate::vk::Device, - p_info: *const DeviceImageSubresourceInfoKHR<'_>, - p_layout: *mut SubresourceLayout2KHR<'_>, + p_info: *const DeviceImageSubresourceInfo<'_>, + p_layout: *mut SubresourceLayout2<'_>, ); pub const AMD_ANTI_LAG_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_anti_lag\0") }; @@ -7819,6 +8825,21 @@ 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 AMDX_DENSE_GEOMETRY_FORMAT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMDX_dense_geometry_format\0") }; +pub const AMDX_DENSE_GEOMETRY_FORMAT_SPEC_VERSION: u32 = 1u32; +pub const KHR_PRESENT_ID2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_present_id2\0") }; +pub const KHR_PRESENT_ID2_SPEC_VERSION: u32 = 1u32; +pub const KHR_PRESENT_WAIT2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_present_wait2\0") }; +pub const KHR_PRESENT_WAIT2_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkWaitForPresent2KHR = unsafe extern "system" fn( + device: crate::vk::Device, + swapchain: SwapchainKHR, + p_present_wait2_info: *const PresentWait2InfoKHR<'_>, +) -> Result; 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; @@ -7914,12 +8935,39 @@ pub type PFN_vkGetDynamicRenderingTilePropertiesQCOM = unsafe extern "system" fn pub const SEC_AMIGO_PROFILING_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_SEC_amigo_profiling\0") }; pub const SEC_AMIGO_PROFILING_SPEC_VERSION: u32 = 1u32; +pub const KHR_SURFACE_MAINTENANCE1_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_surface_maintenance1\0") }; +pub const KHR_SURFACE_MAINTENANCE1_SPEC_VERSION: u32 = 1u32; +pub const KHR_SWAPCHAIN_MAINTENANCE1_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_swapchain_maintenance1\0") }; +pub const KHR_SWAPCHAIN_MAINTENANCE1_SPEC_VERSION: u32 = 1u32; pub const QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_multiview_per_view_viewports\0") }; pub const QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION: u32 = 1u32; pub const NV_RAY_TRACING_INVOCATION_REORDER_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_ray_tracing_invocation_reorder\0") }; pub const NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION: u32 = 1u32; +pub const NV_COOPERATIVE_VECTOR_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_cooperative_vector\0") }; +pub const NV_COOPERATIVE_VECTOR_SPEC_VERSION: u32 = 4u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_property_count: *mut u32, + p_properties: *mut CooperativeVectorPropertiesNV<'_>, +) + -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkConvertCooperativeVectorMatrixNV = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const ConvertCooperativeVectorMatrixInfoNV<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdConvertCooperativeVectorMatrixNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + info_count: u32, + p_infos: *const ConvertCooperativeVectorMatrixInfoNV<'_>, +); pub const NV_EXTENDED_SPARSE_ADDRESS_SPACE_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_extended_sparse_address_space\0") }; pub const NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION: u32 = 1u32; @@ -7982,6 +9030,82 @@ pub type PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = p_property_count: *mut u32, p_properties: *mut CooperativeMatrixPropertiesKHR<'_>, ) -> Result; +pub const ARM_DATA_GRAPH_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_ARM_data_graph\0") }; +pub const ARM_DATA_GRAPH_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM = + unsafe extern "system" fn( + physical_device: PhysicalDevice, + queue_family_index: u32, + p_queue_family_data_graph_property_count: *mut u32, + p_queue_family_data_graph_properties: *mut QueueFamilyDataGraphPropertiesARM<'_>, + ) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM = unsafe extern "system" fn (physical_device : PhysicalDevice , p_queue_family_data_graph_processing_engine_info : * const PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM < '_ > , p_queue_family_data_graph_processing_engine_properties : * mut QueueFamilyDataGraphProcessingEnginePropertiesARM < '_ > ,) ; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateDataGraphPipelinesARM = unsafe extern "system" fn( + device: crate::vk::Device, + deferred_operation: DeferredOperationKHR, + pipeline_cache: PipelineCache, + create_info_count: u32, + p_create_infos: *const DataGraphPipelineCreateInfoARM<'_>, + p_allocator: *const AllocationCallbacks, + p_pipelines: *mut Pipeline, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateDataGraphPipelineSessionARM = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const DataGraphPipelineSessionCreateInfoARM<'_>, + p_allocator: *const AllocationCallbacks, + p_session: *mut DataGraphPipelineSessionARM, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDataGraphPipelineSessionBindPointRequirementsARM = + unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const DataGraphPipelineSessionBindPointRequirementsInfoARM<'_>, + p_bind_point_requirement_count: *mut u32, + p_bind_point_requirements: *mut DataGraphPipelineSessionBindPointRequirementARM<'_>, + ) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDataGraphPipelineSessionMemoryRequirementsARM = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const DataGraphPipelineSessionMemoryRequirementsInfoARM<'_>, + p_memory_requirements: *mut MemoryRequirements2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkBindDataGraphPipelineSessionMemoryARM = unsafe extern "system" fn( + device: crate::vk::Device, + bind_info_count: u32, + p_bind_infos: *const BindDataGraphPipelineSessionMemoryInfoARM<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyDataGraphPipelineSessionARM = unsafe extern "system" fn( + device: crate::vk::Device, + session: DataGraphPipelineSessionARM, + p_allocator: *const AllocationCallbacks, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDispatchDataGraphARM = unsafe extern "system" fn( + command_buffer: CommandBuffer, + session: DataGraphPipelineSessionARM, + p_info: *const DataGraphPipelineDispatchInfoARM<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetDataGraphPipelineAvailablePropertiesARM = unsafe extern "system" fn( + device: crate::vk::Device, + p_pipeline_info: *const DataGraphPipelineInfoARM<'_>, + p_properties_count: *mut u32, + p_properties: *mut DataGraphPipelinePropertyARM, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDataGraphPipelinePropertiesARM = unsafe extern "system" fn( + device: crate::vk::Device, + p_pipeline_info: *const DataGraphPipelineInfoARM<'_>, + properties_count: u32, + p_properties: *mut DataGraphPipelinePropertyQueryResultARM<'_>, +) -> Result; 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; @@ -7991,6 +9115,12 @@ 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; +pub const KHR_VIDEO_ENCODE_AV1_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_encode_av1\0") }; +pub const KHR_VIDEO_ENCODE_AV1_SPEC_VERSION: u32 = 1u32; +pub const KHR_VIDEO_DECODE_VP9_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_decode_vp9\0") }; +pub const KHR_VIDEO_DECODE_VP9_SPEC_VERSION: u32 = 1u32; pub const KHR_VIDEO_MAINTENANCE1_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_maintenance1\0") }; pub const KHR_VIDEO_MAINTENANCE1_SPEC_VERSION: u32 = 1u32; @@ -8022,6 +9152,9 @@ pub const KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION: u32 = 1u32; pub const KHR_LOAD_STORE_OP_NONE_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_load_store_op_none\0") }; pub const KHR_LOAD_STORE_OP_NONE_SPEC_VERSION: u32 = 1u32; +pub const KHR_UNIFIED_IMAGE_LAYOUTS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_unified_image_layouts\0") }; +pub const KHR_UNIFIED_IMAGE_LAYOUTS_SPEC_VERSION: u32 = 1u32; pub const KHR_SHADER_FLOAT_CONTROLS2_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_float_controls2\0") }; pub const KHR_SHADER_FLOAT_CONTROLS2_SPEC_VERSION: u32 = 1u32; @@ -8053,24 +9186,24 @@ pub const KHR_MAINTENANCE6_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance6\0") }; pub const KHR_MAINTENANCE6_SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] -pub type PFN_vkCmdBindDescriptorSets2KHR = unsafe extern "system" fn( +pub type PFN_vkCmdBindDescriptorSets2 = unsafe extern "system" fn( command_buffer: CommandBuffer, - p_bind_descriptor_sets_info: *const BindDescriptorSetsInfoKHR<'_>, + p_bind_descriptor_sets_info: *const BindDescriptorSetsInfo<'_>, ); #[allow(non_camel_case_types)] -pub type PFN_vkCmdPushConstants2KHR = unsafe extern "system" fn( +pub type PFN_vkCmdPushConstants2 = unsafe extern "system" fn( command_buffer: CommandBuffer, - p_push_constants_info: *const PushConstantsInfoKHR<'_>, + p_push_constants_info: *const PushConstantsInfo<'_>, ); #[allow(non_camel_case_types)] -pub type PFN_vkCmdPushDescriptorSet2KHR = unsafe extern "system" fn( +pub type PFN_vkCmdPushDescriptorSet2 = unsafe extern "system" fn( command_buffer: CommandBuffer, - p_push_descriptor_set_info: *const PushDescriptorSetInfoKHR<'_>, + p_push_descriptor_set_info: *const PushDescriptorSetInfo<'_>, ); #[allow(non_camel_case_types)] -pub type PFN_vkCmdPushDescriptorSetWithTemplate2KHR = unsafe extern "system" fn( +pub type PFN_vkCmdPushDescriptorSetWithTemplate2 = unsafe extern "system" fn( command_buffer: CommandBuffer, - p_push_descriptor_set_with_template_info: *const PushDescriptorSetWithTemplateInfoKHR<'_>, + p_push_descriptor_set_with_template_info: *const PushDescriptorSetWithTemplateInfo<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkCmdSetDescriptorBufferOffsets2EXT = unsafe extern "system" fn( @@ -8082,9 +9215,61 @@ pub type PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT = unsafe extern "syst pub const NV_DESCRIPTOR_POOL_OVERALLOCATION_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_descriptor_pool_overallocation\0") }; pub const NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION: u32 = 1u32; +pub const QCOM_TILE_MEMORY_HEAP_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_tile_memory_heap\0") }; +pub const QCOM_TILE_MEMORY_HEAP_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBindTileMemoryQCOM = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_tile_memory_bind_info: *const TileMemoryBindInfoQCOM<'_>, +); +pub const KHR_COPY_MEMORY_INDIRECT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_copy_memory_indirect\0") }; +pub const KHR_COPY_MEMORY_INDIRECT_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdCopyMemoryIndirectKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_copy_memory_indirect_info: *const CopyMemoryIndirectInfoKHR<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdCopyMemoryToImageIndirectKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_copy_memory_to_image_indirect_info: *const CopyMemoryToImageIndirectInfoKHR<'_>, +); +pub const NV_DISPLAY_STEREO_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_display_stereo\0") }; +pub const NV_DISPLAY_STEREO_SPEC_VERSION: u32 = 1u32; +pub const KHR_VIDEO_ENCODE_INTRA_REFRESH_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_encode_intra_refresh\0") }; +pub const KHR_VIDEO_ENCODE_INTRA_REFRESH_SPEC_VERSION: u32 = 1u32; +pub const KHR_VIDEO_ENCODE_QUANTIZATION_MAP_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_encode_quantization_map\0") }; +pub const KHR_VIDEO_ENCODE_QUANTIZATION_MAP_SPEC_VERSION: u32 = 2u32; 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 NV_EXTERNAL_COMPUTE_QUEUE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_external_compute_queue\0") }; +pub const NV_EXTERNAL_COMPUTE_QUEUE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetExternalComputeQueueDataNV = unsafe extern "system" fn( + external_queue: ExternalComputeQueueNV, + params: *mut ExternalComputeQueueDataParamsNV<'_>, + p_data: *mut c_void, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCreateExternalComputeQueueNV = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const ExternalComputeQueueCreateInfoNV<'_>, + p_allocator: *const AllocationCallbacks, + p_external_queue: *mut ExternalComputeQueueNV, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyExternalComputeQueueNV = unsafe extern "system" fn( + device: crate::vk::Device, + external_queue: ExternalComputeQueueNV, + p_allocator: *const AllocationCallbacks, +); 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; @@ -8100,9 +9285,40 @@ 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 EXT_SHADER_FLOAT8_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_float8\0") }; +pub const EXT_SHADER_FLOAT8_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 NV_CLUSTER_ACCELERATION_STRUCTURE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_cluster_acceleration_structure\0") }; +pub const NV_CLUSTER_ACCELERATION_STRUCTURE_SPEC_VERSION: u32 = 4u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetClusterAccelerationStructureBuildSizesNV = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const ClusterAccelerationStructureInputInfoNV<'_>, + p_size_info: *mut AccelerationStructureBuildSizesInfoKHR<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBuildClusterAccelerationStructureIndirectNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_command_infos: *const ClusterAccelerationStructureCommandsInfoNV<'_>, +); +pub const NV_PARTITIONED_ACCELERATION_STRUCTURE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_partitioned_acceleration_structure\0") }; +pub const NV_PARTITIONED_ACCELERATION_STRUCTURE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const PartitionedAccelerationStructureInstancesInputNV<'_>, + p_size_info: *mut AccelerationStructureBuildSizesInfoKHR<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBuildPartitionedAccelerationStructuresNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_build_info: *const BuildPartitionedAccelerationStructureInfoNV<'_>, +); 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; @@ -8164,9 +9380,98 @@ pub type PFN_vkUpdateIndirectExecutionSetShaderEXT = unsafe extern "system" fn( execution_set_write_count: u32, p_execution_set_writes: *const WriteIndirectExecutionSetShaderEXT<'_>, ); +pub const KHR_MAINTENANCE8_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance8\0") }; +pub const KHR_MAINTENANCE8_SPEC_VERSION: u32 = 1u32; 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 KHR_SHADER_FMA_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_fma\0") }; +pub const KHR_SHADER_FMA_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; +pub const KHR_MAINTENANCE9_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance9\0") }; +pub const KHR_MAINTENANCE9_SPEC_VERSION: u32 = 1u32; +pub const KHR_VIDEO_MAINTENANCE2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_maintenance2\0") }; +pub const KHR_VIDEO_MAINTENANCE2_SPEC_VERSION: u32 = 1u32; +pub const OHOS_SURFACE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_OHOS_surface\0") }; +pub const OHOS_SURFACE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateSurfaceOHOS = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_create_info: *const SurfaceCreateInfoOHOS<'_>, + p_allocator: *const AllocationCallbacks, + p_surface: *mut SurfaceKHR, +) -> Result; +pub const HUAWEI_HDR_VIVID_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_HUAWEI_hdr_vivid\0") }; +pub const HUAWEI_HDR_VIVID_SPEC_VERSION: u32 = 1u32; +pub const NV_COOPERATIVE_MATRIX2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_cooperative_matrix2\0") }; +pub const NV_COOPERATIVE_MATRIX2_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = + unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_property_count: *mut u32, + p_properties: *mut CooperativeMatrixFlexibleDimensionsPropertiesNV<'_>, + ) -> Result; +pub const ARM_PIPELINE_OPACITY_MICROMAP_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_ARM_pipeline_opacity_micromap\0") }; +pub const ARM_PIPELINE_OPACITY_MICROMAP_SPEC_VERSION: u32 = 1u32; +pub const EXT_EXTERNAL_MEMORY_METAL_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_external_memory_metal\0") }; +pub const EXT_EXTERNAL_MEMORY_METAL_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetMemoryMetalHandleEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_get_metal_handle_info: *const MemoryGetMetalHandleInfoEXT<'_>, + p_handle: *mut *mut c_void, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetMemoryMetalHandlePropertiesEXT = unsafe extern "system" fn( + device: crate::vk::Device, + handle_type: ExternalMemoryHandleTypeFlags, + p_handle: *const c_void, + p_memory_metal_handle_properties: *mut MemoryMetalHandlePropertiesEXT<'_>, +) -> Result; +pub const KHR_DEPTH_CLAMP_ZERO_ONE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_depth_clamp_zero_one\0") }; +pub const KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION: u32 = 1u32; +pub const EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_vertex_attribute_robustness\0") }; +pub const EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION: u32 = 1u32; +pub const ARM_FORMAT_PACK_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_ARM_format_pack\0") }; +pub const ARM_FORMAT_PACK_SPEC_VERSION: u32 = 1u32; +pub const VALVE_FRAGMENT_DENSITY_MAP_LAYERED_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_VALVE_fragment_density_map_layered\0") }; +pub const VALVE_FRAGMENT_DENSITY_MAP_LAYERED_SPEC_VERSION: u32 = 1u32; +pub const KHR_ROBUSTNESS2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_robustness2\0") }; +pub const KHR_ROBUSTNESS2_SPEC_VERSION: u32 = 1u32; +pub const NV_PRESENT_METERING_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_present_metering\0") }; +pub const NV_PRESENT_METERING_SPEC_VERSION: u32 = 1u32; +pub const EXT_FRAGMENT_DENSITY_MAP_OFFSET_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_fragment_density_map_offset\0") }; +pub const EXT_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdEndRendering2EXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_rendering_end_info: *const RenderingEndInfoEXT<'_>, +); +pub const EXT_ZERO_INITIALIZE_DEVICE_MEMORY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_zero_initialize_device_memory\0") }; +pub const EXT_ZERO_INITIALIZE_DEVICE_MEMORY_SPEC_VERSION: u32 = 1u32; +pub const KHR_PRESENT_MODE_FIFO_LATEST_READY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_present_mode_fifo_latest_ready\0") }; +pub const KHR_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION: u32 = 1u32; +pub const SEC_PIPELINE_CACHE_INCREMENTAL_MODE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_SEC_pipeline_cache_incremental_mode\0") }; +pub const SEC_PIPELINE_CACHE_INCREMENTAL_MODE_SPEC_VERSION: u32 = 1u32; diff --git a/ash/src/vk/feature_extensions.rs b/ash/src/vk/feature_extensions.rs index f82b567bc..578004eb5 100644 --- a/ash/src/vk/feature_extensions.rs +++ b/ash/src/vk/feature_extensions.rs @@ -1,5 +1,9 @@ use super::bitflags::*; use super::enums::*; +#[doc = "Generated from 'VK_VERSION_1_0'"] +impl Result { + pub const ERROR_VALIDATION_FAILED: Self = Self(-1_000_011_001); +} #[doc = "Generated from 'VK_VERSION_1_1'"] impl BufferCreateFlags { #[doc = "Buffer requires protected memory"] @@ -359,6 +363,11 @@ impl Format { pub const ASTC_12X12_SFLOAT_BLOCK: Self = Self(1_000_066_013); } #[doc = "Generated from 'VK_VERSION_1_3'"] +impl FormatFeatureFlags2 { + #[doc = "This is an interaction with EXT_filter_cubic, though not tagged that way"] + pub const SAMPLED_IMAGE_FILTER_CUBIC: Self = Self(0b10_0000_0000_0000); +} +#[doc = "Generated from 'VK_VERSION_1_3'"] impl ImageAspectFlags { pub const NONE: Self = Self(0); } @@ -449,3 +458,112 @@ impl StructureType { pub const DEVICE_BUFFER_MEMORY_REQUIREMENTS: Self = Self(1_000_413_002); pub const DEVICE_IMAGE_MEMORY_REQUIREMENTS: Self = Self(1_000_413_003); } +#[doc = "Generated from 'VK_VERSION_1_4'"] +impl AttachmentLoadOp { + pub const NONE: Self = Self(1_000_400_000); +} +#[doc = "Generated from 'VK_VERSION_1_4'"] +impl BufferUsageFlags2 { + pub const SHADER_DEVICE_ADDRESS: Self = Self(0b10_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_VERSION_1_4'"] +impl DescriptorSetLayoutCreateFlags { + pub const PUSH_DESCRIPTOR: Self = Self(0b1); +} +#[doc = "Generated from 'VK_VERSION_1_4'"] +impl DescriptorUpdateTemplateType { + pub const PUSH_DESCRIPTORS: Self = Self(1); +} +#[doc = "Generated from 'VK_VERSION_1_4'"] +impl DynamicState { + pub const LINE_STIPPLE: Self = Self(1_000_259_000); +} +#[doc = "Generated from 'VK_VERSION_1_4'"] +impl Format { + pub const A1B5G5R5_UNORM_PACK16: Self = Self(1_000_470_000); + pub const A8_UNORM: Self = Self(1_000_470_001); +} +#[doc = "Generated from 'VK_VERSION_1_4'"] +impl FormatFeatureFlags2 { + pub const HOST_IMAGE_TRANSFER: Self = + Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_VERSION_1_4'"] +impl ImageLayout { + pub const RENDERING_LOCAL_READ: Self = Self(1_000_232_000); +} +#[doc = "Generated from 'VK_VERSION_1_4'"] +impl ImageUsageFlags { + pub const HOST_TRANSFER: Self = Self(0b100_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_VERSION_1_4'"] +impl IndexType { + pub const UINT8: Self = Self(1_000_265_000); +} +#[doc = "Generated from 'VK_VERSION_1_4'"] +impl PipelineCreateFlags { + pub const NO_PROTECTED_ACCESS: Self = Self(0b1000_0000_0000_0000_0000_0000_0000); + pub const PROTECTED_ACCESS_ONLY: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_VERSION_1_4'"] +impl Result { + pub const ERROR_NOT_PERMITTED: Self = Self(-1_000_174_001); +} +#[doc = "Generated from 'VK_VERSION_1_4'"] +impl StructureType { + pub const PHYSICAL_DEVICE_VULKAN_1_4_FEATURES: Self = Self(55); + pub const PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES: Self = Self(56); + pub const DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO: Self = Self(1_000_174_000); + pub const PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES: Self = Self(1_000_388_000); + pub const QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES: Self = Self(1_000_388_001); + pub const PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES: Self = Self(1_000_416_000); + pub const PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES: Self = Self(1_000_528_000); + pub const PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES: Self = Self(1_000_544_000); + pub const PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES: Self = Self(1_000_259_000); + pub const PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO: Self = Self(1_000_259_001); + pub const PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES: Self = Self(1_000_259_002); + pub const PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES: Self = Self(1_000_525_000); + pub const PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO: Self = Self(1_000_190_001); + pub const PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES: Self = Self(1_000_190_002); + pub const PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES: Self = Self(1_000_265_000); + pub const MEMORY_MAP_INFO: Self = Self(1_000_271_000); + pub const MEMORY_UNMAP_INFO: Self = Self(1_000_271_001); + pub const PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES: Self = Self(1_000_470_000); + pub const PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES: Self = Self(1_000_470_001); + pub const RENDERING_AREA_INFO: Self = Self(1_000_470_003); + pub const DEVICE_IMAGE_SUBRESOURCE_INFO: Self = Self(1_000_470_004); + pub const SUBRESOURCE_LAYOUT_2: Self = Self(1_000_338_002); + pub const IMAGE_SUBRESOURCE_2: Self = Self(1_000_338_003); + pub const PIPELINE_CREATE_FLAGS_2_CREATE_INFO: Self = Self(1_000_470_005); + pub const BUFFER_USAGE_FLAGS_2_CREATE_INFO: Self = Self(1_000_470_006); + pub const PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES: Self = Self(1_000_080_000); + pub const PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES: Self = Self(1_000_232_000); + pub const RENDERING_ATTACHMENT_LOCATION_INFO: Self = Self(1_000_232_001); + pub const RENDERING_INPUT_ATTACHMENT_INDEX_INFO: Self = Self(1_000_232_002); + pub const PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES: Self = Self(1_000_545_000); + pub const PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES: Self = Self(1_000_545_001); + pub const BIND_MEMORY_STATUS: Self = Self(1_000_545_002); + pub const BIND_DESCRIPTOR_SETS_INFO: Self = Self(1_000_545_003); + pub const PUSH_CONSTANTS_INFO: Self = Self(1_000_545_004); + pub const PUSH_DESCRIPTOR_SET_INFO: Self = Self(1_000_545_005); + pub const PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO: Self = Self(1_000_545_006); + pub const PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES: Self = Self(1_000_466_000); + pub const PIPELINE_ROBUSTNESS_CREATE_INFO: Self = Self(1_000_068_000); + pub const PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES: Self = Self(1_000_068_001); + pub const PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES: Self = Self(1_000_068_002); + pub const PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES: Self = Self(1_000_270_000); + pub const PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES: Self = Self(1_000_270_001); + pub const MEMORY_TO_IMAGE_COPY: Self = Self(1_000_270_002); + pub const IMAGE_TO_MEMORY_COPY: Self = Self(1_000_270_003); + pub const COPY_IMAGE_TO_MEMORY_INFO: Self = Self(1_000_270_004); + pub const COPY_MEMORY_TO_IMAGE_INFO: Self = Self(1_000_270_005); + pub const HOST_IMAGE_LAYOUT_TRANSITION_INFO: Self = Self(1_000_270_006); + pub const COPY_IMAGE_TO_IMAGE_INFO: Self = Self(1_000_270_007); + pub const SUBRESOURCE_HOST_MEMCPY_SIZE: Self = Self(1_000_270_008); + pub const HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY: Self = Self(1_000_270_009); +} +#[doc = "Generated from 'VK_VERSION_1_4'"] +impl SubgroupFeatureFlags { + pub const ROTATE: Self = Self(0b10_0000_0000); + pub const ROTATE_CLUSTERED: Self = Self(0b100_0000_0000); +} diff --git a/ash/src/vk/features.rs b/ash/src/vk/features.rs index 73e9a3346..d7480337e 100644 --- a/ash/src/vk/features.rs +++ b/ash/src/vk/features.rs @@ -35,17 +35,20 @@ pub type PFN_vkEnumeratePhysicalDevices = unsafe extern "system" fn( p_physical_device_count: *mut u32, p_physical_devices: *mut PhysicalDevice, ) -> Result; +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkGetPhysicalDeviceFeatures = unsafe extern "system" fn( physical_device: PhysicalDevice, p_features: *mut PhysicalDeviceFeatures, ); +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkGetPhysicalDeviceFormatProperties = unsafe extern "system" fn( physical_device: PhysicalDevice, format: Format, p_format_properties: *mut FormatProperties, ); +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkGetPhysicalDeviceImageFormatProperties = unsafe extern "system" fn( physical_device: PhysicalDevice, @@ -56,17 +59,20 @@ pub type PFN_vkGetPhysicalDeviceImageFormatProperties = unsafe extern "system" f flags: ImageCreateFlags, p_image_format_properties: *mut ImageFormatProperties, ) -> Result; +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkGetPhysicalDeviceProperties = unsafe extern "system" fn( physical_device: PhysicalDevice, p_properties: *mut PhysicalDeviceProperties, ); +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkGetPhysicalDeviceQueueFamilyProperties = unsafe extern "system" fn( physical_device: PhysicalDevice, p_queue_family_property_count: *mut u32, p_queue_family_properties: *mut QueueFamilyProperties, ); +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkGetPhysicalDeviceMemoryProperties = unsafe extern "system" fn( physical_device: PhysicalDevice, @@ -91,12 +97,14 @@ pub type PFN_vkEnumerateDeviceExtensionProperties = unsafe extern "system" fn( p_property_count: *mut u32, p_properties: *mut ExtensionProperties, ) -> Result; +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkEnumerateDeviceLayerProperties = unsafe extern "system" fn( physical_device: PhysicalDevice, p_property_count: *mut u32, p_properties: *mut LayerProperties, ) -> Result; +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkGetPhysicalDeviceSparseImageFormatProperties = unsafe extern "system" fn( physical_device: PhysicalDevice, @@ -503,6 +511,7 @@ pub type PFN_vkUpdateDescriptorSets = unsafe extern "system" fn( descriptor_copy_count: u32, p_descriptor_copies: *const CopyDescriptorSet<'_>, ); +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkCreateFramebuffer = unsafe extern "system" fn( device: crate::vk::Device, @@ -510,12 +519,14 @@ pub type PFN_vkCreateFramebuffer = unsafe extern "system" fn( p_allocator: *const AllocationCallbacks, p_framebuffer: *mut Framebuffer, ) -> Result; +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkDestroyFramebuffer = unsafe extern "system" fn( device: crate::vk::Device, framebuffer: Framebuffer, p_allocator: *const AllocationCallbacks, ); +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkCreateRenderPass = unsafe extern "system" fn( device: crate::vk::Device, @@ -523,12 +534,14 @@ pub type PFN_vkCreateRenderPass = unsafe extern "system" fn( p_allocator: *const AllocationCallbacks, p_render_pass: *mut RenderPass, ) -> Result; +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkDestroyRenderPass = unsafe extern "system" fn( device: crate::vk::Device, render_pass: RenderPass, p_allocator: *const AllocationCallbacks, ); +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkGetRenderAreaGranularity = unsafe extern "system" fn( device: crate::vk::Device, @@ -888,15 +901,18 @@ pub type PFN_vkCmdPushConstants = unsafe extern "system" fn( size: u32, p_values: *const c_void, ); +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkCmdBeginRenderPass = unsafe extern "system" fn( command_buffer: CommandBuffer, p_render_pass_begin: *const RenderPassBeginInfo<'_>, contents: SubpassContents, ); +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkCmdNextSubpass = unsafe extern "system" fn(command_buffer: CommandBuffer, contents: SubpassContents); +#[deprecated = ""] #[allow(non_camel_case_types)] pub type PFN_vkCmdEndRenderPass = unsafe extern "system" fn(command_buffer: CommandBuffer); #[allow(non_camel_case_types)] diff --git a/ash/src/vk/native.rs b/ash/src/vk/native.rs index a44e9b7c8..544b84626 100644 --- a/ash/src/vk/native.rs +++ b/ash/src/vk/native.rs @@ -6601,283 +6601,106 @@ fn bindgen_test_layout_StdVideoDecodeH265ReferenceInfo() { ) ); } -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 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; -pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_2_3: StdVideoAV1Level = 3; -pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_3_0: StdVideoAV1Level = 4; -pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_3_1: StdVideoAV1Level = 5; -pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_3_2: StdVideoAV1Level = 6; -pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_3_3: StdVideoAV1Level = 7; -pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_4_0: StdVideoAV1Level = 8; -pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_4_1: StdVideoAV1Level = 9; -pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_4_2: StdVideoAV1Level = 10; -pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_4_3: StdVideoAV1Level = 11; -pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_5_0: StdVideoAV1Level = 12; -pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_5_1: StdVideoAV1Level = 13; -pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_5_2: StdVideoAV1Level = 14; -pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_5_3: StdVideoAV1Level = 15; -pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_6_0: StdVideoAV1Level = 16; -pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_6_1: StdVideoAV1Level = 17; -pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_6_2: StdVideoAV1Level = 18; -pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_6_3: StdVideoAV1Level = 19; -pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_7_0: StdVideoAV1Level = 20; -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 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 const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP: - StdVideoAV1InterpolationFilter = 0; -pub const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH: - StdVideoAV1InterpolationFilter = 1; -pub const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP: - StdVideoAV1InterpolationFilter = 2; -pub const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_BILINEAR: - StdVideoAV1InterpolationFilter = 3; -pub const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_SWITCHABLE: - StdVideoAV1InterpolationFilter = 4; -pub const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID: - StdVideoAV1InterpolationFilter = 2147483647; -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_uint; -pub const StdVideoAV1FrameRestorationType_STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE: - StdVideoAV1FrameRestorationType = 0; -pub const StdVideoAV1FrameRestorationType_STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER: - StdVideoAV1FrameRestorationType = 1; -pub const StdVideoAV1FrameRestorationType_STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ: - StdVideoAV1FrameRestorationType = 2; -pub const StdVideoAV1FrameRestorationType_STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE: - StdVideoAV1FrameRestorationType = 3; -pub const StdVideoAV1FrameRestorationType_STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID: - StdVideoAV1FrameRestorationType = 2147483647; -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: - StdVideoAV1ColorPrimaries = 2; -pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M: - StdVideoAV1ColorPrimaries = 4; -pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G: - StdVideoAV1ColorPrimaries = 5; -pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601: - StdVideoAV1ColorPrimaries = 6; -pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_240: - StdVideoAV1ColorPrimaries = 7; -pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_GENERIC_FILM: - StdVideoAV1ColorPrimaries = 8; -pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_BT_2020: - StdVideoAV1ColorPrimaries = 9; -pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_XYZ: StdVideoAV1ColorPrimaries = - 10; -pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_431: - StdVideoAV1ColorPrimaries = 11; -pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432: - StdVideoAV1ColorPrimaries = 12; -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 const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_0: - StdVideoAV1TransferCharacteristics = 0; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_709: - StdVideoAV1TransferCharacteristics = 1; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_UNSPECIFIED: - StdVideoAV1TransferCharacteristics = 2; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_3: - StdVideoAV1TransferCharacteristics = 3; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_M: - StdVideoAV1TransferCharacteristics = 4; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_B_G: - StdVideoAV1TransferCharacteristics = 5; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_601: - StdVideoAV1TransferCharacteristics = 6; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_240: - StdVideoAV1TransferCharacteristics = 7; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LINEAR: - StdVideoAV1TransferCharacteristics = 8; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100: - StdVideoAV1TransferCharacteristics = 9; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100_SQRT10 : StdVideoAV1TransferCharacteristics = 10 ; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_IEC_61966: - StdVideoAV1TransferCharacteristics = 11; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_1361: - StdVideoAV1TransferCharacteristics = 12; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SRGB: - StdVideoAV1TransferCharacteristics = 13; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_10_BIT : StdVideoAV1TransferCharacteristics = 14 ; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_12_BIT : StdVideoAV1TransferCharacteristics = 15 ; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_2084: - StdVideoAV1TransferCharacteristics = 16; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_428: - StdVideoAV1TransferCharacteristics = 17; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_HLG: - StdVideoAV1TransferCharacteristics = 18; -pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID: - StdVideoAV1TransferCharacteristics = 2147483647; -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: - StdVideoAV1MatrixCoefficients = 1; -pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_UNSPECIFIED: - StdVideoAV1MatrixCoefficients = 2; -pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_RESERVED_3: - StdVideoAV1MatrixCoefficients = 3; -pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_FCC: - StdVideoAV1MatrixCoefficients = 4; -pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_470_B_G: - StdVideoAV1MatrixCoefficients = 5; -pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_601: - StdVideoAV1MatrixCoefficients = 6; -pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_240: - StdVideoAV1MatrixCoefficients = 7; -pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_YCGCO: - StdVideoAV1MatrixCoefficients = 8; -pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_NCL: - StdVideoAV1MatrixCoefficients = 9; -pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_CL: - StdVideoAV1MatrixCoefficients = 10; -pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_2085: - StdVideoAV1MatrixCoefficients = 11; -pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_NCL: - StdVideoAV1MatrixCoefficients = 12; -pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_CL: - StdVideoAV1MatrixCoefficients = 13; -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 const StdVideoAV1ChromaSamplePosition_STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN: - StdVideoAV1ChromaSamplePosition = 0; -pub const StdVideoAV1ChromaSamplePosition_STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL: - StdVideoAV1ChromaSamplePosition = 1; -pub const StdVideoAV1ChromaSamplePosition_STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_COLOCATED: - StdVideoAV1ChromaSamplePosition = 2; -pub const StdVideoAV1ChromaSamplePosition_STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_RESERVED: - StdVideoAV1ChromaSamplePosition = 3; -pub const StdVideoAV1ChromaSamplePosition_STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID: - StdVideoAV1ChromaSamplePosition = 2147483647; -pub type StdVideoAV1ChromaSamplePosition = ::core::ffi::c_uint; +pub const StdVideoVP9Profile_STD_VIDEO_VP9_PROFILE_0: StdVideoVP9Profile = 0; +pub const StdVideoVP9Profile_STD_VIDEO_VP9_PROFILE_1: StdVideoVP9Profile = 1; +pub const StdVideoVP9Profile_STD_VIDEO_VP9_PROFILE_2: StdVideoVP9Profile = 2; +pub const StdVideoVP9Profile_STD_VIDEO_VP9_PROFILE_3: StdVideoVP9Profile = 3; +pub const StdVideoVP9Profile_STD_VIDEO_VP9_PROFILE_INVALID: StdVideoVP9Profile = 2147483647; +pub type StdVideoVP9Profile = ::core::ffi::c_uint; +pub const StdVideoVP9Level_STD_VIDEO_VP9_LEVEL_1_0: StdVideoVP9Level = 0; +pub const StdVideoVP9Level_STD_VIDEO_VP9_LEVEL_1_1: StdVideoVP9Level = 1; +pub const StdVideoVP9Level_STD_VIDEO_VP9_LEVEL_2_0: StdVideoVP9Level = 2; +pub const StdVideoVP9Level_STD_VIDEO_VP9_LEVEL_2_1: StdVideoVP9Level = 3; +pub const StdVideoVP9Level_STD_VIDEO_VP9_LEVEL_3_0: StdVideoVP9Level = 4; +pub const StdVideoVP9Level_STD_VIDEO_VP9_LEVEL_3_1: StdVideoVP9Level = 5; +pub const StdVideoVP9Level_STD_VIDEO_VP9_LEVEL_4_0: StdVideoVP9Level = 6; +pub const StdVideoVP9Level_STD_VIDEO_VP9_LEVEL_4_1: StdVideoVP9Level = 7; +pub const StdVideoVP9Level_STD_VIDEO_VP9_LEVEL_5_0: StdVideoVP9Level = 8; +pub const StdVideoVP9Level_STD_VIDEO_VP9_LEVEL_5_1: StdVideoVP9Level = 9; +pub const StdVideoVP9Level_STD_VIDEO_VP9_LEVEL_5_2: StdVideoVP9Level = 10; +pub const StdVideoVP9Level_STD_VIDEO_VP9_LEVEL_6_0: StdVideoVP9Level = 11; +pub const StdVideoVP9Level_STD_VIDEO_VP9_LEVEL_6_1: StdVideoVP9Level = 12; +pub const StdVideoVP9Level_STD_VIDEO_VP9_LEVEL_6_2: StdVideoVP9Level = 13; +pub const StdVideoVP9Level_STD_VIDEO_VP9_LEVEL_INVALID: StdVideoVP9Level = 2147483647; +pub type StdVideoVP9Level = ::core::ffi::c_uint; +pub const StdVideoVP9FrameType_STD_VIDEO_VP9_FRAME_TYPE_KEY: StdVideoVP9FrameType = 0; +pub const StdVideoVP9FrameType_STD_VIDEO_VP9_FRAME_TYPE_NON_KEY: StdVideoVP9FrameType = 1; +pub const StdVideoVP9FrameType_STD_VIDEO_VP9_FRAME_TYPE_INVALID: StdVideoVP9FrameType = 2147483647; +pub type StdVideoVP9FrameType = ::core::ffi::c_uint; +pub const StdVideoVP9InterpolationFilter_STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP: + StdVideoVP9InterpolationFilter = 0; +pub const StdVideoVP9InterpolationFilter_STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH: + StdVideoVP9InterpolationFilter = 1; +pub const StdVideoVP9InterpolationFilter_STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP_SHARP: + StdVideoVP9InterpolationFilter = 2; +pub const StdVideoVP9InterpolationFilter_STD_VIDEO_VP9_INTERPOLATION_FILTER_BILINEAR: + StdVideoVP9InterpolationFilter = 3; +pub const StdVideoVP9InterpolationFilter_STD_VIDEO_VP9_INTERPOLATION_FILTER_SWITCHABLE: + StdVideoVP9InterpolationFilter = 4; +pub const StdVideoVP9InterpolationFilter_STD_VIDEO_VP9_INTERPOLATION_FILTER_INVALID: + StdVideoVP9InterpolationFilter = 2147483647; +pub type StdVideoVP9InterpolationFilter = ::core::ffi::c_uint; +pub const StdVideoVP9ColorSpace_STD_VIDEO_VP9_COLOR_SPACE_UNKNOWN: StdVideoVP9ColorSpace = 0; +pub const StdVideoVP9ColorSpace_STD_VIDEO_VP9_COLOR_SPACE_BT_601: StdVideoVP9ColorSpace = 1; +pub const StdVideoVP9ColorSpace_STD_VIDEO_VP9_COLOR_SPACE_BT_709: StdVideoVP9ColorSpace = 2; +pub const StdVideoVP9ColorSpace_STD_VIDEO_VP9_COLOR_SPACE_SMPTE_170: StdVideoVP9ColorSpace = 3; +pub const StdVideoVP9ColorSpace_STD_VIDEO_VP9_COLOR_SPACE_SMPTE_240: StdVideoVP9ColorSpace = 4; +pub const StdVideoVP9ColorSpace_STD_VIDEO_VP9_COLOR_SPACE_BT_2020: StdVideoVP9ColorSpace = 5; +pub const StdVideoVP9ColorSpace_STD_VIDEO_VP9_COLOR_SPACE_RESERVED: StdVideoVP9ColorSpace = 6; +pub const StdVideoVP9ColorSpace_STD_VIDEO_VP9_COLOR_SPACE_RGB: StdVideoVP9ColorSpace = 7; +pub const StdVideoVP9ColorSpace_STD_VIDEO_VP9_COLOR_SPACE_INVALID: StdVideoVP9ColorSpace = + 2147483647; +pub type StdVideoVP9ColorSpace = ::core::ffi::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoAV1ColorConfigFlags { +pub struct StdVideoVP9ColorConfigFlags { pub _bitfield_align_1: [u32; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, } #[test] -fn bindgen_test_layout_StdVideoAV1ColorConfigFlags() { +fn bindgen_test_layout_StdVideoVP9ColorConfigFlags() { assert_eq!( - ::core::mem::size_of::(), + ::core::mem::size_of::(), 4usize, - concat!("Size of: ", stringify!(StdVideoAV1ColorConfigFlags)) + concat!("Size of: ", stringify!(StdVideoVP9ColorConfigFlags)) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 4usize, - concat!("Alignment of ", stringify!(StdVideoAV1ColorConfigFlags)) + concat!("Alignment of ", stringify!(StdVideoVP9ColorConfigFlags)) ); } -impl StdVideoAV1ColorConfigFlags { - #[inline] - pub fn mono_chrome(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_mono_chrome(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } +impl StdVideoVP9ColorConfigFlags { #[inline] pub fn color_range(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } } #[inline] pub fn set_color_range(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn separate_uv_delta_q(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - #[inline] - pub fn set_separate_uv_delta_q(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn color_description_present_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - #[inline] - pub fn set_color_description_present_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) + self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 28u8) as u32) } + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) } } #[inline] pub fn set_reserved(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 28u8, val as u64) + self._bitfield_1.set(1usize, 31u8, val as u64) } } #[inline] - pub fn new_bitfield_1( - mono_chrome: u32, - color_range: u32, - separate_uv_delta_q: u32, - color_description_present_flag: u32, - reserved: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + pub fn new_bitfield_1(color_range: u32, reserved: u32) -> __BindgenBitfieldUnit<[u8; 4usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); __bindgen_bitfield_unit.set(0usize, 1u8, { - let mono_chrome: u32 = unsafe { ::core::mem::transmute(mono_chrome) }; - mono_chrome as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { let color_range: u32 = unsafe { ::core::mem::transmute(color_range) }; color_range as u64 }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let separate_uv_delta_q: u32 = unsafe { ::core::mem::transmute(separate_uv_delta_q) }; - separate_uv_delta_q as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let color_description_present_flag: u32 = - unsafe { ::core::mem::transmute(color_description_present_flag) }; - color_description_present_flag as u64 - }); - __bindgen_bitfield_unit.set(4usize, 28u8, { + __bindgen_bitfield_unit.set(1usize, 31u8, { let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; reserved as u64 }); @@ -6886,38 +6709,35 @@ impl StdVideoAV1ColorConfigFlags { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoAV1ColorConfig { - pub flags: StdVideoAV1ColorConfigFlags, +pub struct StdVideoVP9ColorConfig { + pub flags: StdVideoVP9ColorConfigFlags, pub BitDepth: u8, pub subsampling_x: u8, pub subsampling_y: u8, pub reserved1: u8, - pub color_primaries: StdVideoAV1ColorPrimaries, - pub transfer_characteristics: StdVideoAV1TransferCharacteristics, - pub matrix_coefficients: StdVideoAV1MatrixCoefficients, - pub chroma_sample_position: StdVideoAV1ChromaSamplePosition, + pub color_space: StdVideoVP9ColorSpace, } #[test] -fn bindgen_test_layout_StdVideoAV1ColorConfig() { - const UNINIT: ::core::mem::MaybeUninit = +fn bindgen_test_layout_StdVideoVP9ColorConfig() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(StdVideoAV1ColorConfig)) + ::core::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(StdVideoVP9ColorConfig)) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 4usize, - concat!("Alignment of ", stringify!(StdVideoAV1ColorConfig)) + concat!("Alignment of ", stringify!(StdVideoVP9ColorConfig)) ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1ColorConfig), + stringify!(StdVideoVP9ColorConfig), "::", stringify!(flags) ) @@ -6927,7 +6747,7 @@ fn bindgen_test_layout_StdVideoAV1ColorConfig() { 4usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1ColorConfig), + stringify!(StdVideoVP9ColorConfig), "::", stringify!(BitDepth) ) @@ -6937,7 +6757,7 @@ fn bindgen_test_layout_StdVideoAV1ColorConfig() { 5usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1ColorConfig), + stringify!(StdVideoVP9ColorConfig), "::", stringify!(subsampling_x) ) @@ -6947,7 +6767,7 @@ fn bindgen_test_layout_StdVideoAV1ColorConfig() { 6usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1ColorConfig), + stringify!(StdVideoVP9ColorConfig), "::", stringify!(subsampling_y) ) @@ -6957,198 +6777,42 @@ fn bindgen_test_layout_StdVideoAV1ColorConfig() { 7usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1ColorConfig), + stringify!(StdVideoVP9ColorConfig), "::", stringify!(reserved1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).color_primaries) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1ColorConfig), - "::", - stringify!(color_primaries) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).transfer_characteristics) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1ColorConfig), - "::", - stringify!(transfer_characteristics) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).matrix_coefficients) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1ColorConfig), - "::", - stringify!(matrix_coefficients) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chroma_sample_position) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1ColorConfig), - "::", - stringify!(chroma_sample_position) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StdVideoAV1TimingInfoFlags { - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, -} -#[test] -fn bindgen_test_layout_StdVideoAV1TimingInfoFlags() { - assert_eq!( - ::core::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(StdVideoAV1TimingInfoFlags)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(StdVideoAV1TimingInfoFlags)) - ); -} -impl StdVideoAV1TimingInfoFlags { - #[inline] - pub fn equal_picture_interval(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_equal_picture_interval(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) } - } - #[inline] - pub fn set_reserved(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 31u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - equal_picture_interval: u32, - reserved: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let equal_picture_interval: u32 = - unsafe { ::core::mem::transmute(equal_picture_interval) }; - equal_picture_interval as u64 - }); - __bindgen_bitfield_unit.set(1usize, 31u8, { - let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; - reserved as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StdVideoAV1TimingInfo { - pub flags: StdVideoAV1TimingInfoFlags, - pub num_units_in_display_tick: u32, - pub time_scale: u32, - pub num_ticks_per_picture_minus_1: u32, -} -#[test] -fn bindgen_test_layout_StdVideoAV1TimingInfo() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(StdVideoAV1TimingInfo)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(StdVideoAV1TimingInfo)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1TimingInfo), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).num_units_in_display_tick) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1TimingInfo), - "::", - stringify!(num_units_in_display_tick) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).time_scale) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).color_space) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1TimingInfo), - "::", - stringify!(time_scale) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).num_ticks_per_picture_minus_1) as usize - ptr as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1TimingInfo), + stringify!(StdVideoVP9ColorConfig), "::", - stringify!(num_ticks_per_picture_minus_1) + stringify!(color_space) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoAV1LoopFilterFlags { +pub struct StdVideoVP9LoopFilterFlags { pub _bitfield_align_1: [u32; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, } #[test] -fn bindgen_test_layout_StdVideoAV1LoopFilterFlags() { +fn bindgen_test_layout_StdVideoVP9LoopFilterFlags() { assert_eq!( - ::core::mem::size_of::(), + ::core::mem::size_of::(), 4usize, - concat!("Size of: ", stringify!(StdVideoAV1LoopFilterFlags)) + concat!("Size of: ", stringify!(StdVideoVP9LoopFilterFlags)) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 4usize, - concat!("Alignment of ", stringify!(StdVideoAV1LoopFilterFlags)) + concat!("Alignment of ", stringify!(StdVideoVP9LoopFilterFlags)) ); } -impl StdVideoAV1LoopFilterFlags { +impl StdVideoVP9LoopFilterFlags { #[inline] pub fn loop_filter_delta_enabled(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } @@ -7208,36 +6872,36 @@ impl StdVideoAV1LoopFilterFlags { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoAV1LoopFilter { - pub flags: StdVideoAV1LoopFilterFlags, - pub loop_filter_level: [u8; 4usize], +pub struct StdVideoVP9LoopFilter { + pub flags: StdVideoVP9LoopFilterFlags, + pub loop_filter_level: u8, pub loop_filter_sharpness: u8, pub update_ref_delta: u8, - pub loop_filter_ref_deltas: [i8; 8usize], + pub loop_filter_ref_deltas: [i8; 4usize], pub update_mode_delta: u8, pub loop_filter_mode_deltas: [i8; 2usize], } #[test] -fn bindgen_test_layout_StdVideoAV1LoopFilter() { - const UNINIT: ::core::mem::MaybeUninit = +fn bindgen_test_layout_StdVideoVP9LoopFilter() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(StdVideoAV1LoopFilter)) + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(StdVideoVP9LoopFilter)) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 4usize, - concat!("Alignment of ", stringify!(StdVideoAV1LoopFilter)) + concat!("Alignment of ", stringify!(StdVideoVP9LoopFilter)) ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1LoopFilter), + stringify!(StdVideoVP9LoopFilter), "::", stringify!(flags) ) @@ -7247,57 +6911,57 @@ fn bindgen_test_layout_StdVideoAV1LoopFilter() { 4usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1LoopFilter), + stringify!(StdVideoVP9LoopFilter), "::", stringify!(loop_filter_level) ) ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).loop_filter_sharpness) as usize - ptr as usize }, - 8usize, + 5usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1LoopFilter), + stringify!(StdVideoVP9LoopFilter), "::", stringify!(loop_filter_sharpness) ) ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).update_ref_delta) as usize - ptr as usize }, - 9usize, + 6usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1LoopFilter), + stringify!(StdVideoVP9LoopFilter), "::", stringify!(update_ref_delta) ) ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).loop_filter_ref_deltas) as usize - ptr as usize }, - 10usize, + 7usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1LoopFilter), + stringify!(StdVideoVP9LoopFilter), "::", stringify!(loop_filter_ref_deltas) ) ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).update_mode_delta) as usize - ptr as usize }, - 18usize, + 11usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1LoopFilter), + stringify!(StdVideoVP9LoopFilter), "::", stringify!(update_mode_delta) ) ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).loop_filter_mode_deltas) as usize - ptr as usize }, - 19usize, + 12usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1LoopFilter), + stringify!(StdVideoVP9LoopFilter), "::", stringify!(loop_filter_mode_deltas) ) @@ -7305,73 +6969,109 @@ fn bindgen_test_layout_StdVideoAV1LoopFilter() { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoAV1QuantizationFlags { +pub struct StdVideoVP9SegmentationFlags { pub _bitfield_align_1: [u32; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, } #[test] -fn bindgen_test_layout_StdVideoAV1QuantizationFlags() { +fn bindgen_test_layout_StdVideoVP9SegmentationFlags() { assert_eq!( - ::core::mem::size_of::(), + ::core::mem::size_of::(), 4usize, - concat!("Size of: ", stringify!(StdVideoAV1QuantizationFlags)) + concat!("Size of: ", stringify!(StdVideoVP9SegmentationFlags)) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 4usize, - concat!("Alignment of ", stringify!(StdVideoAV1QuantizationFlags)) + concat!("Alignment of ", stringify!(StdVideoVP9SegmentationFlags)) ); } -impl StdVideoAV1QuantizationFlags { +impl StdVideoVP9SegmentationFlags { #[inline] - pub fn using_qmatrix(&self) -> u32 { + pub fn segmentation_update_map(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } } #[inline] - pub fn set_using_qmatrix(&mut self, val: u32) { + pub fn set_segmentation_update_map(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn diff_uv_delta(&self) -> u32 { + pub fn segmentation_temporal_update(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } } #[inline] - pub fn set_diff_uv_delta(&mut self, val: u32) { + pub fn set_segmentation_temporal_update(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(1usize, 1u8, val as u64) } } #[inline] + pub fn segmentation_update_data(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_segmentation_update_data(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn segmentation_abs_or_delta_update(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_segmentation_abs_or_delta_update(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 28u8) as u32) } } #[inline] pub fn set_reserved(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 30u8, val as u64) + self._bitfield_1.set(4usize, 28u8, val as u64) } } #[inline] pub fn new_bitfield_1( - using_qmatrix: u32, - diff_uv_delta: u32, + segmentation_update_map: u32, + segmentation_temporal_update: u32, + segmentation_update_data: u32, + segmentation_abs_or_delta_update: u32, reserved: u32, ) -> __BindgenBitfieldUnit<[u8; 4usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); __bindgen_bitfield_unit.set(0usize, 1u8, { - let using_qmatrix: u32 = unsafe { ::core::mem::transmute(using_qmatrix) }; - using_qmatrix as u64 + let segmentation_update_map: u32 = + unsafe { ::core::mem::transmute(segmentation_update_map) }; + segmentation_update_map as u64 }); __bindgen_bitfield_unit.set(1usize, 1u8, { - let diff_uv_delta: u32 = unsafe { ::core::mem::transmute(diff_uv_delta) }; - diff_uv_delta as u64 - }); - __bindgen_bitfield_unit.set(2usize, 30u8, { + let segmentation_temporal_update: u32 = + unsafe { ::core::mem::transmute(segmentation_temporal_update) }; + segmentation_temporal_update as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let segmentation_update_data: u32 = + unsafe { ::core::mem::transmute(segmentation_update_data) }; + segmentation_update_data as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let segmentation_abs_or_delta_update: u32 = + unsafe { ::core::mem::transmute(segmentation_abs_or_delta_update) }; + segmentation_abs_or_delta_update as u64 + }); + __bindgen_bitfield_unit.set(4usize, 28u8, { let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; reserved as u64 }); @@ -7380,171 +7080,74 @@ impl StdVideoAV1QuantizationFlags { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoAV1Quantization { - pub flags: StdVideoAV1QuantizationFlags, - pub base_q_idx: u8, - pub DeltaQYDc: i8, - pub DeltaQUDc: i8, - pub DeltaQUAc: i8, - pub DeltaQVDc: i8, - pub DeltaQVAc: i8, - pub qm_y: u8, - pub qm_u: u8, - pub qm_v: u8, +pub struct StdVideoVP9Segmentation { + pub flags: StdVideoVP9SegmentationFlags, + pub segmentation_tree_probs: [u8; 7usize], + pub segmentation_pred_prob: [u8; 3usize], + pub FeatureEnabled: [u8; 8usize], + pub FeatureData: [[i16; 4usize]; 8usize], } #[test] -fn bindgen_test_layout_StdVideoAV1Quantization() { - const UNINIT: ::core::mem::MaybeUninit = +fn bindgen_test_layout_StdVideoVP9Segmentation() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(StdVideoAV1Quantization)) + ::core::mem::size_of::(), + 88usize, + concat!("Size of: ", stringify!(StdVideoVP9Segmentation)) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 4usize, - concat!("Alignment of ", stringify!(StdVideoAV1Quantization)) + concat!("Alignment of ", stringify!(StdVideoVP9Segmentation)) ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1Quantization), + stringify!(StdVideoVP9Segmentation), "::", stringify!(flags) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).base_q_idx) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).segmentation_tree_probs) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1Quantization), - "::", - stringify!(base_q_idx) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).DeltaQYDc) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1Quantization), - "::", - stringify!(DeltaQYDc) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).DeltaQUDc) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1Quantization), - "::", - stringify!(DeltaQUDc) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).DeltaQUAc) as usize - ptr as usize }, - 7usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1Quantization), - "::", - stringify!(DeltaQUAc) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).DeltaQVDc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1Quantization), - "::", - stringify!(DeltaQVDc) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).DeltaQVAc) as usize - ptr as usize }, - 9usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1Quantization), - "::", - stringify!(DeltaQVAc) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qm_y) as usize - ptr as usize }, - 10usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1Quantization), + stringify!(StdVideoVP9Segmentation), "::", - stringify!(qm_y) + stringify!(segmentation_tree_probs) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qm_u) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).segmentation_pred_prob) as usize - ptr as usize }, 11usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1Quantization), - "::", - stringify!(qm_u) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).qm_v) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1Quantization), + stringify!(StdVideoVP9Segmentation), "::", - stringify!(qm_v) + stringify!(segmentation_pred_prob) ) ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StdVideoAV1Segmentation { - pub FeatureEnabled: [u8; 8usize], - pub FeatureData: [[i16; 8usize]; 8usize], -} -#[test] -fn bindgen_test_layout_StdVideoAV1Segmentation() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 136usize, - concat!("Size of: ", stringify!(StdVideoAV1Segmentation)) - ); - assert_eq!( - ::core::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(StdVideoAV1Segmentation)) - ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).FeatureEnabled) as usize - ptr as usize }, - 0usize, + 14usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1Segmentation), + stringify!(StdVideoVP9Segmentation), "::", stringify!(FeatureEnabled) ) ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).FeatureData) as usize - ptr as usize }, - 8usize, + 22usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1Segmentation), + stringify!(StdVideoVP9Segmentation), "::", stringify!(FeatureData) ) @@ -7552,58 +7155,175 @@ fn bindgen_test_layout_StdVideoAV1Segmentation() { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoAV1TileInfoFlags { +pub struct StdVideoDecodeVP9PictureInfoFlags { pub _bitfield_align_1: [u32; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, } #[test] -fn bindgen_test_layout_StdVideoAV1TileInfoFlags() { +fn bindgen_test_layout_StdVideoDecodeVP9PictureInfoFlags() { assert_eq!( - ::core::mem::size_of::(), + ::core::mem::size_of::(), 4usize, - concat!("Size of: ", stringify!(StdVideoAV1TileInfoFlags)) + concat!("Size of: ", stringify!(StdVideoDecodeVP9PictureInfoFlags)) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 4usize, - concat!("Alignment of ", stringify!(StdVideoAV1TileInfoFlags)) + concat!( + "Alignment of ", + stringify!(StdVideoDecodeVP9PictureInfoFlags) + ) ); } -impl StdVideoAV1TileInfoFlags { +impl StdVideoDecodeVP9PictureInfoFlags { #[inline] - pub fn uniform_tile_spacing_flag(&self) -> u32 { + pub fn error_resilient_mode(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } } #[inline] - pub fn set_uniform_tile_spacing_flag(&mut self, val: u32) { + pub fn set_error_resilient_mode(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] + pub fn intra_only(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_intra_only(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn allow_high_precision_mv(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_allow_high_precision_mv(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn refresh_frame_context(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_refresh_frame_context(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub fn frame_parallel_decoding_mode(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_frame_parallel_decoding_mode(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub fn segmentation_enabled(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_segmentation_enabled(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub fn show_frame(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_show_frame(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub fn UsePrevFrameMvs(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_UsePrevFrameMvs(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) } + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 24u8) as u32) } } #[inline] pub fn set_reserved(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 31u8, val as u64) + self._bitfield_1.set(8usize, 24u8, val as u64) } } #[inline] pub fn new_bitfield_1( - uniform_tile_spacing_flag: u32, + error_resilient_mode: u32, + intra_only: u32, + allow_high_precision_mv: u32, + refresh_frame_context: u32, + frame_parallel_decoding_mode: u32, + segmentation_enabled: u32, + show_frame: u32, + UsePrevFrameMvs: u32, reserved: u32, ) -> __BindgenBitfieldUnit<[u8; 4usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); __bindgen_bitfield_unit.set(0usize, 1u8, { - let uniform_tile_spacing_flag: u32 = - unsafe { ::core::mem::transmute(uniform_tile_spacing_flag) }; - uniform_tile_spacing_flag as u64 + let error_resilient_mode: u32 = unsafe { ::core::mem::transmute(error_resilient_mode) }; + error_resilient_mode as u64 }); - __bindgen_bitfield_unit.set(1usize, 31u8, { + __bindgen_bitfield_unit.set(1usize, 1u8, { + let intra_only: u32 = unsafe { ::core::mem::transmute(intra_only) }; + intra_only as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let allow_high_precision_mv: u32 = + unsafe { ::core::mem::transmute(allow_high_precision_mv) }; + allow_high_precision_mv as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let refresh_frame_context: u32 = + unsafe { ::core::mem::transmute(refresh_frame_context) }; + refresh_frame_context as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let frame_parallel_decoding_mode: u32 = + unsafe { ::core::mem::transmute(frame_parallel_decoding_mode) }; + frame_parallel_decoding_mode as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let segmentation_enabled: u32 = unsafe { ::core::mem::transmute(segmentation_enabled) }; + segmentation_enabled as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let show_frame: u32 = unsafe { ::core::mem::transmute(show_frame) }; + show_frame as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let UsePrevFrameMvs: u32 = unsafe { ::core::mem::transmute(UsePrevFrameMvs) }; + UsePrevFrameMvs as u64 + }); + __bindgen_bitfield_unit.set(8usize, 24u8, { let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; reserved as u64 }); @@ -7612,362 +7332,458 @@ impl StdVideoAV1TileInfoFlags { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoAV1TileInfo { - pub flags: StdVideoAV1TileInfoFlags, - pub TileCols: u8, - pub TileRows: u8, - pub context_update_tile_id: u16, - pub tile_size_bytes_minus_1: u8, - pub reserved1: [u8; 7usize], - pub pMiColStarts: *const u16, - pub pMiRowStarts: *const u16, - pub pWidthInSbsMinus1: *const u16, - pub pHeightInSbsMinus1: *const u16, +pub struct StdVideoDecodeVP9PictureInfo { + pub flags: StdVideoDecodeVP9PictureInfoFlags, + pub profile: StdVideoVP9Profile, + pub frame_type: StdVideoVP9FrameType, + pub frame_context_idx: u8, + pub reset_frame_context: u8, + pub refresh_frame_flags: u8, + pub ref_frame_sign_bias_mask: u8, + pub interpolation_filter: StdVideoVP9InterpolationFilter, + pub base_q_idx: u8, + pub delta_q_y_dc: i8, + pub delta_q_uv_dc: i8, + pub delta_q_uv_ac: i8, + pub tile_cols_log2: u8, + pub tile_rows_log2: u8, + pub reserved1: [u16; 3usize], + pub pColorConfig: *const StdVideoVP9ColorConfig, + pub pLoopFilter: *const StdVideoVP9LoopFilter, + pub pSegmentation: *const StdVideoVP9Segmentation, } #[test] -fn bindgen_test_layout_StdVideoAV1TileInfo() { - const UNINIT: ::core::mem::MaybeUninit = +fn bindgen_test_layout_StdVideoDecodeVP9PictureInfo() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(StdVideoAV1TileInfo)) + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(StdVideoDecodeVP9PictureInfo)) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 8usize, - concat!("Alignment of ", stringify!(StdVideoAV1TileInfo)) + concat!("Alignment of ", stringify!(StdVideoDecodeVP9PictureInfo)) ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1TileInfo), + stringify!(StdVideoDecodeVP9PictureInfo), "::", stringify!(flags) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).TileCols) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).profile) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1TileInfo), - "::", - stringify!(TileCols) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).TileRows) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1TileInfo), - "::", - stringify!(TileRows) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).context_update_tile_id) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1TileInfo), + stringify!(StdVideoDecodeVP9PictureInfo), "::", - stringify!(context_update_tile_id) + stringify!(profile) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).tile_size_bytes_minus_1) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).frame_type) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1TileInfo), + stringify!(StdVideoDecodeVP9PictureInfo), "::", - stringify!(tile_size_bytes_minus_1) + stringify!(frame_type) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 9usize, + unsafe { ::core::ptr::addr_of!((*ptr).frame_context_idx) as usize - ptr as usize }, + 12usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1TileInfo), + stringify!(StdVideoDecodeVP9PictureInfo), "::", - stringify!(reserved1) + stringify!(frame_context_idx) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pMiColStarts) as usize - ptr as usize }, - 16usize, + unsafe { ::core::ptr::addr_of!((*ptr).reset_frame_context) as usize - ptr as usize }, + 13usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1TileInfo), + stringify!(StdVideoDecodeVP9PictureInfo), "::", - stringify!(pMiColStarts) + stringify!(reset_frame_context) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pMiRowStarts) as usize - ptr as usize }, - 24usize, + unsafe { ::core::ptr::addr_of!((*ptr).refresh_frame_flags) as usize - ptr as usize }, + 14usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1TileInfo), + stringify!(StdVideoDecodeVP9PictureInfo), "::", - stringify!(pMiRowStarts) + stringify!(refresh_frame_flags) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pWidthInSbsMinus1) as usize - ptr as usize }, - 32usize, + unsafe { ::core::ptr::addr_of!((*ptr).ref_frame_sign_bias_mask) as usize - ptr as usize }, + 15usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1TileInfo), + stringify!(StdVideoDecodeVP9PictureInfo), "::", - stringify!(pWidthInSbsMinus1) + stringify!(ref_frame_sign_bias_mask) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pHeightInSbsMinus1) as usize - ptr as usize }, - 40usize, + unsafe { ::core::ptr::addr_of!((*ptr).interpolation_filter) as usize - ptr as usize }, + 16usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1TileInfo), + stringify!(StdVideoDecodeVP9PictureInfo), "::", - stringify!(pHeightInSbsMinus1) + stringify!(interpolation_filter) ) ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StdVideoAV1CDEF { - pub cdef_damping_minus_3: u8, - pub cdef_bits: u8, - pub cdef_y_pri_strength: [u8; 8usize], - pub cdef_y_sec_strength: [u8; 8usize], - pub cdef_uv_pri_strength: [u8; 8usize], - pub cdef_uv_sec_strength: [u8; 8usize], -} -#[test] -fn bindgen_test_layout_StdVideoAV1CDEF() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 34usize, - concat!("Size of: ", stringify!(StdVideoAV1CDEF)) - ); - assert_eq!( - ::core::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(StdVideoAV1CDEF)) - ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cdef_damping_minus_3) as usize - ptr as usize }, - 0usize, + unsafe { ::core::ptr::addr_of!((*ptr).base_q_idx) as usize - ptr as usize }, + 20usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1CDEF), + stringify!(StdVideoDecodeVP9PictureInfo), "::", - stringify!(cdef_damping_minus_3) + stringify!(base_q_idx) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cdef_bits) as usize - ptr as usize }, - 1usize, + unsafe { ::core::ptr::addr_of!((*ptr).delta_q_y_dc) as usize - ptr as usize }, + 21usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1CDEF), + stringify!(StdVideoDecodeVP9PictureInfo), "::", - stringify!(cdef_bits) + stringify!(delta_q_y_dc) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cdef_y_pri_strength) as usize - ptr as usize }, - 2usize, + unsafe { ::core::ptr::addr_of!((*ptr).delta_q_uv_dc) as usize - ptr as usize }, + 22usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1CDEF), + stringify!(StdVideoDecodeVP9PictureInfo), "::", - stringify!(cdef_y_pri_strength) + stringify!(delta_q_uv_dc) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cdef_y_sec_strength) as usize - ptr as usize }, - 10usize, + unsafe { ::core::ptr::addr_of!((*ptr).delta_q_uv_ac) as usize - ptr as usize }, + 23usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1CDEF), + stringify!(StdVideoDecodeVP9PictureInfo), "::", - stringify!(cdef_y_sec_strength) + stringify!(delta_q_uv_ac) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cdef_uv_pri_strength) as usize - ptr as usize }, - 18usize, + unsafe { ::core::ptr::addr_of!((*ptr).tile_cols_log2) as usize - ptr as usize }, + 24usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1CDEF), + stringify!(StdVideoDecodeVP9PictureInfo), "::", - stringify!(cdef_uv_pri_strength) + stringify!(tile_cols_log2) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cdef_uv_sec_strength) as usize - ptr as usize }, - 26usize, + unsafe { ::core::ptr::addr_of!((*ptr).tile_rows_log2) as usize - ptr as usize }, + 25usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1CDEF), + stringify!(StdVideoDecodeVP9PictureInfo), "::", - stringify!(cdef_uv_sec_strength) + stringify!(tile_rows_log2) ) ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StdVideoAV1LoopRestoration { - pub FrameRestorationType: [StdVideoAV1FrameRestorationType; 3usize], - pub LoopRestorationSize: [u16; 3usize], -} -#[test] -fn bindgen_test_layout_StdVideoAV1LoopRestoration() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(StdVideoAV1LoopRestoration)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(StdVideoAV1LoopRestoration)) - ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).FrameRestorationType) as usize - ptr as usize }, - 0usize, + unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, + 26usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1LoopRestoration), + stringify!(StdVideoDecodeVP9PictureInfo), "::", - stringify!(FrameRestorationType) + stringify!(reserved1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).LoopRestorationSize) as usize - ptr as usize }, - 12usize, + unsafe { ::core::ptr::addr_of!((*ptr).pColorConfig) as usize - ptr as usize }, + 32usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1LoopRestoration), + stringify!(StdVideoDecodeVP9PictureInfo), "::", - stringify!(LoopRestorationSize) + stringify!(pColorConfig) ) ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StdVideoAV1GlobalMotion { - pub GmType: [u8; 8usize], - pub gm_params: [[i32; 6usize]; 8usize], -} -#[test] -fn bindgen_test_layout_StdVideoAV1GlobalMotion() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 200usize, - concat!("Size of: ", stringify!(StdVideoAV1GlobalMotion)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(StdVideoAV1GlobalMotion)) - ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).GmType) as usize - ptr as usize }, - 0usize, + unsafe { ::core::ptr::addr_of!((*ptr).pLoopFilter) as usize - ptr as usize }, + 40usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1GlobalMotion), + stringify!(StdVideoDecodeVP9PictureInfo), "::", - stringify!(GmType) + stringify!(pLoopFilter) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).gm_params) as usize - ptr as usize }, - 8usize, + unsafe { ::core::ptr::addr_of!((*ptr).pSegmentation) as usize - ptr as usize }, + 48usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1GlobalMotion), + stringify!(StdVideoDecodeVP9PictureInfo), "::", - stringify!(gm_params) + stringify!(pSegmentation) ) ); } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StdVideoAV1FilmGrainFlags { - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, -} -#[test] -fn bindgen_test_layout_StdVideoAV1FilmGrainFlags() { - assert_eq!( - ::core::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(StdVideoAV1FilmGrainFlags)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(StdVideoAV1FilmGrainFlags)) - ); -} -impl StdVideoAV1FilmGrainFlags { - #[inline] - pub fn chroma_scaling_from_luma(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_chroma_scaling_from_luma(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn overlap_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_overlap_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn clip_to_restricted_range(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - #[inline] - pub fn set_clip_to_restricted_range(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn update_grain(&self) -> u32 { +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 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; +pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_2_3: StdVideoAV1Level = 3; +pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_3_0: StdVideoAV1Level = 4; +pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_3_1: StdVideoAV1Level = 5; +pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_3_2: StdVideoAV1Level = 6; +pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_3_3: StdVideoAV1Level = 7; +pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_4_0: StdVideoAV1Level = 8; +pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_4_1: StdVideoAV1Level = 9; +pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_4_2: StdVideoAV1Level = 10; +pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_4_3: StdVideoAV1Level = 11; +pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_5_0: StdVideoAV1Level = 12; +pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_5_1: StdVideoAV1Level = 13; +pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_5_2: StdVideoAV1Level = 14; +pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_5_3: StdVideoAV1Level = 15; +pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_6_0: StdVideoAV1Level = 16; +pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_6_1: StdVideoAV1Level = 17; +pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_6_2: StdVideoAV1Level = 18; +pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_6_3: StdVideoAV1Level = 19; +pub const StdVideoAV1Level_STD_VIDEO_AV1_LEVEL_7_0: StdVideoAV1Level = 20; +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 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 const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP: + StdVideoAV1InterpolationFilter = 0; +pub const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH: + StdVideoAV1InterpolationFilter = 1; +pub const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP: + StdVideoAV1InterpolationFilter = 2; +pub const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_BILINEAR: + StdVideoAV1InterpolationFilter = 3; +pub const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_SWITCHABLE: + StdVideoAV1InterpolationFilter = 4; +pub const StdVideoAV1InterpolationFilter_STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID: + StdVideoAV1InterpolationFilter = 2147483647; +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_uint; +pub const StdVideoAV1FrameRestorationType_STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE: + StdVideoAV1FrameRestorationType = 0; +pub const StdVideoAV1FrameRestorationType_STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER: + StdVideoAV1FrameRestorationType = 1; +pub const StdVideoAV1FrameRestorationType_STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ: + StdVideoAV1FrameRestorationType = 2; +pub const StdVideoAV1FrameRestorationType_STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE: + StdVideoAV1FrameRestorationType = 3; +pub const StdVideoAV1FrameRestorationType_STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID: + StdVideoAV1FrameRestorationType = 2147483647; +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_UNSPECIFIED: + StdVideoAV1ColorPrimaries = 2; +pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M: + StdVideoAV1ColorPrimaries = 4; +pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G: + StdVideoAV1ColorPrimaries = 5; +pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601: + StdVideoAV1ColorPrimaries = 6; +pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_240: + StdVideoAV1ColorPrimaries = 7; +pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_GENERIC_FILM: + StdVideoAV1ColorPrimaries = 8; +pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_BT_2020: + StdVideoAV1ColorPrimaries = 9; +pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_XYZ: StdVideoAV1ColorPrimaries = + 10; +pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_431: + StdVideoAV1ColorPrimaries = 11; +pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432: + StdVideoAV1ColorPrimaries = 12; +pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213: + StdVideoAV1ColorPrimaries = 22; +pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID: + StdVideoAV1ColorPrimaries = 2147483647; +pub const StdVideoAV1ColorPrimaries_STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED: + StdVideoAV1ColorPrimaries = 2; +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: + StdVideoAV1TransferCharacteristics = 1; +pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_UNSPECIFIED: + StdVideoAV1TransferCharacteristics = 2; +pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_3: + StdVideoAV1TransferCharacteristics = 3; +pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_M: + StdVideoAV1TransferCharacteristics = 4; +pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_B_G: + StdVideoAV1TransferCharacteristics = 5; +pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_601: + StdVideoAV1TransferCharacteristics = 6; +pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_240: + StdVideoAV1TransferCharacteristics = 7; +pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LINEAR: + StdVideoAV1TransferCharacteristics = 8; +pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100: + StdVideoAV1TransferCharacteristics = 9; +pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100_SQRT10 : StdVideoAV1TransferCharacteristics = 10 ; +pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_IEC_61966: + StdVideoAV1TransferCharacteristics = 11; +pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_1361: + StdVideoAV1TransferCharacteristics = 12; +pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SRGB: + StdVideoAV1TransferCharacteristics = 13; +pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_10_BIT : StdVideoAV1TransferCharacteristics = 14 ; +pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_12_BIT : StdVideoAV1TransferCharacteristics = 15 ; +pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_2084: + StdVideoAV1TransferCharacteristics = 16; +pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_428: + StdVideoAV1TransferCharacteristics = 17; +pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_HLG: + StdVideoAV1TransferCharacteristics = 18; +pub const StdVideoAV1TransferCharacteristics_STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID: + StdVideoAV1TransferCharacteristics = 2147483647; +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: + StdVideoAV1MatrixCoefficients = 1; +pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_UNSPECIFIED: + StdVideoAV1MatrixCoefficients = 2; +pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_RESERVED_3: + StdVideoAV1MatrixCoefficients = 3; +pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_FCC: + StdVideoAV1MatrixCoefficients = 4; +pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_470_B_G: + StdVideoAV1MatrixCoefficients = 5; +pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_601: + StdVideoAV1MatrixCoefficients = 6; +pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_240: + StdVideoAV1MatrixCoefficients = 7; +pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_YCGCO: + StdVideoAV1MatrixCoefficients = 8; +pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_NCL: + StdVideoAV1MatrixCoefficients = 9; +pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_CL: + StdVideoAV1MatrixCoefficients = 10; +pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_2085: + StdVideoAV1MatrixCoefficients = 11; +pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_NCL: + StdVideoAV1MatrixCoefficients = 12; +pub const StdVideoAV1MatrixCoefficients_STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_CL: + StdVideoAV1MatrixCoefficients = 13; +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 const StdVideoAV1ChromaSamplePosition_STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN: + StdVideoAV1ChromaSamplePosition = 0; +pub const StdVideoAV1ChromaSamplePosition_STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL: + StdVideoAV1ChromaSamplePosition = 1; +pub const StdVideoAV1ChromaSamplePosition_STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_COLOCATED: + StdVideoAV1ChromaSamplePosition = 2; +pub const StdVideoAV1ChromaSamplePosition_STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_RESERVED: + StdVideoAV1ChromaSamplePosition = 3; +pub const StdVideoAV1ChromaSamplePosition_STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID: + StdVideoAV1ChromaSamplePosition = 2147483647; +pub type StdVideoAV1ChromaSamplePosition = ::core::ffi::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoAV1ColorConfigFlags { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout_StdVideoAV1ColorConfigFlags() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(StdVideoAV1ColorConfigFlags)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(StdVideoAV1ColorConfigFlags)) + ); +} +impl StdVideoAV1ColorConfigFlags { + #[inline] + pub fn mono_chrome(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_mono_chrome(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn color_range(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_color_range(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn separate_uv_delta_q(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_separate_uv_delta_q(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn color_description_present_flag(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } } #[inline] - pub fn set_update_grain(&mut self, val: u32) { + pub fn set_color_description_present_flag(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(3usize, 1u8, val as u64) @@ -7986,30 +7802,29 @@ impl StdVideoAV1FilmGrainFlags { } #[inline] pub fn new_bitfield_1( - chroma_scaling_from_luma: u32, - overlap_flag: u32, - clip_to_restricted_range: u32, - update_grain: u32, + mono_chrome: u32, + color_range: u32, + separate_uv_delta_q: u32, + color_description_present_flag: u32, reserved: u32, ) -> __BindgenBitfieldUnit<[u8; 4usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); __bindgen_bitfield_unit.set(0usize, 1u8, { - let chroma_scaling_from_luma: u32 = - unsafe { ::core::mem::transmute(chroma_scaling_from_luma) }; - chroma_scaling_from_luma as u64 + let mono_chrome: u32 = unsafe { ::core::mem::transmute(mono_chrome) }; + mono_chrome as u64 }); __bindgen_bitfield_unit.set(1usize, 1u8, { - let overlap_flag: u32 = unsafe { ::core::mem::transmute(overlap_flag) }; - overlap_flag as u64 + let color_range: u32 = unsafe { ::core::mem::transmute(color_range) }; + color_range as u64 }); __bindgen_bitfield_unit.set(2usize, 1u8, { - let clip_to_restricted_range: u32 = - unsafe { ::core::mem::transmute(clip_to_restricted_range) }; - clip_to_restricted_range as u64 + let separate_uv_delta_q: u32 = unsafe { ::core::mem::transmute(separate_uv_delta_q) }; + separate_uv_delta_q as u64 }); __bindgen_bitfield_unit.set(3usize, 1u8, { - let update_grain: u32 = unsafe { ::core::mem::transmute(update_grain) }; - update_grain as u64 + let color_description_present_flag: u32 = + unsafe { ::core::mem::transmute(color_description_present_flag) }; + color_description_present_flag as u64 }); __bindgen_bitfield_unit.set(4usize, 28u8, { let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; @@ -8020,1352 +7835,3490 @@ impl StdVideoAV1FilmGrainFlags { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoAV1FilmGrain { - pub flags: StdVideoAV1FilmGrainFlags, - pub grain_scaling_minus_8: u8, - pub ar_coeff_lag: u8, - pub ar_coeff_shift_minus_6: u8, - pub grain_scale_shift: u8, - pub grain_seed: u16, - pub film_grain_params_ref_idx: u8, - pub num_y_points: u8, - pub point_y_value: [u8; 14usize], - pub point_y_scaling: [u8; 14usize], - pub num_cb_points: u8, - pub point_cb_value: [u8; 10usize], - pub point_cb_scaling: [u8; 10usize], - pub num_cr_points: u8, - pub point_cr_value: [u8; 10usize], - pub point_cr_scaling: [u8; 10usize], - pub ar_coeffs_y_plus_128: [i8; 24usize], - pub ar_coeffs_cb_plus_128: [i8; 25usize], - pub ar_coeffs_cr_plus_128: [i8; 25usize], - pub cb_mult: u8, - pub cb_luma_mult: u8, - pub cb_offset: u16, - pub cr_mult: u8, - pub cr_luma_mult: u8, - pub cr_offset: u16, +pub struct StdVideoAV1ColorConfig { + pub flags: StdVideoAV1ColorConfigFlags, + pub BitDepth: u8, + pub subsampling_x: u8, + pub subsampling_y: u8, + pub reserved1: u8, + pub color_primaries: StdVideoAV1ColorPrimaries, + pub transfer_characteristics: StdVideoAV1TransferCharacteristics, + pub matrix_coefficients: StdVideoAV1MatrixCoefficients, + pub chroma_sample_position: StdVideoAV1ChromaSamplePosition, } #[test] -fn bindgen_test_layout_StdVideoAV1FilmGrain() { - const UNINIT: ::core::mem::MaybeUninit = +fn bindgen_test_layout_StdVideoAV1ColorConfig() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), - 164usize, - concat!("Size of: ", stringify!(StdVideoAV1FilmGrain)) + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(StdVideoAV1ColorConfig)) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 4usize, - concat!("Alignment of ", stringify!(StdVideoAV1FilmGrain)) + concat!("Alignment of ", stringify!(StdVideoAV1ColorConfig)) ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1ColorConfig), "::", stringify!(flags) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).grain_scaling_minus_8) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).BitDepth) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1ColorConfig), "::", - stringify!(grain_scaling_minus_8) + stringify!(BitDepth) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ar_coeff_lag) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).subsampling_x) as usize - ptr as usize }, 5usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1ColorConfig), "::", - stringify!(ar_coeff_lag) + stringify!(subsampling_x) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ar_coeff_shift_minus_6) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).subsampling_y) as usize - ptr as usize }, 6usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1ColorConfig), "::", - stringify!(ar_coeff_shift_minus_6) + stringify!(subsampling_y) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).grain_scale_shift) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, 7usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1ColorConfig), "::", - stringify!(grain_scale_shift) + stringify!(reserved1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).grain_seed) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).color_primaries) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1ColorConfig), "::", - stringify!(grain_seed) + stringify!(color_primaries) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).film_grain_params_ref_idx) as usize - ptr as usize }, - 10usize, + unsafe { ::core::ptr::addr_of!((*ptr).transfer_characteristics) as usize - ptr as usize }, + 12usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1ColorConfig), "::", - stringify!(film_grain_params_ref_idx) + stringify!(transfer_characteristics) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).num_y_points) as usize - ptr as usize }, - 11usize, + unsafe { ::core::ptr::addr_of!((*ptr).matrix_coefficients) as usize - ptr as usize }, + 16usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1ColorConfig), "::", - stringify!(num_y_points) + stringify!(matrix_coefficients) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).point_y_value) as usize - ptr as usize }, - 12usize, + unsafe { ::core::ptr::addr_of!((*ptr).chroma_sample_position) as usize - ptr as usize }, + 20usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1ColorConfig), "::", - stringify!(point_y_value) + stringify!(chroma_sample_position) ) ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoAV1TimingInfoFlags { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout_StdVideoAV1TimingInfoFlags() { assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).point_y_scaling) as usize - ptr as usize }, - 26usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), - "::", - stringify!(point_y_scaling) - ) + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(StdVideoAV1TimingInfoFlags)) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).num_cb_points) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), - "::", - stringify!(num_cb_points) - ) + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(StdVideoAV1TimingInfoFlags)) ); +} +impl StdVideoAV1TimingInfoFlags { + #[inline] + pub fn equal_picture_interval(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_equal_picture_interval(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn reserved(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) } + } + #[inline] + pub fn set_reserved(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 31u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + equal_picture_interval: u32, + reserved: u32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let equal_picture_interval: u32 = + unsafe { ::core::mem::transmute(equal_picture_interval) }; + equal_picture_interval as u64 + }); + __bindgen_bitfield_unit.set(1usize, 31u8, { + let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoAV1TimingInfo { + pub flags: StdVideoAV1TimingInfoFlags, + pub num_units_in_display_tick: u32, + pub time_scale: u32, + pub num_ticks_per_picture_minus_1: u32, +} +#[test] +fn bindgen_test_layout_StdVideoAV1TimingInfo() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).point_cb_value) as usize - ptr as usize }, - 41usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), - "::", - stringify!(point_cb_value) - ) + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(StdVideoAV1TimingInfo)) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).point_cb_scaling) as usize - ptr as usize }, - 51usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), - "::", - stringify!(point_cb_scaling) - ) + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(StdVideoAV1TimingInfo)) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).num_cr_points) as usize - ptr as usize }, - 61usize, + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 0usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1TimingInfo), "::", - stringify!(num_cr_points) + stringify!(flags) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).point_cr_value) as usize - ptr as usize }, - 62usize, + unsafe { ::core::ptr::addr_of!((*ptr).num_units_in_display_tick) as usize - ptr as usize }, + 4usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1TimingInfo), "::", - stringify!(point_cr_value) + stringify!(num_units_in_display_tick) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).point_cr_scaling) as usize - ptr as usize }, - 72usize, + unsafe { ::core::ptr::addr_of!((*ptr).time_scale) as usize - ptr as usize }, + 8usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1TimingInfo), "::", - stringify!(point_cr_scaling) + stringify!(time_scale) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ar_coeffs_y_plus_128) as usize - ptr as usize }, - 82usize, + unsafe { + ::core::ptr::addr_of!((*ptr).num_ticks_per_picture_minus_1) as usize - ptr as usize + }, + 12usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1TimingInfo), "::", - stringify!(ar_coeffs_y_plus_128) + stringify!(num_ticks_per_picture_minus_1) ) ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ar_coeffs_cb_plus_128) as usize - ptr as usize }, - 106usize, - concat!( - "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), - "::", - stringify!(ar_coeffs_cb_plus_128) - ) +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoAV1LoopFilterFlags { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout_StdVideoAV1LoopFilterFlags() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(StdVideoAV1LoopFilterFlags)) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ar_coeffs_cr_plus_128) as usize - ptr as usize }, - 131usize, + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(StdVideoAV1LoopFilterFlags)) + ); +} +impl StdVideoAV1LoopFilterFlags { + #[inline] + pub fn loop_filter_delta_enabled(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_loop_filter_delta_enabled(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn loop_filter_delta_update(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_loop_filter_delta_update(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn reserved(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } + } + #[inline] + pub fn set_reserved(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 30u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + loop_filter_delta_enabled: u32, + loop_filter_delta_update: u32, + reserved: u32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let loop_filter_delta_enabled: u32 = + unsafe { ::core::mem::transmute(loop_filter_delta_enabled) }; + loop_filter_delta_enabled as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let loop_filter_delta_update: u32 = + unsafe { ::core::mem::transmute(loop_filter_delta_update) }; + loop_filter_delta_update as u64 + }); + __bindgen_bitfield_unit.set(2usize, 30u8, { + let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoAV1LoopFilter { + pub flags: StdVideoAV1LoopFilterFlags, + pub loop_filter_level: [u8; 4usize], + pub loop_filter_sharpness: u8, + pub update_ref_delta: u8, + pub loop_filter_ref_deltas: [i8; 8usize], + pub update_mode_delta: u8, + pub loop_filter_mode_deltas: [i8; 2usize], +} +#[test] +fn bindgen_test_layout_StdVideoAV1LoopFilter() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(StdVideoAV1LoopFilter)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(StdVideoAV1LoopFilter)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 0usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1LoopFilter), "::", - stringify!(ar_coeffs_cr_plus_128) + stringify!(flags) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cb_mult) as usize - ptr as usize }, - 156usize, + unsafe { ::core::ptr::addr_of!((*ptr).loop_filter_level) as usize - ptr as usize }, + 4usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1LoopFilter), "::", - stringify!(cb_mult) + stringify!(loop_filter_level) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cb_luma_mult) as usize - ptr as usize }, - 157usize, + unsafe { ::core::ptr::addr_of!((*ptr).loop_filter_sharpness) as usize - ptr as usize }, + 8usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1LoopFilter), "::", - stringify!(cb_luma_mult) + stringify!(loop_filter_sharpness) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cb_offset) as usize - ptr as usize }, - 158usize, + unsafe { ::core::ptr::addr_of!((*ptr).update_ref_delta) as usize - ptr as usize }, + 9usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1LoopFilter), "::", - stringify!(cb_offset) + stringify!(update_ref_delta) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cr_mult) as usize - ptr as usize }, - 160usize, + unsafe { ::core::ptr::addr_of!((*ptr).loop_filter_ref_deltas) as usize - ptr as usize }, + 10usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1LoopFilter), "::", - stringify!(cr_mult) + stringify!(loop_filter_ref_deltas) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cr_luma_mult) as usize - ptr as usize }, - 161usize, + unsafe { ::core::ptr::addr_of!((*ptr).update_mode_delta) as usize - ptr as usize }, + 18usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1LoopFilter), "::", - stringify!(cr_luma_mult) + stringify!(update_mode_delta) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cr_offset) as usize - ptr as usize }, - 162usize, + unsafe { ::core::ptr::addr_of!((*ptr).loop_filter_mode_deltas) as usize - ptr as usize }, + 19usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1FilmGrain), + stringify!(StdVideoAV1LoopFilter), "::", - stringify!(cr_offset) + stringify!(loop_filter_mode_deltas) ) ); } #[repr(C)] -#[repr(align(4))] #[derive(Debug, Copy, Clone)] -pub struct StdVideoAV1SequenceHeaderFlags { - pub _bitfield_align_1: [u16; 0], +pub struct StdVideoAV1QuantizationFlags { + pub _bitfield_align_1: [u32; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, } #[test] -fn bindgen_test_layout_StdVideoAV1SequenceHeaderFlags() { +fn bindgen_test_layout_StdVideoAV1QuantizationFlags() { assert_eq!( - ::core::mem::size_of::(), + ::core::mem::size_of::(), 4usize, - concat!("Size of: ", stringify!(StdVideoAV1SequenceHeaderFlags)) + concat!("Size of: ", stringify!(StdVideoAV1QuantizationFlags)) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 4usize, - concat!("Alignment of ", stringify!(StdVideoAV1SequenceHeaderFlags)) + concat!("Alignment of ", stringify!(StdVideoAV1QuantizationFlags)) ); } -impl StdVideoAV1SequenceHeaderFlags { +impl StdVideoAV1QuantizationFlags { #[inline] - pub fn still_picture(&self) -> u32 { + pub fn using_qmatrix(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } } #[inline] - pub fn set_still_picture(&mut self, val: u32) { + pub fn set_using_qmatrix(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn reduced_still_picture_header(&self) -> u32 { + pub fn diff_uv_delta(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } } #[inline] - pub fn set_reduced_still_picture_header(&mut self, val: u32) { + pub fn set_diff_uv_delta(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(1usize, 1u8, val as u64) } } #[inline] - pub fn use_128x128_superblock(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - #[inline] - pub fn set_use_128x128_superblock(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn enable_filter_intra(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - #[inline] - pub fn set_enable_filter_intra(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn enable_intra_edge_filter(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - #[inline] - pub fn set_enable_intra_edge_filter(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - #[inline] - pub fn enable_interintra_compound(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + pub fn reserved(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } } #[inline] - pub fn set_enable_interintra_compound(&mut self, val: u32) { + pub fn set_reserved(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) + self._bitfield_1.set(2usize, 30u8, val as u64) } } #[inline] - pub fn enable_masked_compound(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_enable_masked_compound(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn enable_warped_motion(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_enable_warped_motion(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn enable_dual_filter(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } - } - #[inline] - pub fn set_enable_dual_filter(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } + pub fn new_bitfield_1( + using_qmatrix: u32, + diff_uv_delta: u32, + reserved: u32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let using_qmatrix: u32 = unsafe { ::core::mem::transmute(using_qmatrix) }; + using_qmatrix as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let diff_uv_delta: u32 = unsafe { ::core::mem::transmute(diff_uv_delta) }; + diff_uv_delta as u64 + }); + __bindgen_bitfield_unit.set(2usize, 30u8, { + let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoAV1Quantization { + pub flags: StdVideoAV1QuantizationFlags, + pub base_q_idx: u8, + pub DeltaQYDc: i8, + pub DeltaQUDc: i8, + pub DeltaQUAc: i8, + pub DeltaQVDc: i8, + pub DeltaQVAc: i8, + pub qm_y: u8, + pub qm_u: u8, + pub qm_v: u8, +} +#[test] +fn bindgen_test_layout_StdVideoAV1Quantization() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(StdVideoAV1Quantization)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(StdVideoAV1Quantization)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1Quantization), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).base_q_idx) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1Quantization), + "::", + stringify!(base_q_idx) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).DeltaQYDc) as usize - ptr as usize }, + 5usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1Quantization), + "::", + stringify!(DeltaQYDc) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).DeltaQUDc) as usize - ptr as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1Quantization), + "::", + stringify!(DeltaQUDc) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).DeltaQUAc) as usize - ptr as usize }, + 7usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1Quantization), + "::", + stringify!(DeltaQUAc) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).DeltaQVDc) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1Quantization), + "::", + stringify!(DeltaQVDc) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).DeltaQVAc) as usize - ptr as usize }, + 9usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1Quantization), + "::", + stringify!(DeltaQVAc) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).qm_y) as usize - ptr as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1Quantization), + "::", + stringify!(qm_y) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).qm_u) as usize - ptr as usize }, + 11usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1Quantization), + "::", + stringify!(qm_u) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).qm_v) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1Quantization), + "::", + stringify!(qm_v) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoAV1Segmentation { + pub FeatureEnabled: [u8; 8usize], + pub FeatureData: [[i16; 8usize]; 8usize], +} +#[test] +fn bindgen_test_layout_StdVideoAV1Segmentation() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 136usize, + concat!("Size of: ", stringify!(StdVideoAV1Segmentation)) + ); + assert_eq!( + ::core::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(StdVideoAV1Segmentation)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).FeatureEnabled) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1Segmentation), + "::", + stringify!(FeatureEnabled) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).FeatureData) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1Segmentation), + "::", + stringify!(FeatureData) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoAV1TileInfoFlags { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout_StdVideoAV1TileInfoFlags() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(StdVideoAV1TileInfoFlags)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(StdVideoAV1TileInfoFlags)) + ); +} +impl StdVideoAV1TileInfoFlags { #[inline] - pub fn enable_order_hint(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } + pub fn uniform_tile_spacing_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } } #[inline] - pub fn set_enable_order_hint(&mut self, val: u32) { + pub fn set_uniform_tile_spacing_flag(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) + self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn enable_jnt_comp(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) } + pub fn reserved(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) } } #[inline] - pub fn set_enable_jnt_comp(&mut self, val: u32) { + pub fn set_reserved(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(10usize, 1u8, val as u64) + self._bitfield_1.set(1usize, 31u8, val as u64) } } #[inline] - pub fn enable_ref_frame_mvs(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } - } - #[inline] - pub fn set_enable_ref_frame_mvs(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn frame_id_numbers_present_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) } - } - #[inline] - pub fn set_frame_id_numbers_present_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(12usize, 1u8, val as u64) - } - } - #[inline] - pub fn enable_superres(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) } - } - #[inline] - pub fn set_enable_superres(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(13usize, 1u8, val as u64) - } - } - #[inline] - pub fn enable_cdef(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) } - } - #[inline] - pub fn set_enable_cdef(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(14usize, 1u8, val as u64) - } - } - #[inline] - pub fn enable_restoration(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) } - } - #[inline] - pub fn set_enable_restoration(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(15usize, 1u8, val as u64) - } - } - #[inline] - pub fn film_grain_params_present(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) } - } - #[inline] - pub fn set_film_grain_params_present(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(16usize, 1u8, val as u64) - } - } - #[inline] - pub fn timing_info_present_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) } - } - #[inline] - pub fn set_timing_info_present_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(17usize, 1u8, val as u64) - } - } - #[inline] - pub fn initial_display_delay_present_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) } - } - #[inline] - pub fn set_initial_display_delay_present_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(18usize, 1u8, val as u64) - } - } - #[inline] - pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 13u8) as u32) } - } - #[inline] - pub fn set_reserved(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(19usize, 13u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - still_picture: u32, - reduced_still_picture_header: u32, - use_128x128_superblock: u32, - enable_filter_intra: u32, - enable_intra_edge_filter: u32, - enable_interintra_compound: u32, - enable_masked_compound: u32, - enable_warped_motion: u32, - enable_dual_filter: u32, - enable_order_hint: u32, - enable_jnt_comp: u32, - enable_ref_frame_mvs: u32, - frame_id_numbers_present_flag: u32, - enable_superres: u32, - enable_cdef: u32, - enable_restoration: u32, - film_grain_params_present: u32, - timing_info_present_flag: u32, - initial_display_delay_present_flag: u32, - reserved: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let still_picture: u32 = unsafe { ::core::mem::transmute(still_picture) }; - still_picture as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let reduced_still_picture_header: u32 = - unsafe { ::core::mem::transmute(reduced_still_picture_header) }; - reduced_still_picture_header as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let use_128x128_superblock: u32 = - unsafe { ::core::mem::transmute(use_128x128_superblock) }; - use_128x128_superblock as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let enable_filter_intra: u32 = unsafe { ::core::mem::transmute(enable_filter_intra) }; - enable_filter_intra as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let enable_intra_edge_filter: u32 = - unsafe { ::core::mem::transmute(enable_intra_edge_filter) }; - enable_intra_edge_filter as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let enable_interintra_compound: u32 = - unsafe { ::core::mem::transmute(enable_interintra_compound) }; - enable_interintra_compound as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let enable_masked_compound: u32 = - unsafe { ::core::mem::transmute(enable_masked_compound) }; - enable_masked_compound as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let enable_warped_motion: u32 = unsafe { ::core::mem::transmute(enable_warped_motion) }; - enable_warped_motion as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let enable_dual_filter: u32 = unsafe { ::core::mem::transmute(enable_dual_filter) }; - enable_dual_filter as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let enable_order_hint: u32 = unsafe { ::core::mem::transmute(enable_order_hint) }; - enable_order_hint as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let enable_jnt_comp: u32 = unsafe { ::core::mem::transmute(enable_jnt_comp) }; - enable_jnt_comp as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let enable_ref_frame_mvs: u32 = unsafe { ::core::mem::transmute(enable_ref_frame_mvs) }; - enable_ref_frame_mvs as u64 - }); - __bindgen_bitfield_unit.set(12usize, 1u8, { - let frame_id_numbers_present_flag: u32 = - unsafe { ::core::mem::transmute(frame_id_numbers_present_flag) }; - frame_id_numbers_present_flag as u64 - }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let enable_superres: u32 = unsafe { ::core::mem::transmute(enable_superres) }; - enable_superres as u64 - }); - __bindgen_bitfield_unit.set(14usize, 1u8, { - let enable_cdef: u32 = unsafe { ::core::mem::transmute(enable_cdef) }; - enable_cdef as u64 - }); - __bindgen_bitfield_unit.set(15usize, 1u8, { - let enable_restoration: u32 = unsafe { ::core::mem::transmute(enable_restoration) }; - enable_restoration as u64 - }); - __bindgen_bitfield_unit.set(16usize, 1u8, { - let film_grain_params_present: u32 = - unsafe { ::core::mem::transmute(film_grain_params_present) }; - film_grain_params_present as u64 - }); - __bindgen_bitfield_unit.set(17usize, 1u8, { - let timing_info_present_flag: u32 = - unsafe { ::core::mem::transmute(timing_info_present_flag) }; - timing_info_present_flag as u64 - }); - __bindgen_bitfield_unit.set(18usize, 1u8, { - let initial_display_delay_present_flag: u32 = - unsafe { ::core::mem::transmute(initial_display_delay_present_flag) }; - initial_display_delay_present_flag as u64 - }); - __bindgen_bitfield_unit.set(19usize, 13u8, { - let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; - reserved as u64 - }); - __bindgen_bitfield_unit + pub fn new_bitfield_1( + uniform_tile_spacing_flag: u32, + reserved: u32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let uniform_tile_spacing_flag: u32 = + unsafe { ::core::mem::transmute(uniform_tile_spacing_flag) }; + uniform_tile_spacing_flag as u64 + }); + __bindgen_bitfield_unit.set(1usize, 31u8, { + let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit } } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoAV1SequenceHeader { - pub flags: StdVideoAV1SequenceHeaderFlags, - pub seq_profile: StdVideoAV1Profile, - pub frame_width_bits_minus_1: u8, - pub frame_height_bits_minus_1: u8, - pub max_frame_width_minus_1: u16, - pub max_frame_height_minus_1: u16, - pub delta_frame_id_length_minus_2: u8, - pub additional_frame_id_length_minus_1: u8, - pub order_hint_bits_minus_1: u8, - pub seq_force_integer_mv: u8, - pub seq_force_screen_content_tools: u8, - pub reserved1: [u8; 5usize], - pub pColorConfig: *const StdVideoAV1ColorConfig, - pub pTimingInfo: *const StdVideoAV1TimingInfo, +pub struct StdVideoAV1TileInfo { + pub flags: StdVideoAV1TileInfoFlags, + pub TileCols: u8, + pub TileRows: u8, + pub context_update_tile_id: u16, + pub tile_size_bytes_minus_1: u8, + pub reserved1: [u8; 7usize], + pub pMiColStarts: *const u16, + pub pMiRowStarts: *const u16, + pub pWidthInSbsMinus1: *const u16, + pub pHeightInSbsMinus1: *const u16, } #[test] -fn bindgen_test_layout_StdVideoAV1SequenceHeader() { - const UNINIT: ::core::mem::MaybeUninit = +fn bindgen_test_layout_StdVideoAV1TileInfo() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(StdVideoAV1SequenceHeader)) + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(StdVideoAV1TileInfo)) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 8usize, - concat!("Alignment of ", stringify!(StdVideoAV1SequenceHeader)) + concat!("Alignment of ", stringify!(StdVideoAV1TileInfo)) ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1SequenceHeader), + stringify!(StdVideoAV1TileInfo), "::", stringify!(flags) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).seq_profile) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).TileCols) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1SequenceHeader), + stringify!(StdVideoAV1TileInfo), "::", - stringify!(seq_profile) + stringify!(TileCols) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frame_width_bits_minus_1) as usize - ptr as usize }, - 8usize, - concat!( + unsafe { ::core::ptr::addr_of!((*ptr).TileRows) as usize - ptr as usize }, + 5usize, + concat!( "Offset of field: ", - stringify!(StdVideoAV1SequenceHeader), + stringify!(StdVideoAV1TileInfo), "::", - stringify!(frame_width_bits_minus_1) + stringify!(TileRows) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frame_height_bits_minus_1) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).context_update_tile_id) as usize - ptr as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1TileInfo), + "::", + stringify!(context_update_tile_id) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).tile_size_bytes_minus_1) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1TileInfo), + "::", + stringify!(tile_size_bytes_minus_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, 9usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1SequenceHeader), + stringify!(StdVideoAV1TileInfo), "::", - stringify!(frame_height_bits_minus_1) + stringify!(reserved1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).max_frame_width_minus_1) as usize - ptr as usize }, - 10usize, + unsafe { ::core::ptr::addr_of!((*ptr).pMiColStarts) as usize - ptr as usize }, + 16usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1SequenceHeader), + stringify!(StdVideoAV1TileInfo), "::", - stringify!(max_frame_width_minus_1) + stringify!(pMiColStarts) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).max_frame_height_minus_1) as usize - ptr as usize }, - 12usize, + unsafe { ::core::ptr::addr_of!((*ptr).pMiRowStarts) as usize - ptr as usize }, + 24usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1SequenceHeader), + stringify!(StdVideoAV1TileInfo), "::", - stringify!(max_frame_height_minus_1) + stringify!(pMiRowStarts) ) ); assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).delta_frame_id_length_minus_2) as usize - ptr as usize - }, - 14usize, + unsafe { ::core::ptr::addr_of!((*ptr).pWidthInSbsMinus1) as usize - ptr as usize }, + 32usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1SequenceHeader), + stringify!(StdVideoAV1TileInfo), "::", - stringify!(delta_frame_id_length_minus_2) + stringify!(pWidthInSbsMinus1) ) ); assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).additional_frame_id_length_minus_1) as usize - ptr as usize - }, - 15usize, + unsafe { ::core::ptr::addr_of!((*ptr).pHeightInSbsMinus1) as usize - ptr as usize }, + 40usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1SequenceHeader), + stringify!(StdVideoAV1TileInfo), "::", - stringify!(additional_frame_id_length_minus_1) + stringify!(pHeightInSbsMinus1) ) ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoAV1CDEF { + pub cdef_damping_minus_3: u8, + pub cdef_bits: u8, + pub cdef_y_pri_strength: [u8; 8usize], + pub cdef_y_sec_strength: [u8; 8usize], + pub cdef_uv_pri_strength: [u8; 8usize], + pub cdef_uv_sec_strength: [u8; 8usize], +} +#[test] +fn bindgen_test_layout_StdVideoAV1CDEF() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 34usize, + concat!("Size of: ", stringify!(StdVideoAV1CDEF)) + ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).order_hint_bits_minus_1) as usize - ptr as usize }, - 16usize, + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(StdVideoAV1CDEF)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).cdef_damping_minus_3) as usize - ptr as usize }, + 0usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1SequenceHeader), + stringify!(StdVideoAV1CDEF), "::", - stringify!(order_hint_bits_minus_1) + stringify!(cdef_damping_minus_3) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).seq_force_integer_mv) as usize - ptr as usize }, - 17usize, + unsafe { ::core::ptr::addr_of!((*ptr).cdef_bits) as usize - ptr as usize }, + 1usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1SequenceHeader), + stringify!(StdVideoAV1CDEF), "::", - stringify!(seq_force_integer_mv) + stringify!(cdef_bits) ) ); assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).seq_force_screen_content_tools) as usize - ptr as usize - }, - 18usize, + unsafe { ::core::ptr::addr_of!((*ptr).cdef_y_pri_strength) as usize - ptr as usize }, + 2usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1SequenceHeader), + stringify!(StdVideoAV1CDEF), "::", - stringify!(seq_force_screen_content_tools) + stringify!(cdef_y_pri_strength) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 19usize, + unsafe { ::core::ptr::addr_of!((*ptr).cdef_y_sec_strength) as usize - ptr as usize }, + 10usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1SequenceHeader), + stringify!(StdVideoAV1CDEF), "::", - stringify!(reserved1) + stringify!(cdef_y_sec_strength) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pColorConfig) as usize - ptr as usize }, - 24usize, + unsafe { ::core::ptr::addr_of!((*ptr).cdef_uv_pri_strength) as usize - ptr as usize }, + 18usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1SequenceHeader), + stringify!(StdVideoAV1CDEF), "::", - stringify!(pColorConfig) + stringify!(cdef_uv_pri_strength) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pTimingInfo) as usize - ptr as usize }, - 32usize, + unsafe { ::core::ptr::addr_of!((*ptr).cdef_uv_sec_strength) as usize - ptr as usize }, + 26usize, concat!( "Offset of field: ", - stringify!(StdVideoAV1SequenceHeader), + stringify!(StdVideoAV1CDEF), "::", - stringify!(pTimingInfo) + stringify!(cdef_uv_sec_strength) ) ); } #[repr(C)] -#[repr(align(4))] #[derive(Debug, Copy, Clone)] -pub struct StdVideoDecodeAV1PictureInfoFlags { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +pub struct StdVideoAV1LoopRestoration { + pub FrameRestorationType: [StdVideoAV1FrameRestorationType; 3usize], + pub LoopRestorationSize: [u16; 3usize], } #[test] -fn bindgen_test_layout_StdVideoDecodeAV1PictureInfoFlags() { +fn bindgen_test_layout_StdVideoAV1LoopRestoration() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), + ::core::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(StdVideoAV1LoopRestoration)) + ); + assert_eq!( + ::core::mem::align_of::(), 4usize, - concat!("Size of: ", stringify!(StdVideoDecodeAV1PictureInfoFlags)) + concat!("Alignment of ", stringify!(StdVideoAV1LoopRestoration)) ); assert_eq!( - ::core::mem::align_of::(), + unsafe { ::core::ptr::addr_of!((*ptr).FrameRestorationType) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1LoopRestoration), + "::", + stringify!(FrameRestorationType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).LoopRestorationSize) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1LoopRestoration), + "::", + stringify!(LoopRestorationSize) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoAV1GlobalMotion { + pub GmType: [u8; 8usize], + pub gm_params: [[i32; 6usize]; 8usize], +} +#[test] +fn bindgen_test_layout_StdVideoAV1GlobalMotion() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 200usize, + concat!("Size of: ", stringify!(StdVideoAV1GlobalMotion)) + ); + assert_eq!( + ::core::mem::align_of::(), 4usize, + concat!("Alignment of ", stringify!(StdVideoAV1GlobalMotion)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).GmType) as usize - ptr as usize }, + 0usize, concat!( - "Alignment of ", - stringify!(StdVideoDecodeAV1PictureInfoFlags) + "Offset of field: ", + stringify!(StdVideoAV1GlobalMotion), + "::", + stringify!(GmType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).gm_params) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1GlobalMotion), + "::", + stringify!(gm_params) ) ); } -impl StdVideoDecodeAV1PictureInfoFlags { +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoAV1FilmGrainFlags { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout_StdVideoAV1FilmGrainFlags() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(StdVideoAV1FilmGrainFlags)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(StdVideoAV1FilmGrainFlags)) + ); +} +impl StdVideoAV1FilmGrainFlags { #[inline] - pub fn error_resilient_mode(&self) -> u32 { + pub fn chroma_scaling_from_luma(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } } #[inline] - pub fn set_error_resilient_mode(&mut self, val: u32) { + pub fn set_chroma_scaling_from_luma(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn disable_cdf_update(&self) -> u32 { + pub fn overlap_flag(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } } #[inline] - pub fn set_disable_cdf_update(&mut self, val: u32) { + pub fn set_overlap_flag(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(1usize, 1u8, val as u64) } } #[inline] - pub fn use_superres(&self) -> u32 { + pub fn clip_to_restricted_range(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } } #[inline] - pub fn set_use_superres(&mut self, val: u32) { + pub fn set_clip_to_restricted_range(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(2usize, 1u8, val as u64) } } #[inline] - pub fn render_and_frame_size_different(&self) -> u32 { + pub fn update_grain(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } } #[inline] - pub fn set_render_and_frame_size_different(&mut self, val: u32) { + pub fn set_update_grain(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(3usize, 1u8, val as u64) } } #[inline] - pub fn allow_screen_content_tools(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - #[inline] - pub fn set_allow_screen_content_tools(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - #[inline] - pub fn is_filter_switchable(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_is_filter_switchable(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn force_integer_mv(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_force_integer_mv(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn frame_size_override_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_frame_size_override_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn buffer_removal_time_present_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } - } - #[inline] - pub fn set_buffer_removal_time_present_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn allow_intrabc(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } - } - #[inline] - pub fn set_allow_intrabc(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) - } - } - #[inline] - pub fn frame_refs_short_signaling(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) } - } - #[inline] - pub fn set_frame_refs_short_signaling(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(10usize, 1u8, val as u64) - } - } - #[inline] - pub fn allow_high_precision_mv(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } - } - #[inline] - pub fn set_allow_high_precision_mv(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn is_motion_mode_switchable(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) } - } - #[inline] - pub fn set_is_motion_mode_switchable(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(12usize, 1u8, val as u64) - } - } - #[inline] - pub fn use_ref_frame_mvs(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) } - } - #[inline] - pub fn set_use_ref_frame_mvs(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(13usize, 1u8, val as u64) - } - } - #[inline] - pub fn disable_frame_end_update_cdf(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) } - } - #[inline] - pub fn set_disable_frame_end_update_cdf(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(14usize, 1u8, val as u64) - } - } - #[inline] - pub fn allow_warped_motion(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) } - } - #[inline] - pub fn set_allow_warped_motion(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(15usize, 1u8, val as u64) - } - } - #[inline] - pub fn reduced_tx_set(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) } - } - #[inline] - pub fn set_reduced_tx_set(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(16usize, 1u8, val as u64) - } - } - #[inline] - pub fn reference_select(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) } - } - #[inline] - pub fn set_reference_select(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(17usize, 1u8, val as u64) - } - } - #[inline] - pub fn skip_mode_present(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) } - } - #[inline] - pub fn set_skip_mode_present(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(18usize, 1u8, val as u64) - } - } - #[inline] - pub fn delta_q_present(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) } - } - #[inline] - pub fn set_delta_q_present(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(19usize, 1u8, val as u64) - } - } - #[inline] - pub fn delta_lf_present(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) } - } - #[inline] - pub fn set_delta_lf_present(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(20usize, 1u8, val as u64) - } - } - #[inline] - pub fn delta_lf_multi(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u32) } - } - #[inline] - pub fn set_delta_lf_multi(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(21usize, 1u8, val as u64) - } - } - #[inline] - pub fn segmentation_enabled(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u32) } - } - #[inline] - pub fn set_segmentation_enabled(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(22usize, 1u8, val as u64) - } - } - #[inline] - pub fn segmentation_update_map(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u32) } + pub fn reserved(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 28u8) as u32) } } #[inline] - pub fn set_segmentation_update_map(&mut self, val: u32) { + pub fn set_reserved(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(23usize, 1u8, val as u64) + self._bitfield_1.set(4usize, 28u8, val as u64) } } #[inline] - pub fn segmentation_temporal_update(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 1u8) as u32) } + pub fn new_bitfield_1( + chroma_scaling_from_luma: u32, + overlap_flag: u32, + clip_to_restricted_range: u32, + update_grain: u32, + reserved: u32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let chroma_scaling_from_luma: u32 = + unsafe { ::core::mem::transmute(chroma_scaling_from_luma) }; + chroma_scaling_from_luma as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let overlap_flag: u32 = unsafe { ::core::mem::transmute(overlap_flag) }; + overlap_flag as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let clip_to_restricted_range: u32 = + unsafe { ::core::mem::transmute(clip_to_restricted_range) }; + clip_to_restricted_range as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let update_grain: u32 = unsafe { ::core::mem::transmute(update_grain) }; + update_grain as u64 + }); + __bindgen_bitfield_unit.set(4usize, 28u8, { + let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoAV1FilmGrain { + pub flags: StdVideoAV1FilmGrainFlags, + pub grain_scaling_minus_8: u8, + pub ar_coeff_lag: u8, + pub ar_coeff_shift_minus_6: u8, + pub grain_scale_shift: u8, + pub grain_seed: u16, + pub film_grain_params_ref_idx: u8, + pub num_y_points: u8, + pub point_y_value: [u8; 14usize], + pub point_y_scaling: [u8; 14usize], + pub num_cb_points: u8, + pub point_cb_value: [u8; 10usize], + pub point_cb_scaling: [u8; 10usize], + pub num_cr_points: u8, + pub point_cr_value: [u8; 10usize], + pub point_cr_scaling: [u8; 10usize], + pub ar_coeffs_y_plus_128: [i8; 24usize], + pub ar_coeffs_cb_plus_128: [i8; 25usize], + pub ar_coeffs_cr_plus_128: [i8; 25usize], + pub cb_mult: u8, + pub cb_luma_mult: u8, + pub cb_offset: u16, + pub cr_mult: u8, + pub cr_luma_mult: u8, + pub cr_offset: u16, +} +#[test] +fn bindgen_test_layout_StdVideoAV1FilmGrain() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 164usize, + concat!("Size of: ", stringify!(StdVideoAV1FilmGrain)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(StdVideoAV1FilmGrain)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).grain_scaling_minus_8) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(grain_scaling_minus_8) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).ar_coeff_lag) as usize - ptr as usize }, + 5usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(ar_coeff_lag) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).ar_coeff_shift_minus_6) as usize - ptr as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(ar_coeff_shift_minus_6) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).grain_scale_shift) as usize - ptr as usize }, + 7usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(grain_scale_shift) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).grain_seed) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(grain_seed) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).film_grain_params_ref_idx) as usize - ptr as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(film_grain_params_ref_idx) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).num_y_points) as usize - ptr as usize }, + 11usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(num_y_points) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).point_y_value) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(point_y_value) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).point_y_scaling) as usize - ptr as usize }, + 26usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(point_y_scaling) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).num_cb_points) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(num_cb_points) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).point_cb_value) as usize - ptr as usize }, + 41usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(point_cb_value) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).point_cb_scaling) as usize - ptr as usize }, + 51usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(point_cb_scaling) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).num_cr_points) as usize - ptr as usize }, + 61usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(num_cr_points) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).point_cr_value) as usize - ptr as usize }, + 62usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(point_cr_value) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).point_cr_scaling) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(point_cr_scaling) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).ar_coeffs_y_plus_128) as usize - ptr as usize }, + 82usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(ar_coeffs_y_plus_128) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).ar_coeffs_cb_plus_128) as usize - ptr as usize }, + 106usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(ar_coeffs_cb_plus_128) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).ar_coeffs_cr_plus_128) as usize - ptr as usize }, + 131usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(ar_coeffs_cr_plus_128) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).cb_mult) as usize - ptr as usize }, + 156usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(cb_mult) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).cb_luma_mult) as usize - ptr as usize }, + 157usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(cb_luma_mult) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).cb_offset) as usize - ptr as usize }, + 158usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(cb_offset) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).cr_mult) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(cr_mult) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).cr_luma_mult) as usize - ptr as usize }, + 161usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(cr_luma_mult) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).cr_offset) as usize - ptr as usize }, + 162usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1FilmGrain), + "::", + stringify!(cr_offset) + ) + ); +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoAV1SequenceHeaderFlags { + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout_StdVideoAV1SequenceHeaderFlags() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(StdVideoAV1SequenceHeaderFlags)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(StdVideoAV1SequenceHeaderFlags)) + ); +} +impl StdVideoAV1SequenceHeaderFlags { + #[inline] + pub fn still_picture(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_still_picture(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn reduced_still_picture_header(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_reduced_still_picture_header(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn use_128x128_superblock(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_use_128x128_superblock(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn enable_filter_intra(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_enable_filter_intra(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub fn enable_intra_edge_filter(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_enable_intra_edge_filter(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub fn enable_interintra_compound(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_enable_interintra_compound(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub fn enable_masked_compound(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_enable_masked_compound(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub fn enable_warped_motion(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_enable_warped_motion(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub fn enable_dual_filter(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } + } + #[inline] + pub fn set_enable_dual_filter(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub fn enable_order_hint(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } + } + #[inline] + pub fn set_enable_order_hint(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub fn enable_jnt_comp(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) } + } + #[inline] + pub fn set_enable_jnt_comp(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub fn enable_ref_frame_mvs(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } + } + #[inline] + pub fn set_enable_ref_frame_mvs(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub fn frame_id_numbers_present_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) } + } + #[inline] + pub fn set_frame_id_numbers_present_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(12usize, 1u8, val as u64) + } + } + #[inline] + pub fn enable_superres(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) } + } + #[inline] + pub fn set_enable_superres(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(13usize, 1u8, val as u64) + } + } + #[inline] + pub fn enable_cdef(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) } + } + #[inline] + pub fn set_enable_cdef(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(14usize, 1u8, val as u64) + } + } + #[inline] + pub fn enable_restoration(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) } + } + #[inline] + pub fn set_enable_restoration(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(15usize, 1u8, val as u64) + } + } + #[inline] + pub fn film_grain_params_present(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) } + } + #[inline] + pub fn set_film_grain_params_present(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(16usize, 1u8, val as u64) + } + } + #[inline] + pub fn timing_info_present_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) } + } + #[inline] + pub fn set_timing_info_present_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(17usize, 1u8, val as u64) + } + } + #[inline] + pub fn initial_display_delay_present_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) } + } + #[inline] + pub fn set_initial_display_delay_present_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(18usize, 1u8, val as u64) + } + } + #[inline] + pub fn reserved(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 13u8) as u32) } + } + #[inline] + pub fn set_reserved(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(19usize, 13u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + still_picture: u32, + reduced_still_picture_header: u32, + use_128x128_superblock: u32, + enable_filter_intra: u32, + enable_intra_edge_filter: u32, + enable_interintra_compound: u32, + enable_masked_compound: u32, + enable_warped_motion: u32, + enable_dual_filter: u32, + enable_order_hint: u32, + enable_jnt_comp: u32, + enable_ref_frame_mvs: u32, + frame_id_numbers_present_flag: u32, + enable_superres: u32, + enable_cdef: u32, + enable_restoration: u32, + film_grain_params_present: u32, + timing_info_present_flag: u32, + initial_display_delay_present_flag: u32, + reserved: u32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let still_picture: u32 = unsafe { ::core::mem::transmute(still_picture) }; + still_picture as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let reduced_still_picture_header: u32 = + unsafe { ::core::mem::transmute(reduced_still_picture_header) }; + reduced_still_picture_header as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let use_128x128_superblock: u32 = + unsafe { ::core::mem::transmute(use_128x128_superblock) }; + use_128x128_superblock as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let enable_filter_intra: u32 = unsafe { ::core::mem::transmute(enable_filter_intra) }; + enable_filter_intra as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let enable_intra_edge_filter: u32 = + unsafe { ::core::mem::transmute(enable_intra_edge_filter) }; + enable_intra_edge_filter as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let enable_interintra_compound: u32 = + unsafe { ::core::mem::transmute(enable_interintra_compound) }; + enable_interintra_compound as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let enable_masked_compound: u32 = + unsafe { ::core::mem::transmute(enable_masked_compound) }; + enable_masked_compound as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let enable_warped_motion: u32 = unsafe { ::core::mem::transmute(enable_warped_motion) }; + enable_warped_motion as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let enable_dual_filter: u32 = unsafe { ::core::mem::transmute(enable_dual_filter) }; + enable_dual_filter as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let enable_order_hint: u32 = unsafe { ::core::mem::transmute(enable_order_hint) }; + enable_order_hint as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let enable_jnt_comp: u32 = unsafe { ::core::mem::transmute(enable_jnt_comp) }; + enable_jnt_comp as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let enable_ref_frame_mvs: u32 = unsafe { ::core::mem::transmute(enable_ref_frame_mvs) }; + enable_ref_frame_mvs as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let frame_id_numbers_present_flag: u32 = + unsafe { ::core::mem::transmute(frame_id_numbers_present_flag) }; + frame_id_numbers_present_flag as u64 + }); + __bindgen_bitfield_unit.set(13usize, 1u8, { + let enable_superres: u32 = unsafe { ::core::mem::transmute(enable_superres) }; + enable_superres as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let enable_cdef: u32 = unsafe { ::core::mem::transmute(enable_cdef) }; + enable_cdef as u64 + }); + __bindgen_bitfield_unit.set(15usize, 1u8, { + let enable_restoration: u32 = unsafe { ::core::mem::transmute(enable_restoration) }; + enable_restoration as u64 + }); + __bindgen_bitfield_unit.set(16usize, 1u8, { + let film_grain_params_present: u32 = + unsafe { ::core::mem::transmute(film_grain_params_present) }; + film_grain_params_present as u64 + }); + __bindgen_bitfield_unit.set(17usize, 1u8, { + let timing_info_present_flag: u32 = + unsafe { ::core::mem::transmute(timing_info_present_flag) }; + timing_info_present_flag as u64 + }); + __bindgen_bitfield_unit.set(18usize, 1u8, { + let initial_display_delay_present_flag: u32 = + unsafe { ::core::mem::transmute(initial_display_delay_present_flag) }; + initial_display_delay_present_flag as u64 + }); + __bindgen_bitfield_unit.set(19usize, 13u8, { + let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoAV1SequenceHeader { + pub flags: StdVideoAV1SequenceHeaderFlags, + pub seq_profile: StdVideoAV1Profile, + pub frame_width_bits_minus_1: u8, + pub frame_height_bits_minus_1: u8, + pub max_frame_width_minus_1: u16, + pub max_frame_height_minus_1: u16, + pub delta_frame_id_length_minus_2: u8, + pub additional_frame_id_length_minus_1: u8, + pub order_hint_bits_minus_1: u8, + pub seq_force_integer_mv: u8, + pub seq_force_screen_content_tools: u8, + pub reserved1: [u8; 5usize], + pub pColorConfig: *const StdVideoAV1ColorConfig, + pub pTimingInfo: *const StdVideoAV1TimingInfo, +} +#[test] +fn bindgen_test_layout_StdVideoAV1SequenceHeader() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(StdVideoAV1SequenceHeader)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(StdVideoAV1SequenceHeader)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1SequenceHeader), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).seq_profile) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1SequenceHeader), + "::", + stringify!(seq_profile) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).frame_width_bits_minus_1) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1SequenceHeader), + "::", + stringify!(frame_width_bits_minus_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).frame_height_bits_minus_1) as usize - ptr as usize }, + 9usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1SequenceHeader), + "::", + stringify!(frame_height_bits_minus_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).max_frame_width_minus_1) as usize - ptr as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1SequenceHeader), + "::", + stringify!(max_frame_width_minus_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).max_frame_height_minus_1) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1SequenceHeader), + "::", + stringify!(max_frame_height_minus_1) + ) + ); + assert_eq!( + unsafe { + ::core::ptr::addr_of!((*ptr).delta_frame_id_length_minus_2) as usize - ptr as usize + }, + 14usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1SequenceHeader), + "::", + stringify!(delta_frame_id_length_minus_2) + ) + ); + assert_eq!( + unsafe { + ::core::ptr::addr_of!((*ptr).additional_frame_id_length_minus_1) as usize - ptr as usize + }, + 15usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1SequenceHeader), + "::", + stringify!(additional_frame_id_length_minus_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).order_hint_bits_minus_1) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1SequenceHeader), + "::", + stringify!(order_hint_bits_minus_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).seq_force_integer_mv) as usize - ptr as usize }, + 17usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1SequenceHeader), + "::", + stringify!(seq_force_integer_mv) + ) + ); + assert_eq!( + unsafe { + ::core::ptr::addr_of!((*ptr).seq_force_screen_content_tools) as usize - ptr as usize + }, + 18usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1SequenceHeader), + "::", + stringify!(seq_force_screen_content_tools) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, + 19usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1SequenceHeader), + "::", + stringify!(reserved1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pColorConfig) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1SequenceHeader), + "::", + stringify!(pColorConfig) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pTimingInfo) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(StdVideoAV1SequenceHeader), + "::", + stringify!(pTimingInfo) + ) + ); +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoDecodeAV1PictureInfoFlags { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout_StdVideoDecodeAV1PictureInfoFlags() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(StdVideoDecodeAV1PictureInfoFlags)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(StdVideoDecodeAV1PictureInfoFlags) + ) + ); +} +impl StdVideoDecodeAV1PictureInfoFlags { + #[inline] + pub fn error_resilient_mode(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_error_resilient_mode(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn disable_cdf_update(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_disable_cdf_update(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn use_superres(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_use_superres(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn render_and_frame_size_different(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_render_and_frame_size_different(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub fn allow_screen_content_tools(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_allow_screen_content_tools(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub fn is_filter_switchable(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_filter_switchable(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub fn force_integer_mv(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_force_integer_mv(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub fn frame_size_override_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_frame_size_override_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub fn buffer_removal_time_present_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } + } + #[inline] + pub fn set_buffer_removal_time_present_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub fn allow_intrabc(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } + } + #[inline] + pub fn set_allow_intrabc(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub fn frame_refs_short_signaling(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) } + } + #[inline] + pub fn set_frame_refs_short_signaling(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub fn allow_high_precision_mv(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } + } + #[inline] + pub fn set_allow_high_precision_mv(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub fn is_motion_mode_switchable(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_motion_mode_switchable(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(12usize, 1u8, val as u64) + } + } + #[inline] + pub fn use_ref_frame_mvs(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) } + } + #[inline] + pub fn set_use_ref_frame_mvs(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(13usize, 1u8, val as u64) + } + } + #[inline] + pub fn disable_frame_end_update_cdf(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) } + } + #[inline] + pub fn set_disable_frame_end_update_cdf(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(14usize, 1u8, val as u64) + } + } + #[inline] + pub fn allow_warped_motion(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) } + } + #[inline] + pub fn set_allow_warped_motion(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(15usize, 1u8, val as u64) + } + } + #[inline] + pub fn reduced_tx_set(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) } + } + #[inline] + pub fn set_reduced_tx_set(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(16usize, 1u8, val as u64) + } + } + #[inline] + pub fn reference_select(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) } + } + #[inline] + pub fn set_reference_select(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(17usize, 1u8, val as u64) + } + } + #[inline] + pub fn skip_mode_present(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) } + } + #[inline] + pub fn set_skip_mode_present(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(18usize, 1u8, val as u64) + } + } + #[inline] + pub fn delta_q_present(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) } + } + #[inline] + pub fn set_delta_q_present(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(19usize, 1u8, val as u64) + } + } + #[inline] + pub fn delta_lf_present(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) } + } + #[inline] + pub fn set_delta_lf_present(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(20usize, 1u8, val as u64) + } + } + #[inline] + pub fn delta_lf_multi(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u32) } + } + #[inline] + pub fn set_delta_lf_multi(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(21usize, 1u8, val as u64) + } + } + #[inline] + pub fn segmentation_enabled(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u32) } + } + #[inline] + pub fn set_segmentation_enabled(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(22usize, 1u8, val as u64) + } + } + #[inline] + pub fn segmentation_update_map(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u32) } + } + #[inline] + pub fn set_segmentation_update_map(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(23usize, 1u8, val as u64) + } + } + #[inline] + pub fn segmentation_temporal_update(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 1u8) as u32) } + } + #[inline] + pub fn set_segmentation_temporal_update(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(24usize, 1u8, val as u64) + } + } + #[inline] + pub fn segmentation_update_data(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(25usize, 1u8) as u32) } + } + #[inline] + pub fn set_segmentation_update_data(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(25usize, 1u8, val as u64) + } + } + #[inline] + pub fn UsesLr(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(26usize, 1u8) as u32) } + } + #[inline] + pub fn set_UsesLr(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(26usize, 1u8, val as u64) + } + } + #[inline] + pub fn usesChromaLr(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(27usize, 1u8) as u32) } + } + #[inline] + pub fn set_usesChromaLr(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(27usize, 1u8, val as u64) + } + } + #[inline] + pub fn apply_grain(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 1u8) as u32) } + } + #[inline] + pub fn set_apply_grain(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(28usize, 1u8, val as u64) + } + } + #[inline] + pub fn reserved(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(29usize, 3u8) as u32) } + } + #[inline] + pub fn set_reserved(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(29usize, 3u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + error_resilient_mode: u32, + disable_cdf_update: u32, + use_superres: u32, + render_and_frame_size_different: u32, + allow_screen_content_tools: u32, + is_filter_switchable: u32, + force_integer_mv: u32, + frame_size_override_flag: u32, + buffer_removal_time_present_flag: u32, + allow_intrabc: u32, + frame_refs_short_signaling: u32, + allow_high_precision_mv: u32, + is_motion_mode_switchable: u32, + use_ref_frame_mvs: u32, + disable_frame_end_update_cdf: u32, + allow_warped_motion: u32, + reduced_tx_set: u32, + reference_select: u32, + skip_mode_present: u32, + delta_q_present: u32, + delta_lf_present: u32, + delta_lf_multi: u32, + segmentation_enabled: u32, + segmentation_update_map: u32, + segmentation_temporal_update: u32, + segmentation_update_data: u32, + UsesLr: u32, + usesChromaLr: u32, + apply_grain: u32, + reserved: u32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let error_resilient_mode: u32 = unsafe { ::core::mem::transmute(error_resilient_mode) }; + error_resilient_mode as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let disable_cdf_update: u32 = unsafe { ::core::mem::transmute(disable_cdf_update) }; + disable_cdf_update as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let use_superres: u32 = unsafe { ::core::mem::transmute(use_superres) }; + use_superres as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let render_and_frame_size_different: u32 = + unsafe { ::core::mem::transmute(render_and_frame_size_different) }; + render_and_frame_size_different as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let allow_screen_content_tools: u32 = + unsafe { ::core::mem::transmute(allow_screen_content_tools) }; + allow_screen_content_tools as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let is_filter_switchable: u32 = unsafe { ::core::mem::transmute(is_filter_switchable) }; + is_filter_switchable as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let force_integer_mv: u32 = unsafe { ::core::mem::transmute(force_integer_mv) }; + force_integer_mv as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let frame_size_override_flag: u32 = + unsafe { ::core::mem::transmute(frame_size_override_flag) }; + frame_size_override_flag as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let buffer_removal_time_present_flag: u32 = + unsafe { ::core::mem::transmute(buffer_removal_time_present_flag) }; + buffer_removal_time_present_flag as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let allow_intrabc: u32 = unsafe { ::core::mem::transmute(allow_intrabc) }; + allow_intrabc as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let frame_refs_short_signaling: u32 = + unsafe { ::core::mem::transmute(frame_refs_short_signaling) }; + frame_refs_short_signaling as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let allow_high_precision_mv: u32 = + unsafe { ::core::mem::transmute(allow_high_precision_mv) }; + allow_high_precision_mv as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let is_motion_mode_switchable: u32 = + unsafe { ::core::mem::transmute(is_motion_mode_switchable) }; + is_motion_mode_switchable as u64 + }); + __bindgen_bitfield_unit.set(13usize, 1u8, { + let use_ref_frame_mvs: u32 = unsafe { ::core::mem::transmute(use_ref_frame_mvs) }; + use_ref_frame_mvs as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let disable_frame_end_update_cdf: u32 = + unsafe { ::core::mem::transmute(disable_frame_end_update_cdf) }; + disable_frame_end_update_cdf as u64 + }); + __bindgen_bitfield_unit.set(15usize, 1u8, { + let allow_warped_motion: u32 = unsafe { ::core::mem::transmute(allow_warped_motion) }; + allow_warped_motion as u64 + }); + __bindgen_bitfield_unit.set(16usize, 1u8, { + let reduced_tx_set: u32 = unsafe { ::core::mem::transmute(reduced_tx_set) }; + reduced_tx_set as u64 + }); + __bindgen_bitfield_unit.set(17usize, 1u8, { + let reference_select: u32 = unsafe { ::core::mem::transmute(reference_select) }; + reference_select as u64 + }); + __bindgen_bitfield_unit.set(18usize, 1u8, { + let skip_mode_present: u32 = unsafe { ::core::mem::transmute(skip_mode_present) }; + skip_mode_present as u64 + }); + __bindgen_bitfield_unit.set(19usize, 1u8, { + let delta_q_present: u32 = unsafe { ::core::mem::transmute(delta_q_present) }; + delta_q_present as u64 + }); + __bindgen_bitfield_unit.set(20usize, 1u8, { + let delta_lf_present: u32 = unsafe { ::core::mem::transmute(delta_lf_present) }; + delta_lf_present as u64 + }); + __bindgen_bitfield_unit.set(21usize, 1u8, { + let delta_lf_multi: u32 = unsafe { ::core::mem::transmute(delta_lf_multi) }; + delta_lf_multi as u64 + }); + __bindgen_bitfield_unit.set(22usize, 1u8, { + let segmentation_enabled: u32 = unsafe { ::core::mem::transmute(segmentation_enabled) }; + segmentation_enabled as u64 + }); + __bindgen_bitfield_unit.set(23usize, 1u8, { + let segmentation_update_map: u32 = + unsafe { ::core::mem::transmute(segmentation_update_map) }; + segmentation_update_map as u64 + }); + __bindgen_bitfield_unit.set(24usize, 1u8, { + let segmentation_temporal_update: u32 = + unsafe { ::core::mem::transmute(segmentation_temporal_update) }; + segmentation_temporal_update as u64 + }); + __bindgen_bitfield_unit.set(25usize, 1u8, { + let segmentation_update_data: u32 = + unsafe { ::core::mem::transmute(segmentation_update_data) }; + segmentation_update_data as u64 + }); + __bindgen_bitfield_unit.set(26usize, 1u8, { + let UsesLr: u32 = unsafe { ::core::mem::transmute(UsesLr) }; + UsesLr as u64 + }); + __bindgen_bitfield_unit.set(27usize, 1u8, { + let usesChromaLr: u32 = unsafe { ::core::mem::transmute(usesChromaLr) }; + usesChromaLr as u64 + }); + __bindgen_bitfield_unit.set(28usize, 1u8, { + let apply_grain: u32 = unsafe { ::core::mem::transmute(apply_grain) }; + apply_grain as u64 + }); + __bindgen_bitfield_unit.set(29usize, 3u8, { + let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoDecodeAV1PictureInfo { + pub flags: StdVideoDecodeAV1PictureInfoFlags, + pub frame_type: StdVideoAV1FrameType, + pub current_frame_id: u32, + pub OrderHint: u8, + pub primary_ref_frame: u8, + pub refresh_frame_flags: u8, + pub reserved1: u8, + pub interpolation_filter: StdVideoAV1InterpolationFilter, + pub TxMode: StdVideoAV1TxMode, + pub delta_q_res: u8, + pub delta_lf_res: u8, + pub SkipModeFrame: [u8; 2usize], + pub coded_denom: u8, + pub reserved2: [u8; 3usize], + pub OrderHints: [u8; 8usize], + pub expectedFrameId: [u32; 8usize], + pub pTileInfo: *const StdVideoAV1TileInfo, + pub pQuantization: *const StdVideoAV1Quantization, + pub pSegmentation: *const StdVideoAV1Segmentation, + pub pLoopFilter: *const StdVideoAV1LoopFilter, + pub pCDEF: *const StdVideoAV1CDEF, + pub pLoopRestoration: *const StdVideoAV1LoopRestoration, + pub pGlobalMotion: *const StdVideoAV1GlobalMotion, + pub pFilmGrain: *const StdVideoAV1FilmGrain, +} +#[test] +fn bindgen_test_layout_StdVideoDecodeAV1PictureInfo() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 136usize, + concat!("Size of: ", stringify!(StdVideoDecodeAV1PictureInfo)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(StdVideoDecodeAV1PictureInfo)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).frame_type) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(frame_type) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).current_frame_id) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(current_frame_id) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).OrderHint) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(OrderHint) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).primary_ref_frame) as usize - ptr as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(primary_ref_frame) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).refresh_frame_flags) as usize - ptr as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(refresh_frame_flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(reserved1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).interpolation_filter) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(interpolation_filter) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).TxMode) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(TxMode) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).delta_q_res) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(delta_q_res) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).delta_lf_res) as usize - ptr as usize }, + 25usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(delta_lf_res) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).SkipModeFrame) as usize - ptr as usize }, + 26usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(SkipModeFrame) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).coded_denom) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(coded_denom) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, + 29usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(reserved2) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).OrderHints) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(OrderHints) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).expectedFrameId) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(expectedFrameId) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pTileInfo) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(pTileInfo) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pQuantization) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(pQuantization) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pSegmentation) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(pSegmentation) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pLoopFilter) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(pLoopFilter) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pCDEF) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(pCDEF) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pLoopRestoration) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(pLoopRestoration) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pGlobalMotion) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(pGlobalMotion) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pFilmGrain) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1PictureInfo), + "::", + stringify!(pFilmGrain) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoDecodeAV1ReferenceInfoFlags { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout_StdVideoDecodeAV1ReferenceInfoFlags() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(StdVideoDecodeAV1ReferenceInfoFlags)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(StdVideoDecodeAV1ReferenceInfoFlags) + ) + ); +} +impl StdVideoDecodeAV1ReferenceInfoFlags { + #[inline] + pub fn disable_frame_end_update_cdf(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_disable_frame_end_update_cdf(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn segmentation_enabled(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_segmentation_enabled(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn reserved(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } + } + #[inline] + pub fn set_reserved(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 30u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + disable_frame_end_update_cdf: u32, + segmentation_enabled: u32, + reserved: u32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let disable_frame_end_update_cdf: u32 = + unsafe { ::core::mem::transmute(disable_frame_end_update_cdf) }; + disable_frame_end_update_cdf as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let segmentation_enabled: u32 = unsafe { ::core::mem::transmute(segmentation_enabled) }; + segmentation_enabled as u64 + }); + __bindgen_bitfield_unit.set(2usize, 30u8, { + let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoDecodeAV1ReferenceInfo { + pub flags: StdVideoDecodeAV1ReferenceInfoFlags, + pub frame_type: u8, + pub RefFrameSignBias: u8, + pub OrderHint: u8, + pub SavedOrderHints: [u8; 8usize], +} +#[test] +fn bindgen_test_layout_StdVideoDecodeAV1ReferenceInfo() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(StdVideoDecodeAV1ReferenceInfo)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(StdVideoDecodeAV1ReferenceInfo)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1ReferenceInfo), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).frame_type) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1ReferenceInfo), + "::", + stringify!(frame_type) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).RefFrameSignBias) as usize - ptr as usize }, + 5usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1ReferenceInfo), + "::", + stringify!(RefFrameSignBias) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).OrderHint) as usize - ptr as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1ReferenceInfo), + "::", + stringify!(OrderHint) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).SavedOrderHints) as usize - ptr as usize }, + 7usize, + concat!( + "Offset of field: ", + stringify!(StdVideoDecodeAV1ReferenceInfo), + "::", + stringify!(SavedOrderHints) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoEncodeH264WeightTableFlags { + pub luma_weight_l0_flag: u32, + pub chroma_weight_l0_flag: u32, + pub luma_weight_l1_flag: u32, + pub chroma_weight_l1_flag: u32, +} +#[test] +fn bindgen_test_layout_StdVideoEncodeH264WeightTableFlags() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(StdVideoEncodeH264WeightTableFlags)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(StdVideoEncodeH264WeightTableFlags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).luma_weight_l0_flag) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264WeightTableFlags), + "::", + stringify!(luma_weight_l0_flag) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).chroma_weight_l0_flag) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264WeightTableFlags), + "::", + stringify!(chroma_weight_l0_flag) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).luma_weight_l1_flag) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264WeightTableFlags), + "::", + stringify!(luma_weight_l1_flag) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).chroma_weight_l1_flag) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264WeightTableFlags), + "::", + stringify!(chroma_weight_l1_flag) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoEncodeH264WeightTable { + pub flags: StdVideoEncodeH264WeightTableFlags, + pub luma_log2_weight_denom: u8, + pub chroma_log2_weight_denom: u8, + pub luma_weight_l0: [i8; 32usize], + pub luma_offset_l0: [i8; 32usize], + pub chroma_weight_l0: [[i8; 2usize]; 32usize], + pub chroma_offset_l0: [[i8; 2usize]; 32usize], + pub luma_weight_l1: [i8; 32usize], + pub luma_offset_l1: [i8; 32usize], + pub chroma_weight_l1: [[i8; 2usize]; 32usize], + pub chroma_offset_l1: [[i8; 2usize]; 32usize], +} +#[test] +fn bindgen_test_layout_StdVideoEncodeH264WeightTable() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 404usize, + concat!("Size of: ", stringify!(StdVideoEncodeH264WeightTable)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(StdVideoEncodeH264WeightTable)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264WeightTable), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).luma_log2_weight_denom) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264WeightTable), + "::", + stringify!(luma_log2_weight_denom) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).chroma_log2_weight_denom) as usize - ptr as usize }, + 17usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264WeightTable), + "::", + stringify!(chroma_log2_weight_denom) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).luma_weight_l0) as usize - ptr as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264WeightTable), + "::", + stringify!(luma_weight_l0) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).luma_offset_l0) as usize - ptr as usize }, + 50usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264WeightTable), + "::", + stringify!(luma_offset_l0) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).chroma_weight_l0) as usize - ptr as usize }, + 82usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264WeightTable), + "::", + stringify!(chroma_weight_l0) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).chroma_offset_l0) as usize - ptr as usize }, + 146usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264WeightTable), + "::", + stringify!(chroma_offset_l0) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).luma_weight_l1) as usize - ptr as usize }, + 210usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264WeightTable), + "::", + stringify!(luma_weight_l1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).luma_offset_l1) as usize - ptr as usize }, + 242usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264WeightTable), + "::", + stringify!(luma_offset_l1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).chroma_weight_l1) as usize - ptr as usize }, + 274usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264WeightTable), + "::", + stringify!(chroma_weight_l1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).chroma_offset_l1) as usize - ptr as usize }, + 338usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264WeightTable), + "::", + stringify!(chroma_offset_l1) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoEncodeH264SliceHeaderFlags { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout_StdVideoEncodeH264SliceHeaderFlags() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(StdVideoEncodeH264SliceHeaderFlags)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(StdVideoEncodeH264SliceHeaderFlags) + ) + ); +} +impl StdVideoEncodeH264SliceHeaderFlags { + #[inline] + pub fn direct_spatial_mv_pred_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_direct_spatial_mv_pred_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn num_ref_idx_active_override_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_num_ref_idx_active_override_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn reserved(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } + } + #[inline] + pub fn set_reserved(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 30u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + direct_spatial_mv_pred_flag: u32, + num_ref_idx_active_override_flag: u32, + reserved: u32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let direct_spatial_mv_pred_flag: u32 = + unsafe { ::core::mem::transmute(direct_spatial_mv_pred_flag) }; + direct_spatial_mv_pred_flag as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let num_ref_idx_active_override_flag: u32 = + unsafe { ::core::mem::transmute(num_ref_idx_active_override_flag) }; + num_ref_idx_active_override_flag as u64 + }); + __bindgen_bitfield_unit.set(2usize, 30u8, { + let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoEncodeH264PictureInfoFlags { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout_StdVideoEncodeH264PictureInfoFlags() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(StdVideoEncodeH264PictureInfoFlags)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(StdVideoEncodeH264PictureInfoFlags) + ) + ); +} +impl StdVideoEncodeH264PictureInfoFlags { #[inline] - pub fn set_segmentation_temporal_update(&mut self, val: u32) { + pub fn IdrPicFlag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_IdrPicFlag(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(24usize, 1u8, val as u64) + self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn segmentation_update_data(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(25usize, 1u8) as u32) } + pub fn is_reference(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } } #[inline] - pub fn set_segmentation_update_data(&mut self, val: u32) { + pub fn set_is_reference(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(25usize, 1u8, val as u64) + self._bitfield_1.set(1usize, 1u8, val as u64) } } #[inline] - pub fn UsesLr(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(26usize, 1u8) as u32) } + pub fn no_output_of_prior_pics_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } } #[inline] - pub fn set_UsesLr(&mut self, val: u32) { + pub fn set_no_output_of_prior_pics_flag(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(26usize, 1u8, val as u64) + self._bitfield_1.set(2usize, 1u8, val as u64) } } #[inline] - pub fn usesChromaLr(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(27usize, 1u8) as u32) } + pub fn long_term_reference_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } } #[inline] - pub fn set_usesChromaLr(&mut self, val: u32) { + pub fn set_long_term_reference_flag(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(27usize, 1u8, val as u64) + self._bitfield_1.set(3usize, 1u8, val as u64) } } #[inline] - pub fn apply_grain(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 1u8) as u32) } + pub fn adaptive_ref_pic_marking_mode_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } } #[inline] - pub fn set_apply_grain(&mut self, val: u32) { + pub fn set_adaptive_ref_pic_marking_mode_flag(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(28usize, 1u8, val as u64) + self._bitfield_1.set(4usize, 1u8, val as u64) } } #[inline] pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(29usize, 3u8) as u32) } + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) } } #[inline] pub fn set_reserved(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(29usize, 3u8, val as u64) + self._bitfield_1.set(5usize, 27u8, val as u64) } } #[inline] pub fn new_bitfield_1( - error_resilient_mode: u32, - disable_cdf_update: u32, - use_superres: u32, - render_and_frame_size_different: u32, - allow_screen_content_tools: u32, - is_filter_switchable: u32, - force_integer_mv: u32, - frame_size_override_flag: u32, - buffer_removal_time_present_flag: u32, - allow_intrabc: u32, - frame_refs_short_signaling: u32, - allow_high_precision_mv: u32, - is_motion_mode_switchable: u32, - use_ref_frame_mvs: u32, - disable_frame_end_update_cdf: u32, - allow_warped_motion: u32, - reduced_tx_set: u32, - reference_select: u32, - skip_mode_present: u32, - delta_q_present: u32, - delta_lf_present: u32, - delta_lf_multi: u32, - segmentation_enabled: u32, - segmentation_update_map: u32, - segmentation_temporal_update: u32, - segmentation_update_data: u32, - UsesLr: u32, - usesChromaLr: u32, - apply_grain: u32, + IdrPicFlag: u32, + is_reference: u32, + no_output_of_prior_pics_flag: u32, + long_term_reference_flag: u32, + adaptive_ref_pic_marking_mode_flag: u32, + reserved: u32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let IdrPicFlag: u32 = unsafe { ::core::mem::transmute(IdrPicFlag) }; + IdrPicFlag as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let is_reference: u32 = unsafe { ::core::mem::transmute(is_reference) }; + is_reference as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let no_output_of_prior_pics_flag: u32 = + unsafe { ::core::mem::transmute(no_output_of_prior_pics_flag) }; + no_output_of_prior_pics_flag as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let long_term_reference_flag: u32 = + unsafe { ::core::mem::transmute(long_term_reference_flag) }; + long_term_reference_flag as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let adaptive_ref_pic_marking_mode_flag: u32 = + unsafe { ::core::mem::transmute(adaptive_ref_pic_marking_mode_flag) }; + adaptive_ref_pic_marking_mode_flag as u64 + }); + __bindgen_bitfield_unit.set(5usize, 27u8, { + let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoEncodeH264ReferenceInfoFlags { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout_StdVideoEncodeH264ReferenceInfoFlags() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!( + "Size of: ", + stringify!(StdVideoEncodeH264ReferenceInfoFlags) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(StdVideoEncodeH264ReferenceInfoFlags) + ) + ); +} +impl StdVideoEncodeH264ReferenceInfoFlags { + #[inline] + pub fn used_for_long_term_reference(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_used_for_long_term_reference(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn reserved(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) } + } + #[inline] + pub fn set_reserved(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 31u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + used_for_long_term_reference: u32, + reserved: u32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let used_for_long_term_reference: u32 = + unsafe { ::core::mem::transmute(used_for_long_term_reference) }; + used_for_long_term_reference as u64 + }); + __bindgen_bitfield_unit.set(1usize, 31u8, { + let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoEncodeH264ReferenceListsInfoFlags { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout_StdVideoEncodeH264ReferenceListsInfoFlags() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!( + "Size of: ", + stringify!(StdVideoEncodeH264ReferenceListsInfoFlags) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(StdVideoEncodeH264ReferenceListsInfoFlags) + ) + ); +} +impl StdVideoEncodeH264ReferenceListsInfoFlags { + #[inline] + pub fn ref_pic_list_modification_flag_l0(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_ref_pic_list_modification_flag_l0(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn ref_pic_list_modification_flag_l1(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_ref_pic_list_modification_flag_l1(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn reserved(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } + } + #[inline] + pub fn set_reserved(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 30u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + ref_pic_list_modification_flag_l0: u32, + ref_pic_list_modification_flag_l1: u32, reserved: u32, ) -> __BindgenBitfieldUnit<[u8; 4usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); __bindgen_bitfield_unit.set(0usize, 1u8, { - let error_resilient_mode: u32 = unsafe { ::core::mem::transmute(error_resilient_mode) }; - error_resilient_mode as u64 + let ref_pic_list_modification_flag_l0: u32 = + unsafe { ::core::mem::transmute(ref_pic_list_modification_flag_l0) }; + ref_pic_list_modification_flag_l0 as u64 }); __bindgen_bitfield_unit.set(1usize, 1u8, { - let disable_cdf_update: u32 = unsafe { ::core::mem::transmute(disable_cdf_update) }; - disable_cdf_update as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let use_superres: u32 = unsafe { ::core::mem::transmute(use_superres) }; - use_superres as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let render_and_frame_size_different: u32 = - unsafe { ::core::mem::transmute(render_and_frame_size_different) }; - render_and_frame_size_different as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let allow_screen_content_tools: u32 = - unsafe { ::core::mem::transmute(allow_screen_content_tools) }; - allow_screen_content_tools as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let is_filter_switchable: u32 = unsafe { ::core::mem::transmute(is_filter_switchable) }; - is_filter_switchable as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let force_integer_mv: u32 = unsafe { ::core::mem::transmute(force_integer_mv) }; - force_integer_mv as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let frame_size_override_flag: u32 = - unsafe { ::core::mem::transmute(frame_size_override_flag) }; - frame_size_override_flag as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let buffer_removal_time_present_flag: u32 = - unsafe { ::core::mem::transmute(buffer_removal_time_present_flag) }; - buffer_removal_time_present_flag as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let allow_intrabc: u32 = unsafe { ::core::mem::transmute(allow_intrabc) }; - allow_intrabc as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let frame_refs_short_signaling: u32 = - unsafe { ::core::mem::transmute(frame_refs_short_signaling) }; - frame_refs_short_signaling as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let allow_high_precision_mv: u32 = - unsafe { ::core::mem::transmute(allow_high_precision_mv) }; - allow_high_precision_mv as u64 - }); - __bindgen_bitfield_unit.set(12usize, 1u8, { - let is_motion_mode_switchable: u32 = - unsafe { ::core::mem::transmute(is_motion_mode_switchable) }; - is_motion_mode_switchable as u64 - }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let use_ref_frame_mvs: u32 = unsafe { ::core::mem::transmute(use_ref_frame_mvs) }; - use_ref_frame_mvs as u64 - }); - __bindgen_bitfield_unit.set(14usize, 1u8, { - let disable_frame_end_update_cdf: u32 = - unsafe { ::core::mem::transmute(disable_frame_end_update_cdf) }; - disable_frame_end_update_cdf as u64 - }); - __bindgen_bitfield_unit.set(15usize, 1u8, { - let allow_warped_motion: u32 = unsafe { ::core::mem::transmute(allow_warped_motion) }; - allow_warped_motion as u64 - }); - __bindgen_bitfield_unit.set(16usize, 1u8, { - let reduced_tx_set: u32 = unsafe { ::core::mem::transmute(reduced_tx_set) }; - reduced_tx_set as u64 - }); - __bindgen_bitfield_unit.set(17usize, 1u8, { - let reference_select: u32 = unsafe { ::core::mem::transmute(reference_select) }; - reference_select as u64 - }); - __bindgen_bitfield_unit.set(18usize, 1u8, { - let skip_mode_present: u32 = unsafe { ::core::mem::transmute(skip_mode_present) }; - skip_mode_present as u64 - }); - __bindgen_bitfield_unit.set(19usize, 1u8, { - let delta_q_present: u32 = unsafe { ::core::mem::transmute(delta_q_present) }; - delta_q_present as u64 - }); - __bindgen_bitfield_unit.set(20usize, 1u8, { - let delta_lf_present: u32 = unsafe { ::core::mem::transmute(delta_lf_present) }; - delta_lf_present as u64 - }); - __bindgen_bitfield_unit.set(21usize, 1u8, { - let delta_lf_multi: u32 = unsafe { ::core::mem::transmute(delta_lf_multi) }; - delta_lf_multi as u64 - }); - __bindgen_bitfield_unit.set(22usize, 1u8, { - let segmentation_enabled: u32 = unsafe { ::core::mem::transmute(segmentation_enabled) }; - segmentation_enabled as u64 - }); - __bindgen_bitfield_unit.set(23usize, 1u8, { - let segmentation_update_map: u32 = - unsafe { ::core::mem::transmute(segmentation_update_map) }; - segmentation_update_map as u64 - }); - __bindgen_bitfield_unit.set(24usize, 1u8, { - let segmentation_temporal_update: u32 = - unsafe { ::core::mem::transmute(segmentation_temporal_update) }; - segmentation_temporal_update as u64 - }); - __bindgen_bitfield_unit.set(25usize, 1u8, { - let segmentation_update_data: u32 = - unsafe { ::core::mem::transmute(segmentation_update_data) }; - segmentation_update_data as u64 - }); - __bindgen_bitfield_unit.set(26usize, 1u8, { - let UsesLr: u32 = unsafe { ::core::mem::transmute(UsesLr) }; - UsesLr as u64 - }); - __bindgen_bitfield_unit.set(27usize, 1u8, { - let usesChromaLr: u32 = unsafe { ::core::mem::transmute(usesChromaLr) }; - usesChromaLr as u64 - }); - __bindgen_bitfield_unit.set(28usize, 1u8, { - let apply_grain: u32 = unsafe { ::core::mem::transmute(apply_grain) }; - apply_grain as u64 + let ref_pic_list_modification_flag_l1: u32 = + unsafe { ::core::mem::transmute(ref_pic_list_modification_flag_l1) }; + ref_pic_list_modification_flag_l1 as u64 }); - __bindgen_bitfield_unit.set(29usize, 3u8, { + __bindgen_bitfield_unit.set(2usize, 30u8, { let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; reserved as u64 }); @@ -9374,2129 +11327,2034 @@ impl StdVideoDecodeAV1PictureInfoFlags { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoDecodeAV1PictureInfo { - pub flags: StdVideoDecodeAV1PictureInfoFlags, - pub frame_type: StdVideoAV1FrameType, - pub current_frame_id: u32, - pub OrderHint: u8, - pub primary_ref_frame: u8, - pub refresh_frame_flags: u8, - pub reserved1: u8, - pub interpolation_filter: StdVideoAV1InterpolationFilter, - pub TxMode: StdVideoAV1TxMode, - pub delta_q_res: u8, - pub delta_lf_res: u8, - pub SkipModeFrame: [u8; 2usize], - pub coded_denom: u8, - pub reserved2: [u8; 3usize], - pub OrderHints: [u8; 8usize], - pub expectedFrameId: [u32; 8usize], - pub pTileInfo: *const StdVideoAV1TileInfo, - pub pQuantization: *const StdVideoAV1Quantization, - pub pSegmentation: *const StdVideoAV1Segmentation, - pub pLoopFilter: *const StdVideoAV1LoopFilter, - pub pCDEF: *const StdVideoAV1CDEF, - pub pLoopRestoration: *const StdVideoAV1LoopRestoration, - pub pGlobalMotion: *const StdVideoAV1GlobalMotion, - pub pFilmGrain: *const StdVideoAV1FilmGrain, +pub struct StdVideoEncodeH264RefListModEntry { + pub modification_of_pic_nums_idc: StdVideoH264ModificationOfPicNumsIdc, + pub abs_diff_pic_num_minus1: u16, + pub long_term_pic_num: u16, } #[test] -fn bindgen_test_layout_StdVideoDecodeAV1PictureInfo() { - const UNINIT: ::core::mem::MaybeUninit = +fn bindgen_test_layout_StdVideoEncodeH264RefListModEntry() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), - 136usize, - concat!("Size of: ", stringify!(StdVideoDecodeAV1PictureInfo)) - ); - assert_eq!( - ::core::mem::align_of::(), + ::core::mem::size_of::(), 8usize, - concat!("Alignment of ", stringify!(StdVideoDecodeAV1PictureInfo)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), - "::", - stringify!(flags) - ) + concat!("Size of: ", stringify!(StdVideoEncodeH264RefListModEntry)) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frame_type) as usize - ptr as usize }, + ::core::mem::align_of::(), 4usize, concat!( - "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), - "::", - stringify!(frame_type) + "Alignment of ", + stringify!(StdVideoEncodeH264RefListModEntry) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).current_frame_id) as usize - ptr as usize }, - 8usize, + unsafe { + ::core::ptr::addr_of!((*ptr).modification_of_pic_nums_idc) as usize - ptr as usize + }, + 0usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), + stringify!(StdVideoEncodeH264RefListModEntry), "::", - stringify!(current_frame_id) + stringify!(modification_of_pic_nums_idc) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).OrderHint) as usize - ptr as usize }, - 12usize, + unsafe { ::core::ptr::addr_of!((*ptr).abs_diff_pic_num_minus1) as usize - ptr as usize }, + 4usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), + stringify!(StdVideoEncodeH264RefListModEntry), "::", - stringify!(OrderHint) + stringify!(abs_diff_pic_num_minus1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).primary_ref_frame) as usize - ptr as usize }, - 13usize, + unsafe { ::core::ptr::addr_of!((*ptr).long_term_pic_num) as usize - ptr as usize }, + 6usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), + stringify!(StdVideoEncodeH264RefListModEntry), "::", - stringify!(primary_ref_frame) + stringify!(long_term_pic_num) ) ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoEncodeH264RefPicMarkingEntry { + pub memory_management_control_operation: StdVideoH264MemMgmtControlOp, + pub difference_of_pic_nums_minus1: u16, + pub long_term_pic_num: u16, + pub long_term_frame_idx: u16, + pub max_long_term_frame_idx_plus1: u16, +} +#[test] +fn bindgen_test_layout_StdVideoEncodeH264RefPicMarkingEntry() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).refresh_frame_flags) as usize - ptr as usize }, - 14usize, + ::core::mem::size_of::(), + 12usize, concat!( - "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), - "::", - stringify!(refresh_frame_flags) + "Size of: ", + stringify!(StdVideoEncodeH264RefPicMarkingEntry) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 15usize, + ::core::mem::align_of::(), + 4usize, concat!( - "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), - "::", - stringify!(reserved1) + "Alignment of ", + stringify!(StdVideoEncodeH264RefPicMarkingEntry) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).interpolation_filter) as usize - ptr as usize }, - 16usize, + unsafe { + ::core::ptr::addr_of!((*ptr).memory_management_control_operation) as usize + - ptr as usize + }, + 0usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), + stringify!(StdVideoEncodeH264RefPicMarkingEntry), "::", - stringify!(interpolation_filter) + stringify!(memory_management_control_operation) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).TxMode) as usize - ptr as usize }, - 20usize, + unsafe { + ::core::ptr::addr_of!((*ptr).difference_of_pic_nums_minus1) as usize - ptr as usize + }, + 4usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), + stringify!(StdVideoEncodeH264RefPicMarkingEntry), "::", - stringify!(TxMode) + stringify!(difference_of_pic_nums_minus1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).delta_q_res) as usize - ptr as usize }, - 24usize, + unsafe { ::core::ptr::addr_of!((*ptr).long_term_pic_num) as usize - ptr as usize }, + 6usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), + stringify!(StdVideoEncodeH264RefPicMarkingEntry), "::", - stringify!(delta_q_res) + stringify!(long_term_pic_num) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).delta_lf_res) as usize - ptr as usize }, - 25usize, + unsafe { ::core::ptr::addr_of!((*ptr).long_term_frame_idx) as usize - ptr as usize }, + 8usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), + stringify!(StdVideoEncodeH264RefPicMarkingEntry), "::", - stringify!(delta_lf_res) + stringify!(long_term_frame_idx) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).SkipModeFrame) as usize - ptr as usize }, - 26usize, + unsafe { + ::core::ptr::addr_of!((*ptr).max_long_term_frame_idx_plus1) as usize - ptr as usize + }, + 10usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), + stringify!(StdVideoEncodeH264RefPicMarkingEntry), "::", - stringify!(SkipModeFrame) + stringify!(max_long_term_frame_idx_plus1) ) ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoEncodeH264ReferenceListsInfo { + pub flags: StdVideoEncodeH264ReferenceListsInfoFlags, + pub num_ref_idx_l0_active_minus1: u8, + pub num_ref_idx_l1_active_minus1: u8, + pub RefPicList0: [u8; 32usize], + pub RefPicList1: [u8; 32usize], + pub refList0ModOpCount: u8, + pub refList1ModOpCount: u8, + pub refPicMarkingOpCount: u8, + pub reserved1: [u8; 7usize], + pub pRefList0ModOperations: *const StdVideoEncodeH264RefListModEntry, + pub pRefList1ModOperations: *const StdVideoEncodeH264RefListModEntry, + pub pRefPicMarkingOperations: *const StdVideoEncodeH264RefPicMarkingEntry, +} +#[test] +fn bindgen_test_layout_StdVideoEncodeH264ReferenceListsInfo() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).coded_denom) as usize - ptr as usize }, - 28usize, + ::core::mem::size_of::(), + 104usize, concat!( - "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), - "::", - stringify!(coded_denom) + "Size of: ", + stringify!(StdVideoEncodeH264ReferenceListsInfo) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 29usize, + ::core::mem::align_of::(), + 8usize, concat!( - "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), - "::", - stringify!(reserved2) + "Alignment of ", + stringify!(StdVideoEncodeH264ReferenceListsInfo) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).OrderHints) as usize - ptr as usize }, - 32usize, + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 0usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), + stringify!(StdVideoEncodeH264ReferenceListsInfo), "::", - stringify!(OrderHints) + stringify!(flags) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).expectedFrameId) as usize - ptr as usize }, - 40usize, + unsafe { + ::core::ptr::addr_of!((*ptr).num_ref_idx_l0_active_minus1) as usize - ptr as usize + }, + 4usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), + stringify!(StdVideoEncodeH264ReferenceListsInfo), "::", - stringify!(expectedFrameId) + stringify!(num_ref_idx_l0_active_minus1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pTileInfo) as usize - ptr as usize }, - 72usize, + unsafe { + ::core::ptr::addr_of!((*ptr).num_ref_idx_l1_active_minus1) as usize - ptr as usize + }, + 5usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), + stringify!(StdVideoEncodeH264ReferenceListsInfo), "::", - stringify!(pTileInfo) + stringify!(num_ref_idx_l1_active_minus1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pQuantization) as usize - ptr as usize }, - 80usize, + unsafe { ::core::ptr::addr_of!((*ptr).RefPicList0) as usize - ptr as usize }, + 6usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), + stringify!(StdVideoEncodeH264ReferenceListsInfo), "::", - stringify!(pQuantization) + stringify!(RefPicList0) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pSegmentation) as usize - ptr as usize }, - 88usize, + unsafe { ::core::ptr::addr_of!((*ptr).RefPicList1) as usize - ptr as usize }, + 38usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), + stringify!(StdVideoEncodeH264ReferenceListsInfo), "::", - stringify!(pSegmentation) + stringify!(RefPicList1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pLoopFilter) as usize - ptr as usize }, - 96usize, + unsafe { ::core::ptr::addr_of!((*ptr).refList0ModOpCount) as usize - ptr as usize }, + 70usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), + stringify!(StdVideoEncodeH264ReferenceListsInfo), "::", - stringify!(pLoopFilter) + stringify!(refList0ModOpCount) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pCDEF) as usize - ptr as usize }, - 104usize, + unsafe { ::core::ptr::addr_of!((*ptr).refList1ModOpCount) as usize - ptr as usize }, + 71usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), + stringify!(StdVideoEncodeH264ReferenceListsInfo), "::", - stringify!(pCDEF) + stringify!(refList1ModOpCount) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pLoopRestoration) as usize - ptr as usize }, - 112usize, + unsafe { ::core::ptr::addr_of!((*ptr).refPicMarkingOpCount) as usize - ptr as usize }, + 72usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), + stringify!(StdVideoEncodeH264ReferenceListsInfo), "::", - stringify!(pLoopRestoration) + stringify!(refPicMarkingOpCount) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pGlobalMotion) as usize - ptr as usize }, - 120usize, + unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, + 73usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), + stringify!(StdVideoEncodeH264ReferenceListsInfo), "::", - stringify!(pGlobalMotion) + stringify!(reserved1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pFilmGrain) as usize - ptr as usize }, - 128usize, + unsafe { ::core::ptr::addr_of!((*ptr).pRefList0ModOperations) as usize - ptr as usize }, + 80usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1PictureInfo), + stringify!(StdVideoEncodeH264ReferenceListsInfo), "::", - stringify!(pFilmGrain) + stringify!(pRefList0ModOperations) ) ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StdVideoDecodeAV1ReferenceInfoFlags { - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, -} -#[test] -fn bindgen_test_layout_StdVideoDecodeAV1ReferenceInfoFlags() { - assert_eq!( - ::core::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(StdVideoDecodeAV1ReferenceInfoFlags)) - ); assert_eq!( - ::core::mem::align_of::(), - 4usize, + unsafe { ::core::ptr::addr_of!((*ptr).pRefList1ModOperations) as usize - ptr as usize }, + 88usize, concat!( - "Alignment of ", - stringify!(StdVideoDecodeAV1ReferenceInfoFlags) - ) - ); -} -impl StdVideoDecodeAV1ReferenceInfoFlags { - #[inline] - pub fn disable_frame_end_update_cdf(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_disable_frame_end_update_cdf(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn segmentation_enabled(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_segmentation_enabled(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } - } - #[inline] - pub fn set_reserved(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 30u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - disable_frame_end_update_cdf: u32, - segmentation_enabled: u32, - reserved: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let disable_frame_end_update_cdf: u32 = - unsafe { ::core::mem::transmute(disable_frame_end_update_cdf) }; - disable_frame_end_update_cdf as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let segmentation_enabled: u32 = unsafe { ::core::mem::transmute(segmentation_enabled) }; - segmentation_enabled as u64 - }); - __bindgen_bitfield_unit.set(2usize, 30u8, { - let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; - reserved as u64 - }); - __bindgen_bitfield_unit - } + "Offset of field: ", + stringify!(StdVideoEncodeH264ReferenceListsInfo), + "::", + stringify!(pRefList1ModOperations) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pRefPicMarkingOperations) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264ReferenceListsInfo), + "::", + stringify!(pRefPicMarkingOperations) + ) + ); } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoDecodeAV1ReferenceInfo { - pub flags: StdVideoDecodeAV1ReferenceInfoFlags, - pub frame_type: u8, - pub RefFrameSignBias: u8, - pub OrderHint: u8, - pub SavedOrderHints: [u8; 8usize], +pub struct StdVideoEncodeH264PictureInfo { + pub flags: StdVideoEncodeH264PictureInfoFlags, + pub seq_parameter_set_id: u8, + pub pic_parameter_set_id: u8, + pub idr_pic_id: u16, + pub primary_pic_type: StdVideoH264PictureType, + pub frame_num: u32, + pub PicOrderCnt: i32, + pub temporal_id: u8, + pub reserved1: [u8; 3usize], + pub pRefLists: *const StdVideoEncodeH264ReferenceListsInfo, } #[test] -fn bindgen_test_layout_StdVideoDecodeAV1ReferenceInfo() { - const UNINIT: ::core::mem::MaybeUninit = +fn bindgen_test_layout_StdVideoEncodeH264PictureInfo() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(StdVideoDecodeAV1ReferenceInfo)) + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(StdVideoEncodeH264PictureInfo)) ); assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(StdVideoDecodeAV1ReferenceInfo)) + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(StdVideoEncodeH264PictureInfo)) ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1ReferenceInfo), + stringify!(StdVideoEncodeH264PictureInfo), "::", stringify!(flags) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frame_type) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).seq_parameter_set_id) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1ReferenceInfo), + stringify!(StdVideoEncodeH264PictureInfo), "::", - stringify!(frame_type) + stringify!(seq_parameter_set_id) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).RefFrameSignBias) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).pic_parameter_set_id) as usize - ptr as usize }, 5usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1ReferenceInfo), + stringify!(StdVideoEncodeH264PictureInfo), "::", - stringify!(RefFrameSignBias) + stringify!(pic_parameter_set_id) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).OrderHint) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).idr_pic_id) as usize - ptr as usize }, 6usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1ReferenceInfo), + stringify!(StdVideoEncodeH264PictureInfo), "::", - stringify!(OrderHint) + stringify!(idr_pic_id) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).SavedOrderHints) as usize - ptr as usize }, - 7usize, + unsafe { ::core::ptr::addr_of!((*ptr).primary_pic_type) as usize - ptr as usize }, + 8usize, concat!( "Offset of field: ", - stringify!(StdVideoDecodeAV1ReferenceInfo), + stringify!(StdVideoEncodeH264PictureInfo), "::", - stringify!(SavedOrderHints) + stringify!(primary_pic_type) ) ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH264WeightTableFlags { - pub luma_weight_l0_flag: u32, - pub chroma_weight_l0_flag: u32, - pub luma_weight_l1_flag: u32, - pub chroma_weight_l1_flag: u32, -} -#[test] -fn bindgen_test_layout_StdVideoEncodeH264WeightTableFlags() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(StdVideoEncodeH264WeightTableFlags)) - ); assert_eq!( - ::core::mem::align_of::(), - 4usize, + unsafe { ::core::ptr::addr_of!((*ptr).frame_num) as usize - ptr as usize }, + 12usize, concat!( - "Alignment of ", - stringify!(StdVideoEncodeH264WeightTableFlags) + "Offset of field: ", + stringify!(StdVideoEncodeH264PictureInfo), + "::", + stringify!(frame_num) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).luma_weight_l0_flag) as usize - ptr as usize }, - 0usize, + unsafe { ::core::ptr::addr_of!((*ptr).PicOrderCnt) as usize - ptr as usize }, + 16usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264WeightTableFlags), + stringify!(StdVideoEncodeH264PictureInfo), "::", - stringify!(luma_weight_l0_flag) + stringify!(PicOrderCnt) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chroma_weight_l0_flag) as usize - ptr as usize }, - 4usize, + unsafe { ::core::ptr::addr_of!((*ptr).temporal_id) as usize - ptr as usize }, + 20usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264WeightTableFlags), + stringify!(StdVideoEncodeH264PictureInfo), "::", - stringify!(chroma_weight_l0_flag) + stringify!(temporal_id) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).luma_weight_l1_flag) as usize - ptr as usize }, - 8usize, + unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, + 21usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264WeightTableFlags), + stringify!(StdVideoEncodeH264PictureInfo), "::", - stringify!(luma_weight_l1_flag) + stringify!(reserved1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chroma_weight_l1_flag) as usize - ptr as usize }, - 12usize, + unsafe { ::core::ptr::addr_of!((*ptr).pRefLists) as usize - ptr as usize }, + 24usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264WeightTableFlags), + stringify!(StdVideoEncodeH264PictureInfo), "::", - stringify!(chroma_weight_l1_flag) + stringify!(pRefLists) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH264WeightTable { - pub flags: StdVideoEncodeH264WeightTableFlags, - pub luma_log2_weight_denom: u8, - pub chroma_log2_weight_denom: u8, - pub luma_weight_l0: [i8; 32usize], - pub luma_offset_l0: [i8; 32usize], - pub chroma_weight_l0: [[i8; 2usize]; 32usize], - pub chroma_offset_l0: [[i8; 2usize]; 32usize], - pub luma_weight_l1: [i8; 32usize], - pub luma_offset_l1: [i8; 32usize], - pub chroma_weight_l1: [[i8; 2usize]; 32usize], - pub chroma_offset_l1: [[i8; 2usize]; 32usize], +pub struct StdVideoEncodeH264ReferenceInfo { + pub flags: StdVideoEncodeH264ReferenceInfoFlags, + pub primary_pic_type: StdVideoH264PictureType, + pub FrameNum: u32, + pub PicOrderCnt: i32, + pub long_term_pic_num: u16, + pub long_term_frame_idx: u16, + pub temporal_id: u8, } #[test] -fn bindgen_test_layout_StdVideoEncodeH264WeightTable() { - const UNINIT: ::core::mem::MaybeUninit = +fn bindgen_test_layout_StdVideoEncodeH264ReferenceInfo() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), - 404usize, - concat!("Size of: ", stringify!(StdVideoEncodeH264WeightTable)) + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(StdVideoEncodeH264ReferenceInfo)) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 4usize, - concat!("Alignment of ", stringify!(StdVideoEncodeH264WeightTable)) + concat!("Alignment of ", stringify!(StdVideoEncodeH264ReferenceInfo)) ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264WeightTable), + stringify!(StdVideoEncodeH264ReferenceInfo), "::", stringify!(flags) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).luma_log2_weight_denom) as usize - ptr as usize }, - 16usize, + unsafe { ::core::ptr::addr_of!((*ptr).primary_pic_type) as usize - ptr as usize }, + 4usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264WeightTable), + stringify!(StdVideoEncodeH264ReferenceInfo), "::", - stringify!(luma_log2_weight_denom) + stringify!(primary_pic_type) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chroma_log2_weight_denom) as usize - ptr as usize }, - 17usize, + unsafe { ::core::ptr::addr_of!((*ptr).FrameNum) as usize - ptr as usize }, + 8usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264WeightTable), + stringify!(StdVideoEncodeH264ReferenceInfo), "::", - stringify!(chroma_log2_weight_denom) + stringify!(FrameNum) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).luma_weight_l0) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).PicOrderCnt) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264ReferenceInfo), + "::", + stringify!(PicOrderCnt) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).long_term_pic_num) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264ReferenceInfo), + "::", + stringify!(long_term_pic_num) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).long_term_frame_idx) as usize - ptr as usize }, 18usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264WeightTable), + stringify!(StdVideoEncodeH264ReferenceInfo), "::", - stringify!(luma_weight_l0) + stringify!(long_term_frame_idx) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).luma_offset_l0) as usize - ptr as usize }, - 50usize, + unsafe { ::core::ptr::addr_of!((*ptr).temporal_id) as usize - ptr as usize }, + 20usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264WeightTable), + stringify!(StdVideoEncodeH264ReferenceInfo), "::", - stringify!(luma_offset_l0) + stringify!(temporal_id) ) ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoEncodeH264SliceHeader { + pub flags: StdVideoEncodeH264SliceHeaderFlags, + pub first_mb_in_slice: u32, + pub slice_type: StdVideoH264SliceType, + pub slice_alpha_c0_offset_div2: i8, + pub slice_beta_offset_div2: i8, + pub slice_qp_delta: i8, + pub reserved1: u8, + pub cabac_init_idc: StdVideoH264CabacInitIdc, + pub disable_deblocking_filter_idc: StdVideoH264DisableDeblockingFilterIdc, + pub pWeightTable: *const StdVideoEncodeH264WeightTable, +} +#[test] +fn bindgen_test_layout_StdVideoEncodeH264SliceHeader() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(StdVideoEncodeH264SliceHeader)) + ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chroma_weight_l0) as usize - ptr as usize }, - 82usize, + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(StdVideoEncodeH264SliceHeader)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 0usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264WeightTable), + stringify!(StdVideoEncodeH264SliceHeader), "::", - stringify!(chroma_weight_l0) + stringify!(flags) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chroma_offset_l0) as usize - ptr as usize }, - 146usize, + unsafe { ::core::ptr::addr_of!((*ptr).first_mb_in_slice) as usize - ptr as usize }, + 4usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264WeightTable), + stringify!(StdVideoEncodeH264SliceHeader), "::", - stringify!(chroma_offset_l0) + stringify!(first_mb_in_slice) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).luma_weight_l1) as usize - ptr as usize }, - 210usize, + unsafe { ::core::ptr::addr_of!((*ptr).slice_type) as usize - ptr as usize }, + 8usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264WeightTable), + stringify!(StdVideoEncodeH264SliceHeader), "::", - stringify!(luma_weight_l1) + stringify!(slice_type) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).luma_offset_l1) as usize - ptr as usize }, - 242usize, + unsafe { ::core::ptr::addr_of!((*ptr).slice_alpha_c0_offset_div2) as usize - ptr as usize }, + 12usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264WeightTable), + stringify!(StdVideoEncodeH264SliceHeader), "::", - stringify!(luma_offset_l1) + stringify!(slice_alpha_c0_offset_div2) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chroma_weight_l1) as usize - ptr as usize }, - 274usize, + unsafe { ::core::ptr::addr_of!((*ptr).slice_beta_offset_div2) as usize - ptr as usize }, + 13usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264WeightTable), + stringify!(StdVideoEncodeH264SliceHeader), "::", - stringify!(chroma_weight_l1) + stringify!(slice_beta_offset_div2) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chroma_offset_l1) as usize - ptr as usize }, - 338usize, + unsafe { ::core::ptr::addr_of!((*ptr).slice_qp_delta) as usize - ptr as usize }, + 14usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264WeightTable), + stringify!(StdVideoEncodeH264SliceHeader), "::", - stringify!(chroma_offset_l1) + stringify!(slice_qp_delta) ) ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH264SliceHeaderFlags { - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, -} -#[test] -fn bindgen_test_layout_StdVideoEncodeH264SliceHeaderFlags() { - assert_eq!( - ::core::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(StdVideoEncodeH264SliceHeaderFlags)) - ); assert_eq!( - ::core::mem::align_of::(), - 4usize, + unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, + 15usize, concat!( - "Alignment of ", - stringify!(StdVideoEncodeH264SliceHeaderFlags) + "Offset of field: ", + stringify!(StdVideoEncodeH264SliceHeader), + "::", + stringify!(reserved1) ) ); -} -impl StdVideoEncodeH264SliceHeaderFlags { - #[inline] - pub fn direct_spatial_mv_pred_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_direct_spatial_mv_pred_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn num_ref_idx_active_override_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_num_ref_idx_active_override_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } - } - #[inline] - pub fn set_reserved(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 30u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - direct_spatial_mv_pred_flag: u32, - num_ref_idx_active_override_flag: u32, - reserved: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let direct_spatial_mv_pred_flag: u32 = - unsafe { ::core::mem::transmute(direct_spatial_mv_pred_flag) }; - direct_spatial_mv_pred_flag as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let num_ref_idx_active_override_flag: u32 = - unsafe { ::core::mem::transmute(num_ref_idx_active_override_flag) }; - num_ref_idx_active_override_flag as u64 - }); - __bindgen_bitfield_unit.set(2usize, 30u8, { - let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; - reserved as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH264PictureInfoFlags { - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, -} -#[test] -fn bindgen_test_layout_StdVideoEncodeH264PictureInfoFlags() { - assert_eq!( - ::core::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(StdVideoEncodeH264PictureInfoFlags)) - ); assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(StdVideoEncodeH264PictureInfoFlags) - ) - ); -} -impl StdVideoEncodeH264PictureInfoFlags { - #[inline] - pub fn IdrPicFlag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_IdrPicFlag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn is_reference(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_is_reference(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn no_output_of_prior_pics_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - #[inline] - pub fn set_no_output_of_prior_pics_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn long_term_reference_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - #[inline] - pub fn set_long_term_reference_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn adaptive_ref_pic_marking_mode_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - #[inline] - pub fn set_adaptive_ref_pic_marking_mode_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - #[inline] - pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) } - } - #[inline] - pub fn set_reserved(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 27u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - IdrPicFlag: u32, - is_reference: u32, - no_output_of_prior_pics_flag: u32, - long_term_reference_flag: u32, - adaptive_ref_pic_marking_mode_flag: u32, - reserved: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let IdrPicFlag: u32 = unsafe { ::core::mem::transmute(IdrPicFlag) }; - IdrPicFlag as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let is_reference: u32 = unsafe { ::core::mem::transmute(is_reference) }; - is_reference as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let no_output_of_prior_pics_flag: u32 = - unsafe { ::core::mem::transmute(no_output_of_prior_pics_flag) }; - no_output_of_prior_pics_flag as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let long_term_reference_flag: u32 = - unsafe { ::core::mem::transmute(long_term_reference_flag) }; - long_term_reference_flag as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let adaptive_ref_pic_marking_mode_flag: u32 = - unsafe { ::core::mem::transmute(adaptive_ref_pic_marking_mode_flag) }; - adaptive_ref_pic_marking_mode_flag as u64 - }); - __bindgen_bitfield_unit.set(5usize, 27u8, { - let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; - reserved as u64 - }); - __bindgen_bitfield_unit - } + unsafe { ::core::ptr::addr_of!((*ptr).cabac_init_idc) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264SliceHeader), + "::", + stringify!(cabac_init_idc) + ) + ); + assert_eq!( + unsafe { + ::core::ptr::addr_of!((*ptr).disable_deblocking_filter_idc) as usize - ptr as usize + }, + 20usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264SliceHeader), + "::", + stringify!(disable_deblocking_filter_idc) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pWeightTable) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH264SliceHeader), + "::", + stringify!(pWeightTable) + ) + ); } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH264ReferenceInfoFlags { - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +pub struct StdVideoEncodeH265WeightTableFlags { + pub luma_weight_l0_flag: u16, + pub chroma_weight_l0_flag: u16, + pub luma_weight_l1_flag: u16, + pub chroma_weight_l1_flag: u16, } #[test] -fn bindgen_test_layout_StdVideoEncodeH264ReferenceInfoFlags() { +fn bindgen_test_layout_StdVideoEncodeH265WeightTableFlags() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), - 4usize, + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(StdVideoEncodeH265WeightTableFlags)) + ); + assert_eq!( + ::core::mem::align_of::(), + 2usize, concat!( - "Size of: ", - stringify!(StdVideoEncodeH264ReferenceInfoFlags) + "Alignment of ", + stringify!(StdVideoEncodeH265WeightTableFlags) ) ); assert_eq!( - ::core::mem::align_of::(), + unsafe { ::core::ptr::addr_of!((*ptr).luma_weight_l0_flag) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH265WeightTableFlags), + "::", + stringify!(luma_weight_l0_flag) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).chroma_weight_l0_flag) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH265WeightTableFlags), + "::", + stringify!(chroma_weight_l0_flag) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).luma_weight_l1_flag) as usize - ptr as usize }, 4usize, concat!( - "Alignment of ", - stringify!(StdVideoEncodeH264ReferenceInfoFlags) + "Offset of field: ", + stringify!(StdVideoEncodeH265WeightTableFlags), + "::", + stringify!(luma_weight_l1_flag) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).chroma_weight_l1_flag) as usize - ptr as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH265WeightTableFlags), + "::", + stringify!(chroma_weight_l1_flag) ) ); } -impl StdVideoEncodeH264ReferenceInfoFlags { - #[inline] - pub fn used_for_long_term_reference(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_used_for_long_term_reference(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) } - } - #[inline] - pub fn set_reserved(&mut self, val: u32) { +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoEncodeH265WeightTable { + pub flags: StdVideoEncodeH265WeightTableFlags, + pub luma_log2_weight_denom: u8, + pub delta_chroma_log2_weight_denom: i8, + pub delta_luma_weight_l0: [i8; 15usize], + pub luma_offset_l0: [i8; 15usize], + pub delta_chroma_weight_l0: [[i8; 2usize]; 15usize], + pub delta_chroma_offset_l0: [[i8; 2usize]; 15usize], + pub delta_luma_weight_l1: [i8; 15usize], + pub luma_offset_l1: [i8; 15usize], + pub delta_chroma_weight_l1: [[i8; 2usize]; 15usize], + pub delta_chroma_offset_l1: [[i8; 2usize]; 15usize], +} +#[test] +fn bindgen_test_layout_StdVideoEncodeH265WeightTable() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 190usize, + concat!("Size of: ", stringify!(StdVideoEncodeH265WeightTable)) + ); + assert_eq!( + ::core::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(StdVideoEncodeH265WeightTable)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH265WeightTable), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).luma_log2_weight_denom) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH265WeightTable), + "::", + stringify!(luma_log2_weight_denom) + ) + ); + assert_eq!( unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 31u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - used_for_long_term_reference: u32, - reserved: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let used_for_long_term_reference: u32 = - unsafe { ::core::mem::transmute(used_for_long_term_reference) }; - used_for_long_term_reference as u64 - }); - __bindgen_bitfield_unit.set(1usize, 31u8, { - let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; - reserved as u64 - }); - __bindgen_bitfield_unit - } + ::core::ptr::addr_of!((*ptr).delta_chroma_log2_weight_denom) as usize - ptr as usize + }, + 9usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH265WeightTable), + "::", + stringify!(delta_chroma_log2_weight_denom) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).delta_luma_weight_l0) as usize - ptr as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH265WeightTable), + "::", + stringify!(delta_luma_weight_l0) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).luma_offset_l0) as usize - ptr as usize }, + 25usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH265WeightTable), + "::", + stringify!(luma_offset_l0) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).delta_chroma_weight_l0) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH265WeightTable), + "::", + stringify!(delta_chroma_weight_l0) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).delta_chroma_offset_l0) as usize - ptr as usize }, + 70usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH265WeightTable), + "::", + stringify!(delta_chroma_offset_l0) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).delta_luma_weight_l1) as usize - ptr as usize }, + 100usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH265WeightTable), + "::", + stringify!(delta_luma_weight_l1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).luma_offset_l1) as usize - ptr as usize }, + 115usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH265WeightTable), + "::", + stringify!(luma_offset_l1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).delta_chroma_weight_l1) as usize - ptr as usize }, + 130usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH265WeightTable), + "::", + stringify!(delta_chroma_weight_l1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).delta_chroma_offset_l1) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeH265WeightTable), + "::", + stringify!(delta_chroma_offset_l1) + ) + ); } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH264ReferenceListsInfoFlags { +pub struct StdVideoEncodeH265SliceSegmentHeaderFlags { pub _bitfield_align_1: [u32; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, } #[test] -fn bindgen_test_layout_StdVideoEncodeH264ReferenceListsInfoFlags() { +fn bindgen_test_layout_StdVideoEncodeH265SliceSegmentHeaderFlags() { assert_eq!( - ::core::mem::size_of::(), + ::core::mem::size_of::(), 4usize, concat!( "Size of: ", - stringify!(StdVideoEncodeH264ReferenceListsInfoFlags) + stringify!(StdVideoEncodeH265SliceSegmentHeaderFlags) ) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 4usize, concat!( "Alignment of ", - stringify!(StdVideoEncodeH264ReferenceListsInfoFlags) + stringify!(StdVideoEncodeH265SliceSegmentHeaderFlags) ) ); } -impl StdVideoEncodeH264ReferenceListsInfoFlags { +impl StdVideoEncodeH265SliceSegmentHeaderFlags { #[inline] - pub fn ref_pic_list_modification_flag_l0(&self) -> u32 { + pub fn first_slice_segment_in_pic_flag(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } } #[inline] - pub fn set_ref_pic_list_modification_flag_l0(&mut self, val: u32) { + pub fn set_first_slice_segment_in_pic_flag(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn ref_pic_list_modification_flag_l1(&self) -> u32 { + pub fn dependent_slice_segment_flag(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } } #[inline] - pub fn set_ref_pic_list_modification_flag_l1(&mut self, val: u32) { + pub fn set_dependent_slice_segment_flag(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(1usize, 1u8, val as u64) } } #[inline] - pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } + pub fn slice_sao_luma_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } } #[inline] - pub fn set_reserved(&mut self, val: u32) { + pub fn set_slice_sao_luma_flag(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 30u8, val as u64) + self._bitfield_1.set(2usize, 1u8, val as u64) } } #[inline] - pub fn new_bitfield_1( - ref_pic_list_modification_flag_l0: u32, - ref_pic_list_modification_flag_l1: u32, - reserved: u32, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let ref_pic_list_modification_flag_l0: u32 = - unsafe { ::core::mem::transmute(ref_pic_list_modification_flag_l0) }; - ref_pic_list_modification_flag_l0 as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let ref_pic_list_modification_flag_l1: u32 = - unsafe { ::core::mem::transmute(ref_pic_list_modification_flag_l1) }; - ref_pic_list_modification_flag_l1 as u64 - }); - __bindgen_bitfield_unit.set(2usize, 30u8, { - let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; - reserved as u64 - }); - __bindgen_bitfield_unit + pub fn slice_sao_chroma_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } } -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH264RefListModEntry { - pub modification_of_pic_nums_idc: StdVideoH264ModificationOfPicNumsIdc, - pub abs_diff_pic_num_minus1: u16, - pub long_term_pic_num: u16, -} -#[test] -fn bindgen_test_layout_StdVideoEncodeH264RefListModEntry() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(StdVideoEncodeH264RefListModEntry)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(StdVideoEncodeH264RefListModEntry) - ) - ); - assert_eq!( + #[inline] + pub fn set_slice_sao_chroma_flag(&mut self, val: u32) { unsafe { - ::core::ptr::addr_of!((*ptr).modification_of_pic_nums_idc) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH264RefListModEntry), - "::", - stringify!(modification_of_pic_nums_idc) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).abs_diff_pic_num_minus1) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH264RefListModEntry), - "::", - stringify!(abs_diff_pic_num_minus1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).long_term_pic_num) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH264RefListModEntry), - "::", - stringify!(long_term_pic_num) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH264RefPicMarkingEntry { - pub memory_management_control_operation: StdVideoH264MemMgmtControlOp, - pub difference_of_pic_nums_minus1: u16, - pub long_term_pic_num: u16, - pub long_term_frame_idx: u16, - pub max_long_term_frame_idx_plus1: u16, -} -#[test] -fn bindgen_test_layout_StdVideoEncodeH264RefPicMarkingEntry() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 12usize, - concat!( - "Size of: ", - stringify!(StdVideoEncodeH264RefPicMarkingEntry) - ) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(StdVideoEncodeH264RefPicMarkingEntry) - ) - ); - assert_eq!( + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub fn num_ref_idx_active_override_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_num_ref_idx_active_override_flag(&mut self, val: u32) { unsafe { - ::core::ptr::addr_of!((*ptr).memory_management_control_operation) as usize - - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH264RefPicMarkingEntry), - "::", - stringify!(memory_management_control_operation) - ) - ); - assert_eq!( + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub fn mvd_l1_zero_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_mvd_l1_zero_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub fn cabac_init_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_cabac_init_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub fn cu_chroma_qp_offset_enabled_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_cu_chroma_qp_offset_enabled_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub fn deblocking_filter_override_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } + } + #[inline] + pub fn set_deblocking_filter_override_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub fn slice_deblocking_filter_disabled_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } + } + #[inline] + pub fn set_slice_deblocking_filter_disabled_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub fn collocated_from_l0_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) } + } + #[inline] + pub fn set_collocated_from_l0_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub fn slice_loop_filter_across_slices_enabled_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } + } + #[inline] + pub fn set_slice_loop_filter_across_slices_enabled_flag(&mut self, val: u32) { unsafe { - ::core::ptr::addr_of!((*ptr).difference_of_pic_nums_minus1) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH264RefPicMarkingEntry), - "::", - stringify!(difference_of_pic_nums_minus1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).long_term_pic_num) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH264RefPicMarkingEntry), - "::", - stringify!(long_term_pic_num) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).long_term_frame_idx) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH264RefPicMarkingEntry), - "::", - stringify!(long_term_frame_idx) - ) - ); - assert_eq!( + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub fn reserved(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 20u8) as u32) } + } + #[inline] + pub fn set_reserved(&mut self, val: u32) { unsafe { - ::core::ptr::addr_of!((*ptr).max_long_term_frame_idx_plus1) as usize - ptr as usize - }, - 10usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH264RefPicMarkingEntry), - "::", - stringify!(max_long_term_frame_idx_plus1) - ) - ); + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(12usize, 20u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + first_slice_segment_in_pic_flag: u32, + dependent_slice_segment_flag: u32, + slice_sao_luma_flag: u32, + slice_sao_chroma_flag: u32, + num_ref_idx_active_override_flag: u32, + mvd_l1_zero_flag: u32, + cabac_init_flag: u32, + cu_chroma_qp_offset_enabled_flag: u32, + deblocking_filter_override_flag: u32, + slice_deblocking_filter_disabled_flag: u32, + collocated_from_l0_flag: u32, + slice_loop_filter_across_slices_enabled_flag: u32, + reserved: u32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let first_slice_segment_in_pic_flag: u32 = + unsafe { ::core::mem::transmute(first_slice_segment_in_pic_flag) }; + first_slice_segment_in_pic_flag as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let dependent_slice_segment_flag: u32 = + unsafe { ::core::mem::transmute(dependent_slice_segment_flag) }; + dependent_slice_segment_flag as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let slice_sao_luma_flag: u32 = unsafe { ::core::mem::transmute(slice_sao_luma_flag) }; + slice_sao_luma_flag as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let slice_sao_chroma_flag: u32 = + unsafe { ::core::mem::transmute(slice_sao_chroma_flag) }; + slice_sao_chroma_flag as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let num_ref_idx_active_override_flag: u32 = + unsafe { ::core::mem::transmute(num_ref_idx_active_override_flag) }; + num_ref_idx_active_override_flag as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let mvd_l1_zero_flag: u32 = unsafe { ::core::mem::transmute(mvd_l1_zero_flag) }; + mvd_l1_zero_flag as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let cabac_init_flag: u32 = unsafe { ::core::mem::transmute(cabac_init_flag) }; + cabac_init_flag as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let cu_chroma_qp_offset_enabled_flag: u32 = + unsafe { ::core::mem::transmute(cu_chroma_qp_offset_enabled_flag) }; + cu_chroma_qp_offset_enabled_flag as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let deblocking_filter_override_flag: u32 = + unsafe { ::core::mem::transmute(deblocking_filter_override_flag) }; + deblocking_filter_override_flag as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let slice_deblocking_filter_disabled_flag: u32 = + unsafe { ::core::mem::transmute(slice_deblocking_filter_disabled_flag) }; + slice_deblocking_filter_disabled_flag as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let collocated_from_l0_flag: u32 = + unsafe { ::core::mem::transmute(collocated_from_l0_flag) }; + collocated_from_l0_flag as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let slice_loop_filter_across_slices_enabled_flag: u32 = + unsafe { ::core::mem::transmute(slice_loop_filter_across_slices_enabled_flag) }; + slice_loop_filter_across_slices_enabled_flag as u64 + }); + __bindgen_bitfield_unit.set(12usize, 20u8, { + let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit + } } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH264ReferenceListsInfo { - pub flags: StdVideoEncodeH264ReferenceListsInfoFlags, - pub num_ref_idx_l0_active_minus1: u8, - pub num_ref_idx_l1_active_minus1: u8, - pub RefPicList0: [u8; 32usize], - pub RefPicList1: [u8; 32usize], - pub refList0ModOpCount: u8, - pub refList1ModOpCount: u8, - pub refPicMarkingOpCount: u8, - pub reserved1: [u8; 7usize], - pub pRefList0ModOperations: *const StdVideoEncodeH264RefListModEntry, - pub pRefList1ModOperations: *const StdVideoEncodeH264RefListModEntry, - pub pRefPicMarkingOperations: *const StdVideoEncodeH264RefPicMarkingEntry, +pub struct StdVideoEncodeH265SliceSegmentHeader { + pub flags: StdVideoEncodeH265SliceSegmentHeaderFlags, + pub slice_type: StdVideoH265SliceType, + pub slice_segment_address: u32, + pub collocated_ref_idx: u8, + pub MaxNumMergeCand: u8, + pub slice_cb_qp_offset: i8, + pub slice_cr_qp_offset: i8, + pub slice_beta_offset_div2: i8, + pub slice_tc_offset_div2: i8, + pub slice_act_y_qp_offset: i8, + pub slice_act_cb_qp_offset: i8, + pub slice_act_cr_qp_offset: i8, + pub slice_qp_delta: i8, + pub reserved1: u16, + pub pWeightTable: *const StdVideoEncodeH265WeightTable, } #[test] -fn bindgen_test_layout_StdVideoEncodeH264ReferenceListsInfo() { - const UNINIT: ::core::mem::MaybeUninit = +fn bindgen_test_layout_StdVideoEncodeH265SliceSegmentHeader() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), - 104usize, + ::core::mem::size_of::(), + 32usize, concat!( "Size of: ", - stringify!(StdVideoEncodeH264ReferenceListsInfo) - ) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(StdVideoEncodeH264ReferenceListsInfo) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceListsInfo), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).num_ref_idx_l0_active_minus1) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceListsInfo), - "::", - stringify!(num_ref_idx_l0_active_minus1) - ) - ); - assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).num_ref_idx_l1_active_minus1) as usize - ptr as usize - }, - 5usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceListsInfo), - "::", - stringify!(num_ref_idx_l1_active_minus1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).RefPicList0) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceListsInfo), - "::", - stringify!(RefPicList0) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).RefPicList1) as usize - ptr as usize }, - 38usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceListsInfo), - "::", - stringify!(RefPicList1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).refList0ModOpCount) as usize - ptr as usize }, - 70usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceListsInfo), - "::", - stringify!(refList0ModOpCount) + stringify!(StdVideoEncodeH265SliceSegmentHeader) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).refList1ModOpCount) as usize - ptr as usize }, - 71usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceListsInfo), - "::", - stringify!(refList1ModOpCount) + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(StdVideoEncodeH265SliceSegmentHeader) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).refPicMarkingOpCount) as usize - ptr as usize }, - 72usize, + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 0usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceListsInfo), + stringify!(StdVideoEncodeH265SliceSegmentHeader), "::", - stringify!(refPicMarkingOpCount) + stringify!(flags) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 73usize, + unsafe { ::core::ptr::addr_of!((*ptr).slice_type) as usize - ptr as usize }, + 4usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceListsInfo), + stringify!(StdVideoEncodeH265SliceSegmentHeader), "::", - stringify!(reserved1) + stringify!(slice_type) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pRefList0ModOperations) as usize - ptr as usize }, - 80usize, + unsafe { ::core::ptr::addr_of!((*ptr).slice_segment_address) as usize - ptr as usize }, + 8usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceListsInfo), + stringify!(StdVideoEncodeH265SliceSegmentHeader), "::", - stringify!(pRefList0ModOperations) + stringify!(slice_segment_address) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pRefList1ModOperations) as usize - ptr as usize }, - 88usize, + unsafe { ::core::ptr::addr_of!((*ptr).collocated_ref_idx) as usize - ptr as usize }, + 12usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceListsInfo), + stringify!(StdVideoEncodeH265SliceSegmentHeader), "::", - stringify!(pRefList1ModOperations) + stringify!(collocated_ref_idx) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pRefPicMarkingOperations) as usize - ptr as usize }, - 96usize, + unsafe { ::core::ptr::addr_of!((*ptr).MaxNumMergeCand) as usize - ptr as usize }, + 13usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceListsInfo), + stringify!(StdVideoEncodeH265SliceSegmentHeader), "::", - stringify!(pRefPicMarkingOperations) + stringify!(MaxNumMergeCand) ) ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH264PictureInfo { - pub flags: StdVideoEncodeH264PictureInfoFlags, - pub seq_parameter_set_id: u8, - pub pic_parameter_set_id: u8, - pub idr_pic_id: u16, - pub primary_pic_type: StdVideoH264PictureType, - pub frame_num: u32, - pub PicOrderCnt: i32, - pub temporal_id: u8, - pub reserved1: [u8; 3usize], - pub pRefLists: *const StdVideoEncodeH264ReferenceListsInfo, -} -#[test] -fn bindgen_test_layout_StdVideoEncodeH264PictureInfo() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(StdVideoEncodeH264PictureInfo)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(StdVideoEncodeH264PictureInfo)) - ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 0usize, + unsafe { ::core::ptr::addr_of!((*ptr).slice_cb_qp_offset) as usize - ptr as usize }, + 14usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264PictureInfo), + stringify!(StdVideoEncodeH265SliceSegmentHeader), "::", - stringify!(flags) + stringify!(slice_cb_qp_offset) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).seq_parameter_set_id) as usize - ptr as usize }, - 4usize, + unsafe { ::core::ptr::addr_of!((*ptr).slice_cr_qp_offset) as usize - ptr as usize }, + 15usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264PictureInfo), + stringify!(StdVideoEncodeH265SliceSegmentHeader), "::", - stringify!(seq_parameter_set_id) + stringify!(slice_cr_qp_offset) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pic_parameter_set_id) as usize - ptr as usize }, - 5usize, + unsafe { ::core::ptr::addr_of!((*ptr).slice_beta_offset_div2) as usize - ptr as usize }, + 16usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264PictureInfo), + stringify!(StdVideoEncodeH265SliceSegmentHeader), "::", - stringify!(pic_parameter_set_id) + stringify!(slice_beta_offset_div2) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).idr_pic_id) as usize - ptr as usize }, - 6usize, + unsafe { ::core::ptr::addr_of!((*ptr).slice_tc_offset_div2) as usize - ptr as usize }, + 17usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264PictureInfo), + stringify!(StdVideoEncodeH265SliceSegmentHeader), "::", - stringify!(idr_pic_id) + stringify!(slice_tc_offset_div2) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).primary_pic_type) as usize - ptr as usize }, - 8usize, + unsafe { ::core::ptr::addr_of!((*ptr).slice_act_y_qp_offset) as usize - ptr as usize }, + 18usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264PictureInfo), + stringify!(StdVideoEncodeH265SliceSegmentHeader), "::", - stringify!(primary_pic_type) + stringify!(slice_act_y_qp_offset) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).frame_num) as usize - ptr as usize }, - 12usize, + unsafe { ::core::ptr::addr_of!((*ptr).slice_act_cb_qp_offset) as usize - ptr as usize }, + 19usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264PictureInfo), + stringify!(StdVideoEncodeH265SliceSegmentHeader), "::", - stringify!(frame_num) + stringify!(slice_act_cb_qp_offset) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).PicOrderCnt) as usize - ptr as usize }, - 16usize, + unsafe { ::core::ptr::addr_of!((*ptr).slice_act_cr_qp_offset) as usize - ptr as usize }, + 20usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264PictureInfo), + stringify!(StdVideoEncodeH265SliceSegmentHeader), "::", - stringify!(PicOrderCnt) + stringify!(slice_act_cr_qp_offset) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).temporal_id) as usize - ptr as usize }, - 20usize, + unsafe { ::core::ptr::addr_of!((*ptr).slice_qp_delta) as usize - ptr as usize }, + 21usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264PictureInfo), + stringify!(StdVideoEncodeH265SliceSegmentHeader), "::", - stringify!(temporal_id) + stringify!(slice_qp_delta) ) ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 21usize, + 22usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264PictureInfo), + stringify!(StdVideoEncodeH265SliceSegmentHeader), "::", stringify!(reserved1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pRefLists) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).pWeightTable) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264PictureInfo), + stringify!(StdVideoEncodeH265SliceSegmentHeader), "::", - stringify!(pRefLists) + stringify!(pWeightTable) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH264ReferenceInfo { - pub flags: StdVideoEncodeH264ReferenceInfoFlags, - pub primary_pic_type: StdVideoH264PictureType, - pub FrameNum: u32, - pub PicOrderCnt: i32, - pub long_term_pic_num: u16, - pub long_term_frame_idx: u16, - pub temporal_id: u8, +pub struct StdVideoEncodeH265ReferenceListsInfoFlags { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, } #[test] -fn bindgen_test_layout_StdVideoEncodeH264ReferenceInfo() { - const UNINIT: ::core::mem::MaybeUninit = +fn bindgen_test_layout_StdVideoEncodeH265ReferenceListsInfoFlags() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!( + "Size of: ", + stringify!(StdVideoEncodeH265ReferenceListsInfoFlags) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(StdVideoEncodeH265ReferenceListsInfoFlags) + ) + ); +} +impl StdVideoEncodeH265ReferenceListsInfoFlags { + #[inline] + pub fn ref_pic_list_modification_flag_l0(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_ref_pic_list_modification_flag_l0(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn ref_pic_list_modification_flag_l1(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_ref_pic_list_modification_flag_l1(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn reserved(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } + } + #[inline] + pub fn set_reserved(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 30u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + ref_pic_list_modification_flag_l0: u32, + ref_pic_list_modification_flag_l1: u32, + reserved: u32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let ref_pic_list_modification_flag_l0: u32 = + unsafe { ::core::mem::transmute(ref_pic_list_modification_flag_l0) }; + ref_pic_list_modification_flag_l0 as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let ref_pic_list_modification_flag_l1: u32 = + unsafe { ::core::mem::transmute(ref_pic_list_modification_flag_l1) }; + ref_pic_list_modification_flag_l1 as u64 + }); + __bindgen_bitfield_unit.set(2usize, 30u8, { + let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoEncodeH265ReferenceListsInfo { + pub flags: StdVideoEncodeH265ReferenceListsInfoFlags, + pub num_ref_idx_l0_active_minus1: u8, + pub num_ref_idx_l1_active_minus1: u8, + pub RefPicList0: [u8; 15usize], + pub RefPicList1: [u8; 15usize], + pub list_entry_l0: [u8; 15usize], + pub list_entry_l1: [u8; 15usize], +} +#[test] +fn bindgen_test_layout_StdVideoEncodeH265ReferenceListsInfo() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(StdVideoEncodeH264ReferenceInfo)) + assert_eq!( + ::core::mem::size_of::(), + 68usize, + concat!( + "Size of: ", + stringify!(StdVideoEncodeH265ReferenceListsInfo) + ) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 4usize, - concat!("Alignment of ", stringify!(StdVideoEncodeH264ReferenceInfo)) + concat!( + "Alignment of ", + stringify!(StdVideoEncodeH265ReferenceListsInfo) + ) ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceInfo), + stringify!(StdVideoEncodeH265ReferenceListsInfo), "::", stringify!(flags) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).primary_pic_type) as usize - ptr as usize }, + unsafe { + ::core::ptr::addr_of!((*ptr).num_ref_idx_l0_active_minus1) as usize - ptr as usize + }, 4usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceInfo), + stringify!(StdVideoEncodeH265ReferenceListsInfo), "::", - stringify!(primary_pic_type) + stringify!(num_ref_idx_l0_active_minus1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).FrameNum) as usize - ptr as usize }, - 8usize, + unsafe { + ::core::ptr::addr_of!((*ptr).num_ref_idx_l1_active_minus1) as usize - ptr as usize + }, + 5usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceInfo), + stringify!(StdVideoEncodeH265ReferenceListsInfo), "::", - stringify!(FrameNum) + stringify!(num_ref_idx_l1_active_minus1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).PicOrderCnt) as usize - ptr as usize }, - 12usize, + unsafe { ::core::ptr::addr_of!((*ptr).RefPicList0) as usize - ptr as usize }, + 6usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceInfo), + stringify!(StdVideoEncodeH265ReferenceListsInfo), "::", - stringify!(PicOrderCnt) + stringify!(RefPicList0) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).long_term_pic_num) as usize - ptr as usize }, - 16usize, + unsafe { ::core::ptr::addr_of!((*ptr).RefPicList1) as usize - ptr as usize }, + 21usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceInfo), + stringify!(StdVideoEncodeH265ReferenceListsInfo), "::", - stringify!(long_term_pic_num) + stringify!(RefPicList1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).long_term_frame_idx) as usize - ptr as usize }, - 18usize, + unsafe { ::core::ptr::addr_of!((*ptr).list_entry_l0) as usize - ptr as usize }, + 36usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceInfo), + stringify!(StdVideoEncodeH265ReferenceListsInfo), "::", - stringify!(long_term_frame_idx) + stringify!(list_entry_l0) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).temporal_id) as usize - ptr as usize }, - 20usize, + unsafe { ::core::ptr::addr_of!((*ptr).list_entry_l1) as usize - ptr as usize }, + 51usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264ReferenceInfo), + stringify!(StdVideoEncodeH265ReferenceListsInfo), "::", - stringify!(temporal_id) + stringify!(list_entry_l1) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoEncodeH265PictureInfoFlags { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout_StdVideoEncodeH265PictureInfoFlags() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(StdVideoEncodeH265PictureInfoFlags)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(StdVideoEncodeH265PictureInfoFlags) ) ); } +impl StdVideoEncodeH265PictureInfoFlags { + #[inline] + pub fn is_reference(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_reference(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn IrapPicFlag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_IrapPicFlag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn used_for_long_term_reference(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_used_for_long_term_reference(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn discardable_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_discardable_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub fn cross_layer_bla_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_cross_layer_bla_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub fn pic_output_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_pic_output_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub fn no_output_of_prior_pics_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_no_output_of_prior_pics_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub fn short_term_ref_pic_set_sps_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_short_term_ref_pic_set_sps_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub fn slice_temporal_mvp_enabled_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } + } + #[inline] + pub fn set_slice_temporal_mvp_enabled_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub fn reserved(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 23u8) as u32) } + } + #[inline] + pub fn set_reserved(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(9usize, 23u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + is_reference: u32, + IrapPicFlag: u32, + used_for_long_term_reference: u32, + discardable_flag: u32, + cross_layer_bla_flag: u32, + pic_output_flag: u32, + no_output_of_prior_pics_flag: u32, + short_term_ref_pic_set_sps_flag: u32, + slice_temporal_mvp_enabled_flag: u32, + reserved: u32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let is_reference: u32 = unsafe { ::core::mem::transmute(is_reference) }; + is_reference as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let IrapPicFlag: u32 = unsafe { ::core::mem::transmute(IrapPicFlag) }; + IrapPicFlag as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let used_for_long_term_reference: u32 = + unsafe { ::core::mem::transmute(used_for_long_term_reference) }; + used_for_long_term_reference as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let discardable_flag: u32 = unsafe { ::core::mem::transmute(discardable_flag) }; + discardable_flag as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let cross_layer_bla_flag: u32 = unsafe { ::core::mem::transmute(cross_layer_bla_flag) }; + cross_layer_bla_flag as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let pic_output_flag: u32 = unsafe { ::core::mem::transmute(pic_output_flag) }; + pic_output_flag as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let no_output_of_prior_pics_flag: u32 = + unsafe { ::core::mem::transmute(no_output_of_prior_pics_flag) }; + no_output_of_prior_pics_flag as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let short_term_ref_pic_set_sps_flag: u32 = + unsafe { ::core::mem::transmute(short_term_ref_pic_set_sps_flag) }; + short_term_ref_pic_set_sps_flag as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let slice_temporal_mvp_enabled_flag: u32 = + unsafe { ::core::mem::transmute(slice_temporal_mvp_enabled_flag) }; + slice_temporal_mvp_enabled_flag as u64 + }); + __bindgen_bitfield_unit.set(9usize, 23u8, { + let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit + } +} #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH264SliceHeader { - pub flags: StdVideoEncodeH264SliceHeaderFlags, - pub first_mb_in_slice: u32, - pub slice_type: StdVideoH264SliceType, - pub slice_alpha_c0_offset_div2: i8, - pub slice_beta_offset_div2: i8, - pub slice_qp_delta: i8, - pub reserved1: u8, - pub cabac_init_idc: StdVideoH264CabacInitIdc, - pub disable_deblocking_filter_idc: StdVideoH264DisableDeblockingFilterIdc, - pub pWeightTable: *const StdVideoEncodeH264WeightTable, +pub struct StdVideoEncodeH265LongTermRefPics { + pub num_long_term_sps: u8, + pub num_long_term_pics: u8, + pub lt_idx_sps: [u8; 32usize], + pub poc_lsb_lt: [u8; 16usize], + pub used_by_curr_pic_lt_flag: u16, + pub delta_poc_msb_present_flag: [u8; 48usize], + pub delta_poc_msb_cycle_lt: [u8; 48usize], } #[test] -fn bindgen_test_layout_StdVideoEncodeH264SliceHeader() { - const UNINIT: ::core::mem::MaybeUninit = +fn bindgen_test_layout_StdVideoEncodeH265LongTermRefPics() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(StdVideoEncodeH264SliceHeader)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(StdVideoEncodeH264SliceHeader)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH264SliceHeader), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).first_mb_in_slice) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH264SliceHeader), - "::", - stringify!(first_mb_in_slice) - ) + ::core::mem::size_of::(), + 148usize, + concat!("Size of: ", stringify!(StdVideoEncodeH265LongTermRefPics)) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).slice_type) as usize - ptr as usize }, - 8usize, + ::core::mem::align_of::(), + 2usize, concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH264SliceHeader), - "::", - stringify!(slice_type) + "Alignment of ", + stringify!(StdVideoEncodeH265LongTermRefPics) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).slice_alpha_c0_offset_div2) as usize - ptr as usize }, - 12usize, + unsafe { ::core::ptr::addr_of!((*ptr).num_long_term_sps) as usize - ptr as usize }, + 0usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264SliceHeader), + stringify!(StdVideoEncodeH265LongTermRefPics), "::", - stringify!(slice_alpha_c0_offset_div2) + stringify!(num_long_term_sps) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).slice_beta_offset_div2) as usize - ptr as usize }, - 13usize, + unsafe { ::core::ptr::addr_of!((*ptr).num_long_term_pics) as usize - ptr as usize }, + 1usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264SliceHeader), + stringify!(StdVideoEncodeH265LongTermRefPics), "::", - stringify!(slice_beta_offset_div2) + stringify!(num_long_term_pics) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).slice_qp_delta) as usize - ptr as usize }, - 14usize, + unsafe { ::core::ptr::addr_of!((*ptr).lt_idx_sps) as usize - ptr as usize }, + 2usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264SliceHeader), + stringify!(StdVideoEncodeH265LongTermRefPics), "::", - stringify!(slice_qp_delta) + stringify!(lt_idx_sps) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 15usize, + unsafe { ::core::ptr::addr_of!((*ptr).poc_lsb_lt) as usize - ptr as usize }, + 34usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264SliceHeader), + stringify!(StdVideoEncodeH265LongTermRefPics), "::", - stringify!(reserved1) + stringify!(poc_lsb_lt) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).cabac_init_idc) as usize - ptr as usize }, - 16usize, + unsafe { ::core::ptr::addr_of!((*ptr).used_by_curr_pic_lt_flag) as usize - ptr as usize }, + 50usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264SliceHeader), + stringify!(StdVideoEncodeH265LongTermRefPics), "::", - stringify!(cabac_init_idc) + stringify!(used_by_curr_pic_lt_flag) ) ); assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).disable_deblocking_filter_idc) as usize - ptr as usize - }, - 20usize, + unsafe { ::core::ptr::addr_of!((*ptr).delta_poc_msb_present_flag) as usize - ptr as usize }, + 52usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264SliceHeader), + stringify!(StdVideoEncodeH265LongTermRefPics), "::", - stringify!(disable_deblocking_filter_idc) + stringify!(delta_poc_msb_present_flag) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pWeightTable) as usize - ptr as usize }, - 24usize, + unsafe { ::core::ptr::addr_of!((*ptr).delta_poc_msb_cycle_lt) as usize - ptr as usize }, + 100usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH264SliceHeader), + stringify!(StdVideoEncodeH265LongTermRefPics), "::", - stringify!(pWeightTable) + stringify!(delta_poc_msb_cycle_lt) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH265WeightTableFlags { - pub luma_weight_l0_flag: u16, - pub chroma_weight_l0_flag: u16, - pub luma_weight_l1_flag: u16, - pub chroma_weight_l1_flag: u16, +pub struct StdVideoEncodeH265PictureInfo { + pub flags: StdVideoEncodeH265PictureInfoFlags, + pub pic_type: StdVideoH265PictureType, + pub sps_video_parameter_set_id: u8, + pub pps_seq_parameter_set_id: u8, + pub pps_pic_parameter_set_id: u8, + pub short_term_ref_pic_set_idx: u8, + pub PicOrderCntVal: i32, + pub TemporalId: u8, + pub reserved1: [u8; 7usize], + pub pRefLists: *const StdVideoEncodeH265ReferenceListsInfo, + pub pShortTermRefPicSet: *const StdVideoH265ShortTermRefPicSet, + pub pLongTermRefPics: *const StdVideoEncodeH265LongTermRefPics, } #[test] -fn bindgen_test_layout_StdVideoEncodeH265WeightTableFlags() { - const UNINIT: ::core::mem::MaybeUninit = +fn bindgen_test_layout_StdVideoEncodeH265PictureInfo() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(StdVideoEncodeH265WeightTableFlags)) + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(StdVideoEncodeH265PictureInfo)) ); assert_eq!( - ::core::mem::align_of::(), - 2usize, - concat!( - "Alignment of ", - stringify!(StdVideoEncodeH265WeightTableFlags) - ) + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(StdVideoEncodeH265PictureInfo)) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).luma_weight_l0_flag) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265WeightTableFlags), - "::", - stringify!(luma_weight_l0_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chroma_weight_l0_flag) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH265WeightTableFlags), + stringify!(StdVideoEncodeH265PictureInfo), "::", - stringify!(chroma_weight_l0_flag) + stringify!(flags) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).luma_weight_l1_flag) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).pic_type) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265WeightTableFlags), - "::", - stringify!(luma_weight_l1_flag) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).chroma_weight_l1_flag) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH265WeightTableFlags), - "::", - stringify!(chroma_weight_l1_flag) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH265WeightTable { - pub flags: StdVideoEncodeH265WeightTableFlags, - pub luma_log2_weight_denom: u8, - pub delta_chroma_log2_weight_denom: i8, - pub delta_luma_weight_l0: [i8; 15usize], - pub luma_offset_l0: [i8; 15usize], - pub delta_chroma_weight_l0: [[i8; 2usize]; 15usize], - pub delta_chroma_offset_l0: [[i8; 2usize]; 15usize], - pub delta_luma_weight_l1: [i8; 15usize], - pub luma_offset_l1: [i8; 15usize], - pub delta_chroma_weight_l1: [[i8; 2usize]; 15usize], - pub delta_chroma_offset_l1: [[i8; 2usize]; 15usize], -} -#[test] -fn bindgen_test_layout_StdVideoEncodeH265WeightTable() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 190usize, - concat!("Size of: ", stringify!(StdVideoEncodeH265WeightTable)) - ); - assert_eq!( - ::core::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(StdVideoEncodeH265WeightTable)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH265WeightTable), + stringify!(StdVideoEncodeH265PictureInfo), "::", - stringify!(flags) + stringify!(pic_type) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).luma_log2_weight_denom) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).sps_video_parameter_set_id) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265WeightTable), + stringify!(StdVideoEncodeH265PictureInfo), "::", - stringify!(luma_log2_weight_denom) + stringify!(sps_video_parameter_set_id) ) ); assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).delta_chroma_log2_weight_denom) as usize - ptr as usize - }, + unsafe { ::core::ptr::addr_of!((*ptr).pps_seq_parameter_set_id) as usize - ptr as usize }, 9usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265WeightTable), + stringify!(StdVideoEncodeH265PictureInfo), "::", - stringify!(delta_chroma_log2_weight_denom) + stringify!(pps_seq_parameter_set_id) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).delta_luma_weight_l0) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).pps_pic_parameter_set_id) as usize - ptr as usize }, 10usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265WeightTable), + stringify!(StdVideoEncodeH265PictureInfo), "::", - stringify!(delta_luma_weight_l0) + stringify!(pps_pic_parameter_set_id) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).luma_offset_l0) as usize - ptr as usize }, - 25usize, + unsafe { ::core::ptr::addr_of!((*ptr).short_term_ref_pic_set_idx) as usize - ptr as usize }, + 11usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265WeightTable), + stringify!(StdVideoEncodeH265PictureInfo), "::", - stringify!(luma_offset_l0) + stringify!(short_term_ref_pic_set_idx) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).delta_chroma_weight_l0) as usize - ptr as usize }, - 40usize, + unsafe { ::core::ptr::addr_of!((*ptr).PicOrderCntVal) as usize - ptr as usize }, + 12usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265WeightTable), + stringify!(StdVideoEncodeH265PictureInfo), "::", - stringify!(delta_chroma_weight_l0) + stringify!(PicOrderCntVal) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).delta_chroma_offset_l0) as usize - ptr as usize }, - 70usize, + unsafe { ::core::ptr::addr_of!((*ptr).TemporalId) as usize - ptr as usize }, + 16usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265WeightTable), + stringify!(StdVideoEncodeH265PictureInfo), "::", - stringify!(delta_chroma_offset_l0) + stringify!(TemporalId) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).delta_luma_weight_l1) as usize - ptr as usize }, - 100usize, + unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, + 17usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265WeightTable), + stringify!(StdVideoEncodeH265PictureInfo), "::", - stringify!(delta_luma_weight_l1) + stringify!(reserved1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).luma_offset_l1) as usize - ptr as usize }, - 115usize, + unsafe { ::core::ptr::addr_of!((*ptr).pRefLists) as usize - ptr as usize }, + 24usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265WeightTable), + stringify!(StdVideoEncodeH265PictureInfo), "::", - stringify!(luma_offset_l1) + stringify!(pRefLists) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).delta_chroma_weight_l1) as usize - ptr as usize }, - 130usize, + unsafe { ::core::ptr::addr_of!((*ptr).pShortTermRefPicSet) as usize - ptr as usize }, + 32usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265WeightTable), + stringify!(StdVideoEncodeH265PictureInfo), "::", - stringify!(delta_chroma_weight_l1) + stringify!(pShortTermRefPicSet) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).delta_chroma_offset_l1) as usize - ptr as usize }, - 160usize, + unsafe { ::core::ptr::addr_of!((*ptr).pLongTermRefPics) as usize - ptr as usize }, + 40usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265WeightTable), + stringify!(StdVideoEncodeH265PictureInfo), "::", - stringify!(delta_chroma_offset_l1) + stringify!(pLongTermRefPics) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH265SliceSegmentHeaderFlags { +pub struct StdVideoEncodeH265ReferenceInfoFlags { pub _bitfield_align_1: [u32; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, } #[test] -fn bindgen_test_layout_StdVideoEncodeH265SliceSegmentHeaderFlags() { +fn bindgen_test_layout_StdVideoEncodeH265ReferenceInfoFlags() { assert_eq!( - ::core::mem::size_of::(), + ::core::mem::size_of::(), 4usize, concat!( "Size of: ", - stringify!(StdVideoEncodeH265SliceSegmentHeaderFlags) + stringify!(StdVideoEncodeH265ReferenceInfoFlags) ) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 4usize, concat!( "Alignment of ", - stringify!(StdVideoEncodeH265SliceSegmentHeaderFlags) + stringify!(StdVideoEncodeH265ReferenceInfoFlags) ) ); } -impl StdVideoEncodeH265SliceSegmentHeaderFlags { +impl StdVideoEncodeH265ReferenceInfoFlags { #[inline] - pub fn first_slice_segment_in_pic_flag(&self) -> u32 { + pub fn used_for_long_term_reference(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } } #[inline] - pub fn set_first_slice_segment_in_pic_flag(&mut self, val: u32) { + pub fn set_used_for_long_term_reference(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn dependent_slice_segment_flag(&self) -> u32 { + pub fn unused_for_reference(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } } #[inline] - pub fn set_dependent_slice_segment_flag(&mut self, val: u32) { + pub fn set_unused_for_reference(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(1usize, 1u8, val as u64) } } #[inline] - pub fn slice_sao_luma_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - #[inline] - pub fn set_slice_sao_luma_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn slice_sao_chroma_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - #[inline] - pub fn set_slice_sao_chroma_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn num_ref_idx_active_override_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - #[inline] - pub fn set_num_ref_idx_active_override_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - #[inline] - pub fn mvd_l1_zero_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_mvd_l1_zero_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn cabac_init_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_cabac_init_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn cu_chroma_qp_offset_enabled_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_cu_chroma_qp_offset_enabled_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn deblocking_filter_override_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } - } - #[inline] - pub fn set_deblocking_filter_override_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn slice_deblocking_filter_disabled_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } - } - #[inline] - pub fn set_slice_deblocking_filter_disabled_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) - } - } - #[inline] - pub fn collocated_from_l0_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) } - } - #[inline] - pub fn set_collocated_from_l0_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(10usize, 1u8, val as u64) - } - } - #[inline] - pub fn slice_loop_filter_across_slices_enabled_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } - } - #[inline] - pub fn set_slice_loop_filter_across_slices_enabled_flag(&mut self, val: u32) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 20u8) as u32) } + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } } #[inline] pub fn set_reserved(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(12usize, 20u8, val as u64) + self._bitfield_1.set(2usize, 30u8, val as u64) } } #[inline] pub fn new_bitfield_1( - first_slice_segment_in_pic_flag: u32, - dependent_slice_segment_flag: u32, - slice_sao_luma_flag: u32, - slice_sao_chroma_flag: u32, - num_ref_idx_active_override_flag: u32, - mvd_l1_zero_flag: u32, - cabac_init_flag: u32, - cu_chroma_qp_offset_enabled_flag: u32, - deblocking_filter_override_flag: u32, - slice_deblocking_filter_disabled_flag: u32, - collocated_from_l0_flag: u32, - slice_loop_filter_across_slices_enabled_flag: u32, + used_for_long_term_reference: u32, + unused_for_reference: u32, reserved: u32, ) -> __BindgenBitfieldUnit<[u8; 4usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); __bindgen_bitfield_unit.set(0usize, 1u8, { - let first_slice_segment_in_pic_flag: u32 = - unsafe { ::core::mem::transmute(first_slice_segment_in_pic_flag) }; - first_slice_segment_in_pic_flag as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let dependent_slice_segment_flag: u32 = - unsafe { ::core::mem::transmute(dependent_slice_segment_flag) }; - dependent_slice_segment_flag as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let slice_sao_luma_flag: u32 = unsafe { ::core::mem::transmute(slice_sao_luma_flag) }; - slice_sao_luma_flag as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let slice_sao_chroma_flag: u32 = - unsafe { ::core::mem::transmute(slice_sao_chroma_flag) }; - slice_sao_chroma_flag as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let num_ref_idx_active_override_flag: u32 = - unsafe { ::core::mem::transmute(num_ref_idx_active_override_flag) }; - num_ref_idx_active_override_flag as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let mvd_l1_zero_flag: u32 = unsafe { ::core::mem::transmute(mvd_l1_zero_flag) }; - mvd_l1_zero_flag as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let cabac_init_flag: u32 = unsafe { ::core::mem::transmute(cabac_init_flag) }; - cabac_init_flag as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let cu_chroma_qp_offset_enabled_flag: u32 = - unsafe { ::core::mem::transmute(cu_chroma_qp_offset_enabled_flag) }; - cu_chroma_qp_offset_enabled_flag as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let deblocking_filter_override_flag: u32 = - unsafe { ::core::mem::transmute(deblocking_filter_override_flag) }; - deblocking_filter_override_flag as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let slice_deblocking_filter_disabled_flag: u32 = - unsafe { ::core::mem::transmute(slice_deblocking_filter_disabled_flag) }; - slice_deblocking_filter_disabled_flag as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let collocated_from_l0_flag: u32 = - unsafe { ::core::mem::transmute(collocated_from_l0_flag) }; - collocated_from_l0_flag as u64 + let used_for_long_term_reference: u32 = + unsafe { ::core::mem::transmute(used_for_long_term_reference) }; + used_for_long_term_reference as u64 }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let slice_loop_filter_across_slices_enabled_flag: u32 = - unsafe { ::core::mem::transmute(slice_loop_filter_across_slices_enabled_flag) }; - slice_loop_filter_across_slices_enabled_flag as u64 + __bindgen_bitfield_unit.set(1usize, 1u8, { + let unused_for_reference: u32 = unsafe { ::core::mem::transmute(unused_for_reference) }; + unused_for_reference as u64 }); - __bindgen_bitfield_unit.set(12usize, 20u8, { + __bindgen_bitfield_unit.set(2usize, 30u8, { let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; reserved as u64 }); @@ -11505,272 +13363,291 @@ impl StdVideoEncodeH265SliceSegmentHeaderFlags { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH265SliceSegmentHeader { - pub flags: StdVideoEncodeH265SliceSegmentHeaderFlags, - pub slice_type: StdVideoH265SliceType, - pub slice_segment_address: u32, - pub collocated_ref_idx: u8, - pub MaxNumMergeCand: u8, - pub slice_cb_qp_offset: i8, - pub slice_cr_qp_offset: i8, - pub slice_beta_offset_div2: i8, - pub slice_tc_offset_div2: i8, - pub slice_act_y_qp_offset: i8, - pub slice_act_cb_qp_offset: i8, - pub slice_act_cr_qp_offset: i8, - pub slice_qp_delta: i8, - pub reserved1: u16, - pub pWeightTable: *const StdVideoEncodeH265WeightTable, +pub struct StdVideoEncodeH265ReferenceInfo { + pub flags: StdVideoEncodeH265ReferenceInfoFlags, + pub pic_type: StdVideoH265PictureType, + pub PicOrderCntVal: i32, + pub TemporalId: u8, } #[test] -fn bindgen_test_layout_StdVideoEncodeH265SliceSegmentHeader() { - const UNINIT: ::core::mem::MaybeUninit = +fn bindgen_test_layout_StdVideoEncodeH265ReferenceInfo() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(StdVideoEncodeH265SliceSegmentHeader) - ) + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(StdVideoEncodeH265ReferenceInfo)) ); assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(StdVideoEncodeH265SliceSegmentHeader) - ) + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(StdVideoEncodeH265ReferenceInfo)) ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265SliceSegmentHeader), + stringify!(StdVideoEncodeH265ReferenceInfo), "::", stringify!(flags) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).slice_type) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).pic_type) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265SliceSegmentHeader), + stringify!(StdVideoEncodeH265ReferenceInfo), "::", - stringify!(slice_type) + stringify!(pic_type) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).slice_segment_address) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).PicOrderCntVal) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265SliceSegmentHeader), + stringify!(StdVideoEncodeH265ReferenceInfo), "::", - stringify!(slice_segment_address) + stringify!(PicOrderCntVal) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).collocated_ref_idx) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).TemporalId) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265SliceSegmentHeader), + stringify!(StdVideoEncodeH265ReferenceInfo), "::", - stringify!(collocated_ref_idx) + stringify!(TemporalId) ) ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoEncodeAV1DecoderModelInfo { + pub buffer_delay_length_minus_1: u8, + pub buffer_removal_time_length_minus_1: u8, + pub frame_presentation_time_length_minus_1: u8, + pub reserved1: u8, + pub num_units_in_decoding_tick: u32, +} +#[test] +fn bindgen_test_layout_StdVideoEncodeAV1DecoderModelInfo() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).MaxNumMergeCand) as usize - ptr as usize }, - 13usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH265SliceSegmentHeader), - "::", - stringify!(MaxNumMergeCand) - ) + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(StdVideoEncodeAV1DecoderModelInfo)) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).slice_cb_qp_offset) as usize - ptr as usize }, - 14usize, + ::core::mem::align_of::(), + 4usize, concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH265SliceSegmentHeader), - "::", - stringify!(slice_cb_qp_offset) + "Alignment of ", + stringify!(StdVideoEncodeAV1DecoderModelInfo) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).slice_cr_qp_offset) as usize - ptr as usize }, - 15usize, + unsafe { + ::core::ptr::addr_of!((*ptr).buffer_delay_length_minus_1) as usize - ptr as usize + }, + 0usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265SliceSegmentHeader), + stringify!(StdVideoEncodeAV1DecoderModelInfo), "::", - stringify!(slice_cr_qp_offset) + stringify!(buffer_delay_length_minus_1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).slice_beta_offset_div2) as usize - ptr as usize }, - 16usize, + unsafe { + ::core::ptr::addr_of!((*ptr).buffer_removal_time_length_minus_1) as usize - ptr as usize + }, + 1usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265SliceSegmentHeader), + stringify!(StdVideoEncodeAV1DecoderModelInfo), "::", - stringify!(slice_beta_offset_div2) + stringify!(buffer_removal_time_length_minus_1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).slice_tc_offset_div2) as usize - ptr as usize }, - 17usize, + unsafe { + ::core::ptr::addr_of!((*ptr).frame_presentation_time_length_minus_1) as usize + - ptr as usize + }, + 2usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265SliceSegmentHeader), + stringify!(StdVideoEncodeAV1DecoderModelInfo), "::", - stringify!(slice_tc_offset_div2) + stringify!(frame_presentation_time_length_minus_1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).slice_act_y_qp_offset) as usize - ptr as usize }, - 18usize, + unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, + 3usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265SliceSegmentHeader), + stringify!(StdVideoEncodeAV1DecoderModelInfo), "::", - stringify!(slice_act_y_qp_offset) + stringify!(reserved1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).slice_act_cb_qp_offset) as usize - ptr as usize }, - 19usize, + unsafe { ::core::ptr::addr_of!((*ptr).num_units_in_decoding_tick) as usize - ptr as usize }, + 4usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265SliceSegmentHeader), + stringify!(StdVideoEncodeAV1DecoderModelInfo), "::", - stringify!(slice_act_cb_qp_offset) + stringify!(num_units_in_decoding_tick) ) ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdVideoEncodeAV1ExtensionHeader { + pub temporal_id: u8, + pub spatial_id: u8, +} +#[test] +fn bindgen_test_layout_StdVideoEncodeAV1ExtensionHeader() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).slice_act_cr_qp_offset) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH265SliceSegmentHeader), - "::", - stringify!(slice_act_cr_qp_offset) - ) + ::core::mem::size_of::(), + 2usize, + concat!("Size of: ", stringify!(StdVideoEncodeAV1ExtensionHeader)) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).slice_qp_delta) as usize - ptr as usize }, - 21usize, + ::core::mem::align_of::(), + 1usize, concat!( - "Offset of field: ", - stringify!(StdVideoEncodeH265SliceSegmentHeader), - "::", - stringify!(slice_qp_delta) + "Alignment of ", + stringify!(StdVideoEncodeAV1ExtensionHeader) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 22usize, + unsafe { ::core::ptr::addr_of!((*ptr).temporal_id) as usize - ptr as usize }, + 0usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265SliceSegmentHeader), + stringify!(StdVideoEncodeAV1ExtensionHeader), "::", - stringify!(reserved1) + stringify!(temporal_id) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pWeightTable) as usize - ptr as usize }, - 24usize, + unsafe { ::core::ptr::addr_of!((*ptr).spatial_id) as usize - ptr as usize }, + 1usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265SliceSegmentHeader), + stringify!(StdVideoEncodeAV1ExtensionHeader), "::", - stringify!(pWeightTable) + stringify!(spatial_id) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH265ReferenceListsInfoFlags { +pub struct StdVideoEncodeAV1OperatingPointInfoFlags { pub _bitfield_align_1: [u32; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, } #[test] -fn bindgen_test_layout_StdVideoEncodeH265ReferenceListsInfoFlags() { +fn bindgen_test_layout_StdVideoEncodeAV1OperatingPointInfoFlags() { assert_eq!( - ::core::mem::size_of::(), + ::core::mem::size_of::(), 4usize, concat!( "Size of: ", - stringify!(StdVideoEncodeH265ReferenceListsInfoFlags) + stringify!(StdVideoEncodeAV1OperatingPointInfoFlags) ) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 4usize, concat!( "Alignment of ", - stringify!(StdVideoEncodeH265ReferenceListsInfoFlags) + stringify!(StdVideoEncodeAV1OperatingPointInfoFlags) ) ); } -impl StdVideoEncodeH265ReferenceListsInfoFlags { +impl StdVideoEncodeAV1OperatingPointInfoFlags { #[inline] - pub fn ref_pic_list_modification_flag_l0(&self) -> u32 { + pub fn decoder_model_present_for_this_op(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } } #[inline] - pub fn set_ref_pic_list_modification_flag_l0(&mut self, val: u32) { + pub fn set_decoder_model_present_for_this_op(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn ref_pic_list_modification_flag_l1(&self) -> u32 { + pub fn low_delay_mode_flag(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } } #[inline] - pub fn set_ref_pic_list_modification_flag_l1(&mut self, val: u32) { + pub fn set_low_delay_mode_flag(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(1usize, 1u8, val as u64) } } #[inline] + pub fn initial_display_delay_present_for_this_op(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_initial_display_delay_present_for_this_op(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) } } #[inline] pub fn set_reserved(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 30u8, val as u64) + self._bitfield_1.set(3usize, 29u8, val as u64) } } #[inline] pub fn new_bitfield_1( - ref_pic_list_modification_flag_l0: u32, - ref_pic_list_modification_flag_l1: u32, + decoder_model_present_for_this_op: u32, + low_delay_mode_flag: u32, + initial_display_delay_present_for_this_op: u32, reserved: u32, ) -> __BindgenBitfieldUnit<[u8; 4usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); __bindgen_bitfield_unit.set(0usize, 1u8, { - let ref_pic_list_modification_flag_l0: u32 = - unsafe { ::core::mem::transmute(ref_pic_list_modification_flag_l0) }; - ref_pic_list_modification_flag_l0 as u64 + let decoder_model_present_for_this_op: u32 = + unsafe { ::core::mem::transmute(decoder_model_present_for_this_op) }; + decoder_model_present_for_this_op as u64 }); __bindgen_bitfield_unit.set(1usize, 1u8, { - let ref_pic_list_modification_flag_l1: u32 = - unsafe { ::core::mem::transmute(ref_pic_list_modification_flag_l1) }; - ref_pic_list_modification_flag_l1 as u64 + let low_delay_mode_flag: u32 = unsafe { ::core::mem::transmute(low_delay_mode_flag) }; + low_delay_mode_flag as u64 }); - __bindgen_bitfield_unit.set(2usize, 30u8, { + __bindgen_bitfield_unit.set(2usize, 1u8, { + let initial_display_delay_present_for_this_op: u32 = + unsafe { ::core::mem::transmute(initial_display_delay_present_for_this_op) }; + initial_display_delay_present_for_this_op as u64 + }); + __bindgen_bitfield_unit.set(3usize, 29u8, { let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; reserved as u64 }); @@ -11779,34 +13656,31 @@ impl StdVideoEncodeH265ReferenceListsInfoFlags { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH265ReferenceListsInfo { - pub flags: StdVideoEncodeH265ReferenceListsInfoFlags, - pub num_ref_idx_l0_active_minus1: u8, - pub num_ref_idx_l1_active_minus1: u8, - pub RefPicList0: [u8; 15usize], - pub RefPicList1: [u8; 15usize], - pub list_entry_l0: [u8; 15usize], - pub list_entry_l1: [u8; 15usize], +pub struct StdVideoEncodeAV1OperatingPointInfo { + pub flags: StdVideoEncodeAV1OperatingPointInfoFlags, + pub operating_point_idc: u16, + pub seq_level_idx: u8, + pub seq_tier: u8, + pub decoder_buffer_delay: u32, + pub encoder_buffer_delay: u32, + pub initial_display_delay_minus_1: u8, } #[test] -fn bindgen_test_layout_StdVideoEncodeH265ReferenceListsInfo() { - const UNINIT: ::core::mem::MaybeUninit = +fn bindgen_test_layout_StdVideoEncodeAV1OperatingPointInfo() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), - 68usize, - concat!( - "Size of: ", - stringify!(StdVideoEncodeH265ReferenceListsInfo) - ) + ::core::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(StdVideoEncodeAV1OperatingPointInfo)) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 4usize, concat!( "Alignment of ", - stringify!(StdVideoEncodeH265ReferenceListsInfo) + stringify!(StdVideoEncodeAV1OperatingPointInfo) ) ); assert_eq!( @@ -11814,264 +13688,590 @@ fn bindgen_test_layout_StdVideoEncodeH265ReferenceListsInfo() { 0usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265ReferenceListsInfo), + stringify!(StdVideoEncodeAV1OperatingPointInfo), "::", stringify!(flags) ) ); assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).num_ref_idx_l0_active_minus1) as usize - ptr as usize - }, + unsafe { ::core::ptr::addr_of!((*ptr).operating_point_idc) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265ReferenceListsInfo), + stringify!(StdVideoEncodeAV1OperatingPointInfo), "::", - stringify!(num_ref_idx_l0_active_minus1) + stringify!(operating_point_idc) ) ); assert_eq!( - unsafe { - ::core::ptr::addr_of!((*ptr).num_ref_idx_l1_active_minus1) as usize - ptr as usize - }, - 5usize, + unsafe { ::core::ptr::addr_of!((*ptr).seq_level_idx) as usize - ptr as usize }, + 6usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265ReferenceListsInfo), + stringify!(StdVideoEncodeAV1OperatingPointInfo), "::", - stringify!(num_ref_idx_l1_active_minus1) + stringify!(seq_level_idx) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).RefPicList0) as usize - ptr as usize }, - 6usize, + unsafe { ::core::ptr::addr_of!((*ptr).seq_tier) as usize - ptr as usize }, + 7usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265ReferenceListsInfo), + stringify!(StdVideoEncodeAV1OperatingPointInfo), "::", - stringify!(RefPicList0) + stringify!(seq_tier) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).RefPicList1) as usize - ptr as usize }, - 21usize, + unsafe { ::core::ptr::addr_of!((*ptr).decoder_buffer_delay) as usize - ptr as usize }, + 8usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265ReferenceListsInfo), + stringify!(StdVideoEncodeAV1OperatingPointInfo), "::", - stringify!(RefPicList1) + stringify!(decoder_buffer_delay) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).list_entry_l0) as usize - ptr as usize }, - 36usize, + unsafe { ::core::ptr::addr_of!((*ptr).encoder_buffer_delay) as usize - ptr as usize }, + 12usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265ReferenceListsInfo), + stringify!(StdVideoEncodeAV1OperatingPointInfo), "::", - stringify!(list_entry_l0) + stringify!(encoder_buffer_delay) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).list_entry_l1) as usize - ptr as usize }, - 51usize, + unsafe { + ::core::ptr::addr_of!((*ptr).initial_display_delay_minus_1) as usize - ptr as usize + }, + 16usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265ReferenceListsInfo), + stringify!(StdVideoEncodeAV1OperatingPointInfo), "::", - stringify!(list_entry_l1) + stringify!(initial_display_delay_minus_1) ) ); } #[repr(C)] +#[repr(align(4))] #[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH265PictureInfoFlags { - pub _bitfield_align_1: [u32; 0], +pub struct StdVideoEncodeAV1PictureInfoFlags { + pub _bitfield_align_1: [u8; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, } #[test] -fn bindgen_test_layout_StdVideoEncodeH265PictureInfoFlags() { +fn bindgen_test_layout_StdVideoEncodeAV1PictureInfoFlags() { assert_eq!( - ::core::mem::size_of::(), + ::core::mem::size_of::(), 4usize, - concat!("Size of: ", stringify!(StdVideoEncodeH265PictureInfoFlags)) + concat!("Size of: ", stringify!(StdVideoEncodeAV1PictureInfoFlags)) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 4usize, concat!( "Alignment of ", - stringify!(StdVideoEncodeH265PictureInfoFlags) + stringify!(StdVideoEncodeAV1PictureInfoFlags) ) ); } -impl StdVideoEncodeH265PictureInfoFlags { +impl StdVideoEncodeAV1PictureInfoFlags { #[inline] - pub fn is_reference(&self) -> u32 { + pub fn error_resilient_mode(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } } #[inline] - pub fn set_is_reference(&mut self, val: u32) { + pub fn set_error_resilient_mode(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn IrapPicFlag(&self) -> u32 { + pub fn disable_cdf_update(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } } #[inline] - pub fn set_IrapPicFlag(&mut self, val: u32) { + pub fn set_disable_cdf_update(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(1usize, 1u8, val as u64) } } #[inline] - pub fn used_for_long_term_reference(&self) -> u32 { + pub fn use_superres(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } } #[inline] - pub fn set_used_for_long_term_reference(&mut self, val: u32) { + pub fn set_use_superres(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(2usize, 1u8, val as u64) } } #[inline] - pub fn discardable_flag(&self) -> u32 { + pub fn render_and_frame_size_different(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } } #[inline] - pub fn set_discardable_flag(&mut self, val: u32) { + pub fn set_render_and_frame_size_different(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(3usize, 1u8, val as u64) } } #[inline] - pub fn cross_layer_bla_flag(&self) -> u32 { + pub fn allow_screen_content_tools(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } } #[inline] - pub fn set_cross_layer_bla_flag(&mut self, val: u32) { + pub fn set_allow_screen_content_tools(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(4usize, 1u8, val as u64) } } #[inline] - pub fn pic_output_flag(&self) -> u32 { + pub fn is_filter_switchable(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } } #[inline] - pub fn set_pic_output_flag(&mut self, val: u32) { + pub fn set_is_filter_switchable(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(5usize, 1u8, val as u64) } } #[inline] - pub fn no_output_of_prior_pics_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + pub fn force_integer_mv(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_force_integer_mv(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub fn frame_size_override_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_frame_size_override_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub fn buffer_removal_time_present_flag(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } + } + #[inline] + pub fn set_buffer_removal_time_present_flag(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub fn allow_intrabc(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } + } + #[inline] + pub fn set_allow_intrabc(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub fn frame_refs_short_signaling(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) } + } + #[inline] + pub fn set_frame_refs_short_signaling(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub fn allow_high_precision_mv(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } + } + #[inline] + pub fn set_allow_high_precision_mv(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub fn is_motion_mode_switchable(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_motion_mode_switchable(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(12usize, 1u8, val as u64) + } + } + #[inline] + pub fn use_ref_frame_mvs(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) } + } + #[inline] + pub fn set_use_ref_frame_mvs(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(13usize, 1u8, val as u64) + } + } + #[inline] + pub fn disable_frame_end_update_cdf(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) } + } + #[inline] + pub fn set_disable_frame_end_update_cdf(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(14usize, 1u8, val as u64) + } + } + #[inline] + pub fn allow_warped_motion(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) } + } + #[inline] + pub fn set_allow_warped_motion(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(15usize, 1u8, val as u64) + } + } + #[inline] + pub fn reduced_tx_set(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) } + } + #[inline] + pub fn set_reduced_tx_set(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(16usize, 1u8, val as u64) + } + } + #[inline] + pub fn skip_mode_present(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) } + } + #[inline] + pub fn set_skip_mode_present(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(17usize, 1u8, val as u64) + } + } + #[inline] + pub fn delta_q_present(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) } + } + #[inline] + pub fn set_delta_q_present(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(18usize, 1u8, val as u64) + } + } + #[inline] + pub fn delta_lf_present(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) } + } + #[inline] + pub fn set_delta_lf_present(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(19usize, 1u8, val as u64) + } + } + #[inline] + pub fn delta_lf_multi(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) } + } + #[inline] + pub fn set_delta_lf_multi(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(20usize, 1u8, val as u64) + } + } + #[inline] + pub fn segmentation_enabled(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u32) } + } + #[inline] + pub fn set_segmentation_enabled(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(21usize, 1u8, val as u64) + } + } + #[inline] + pub fn segmentation_update_map(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u32) } + } + #[inline] + pub fn set_segmentation_update_map(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(22usize, 1u8, val as u64) + } + } + #[inline] + pub fn segmentation_temporal_update(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u32) } + } + #[inline] + pub fn set_segmentation_temporal_update(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(23usize, 1u8, val as u64) + } + } + #[inline] + pub fn segmentation_update_data(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 1u8) as u32) } + } + #[inline] + pub fn set_segmentation_update_data(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(24usize, 1u8, val as u64) + } + } + #[inline] + pub fn UsesLr(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(25usize, 1u8) as u32) } + } + #[inline] + pub fn set_UsesLr(&mut self, val: u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(25usize, 1u8, val as u64) + } + } + #[inline] + pub fn usesChromaLr(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(26usize, 1u8) as u32) } } #[inline] - pub fn set_no_output_of_prior_pics_flag(&mut self, val: u32) { + pub fn set_usesChromaLr(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) + self._bitfield_1.set(26usize, 1u8, val as u64) } } #[inline] - pub fn short_term_ref_pic_set_sps_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + pub fn show_frame(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(27usize, 1u8) as u32) } } #[inline] - pub fn set_short_term_ref_pic_set_sps_flag(&mut self, val: u32) { + pub fn set_show_frame(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) + self._bitfield_1.set(27usize, 1u8, val as u64) } } #[inline] - pub fn slice_temporal_mvp_enabled_flag(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } + pub fn showable_frame(&self) -> u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 1u8) as u32) } } #[inline] - pub fn set_slice_temporal_mvp_enabled_flag(&mut self, val: u32) { + pub fn set_showable_frame(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) + self._bitfield_1.set(28usize, 1u8, val as u64) } } #[inline] pub fn reserved(&self) -> u32 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 23u8) as u32) } + unsafe { ::core::mem::transmute(self._bitfield_1.get(29usize, 3u8) as u32) } } #[inline] pub fn set_reserved(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(9usize, 23u8, val as u64) + self._bitfield_1.set(29usize, 3u8, val as u64) } } #[inline] pub fn new_bitfield_1( - is_reference: u32, - IrapPicFlag: u32, - used_for_long_term_reference: u32, - discardable_flag: u32, - cross_layer_bla_flag: u32, - pic_output_flag: u32, - no_output_of_prior_pics_flag: u32, - short_term_ref_pic_set_sps_flag: u32, - slice_temporal_mvp_enabled_flag: u32, + error_resilient_mode: u32, + disable_cdf_update: u32, + use_superres: u32, + render_and_frame_size_different: u32, + allow_screen_content_tools: u32, + is_filter_switchable: u32, + force_integer_mv: u32, + frame_size_override_flag: u32, + buffer_removal_time_present_flag: u32, + allow_intrabc: u32, + frame_refs_short_signaling: u32, + allow_high_precision_mv: u32, + is_motion_mode_switchable: u32, + use_ref_frame_mvs: u32, + disable_frame_end_update_cdf: u32, + allow_warped_motion: u32, + reduced_tx_set: u32, + skip_mode_present: u32, + delta_q_present: u32, + delta_lf_present: u32, + delta_lf_multi: u32, + segmentation_enabled: u32, + segmentation_update_map: u32, + segmentation_temporal_update: u32, + segmentation_update_data: u32, + UsesLr: u32, + usesChromaLr: u32, + show_frame: u32, + showable_frame: u32, reserved: u32, ) -> __BindgenBitfieldUnit<[u8; 4usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); __bindgen_bitfield_unit.set(0usize, 1u8, { - let is_reference: u32 = unsafe { ::core::mem::transmute(is_reference) }; - is_reference as u64 + let error_resilient_mode: u32 = unsafe { ::core::mem::transmute(error_resilient_mode) }; + error_resilient_mode as u64 }); __bindgen_bitfield_unit.set(1usize, 1u8, { - let IrapPicFlag: u32 = unsafe { ::core::mem::transmute(IrapPicFlag) }; - IrapPicFlag as u64 + let disable_cdf_update: u32 = unsafe { ::core::mem::transmute(disable_cdf_update) }; + disable_cdf_update as u64 }); __bindgen_bitfield_unit.set(2usize, 1u8, { - let used_for_long_term_reference: u32 = - unsafe { ::core::mem::transmute(used_for_long_term_reference) }; - used_for_long_term_reference as u64 + let use_superres: u32 = unsafe { ::core::mem::transmute(use_superres) }; + use_superres as u64 }); __bindgen_bitfield_unit.set(3usize, 1u8, { - let discardable_flag: u32 = unsafe { ::core::mem::transmute(discardable_flag) }; - discardable_flag as u64 + let render_and_frame_size_different: u32 = + unsafe { ::core::mem::transmute(render_and_frame_size_different) }; + render_and_frame_size_different as u64 }); __bindgen_bitfield_unit.set(4usize, 1u8, { - let cross_layer_bla_flag: u32 = unsafe { ::core::mem::transmute(cross_layer_bla_flag) }; - cross_layer_bla_flag as u64 + let allow_screen_content_tools: u32 = + unsafe { ::core::mem::transmute(allow_screen_content_tools) }; + allow_screen_content_tools as u64 }); __bindgen_bitfield_unit.set(5usize, 1u8, { - let pic_output_flag: u32 = unsafe { ::core::mem::transmute(pic_output_flag) }; - pic_output_flag as u64 + let is_filter_switchable: u32 = unsafe { ::core::mem::transmute(is_filter_switchable) }; + is_filter_switchable as u64 }); __bindgen_bitfield_unit.set(6usize, 1u8, { - let no_output_of_prior_pics_flag: u32 = - unsafe { ::core::mem::transmute(no_output_of_prior_pics_flag) }; - no_output_of_prior_pics_flag as u64 + let force_integer_mv: u32 = unsafe { ::core::mem::transmute(force_integer_mv) }; + force_integer_mv as u64 }); __bindgen_bitfield_unit.set(7usize, 1u8, { - let short_term_ref_pic_set_sps_flag: u32 = - unsafe { ::core::mem::transmute(short_term_ref_pic_set_sps_flag) }; - short_term_ref_pic_set_sps_flag as u64 + let frame_size_override_flag: u32 = + unsafe { ::core::mem::transmute(frame_size_override_flag) }; + frame_size_override_flag as u64 }); __bindgen_bitfield_unit.set(8usize, 1u8, { - let slice_temporal_mvp_enabled_flag: u32 = - unsafe { ::core::mem::transmute(slice_temporal_mvp_enabled_flag) }; - slice_temporal_mvp_enabled_flag as u64 + let buffer_removal_time_present_flag: u32 = + unsafe { ::core::mem::transmute(buffer_removal_time_present_flag) }; + buffer_removal_time_present_flag as u64 }); - __bindgen_bitfield_unit.set(9usize, 23u8, { + __bindgen_bitfield_unit.set(9usize, 1u8, { + let allow_intrabc: u32 = unsafe { ::core::mem::transmute(allow_intrabc) }; + allow_intrabc as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let frame_refs_short_signaling: u32 = + unsafe { ::core::mem::transmute(frame_refs_short_signaling) }; + frame_refs_short_signaling as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let allow_high_precision_mv: u32 = + unsafe { ::core::mem::transmute(allow_high_precision_mv) }; + allow_high_precision_mv as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let is_motion_mode_switchable: u32 = + unsafe { ::core::mem::transmute(is_motion_mode_switchable) }; + is_motion_mode_switchable as u64 + }); + __bindgen_bitfield_unit.set(13usize, 1u8, { + let use_ref_frame_mvs: u32 = unsafe { ::core::mem::transmute(use_ref_frame_mvs) }; + use_ref_frame_mvs as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let disable_frame_end_update_cdf: u32 = + unsafe { ::core::mem::transmute(disable_frame_end_update_cdf) }; + disable_frame_end_update_cdf as u64 + }); + __bindgen_bitfield_unit.set(15usize, 1u8, { + let allow_warped_motion: u32 = unsafe { ::core::mem::transmute(allow_warped_motion) }; + allow_warped_motion as u64 + }); + __bindgen_bitfield_unit.set(16usize, 1u8, { + let reduced_tx_set: u32 = unsafe { ::core::mem::transmute(reduced_tx_set) }; + reduced_tx_set as u64 + }); + __bindgen_bitfield_unit.set(17usize, 1u8, { + let skip_mode_present: u32 = unsafe { ::core::mem::transmute(skip_mode_present) }; + skip_mode_present as u64 + }); + __bindgen_bitfield_unit.set(18usize, 1u8, { + let delta_q_present: u32 = unsafe { ::core::mem::transmute(delta_q_present) }; + delta_q_present as u64 + }); + __bindgen_bitfield_unit.set(19usize, 1u8, { + let delta_lf_present: u32 = unsafe { ::core::mem::transmute(delta_lf_present) }; + delta_lf_present as u64 + }); + __bindgen_bitfield_unit.set(20usize, 1u8, { + let delta_lf_multi: u32 = unsafe { ::core::mem::transmute(delta_lf_multi) }; + delta_lf_multi as u64 + }); + __bindgen_bitfield_unit.set(21usize, 1u8, { + let segmentation_enabled: u32 = unsafe { ::core::mem::transmute(segmentation_enabled) }; + segmentation_enabled as u64 + }); + __bindgen_bitfield_unit.set(22usize, 1u8, { + let segmentation_update_map: u32 = + unsafe { ::core::mem::transmute(segmentation_update_map) }; + segmentation_update_map as u64 + }); + __bindgen_bitfield_unit.set(23usize, 1u8, { + let segmentation_temporal_update: u32 = + unsafe { ::core::mem::transmute(segmentation_temporal_update) }; + segmentation_temporal_update as u64 + }); + __bindgen_bitfield_unit.set(24usize, 1u8, { + let segmentation_update_data: u32 = + unsafe { ::core::mem::transmute(segmentation_update_data) }; + segmentation_update_data as u64 + }); + __bindgen_bitfield_unit.set(25usize, 1u8, { + let UsesLr: u32 = unsafe { ::core::mem::transmute(UsesLr) }; + UsesLr as u64 + }); + __bindgen_bitfield_unit.set(26usize, 1u8, { + let usesChromaLr: u32 = unsafe { ::core::mem::transmute(usesChromaLr) }; + usesChromaLr as u64 + }); + __bindgen_bitfield_unit.set(27usize, 1u8, { + let show_frame: u32 = unsafe { ::core::mem::transmute(show_frame) }; + show_frame as u64 + }); + __bindgen_bitfield_unit.set(28usize, 1u8, { + let showable_frame: u32 = unsafe { ::core::mem::transmute(showable_frame) }; + showable_frame as u64 + }); + __bindgen_bitfield_unit.set(29usize, 3u8, { let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; reserved as u64 }); @@ -12080,299 +14280,361 @@ impl StdVideoEncodeH265PictureInfoFlags { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH265LongTermRefPics { - pub num_long_term_sps: u8, - pub num_long_term_pics: u8, - pub lt_idx_sps: [u8; 32usize], - pub poc_lsb_lt: [u8; 16usize], - pub used_by_curr_pic_lt_flag: u16, - pub delta_poc_msb_present_flag: [u8; 48usize], - pub delta_poc_msb_cycle_lt: [u8; 48usize], +pub struct StdVideoEncodeAV1PictureInfo { + pub flags: StdVideoEncodeAV1PictureInfoFlags, + pub frame_type: StdVideoAV1FrameType, + pub frame_presentation_time: u32, + pub current_frame_id: u32, + pub order_hint: u8, + pub primary_ref_frame: u8, + pub refresh_frame_flags: u8, + pub coded_denom: u8, + pub render_width_minus_1: u16, + pub render_height_minus_1: u16, + pub interpolation_filter: StdVideoAV1InterpolationFilter, + pub TxMode: StdVideoAV1TxMode, + pub delta_q_res: u8, + pub delta_lf_res: u8, + pub ref_order_hint: [u8; 8usize], + pub ref_frame_idx: [i8; 7usize], + pub reserved1: [u8; 3usize], + pub delta_frame_id_minus_1: [u32; 7usize], + pub pTileInfo: *const StdVideoAV1TileInfo, + pub pQuantization: *const StdVideoAV1Quantization, + pub pSegmentation: *const StdVideoAV1Segmentation, + pub pLoopFilter: *const StdVideoAV1LoopFilter, + pub pCDEF: *const StdVideoAV1CDEF, + pub pLoopRestoration: *const StdVideoAV1LoopRestoration, + pub pGlobalMotion: *const StdVideoAV1GlobalMotion, + pub pExtensionHeader: *const StdVideoEncodeAV1ExtensionHeader, + pub pBufferRemovalTimes: *const u32, } #[test] -fn bindgen_test_layout_StdVideoEncodeH265LongTermRefPics() { - const UNINIT: ::core::mem::MaybeUninit = +fn bindgen_test_layout_StdVideoEncodeAV1PictureInfo() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), - 148usize, - concat!("Size of: ", stringify!(StdVideoEncodeH265LongTermRefPics)) + ::core::mem::size_of::(), + 152usize, + concat!("Size of: ", stringify!(StdVideoEncodeAV1PictureInfo)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(StdVideoEncodeAV1PictureInfo)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeAV1PictureInfo), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).frame_type) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeAV1PictureInfo), + "::", + stringify!(frame_type) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).frame_presentation_time) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeAV1PictureInfo), + "::", + stringify!(frame_presentation_time) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).current_frame_id) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeAV1PictureInfo), + "::", + stringify!(current_frame_id) + ) ); assert_eq!( - ::core::mem::align_of::(), - 2usize, + unsafe { ::core::ptr::addr_of!((*ptr).order_hint) as usize - ptr as usize }, + 16usize, concat!( - "Alignment of ", - stringify!(StdVideoEncodeH265LongTermRefPics) + "Offset of field: ", + stringify!(StdVideoEncodeAV1PictureInfo), + "::", + stringify!(order_hint) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).num_long_term_sps) as usize - ptr as usize }, - 0usize, + unsafe { ::core::ptr::addr_of!((*ptr).primary_ref_frame) as usize - ptr as usize }, + 17usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265LongTermRefPics), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(num_long_term_sps) + stringify!(primary_ref_frame) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).num_long_term_pics) as usize - ptr as usize }, - 1usize, + unsafe { ::core::ptr::addr_of!((*ptr).refresh_frame_flags) as usize - ptr as usize }, + 18usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265LongTermRefPics), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(num_long_term_pics) + stringify!(refresh_frame_flags) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).lt_idx_sps) as usize - ptr as usize }, - 2usize, + unsafe { ::core::ptr::addr_of!((*ptr).coded_denom) as usize - ptr as usize }, + 19usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265LongTermRefPics), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(lt_idx_sps) + stringify!(coded_denom) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).poc_lsb_lt) as usize - ptr as usize }, - 34usize, + unsafe { ::core::ptr::addr_of!((*ptr).render_width_minus_1) as usize - ptr as usize }, + 20usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265LongTermRefPics), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(poc_lsb_lt) + stringify!(render_width_minus_1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).used_by_curr_pic_lt_flag) as usize - ptr as usize }, - 50usize, + unsafe { ::core::ptr::addr_of!((*ptr).render_height_minus_1) as usize - ptr as usize }, + 22usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265LongTermRefPics), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(used_by_curr_pic_lt_flag) + stringify!(render_height_minus_1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).delta_poc_msb_present_flag) as usize - ptr as usize }, - 52usize, + unsafe { ::core::ptr::addr_of!((*ptr).interpolation_filter) as usize - ptr as usize }, + 24usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265LongTermRefPics), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(delta_poc_msb_present_flag) + stringify!(interpolation_filter) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).delta_poc_msb_cycle_lt) as usize - ptr as usize }, - 100usize, + unsafe { ::core::ptr::addr_of!((*ptr).TxMode) as usize - ptr as usize }, + 28usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265LongTermRefPics), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(delta_poc_msb_cycle_lt) + stringify!(TxMode) ) ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH265PictureInfo { - pub flags: StdVideoEncodeH265PictureInfoFlags, - pub pic_type: StdVideoH265PictureType, - pub sps_video_parameter_set_id: u8, - pub pps_seq_parameter_set_id: u8, - pub pps_pic_parameter_set_id: u8, - pub short_term_ref_pic_set_idx: u8, - pub PicOrderCntVal: i32, - pub TemporalId: u8, - pub reserved1: [u8; 7usize], - pub pRefLists: *const StdVideoEncodeH265ReferenceListsInfo, - pub pShortTermRefPicSet: *const StdVideoH265ShortTermRefPicSet, - pub pLongTermRefPics: *const StdVideoEncodeH265LongTermRefPics, -} -#[test] -fn bindgen_test_layout_StdVideoEncodeH265PictureInfo() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(StdVideoEncodeH265PictureInfo)) + unsafe { ::core::ptr::addr_of!((*ptr).delta_q_res) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeAV1PictureInfo), + "::", + stringify!(delta_q_res) + ) ); assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(StdVideoEncodeH265PictureInfo)) + unsafe { ::core::ptr::addr_of!((*ptr).delta_lf_res) as usize - ptr as usize }, + 33usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeAV1PictureInfo), + "::", + stringify!(delta_lf_res) + ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 0usize, + unsafe { ::core::ptr::addr_of!((*ptr).ref_order_hint) as usize - ptr as usize }, + 34usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265PictureInfo), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(flags) + stringify!(ref_order_hint) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pic_type) as usize - ptr as usize }, - 4usize, + unsafe { ::core::ptr::addr_of!((*ptr).ref_frame_idx) as usize - ptr as usize }, + 42usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265PictureInfo), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(pic_type) + stringify!(ref_frame_idx) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sps_video_parameter_set_id) as usize - ptr as usize }, - 8usize, + unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, + 49usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265PictureInfo), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(sps_video_parameter_set_id) + stringify!(reserved1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pps_seq_parameter_set_id) as usize - ptr as usize }, - 9usize, + unsafe { ::core::ptr::addr_of!((*ptr).delta_frame_id_minus_1) as usize - ptr as usize }, + 52usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265PictureInfo), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(pps_seq_parameter_set_id) + stringify!(delta_frame_id_minus_1) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pps_pic_parameter_set_id) as usize - ptr as usize }, - 10usize, + unsafe { ::core::ptr::addr_of!((*ptr).pTileInfo) as usize - ptr as usize }, + 80usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265PictureInfo), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(pps_pic_parameter_set_id) + stringify!(pTileInfo) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).short_term_ref_pic_set_idx) as usize - ptr as usize }, - 11usize, + unsafe { ::core::ptr::addr_of!((*ptr).pQuantization) as usize - ptr as usize }, + 88usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265PictureInfo), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(short_term_ref_pic_set_idx) + stringify!(pQuantization) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).PicOrderCntVal) as usize - ptr as usize }, - 12usize, + unsafe { ::core::ptr::addr_of!((*ptr).pSegmentation) as usize - ptr as usize }, + 96usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265PictureInfo), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(PicOrderCntVal) + stringify!(pSegmentation) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).TemporalId) as usize - ptr as usize }, - 16usize, + unsafe { ::core::ptr::addr_of!((*ptr).pLoopFilter) as usize - ptr as usize }, + 104usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265PictureInfo), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(TemporalId) + stringify!(pLoopFilter) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, - 17usize, + unsafe { ::core::ptr::addr_of!((*ptr).pCDEF) as usize - ptr as usize }, + 112usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265PictureInfo), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(reserved1) + stringify!(pCDEF) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pRefLists) as usize - ptr as usize }, - 24usize, + unsafe { ::core::ptr::addr_of!((*ptr).pLoopRestoration) as usize - ptr as usize }, + 120usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265PictureInfo), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(pRefLists) + stringify!(pLoopRestoration) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pShortTermRefPicSet) as usize - ptr as usize }, - 32usize, + unsafe { ::core::ptr::addr_of!((*ptr).pGlobalMotion) as usize - ptr as usize }, + 128usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265PictureInfo), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(pShortTermRefPicSet) + stringify!(pGlobalMotion) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pLongTermRefPics) as usize - ptr as usize }, - 40usize, + unsafe { ::core::ptr::addr_of!((*ptr).pExtensionHeader) as usize - ptr as usize }, + 136usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265PictureInfo), + stringify!(StdVideoEncodeAV1PictureInfo), "::", - stringify!(pLongTermRefPics) + stringify!(pExtensionHeader) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pBufferRemovalTimes) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeAV1PictureInfo), + "::", + stringify!(pBufferRemovalTimes) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH265ReferenceInfoFlags { +pub struct StdVideoEncodeAV1ReferenceInfoFlags { pub _bitfield_align_1: [u32; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, } #[test] -fn bindgen_test_layout_StdVideoEncodeH265ReferenceInfoFlags() { +fn bindgen_test_layout_StdVideoEncodeAV1ReferenceInfoFlags() { assert_eq!( - ::core::mem::size_of::(), + ::core::mem::size_of::(), 4usize, - concat!( - "Size of: ", - stringify!(StdVideoEncodeH265ReferenceInfoFlags) - ) + concat!("Size of: ", stringify!(StdVideoEncodeAV1ReferenceInfoFlags)) ); assert_eq!( - ::core::mem::align_of::(), + ::core::mem::align_of::(), 4usize, concat!( "Alignment of ", - stringify!(StdVideoEncodeH265ReferenceInfoFlags) + stringify!(StdVideoEncodeAV1ReferenceInfoFlags) ) ); } -impl StdVideoEncodeH265ReferenceInfoFlags { +impl StdVideoEncodeAV1ReferenceInfoFlags { #[inline] - pub fn used_for_long_term_reference(&self) -> u32 { + pub fn disable_frame_end_update_cdf(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } } #[inline] - pub fn set_used_for_long_term_reference(&mut self, val: u32) { + pub fn set_disable_frame_end_update_cdf(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn unused_for_reference(&self) -> u32 { + pub fn segmentation_enabled(&self) -> u32 { unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } } #[inline] - pub fn set_unused_for_reference(&mut self, val: u32) { + pub fn set_segmentation_enabled(&mut self, val: u32) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(1usize, 1u8, val as u64) @@ -12391,19 +14653,19 @@ impl StdVideoEncodeH265ReferenceInfoFlags { } #[inline] pub fn new_bitfield_1( - used_for_long_term_reference: u32, - unused_for_reference: u32, + disable_frame_end_update_cdf: u32, + segmentation_enabled: u32, reserved: u32, ) -> __BindgenBitfieldUnit<[u8; 4usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); __bindgen_bitfield_unit.set(0usize, 1u8, { - let used_for_long_term_reference: u32 = - unsafe { ::core::mem::transmute(used_for_long_term_reference) }; - used_for_long_term_reference as u64 + let disable_frame_end_update_cdf: u32 = + unsafe { ::core::mem::transmute(disable_frame_end_update_cdf) }; + disable_frame_end_update_cdf as u64 }); __bindgen_bitfield_unit.set(1usize, 1u8, { - let unused_for_reference: u32 = unsafe { ::core::mem::transmute(unused_for_reference) }; - unused_for_reference as u64 + let segmentation_enabled: u32 = unsafe { ::core::mem::transmute(segmentation_enabled) }; + segmentation_enabled as u64 }); __bindgen_bitfield_unit.set(2usize, 30u8, { let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; @@ -12414,65 +14676,87 @@ impl StdVideoEncodeH265ReferenceInfoFlags { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StdVideoEncodeH265ReferenceInfo { - pub flags: StdVideoEncodeH265ReferenceInfoFlags, - pub pic_type: StdVideoH265PictureType, - pub PicOrderCntVal: i32, - pub TemporalId: u8, +pub struct StdVideoEncodeAV1ReferenceInfo { + pub flags: StdVideoEncodeAV1ReferenceInfoFlags, + pub RefFrameId: u32, + pub frame_type: StdVideoAV1FrameType, + pub OrderHint: u8, + pub reserved1: [u8; 3usize], + pub pExtensionHeader: *const StdVideoEncodeAV1ExtensionHeader, } #[test] -fn bindgen_test_layout_StdVideoEncodeH265ReferenceInfo() { - const UNINIT: ::core::mem::MaybeUninit = +fn bindgen_test_layout_StdVideoEncodeAV1ReferenceInfo() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(StdVideoEncodeH265ReferenceInfo)) + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(StdVideoEncodeAV1ReferenceInfo)) ); assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(StdVideoEncodeH265ReferenceInfo)) + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(StdVideoEncodeAV1ReferenceInfo)) ); assert_eq!( unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265ReferenceInfo), + stringify!(StdVideoEncodeAV1ReferenceInfo), "::", stringify!(flags) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pic_type) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).RefFrameId) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265ReferenceInfo), + stringify!(StdVideoEncodeAV1ReferenceInfo), "::", - stringify!(pic_type) + stringify!(RefFrameId) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).PicOrderCntVal) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).frame_type) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265ReferenceInfo), + stringify!(StdVideoEncodeAV1ReferenceInfo), "::", - stringify!(PicOrderCntVal) + stringify!(frame_type) ) ); assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).TemporalId) as usize - ptr as usize }, + unsafe { ::core::ptr::addr_of!((*ptr).OrderHint) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", - stringify!(StdVideoEncodeH265ReferenceInfo), + stringify!(StdVideoEncodeAV1ReferenceInfo), "::", - stringify!(TemporalId) + stringify!(OrderHint) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeAV1ReferenceInfo), + "::", + stringify!(reserved1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pExtensionHeader) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(StdVideoEncodeAV1ReferenceInfo), + "::", + stringify!(pExtensionHeader) ) ); } diff --git a/ash/src/vk/platform_types.rs b/ash/src/vk/platform_types.rs index b6bccb297..44f9857e1 100644 --- a/ash/src/vk/platform_types.rs +++ b/ash/src/vk/platform_types.rs @@ -30,6 +30,7 @@ pub type SECURITY_ATTRIBUTES = c_void; // Opaque types pub type ANativeWindow = c_void; pub type AHardwareBuffer = c_void; +pub type OHNativeWindow = c_void; pub type CAMetalLayer = c_void; // This definition is behind an NDA with a best effort guess from // https://github.com/google/gapid/commit/22aafebec4638c6aaa77667096bca30f6e842d95#diff-ab3ab4a7d89b4fc8a344ff4e9332865f268ea1669ee379c1b516a954ecc2e7a6R20-R21 diff --git a/generator/Vulkan-Headers b/generator/Vulkan-Headers index 29f979ee5..33d7f5125 160000 --- a/generator/Vulkan-Headers +++ b/generator/Vulkan-Headers @@ -1 +1 @@ -Subproject commit 29f979ee5aa58b7b005f805ea8df7a855c39ff37 +Subproject commit 33d7f512583b8de44d1b6384aa1cf482f92e53e9 diff --git a/generator/src/lib.rs b/generator/src/lib.rs index c656905d4..a9e4e12e0 100644 --- a/generator/src/lib.rs +++ b/generator/src/lib.rs @@ -190,7 +190,7 @@ fn parse_c_define_header(i: &str) -> IResult<&str, (Option<&str>, (&str, Option< (pair( parse_comment_suffix, preceded( - tag("#define "), + preceded(opt(newline), tag("#define ")), pair(parse_c_identifier, opt(parse_parameter_names)), ), )) @@ -288,6 +288,13 @@ fn khronos_link(name: &S) -> Literal { )) } +fn deprecated_annotation(explanationlink: &S) -> TokenStream { + // TODO: Upstream uses `legacy-{}`, vk.xml uses `deprecated-{}`?? + let comment = + format!(""); + quote!(#[deprecated = #comment]) +} + fn is_opaque_type(ty: &str) -> bool { matches!( ty, @@ -298,6 +305,7 @@ fn is_opaque_type(ty: &str) -> bool { | "xcb_connection_t" | "ANativeWindow" | "AHardwareBuffer" + | "OHNativeWindow" | "CAMetalLayer" | "IDirectFB" | "IDirectFBSurface" @@ -881,6 +889,7 @@ pub type CommandMap<'a> = HashMap( ident: Ident, commands: &[&'a vk_parse::CommandDefinition], + deprecated_commands: &HashMap<&'a str, &'a str>, rename_commands: &HashMap<&'a str, &'a str>, fn_cache: &mut HashSet<&'a str>, has_lifetimes: &HashSet, @@ -903,6 +912,7 @@ fn generate_function_pointers<'a>( parameters_unused: TokenStream, returns: TokenStream, parameter_validstructs: Vec<(Ident, Vec)>, + deprecated: Option, } let commands = commands @@ -964,6 +974,10 @@ fn generate_function_pointers<'a>( // must only emit a single definition. let define_pfn = fn_cache.insert(name.as_str()); + let deprecated = deprecated_commands + .get(name.as_str()) + .map(deprecated_annotation); + Command { define_pfn, type_name, @@ -979,6 +993,7 @@ fn generate_function_pointers<'a>( quote!(-> #ret_ty_tokens) }, parameter_validstructs, + deprecated, } }) .collect::>(); @@ -1023,7 +1038,9 @@ fn generate_function_pointers<'a>( let type_name = &self.0.pfn_type_name; let parameters = &self.0.parameters; let returns = &self.0.returns; + let deprecated = &self.0.deprecated; quote!( + #deprecated #[allow(non_camel_case_types)] pub type #type_name = unsafe extern "system" fn(#parameters) #returns; ) @@ -1036,7 +1053,8 @@ fn generate_function_pointers<'a>( fn to_tokens(&self, tokens: &mut TokenStream) { let type_name = &self.0.pfn_type_name; let function_name_rust = &self.0.function_name_rust; - quote!(pub #function_name_rust: #type_name).to_tokens(tokens) + let deprecated = &self.0.deprecated; + quote!(#deprecated pub #function_name_rust: #type_name).to_tokens(tokens) } } @@ -1233,6 +1251,7 @@ pub struct ExtensionCommands<'a> { pub fn generate_extension_commands<'a>( full_extension_name: &'a str, items: &'a [vk_parse::ExtensionChild], + deprecated_commands: &HashMap<&'a str, &'a str>, cmd_map: &CommandMap<'a>, cmd_aliases: &HashMap<&'a str, &'a str>, fn_cache: &mut HashSet<&'a str>, @@ -1303,6 +1322,7 @@ pub fn generate_extension_commands<'a>( let (fp, table) = generate_function_pointers( instance_ident, &instance_commands, + deprecated_commands, &rename_commands, fn_cache, has_lifetimes, @@ -1350,6 +1370,7 @@ pub fn generate_extension_commands<'a>( let (fp, table) = generate_function_pointers( device_ident, &device_commands, + deprecated_commands, &rename_commands, fn_cache, has_lifetimes, @@ -1428,6 +1449,7 @@ pub fn generate_extension_commands<'a>( pub fn generate_define( define: &vk_parse::Type, allowed_types: &HashSet<&str>, + deprecated_types: &HashMap<&str, &str>, identifier_renames: &mut BTreeMap, ) -> TokenStream { let vk_parse::TypeSpec::Code(spec) = &define.spec else { @@ -1452,9 +1474,15 @@ pub fn generate_define( let c_expr = convert_c_expression(&c_expr, identifier_renames); let c_expr = discard_outmost_delimiter(c_expr); - let deprecated = comment - .and_then(|c| c.trim().strip_prefix("DEPRECATED: ")) - .map(|comment| quote!(#[deprecated = #comment])) + if let Some(c) = comment { + assert!(!c.starts_with("DEPRECATED:"), "{comment:?}"); + } + + assert!(define.deprecated.is_none()); // Unused + + let deprecated = deprecated_types + .get(define_name.as_str()) + .map(deprecated_annotation) .or_else(|| match define.deprecated.as_ref()?.as_str() { "true" => Some(quote!(#[deprecated])), x => panic!("Unknown deprecation reason {x}"), @@ -2357,9 +2385,12 @@ pub fn generate_struct( if &struct_.name == "VkTransformMatrixKHR" { return quote! { #[repr(C)] - #[derive(Copy, Clone)] + #[cfg_attr(feature = "debug", derive(Debug))] + #[derive(Copy, Clone, Default)] + #[doc = ""] + #[must_use] pub struct TransformMatrixKHR { - pub matrix: [f32; 12], + pub matrix: [[f32; 3]; 4], } }; } @@ -2368,6 +2399,7 @@ pub fn generate_struct( return quote! { #[repr(C)] #[derive(Copy, Clone)] + #[must_use] pub union AccelerationStructureReferenceKHR { pub device_handle: DeviceAddress, pub host_handle: AccelerationStructureKHR, @@ -2375,6 +2407,7 @@ pub fn generate_struct( #[repr(C)] #[derive(Copy, Clone)] #[doc = ""] + #[must_use] pub struct AccelerationStructureInstanceKHR { pub transform: TransformMatrixKHR, /// Use [`Packed24_8::new(instance_custom_index, mask)`][Packed24_8::new()] to construct this field @@ -2391,6 +2424,7 @@ pub fn generate_struct( #[repr(C)] #[derive(Copy, Clone)] #[doc = ""] + #[must_use] pub struct AccelerationStructureSRTMotionInstanceNV { pub transform_t0: SRTDataNV, pub transform_t1: SRTDataNV, @@ -2407,7 +2441,8 @@ pub fn generate_struct( return quote! { #[repr(C)] #[derive(Copy, Clone)] - #[doc = ""] + #[doc = ""] + #[must_use] pub struct AccelerationStructureMatrixMotionInstanceNV { pub transform_t0: TransformMatrixKHR, pub transform_t1: TransformMatrixKHR, @@ -2420,6 +2455,52 @@ pub fn generate_struct( }; } + if &struct_.name == "VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV" { + return quote! { + #[repr(C)] + #[derive(Copy, Clone)] + #[doc = ""] + #[must_use] + pub struct ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV { + // TODO: Add bitfield helpers + pub geometry_index_and_flags: u32, + } + }; + } + if &struct_.name == "VkClusterAccelerationStructureBuildTriangleClusterInfoNV" { + return quote! { + #[repr(C)] + #[derive(Copy, Clone)] + #[doc = ""] + #[must_use] + pub struct ClusterAccelerationStructureBuildTriangleClusterInfoNV { + _todo_many_bitfields: [u8; 0], + } + }; + } + if &struct_.name == "VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV" { + return quote! { + #[repr(C)] + #[derive(Copy, Clone)] + #[doc = ""] + #[must_use] + pub struct ClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV { + _todo_many_bitfields: [u8; 0], + } + }; + } + if &struct_.name == "VkClusterAccelerationStructureInstantiateClusterInfoNV" { + return quote! { + #[repr(C)] + #[derive(Copy, Clone)] + #[doc = ""] + #[must_use] + pub struct ClusterAccelerationStructureInstantiateClusterInfoNV { + _todo_bitfield_and_other_fields: [u8; 0], + } + }; + } + let members = struct_ .elements .iter() @@ -2593,6 +2674,7 @@ fn generate_union(union: &vkxml::Union, has_lifetimes: &HashSet) -> Token pub fn generate_definition_vk_parse( definition: &vk_parse::Type, allowed_types: &HashSet<&str>, + deprecated_types: &HashMap<&str, &str>, identifier_renames: &mut BTreeMap, ) -> Option { if let Some(api) = &definition.api { @@ -2605,6 +2687,7 @@ pub fn generate_definition_vk_parse( Some("define") => Some(generate_define( definition, allowed_types, + deprecated_types, identifier_renames, )), _ => None, @@ -2660,6 +2743,7 @@ pub fn generate_definition( pub fn generate_feature<'a>( feature: &vkxml::Feature, commands: &CommandMap<'a>, + deprecated_commands: &HashMap<&'a str, &'a str>, fn_cache: &mut HashSet<&'a str>, has_lifetimes: &HashSet, ) -> (TokenStream, TokenStream) { @@ -2692,6 +2776,7 @@ pub fn generate_feature<'a>( generate_function_pointers( format_ident!("{}", "StaticFn"), &static_commands, + deprecated_commands, &HashMap::new(), fn_cache, has_lifetimes, @@ -2703,6 +2788,7 @@ pub fn generate_feature<'a>( let (entry_fp, entry_table) = generate_function_pointers( format_ident!("EntryFnV{}", version), &entry_commands, + deprecated_commands, &HashMap::new(), fn_cache, has_lifetimes, @@ -2714,6 +2800,7 @@ pub fn generate_feature<'a>( let (instance_fp, instance_table) = generate_function_pointers( format_ident!("InstanceFnV{}", version), &instance_commands, + deprecated_commands, &HashMap::new(), fn_cache, has_lifetimes, @@ -2725,6 +2812,7 @@ pub fn generate_feature<'a>( let (device_fp, device_table) = generate_function_pointers( format_ident!("DeviceFnV{}", version), &device_commands, + deprecated_commands, &HashMap::new(), fn_cache, has_lifetimes, @@ -3035,7 +3123,8 @@ pub fn write_source_code>(vk_headers_dir: &Path, src_dir: P) { let extension_children = extensions.iter().flat_map(|extension| &extension.children); let (required_types, required_commands) = features_children - .chain(extension_children) + .clone() + .chain(extension_children.clone()) .filter_map(get_variant!(vk_parse::FeatureChild::Require { api, items })) .filter(|(api, _items)| matches!(api.as_deref(), None | Some(DESIRED_API))) .flat_map(|(_api, items)| items) @@ -3047,11 +3136,46 @@ pub fn write_source_code>(vk_headers_dir: &Path, src_dir: P) { vk_parse::InterfaceItem::Command { name, .. } => { acc.1.insert(name.as_str()); } - _ => {} + vk_parse::InterfaceItem::Enum(vk_parse::Enum { name: _, .. }) => { + // TODO: Filter, don't just generate them all + // acc.1.insert(name.as_str()); + } + vk_parse::InterfaceItem::Feature { .. } => { + // Programmatically requires features to be set + } + vk_parse::InterfaceItem::Comment { .. } => {} + x => todo!("{x:?}"), // _ => {} }; acc }); + let (deprecated_types, deprecated_commands) = features_children + .chain(extension_children) + .filter_map(get_variant!(vk_parse::FeatureChild::Deprecate { + api, + explanationlink, + items + })) + .filter(|(api, _, _)| matches!(api.as_deref(), None | Some(DESIRED_API))) + .fold( + (HashMap::new(), HashMap::new()), + |mut acc, (_api, explanationlink, items)| { + for item in items { + match item { + vk_parse::InterfaceItem::Type { name, .. } => { + // TODO: Also track (and include in the docs!) the surrounding feature or extension that caused the deprecation! + acc.0.insert(name.as_str(), explanationlink.as_str()); + } + vk_parse::InterfaceItem::Command { name, .. } => { + acc.1.insert(name.as_str(), explanationlink.as_str()); + } + x => todo!("{x:?}"), + } + } + acc + }, + ); + let commands: CommandMap<'_> = spec2 .0 .iter() @@ -3183,6 +3307,7 @@ pub fn write_source_code>(vk_headers_dir: &Path, src_dir: P) { let cmds = generate_extension_commands( &ext.name, &ext.children, + &deprecated_commands, &commands, &cmd_aliases, &mut fn_cache, @@ -3218,7 +3343,12 @@ pub fn write_source_code>(vk_headers_dir: &Path, src_dir: P) { let vk_parse_definitions: Vec<_> = vk_parse_types .iter() .filter_map(|def| { - generate_definition_vk_parse(def, &required_types, &mut identifier_renames) + generate_definition_vk_parse( + def, + &required_types, + &deprecated_types, + &mut identifier_renames, + ) }) .collect(); @@ -3251,7 +3381,15 @@ pub fn write_source_code>(vk_headers_dir: &Path, src_dir: P) { let (feature_fp_code, feature_table_code): (Vec<_>, Vec<_>) = features .iter() - .map(|feature| generate_feature(feature, &commands, &mut fn_cache, &has_lifetimes)) + .map(|feature| { + generate_feature( + feature, + &commands, + &deprecated_commands, + &mut fn_cache, + &has_lifetimes, + ) + }) .unzip(); let feature_extensions_code = generate_feature_extension(&spec2, &mut const_cache, &mut const_values);