diff --git a/.commits b/.commits index e9d5a96..bd89139 100644 --- a/.commits +++ b/.commits @@ -1,2 +1,2 @@ -KhronosGroup/Vulkan-Docs/main/xml/vk.xml => 6aefabc0ad51073cf060e384ce43a59250d4d69c +KhronosGroup/Vulkan-Docs/main/xml/vk.xml => 145b19c158b8fcbc660f70971f96d73f91da718c KhronosGroup/Vulkan-Headers/main/include/vk_video => 0777a3ad88bad5f4b11cfd509458bbc0ddadc773 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index c6e607b..b4d7e14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,13 @@ - [Removing extra double-quote at the end of a comment in `VkFormatFeatureFlagBits2` (#2680)](https://github.com/KhronosGroup/Vulkan-Docs/commit/5caf874c0d1ec519494beea83703c5478bfe92a1) - [Close #2675](https://github.com/KhronosGroup/Vulkan-Docs/commit/33eff7c90483e5d8ff66e15c06683a9d19772ea3) - [February 20, 2026 Vulkan 1.4.344 spec update](https://github.com/KhronosGroup/Vulkan-Docs/commit/6aefabc0ad51073cf060e384ce43a59250d4d69c) +- [Reserve extension 678 (#2693)](https://github.com/KhronosGroup/Vulkan-Docs/commit/61ec2c24c40b6cc31a55e600d8bd3b33a7c7a307) +- [docs: Fix types tag example (#2688)](https://github.com/KhronosGroup/Vulkan-Docs/commit/f27d8836e8ca5055e847115a3c83fb4c7ba99013) +- [March 6, 2026 Vulkan 1.4.345 spec update](https://github.com/KhronosGroup/Vulkan-Docs/commit/b0b699e446e3eab9bc0d6b192599871eecf25e1e) +- [doc: clarify VkStructureType naming to avoid double underscores (#2698)](https://github.com/KhronosGroup/Vulkan-Docs/commit/bde26d74616d75b24230f1c6265e13e3721c98a6) +- [March 13, 2026 Vulkan 1.4.346 spec update](https://github.com/KhronosGroup/Vulkan-Docs/commit/b71f0036e3f00fa0cda4d888a53f6081c62b4648) +- [March 20, 2026 Vulkan 1.4.347 spec update](https://github.com/KhronosGroup/Vulkan-Docs/commit/6c112cf1c56fec91d5aa4370fb62cfee25618684) +- [Add explicit dependency on VkSurfaceTransformFlagsKHR to VK_KHR_surface (#2707)](https://github.com/KhronosGroup/Vulkan-Docs/commit/145b19c158b8fcbc660f70971f96d73f91da718c) ## [0.35.0] - 2026-02-15 diff --git a/vulkanalia-sys/src/bitmasks.rs b/vulkanalia-sys/src/bitmasks.rs index 9bab15c..74d779d 100644 --- a/vulkanalia-sys/src/bitmasks.rs +++ b/vulkanalia-sys/src/bitmasks.rs @@ -160,6 +160,20 @@ bitflags! { pub struct AcquireProfilingLockFlagsKHR: Flags { } } +bitflags! { + /// + #[repr(transparent)] + #[derive(Default)] + pub struct AddressCommandFlagsKHR: Flags { + const PROTECTED = 1; + const FULLY_BOUND = 1 << 1; + const STORAGE_BUFFER_USAGE = 1 << 2; + const UNKNOWN_STORAGE_BUFFER_USAGE = 1 << 3; + const TRANSFORM_FEEDBACK_BUFFER_USAGE = 1 << 4; + const UNKNOWN_TRANSFORM_FEEDBACK_BUFFER_USAGE = 1 << 5; + } +} + bitflags! { /// #[repr(transparent)] @@ -619,6 +633,20 @@ bitflags! { } } +bitflags! { + /// + #[repr(transparent)] + #[derive(Default)] + pub struct DeviceFaultFlagsKHR: Flags { + const FLAG_DEVICE_LOST = 1; + const FLAG_MEMORY_ADDRESS = 1 << 1; + const FLAG_INSTRUCTION_ADDRESS = 1 << 2; + const FLAG_VENDOR = 1 << 3; + const FLAG_WATCHDOG_TIMEOUT = 1 << 4; + const FLAG_OVERFLOW = 1 << 5; + } +} + bitflags! { /// #[repr(transparent)] @@ -1558,6 +1586,7 @@ bitflags! { const DESCRIPTOR_HEAP_EXT = 1 << 36; const DISALLOW_OPACITY_MICROMAP_ARM = 1 << 37; const INDIRECT_BINDABLE_EXT = 1 << 38; + const INSTRUMENT_SHADERS_ARM = 1 << 39; const PER_LAYER_FRAGMENT_DENSITY_VALVE = 1 << 40; const _64_BIT_INDEXING_EXT = 1 << 43; } @@ -2047,10 +2076,18 @@ bitflags! { const FRAGMENT_DENSITY_MAP_ATTACHMENT = 1 << 6; const INDIRECT_BINDABLE = 1 << 7; const DESCRIPTOR_HEAP = 1 << 10; + const INSTRUMENT_SHADER_ARM = 1 << 11; const _64_BIT_INDEXING = 1 << 15; } } +bitflags! { + /// + #[repr(transparent)] + #[derive(Default)] + pub struct ShaderInstrumentationValuesFlagsARM: Flags { } +} + bitflags! { /// #[repr(transparent)] diff --git a/vulkanalia-sys/src/commands.rs b/vulkanalia-sys/src/commands.rs index d057eae..51420d9 100644 --- a/vulkanalia-sys/src/commands.rs +++ b/vulkanalia-sys/src/commands.rs @@ -197,6 +197,16 @@ pub type PFN_vkBuildMicromapsEXT = unsafe extern "system" fn( _infos: *const MicromapBuildInfoEXT, ) -> Result; +/// +pub type PFN_vkClearShaderInstrumentationMetricsARM = + unsafe extern "system" fn(_device: Device, _instrumentation: ShaderInstrumentationARM); + +/// +pub type PFN_vkCmdBeginConditionalRendering2EXT = unsafe extern "system" fn( + _command_buffer: CommandBuffer, + _conditional_rendering_begin: *const ConditionalRenderingBeginInfo2EXT, +); + /// pub type PFN_vkCmdBeginConditionalRenderingEXT = unsafe extern "system" fn( _command_buffer: CommandBuffer, @@ -264,6 +274,20 @@ pub type PFN_vkCmdBeginRendering = unsafe extern "system" fn( /// pub type PFN_vkCmdBeginRenderingKHR = PFN_vkCmdBeginRendering; +/// +pub type PFN_vkCmdBeginShaderInstrumentationARM = unsafe extern "system" fn( + _command_buffer: CommandBuffer, + _instrumentation: ShaderInstrumentationARM, +); + +/// +pub type PFN_vkCmdBeginTransformFeedback2EXT = unsafe extern "system" fn( + _command_buffer: CommandBuffer, + _first_counter_range: u32, + _counter_range_count: u32, + _counter_infos: *const BindTransformFeedbackBuffer2InfoEXT, +); + /// pub type PFN_vkCmdBeginTransformFeedbackEXT = unsafe extern "system" fn( _command_buffer: CommandBuffer, @@ -338,6 +362,12 @@ pub type PFN_vkCmdBindIndexBuffer2 = unsafe extern "system" fn( /// pub type PFN_vkCmdBindIndexBuffer2KHR = PFN_vkCmdBindIndexBuffer2; +/// +pub type PFN_vkCmdBindIndexBuffer3KHR = unsafe extern "system" fn( + _command_buffer: CommandBuffer, + _info: *const BindIndexBuffer3InfoKHR, +); + /// pub type PFN_vkCmdBindInvocationMaskHUAWEI = unsafe extern "system" fn( _command_buffer: CommandBuffer, @@ -389,6 +419,14 @@ pub type PFN_vkCmdBindTileMemoryQCOM = unsafe extern "system" fn( _tile_memory_bind_info: *const TileMemoryBindInfoQCOM, ); +/// +pub type PFN_vkCmdBindTransformFeedbackBuffers2EXT = unsafe extern "system" fn( + _command_buffer: CommandBuffer, + _first_binding: u32, + _binding_count: u32, + _binding_infos: *const BindTransformFeedbackBuffer2InfoEXT, +); + /// pub type PFN_vkCmdBindTransformFeedbackBuffersEXT = unsafe extern "system" fn( _command_buffer: CommandBuffer, @@ -422,6 +460,14 @@ pub type PFN_vkCmdBindVertexBuffers2 = unsafe extern "system" fn( /// pub type PFN_vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2; +/// +pub type PFN_vkCmdBindVertexBuffers3KHR = unsafe extern "system" fn( + _command_buffer: CommandBuffer, + _first_binding: u32, + _binding_count: u32, + _binding_infos: *const BindVertexBuffer3InfoKHR, +); + /// pub type PFN_vkCmdBlitImage = unsafe extern "system" fn( _command_buffer: CommandBuffer, @@ -631,6 +677,12 @@ pub type PFN_vkCmdCopyImageToBuffer2 = unsafe extern "system" fn( /// pub type PFN_vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2; +/// +pub type PFN_vkCmdCopyImageToMemoryKHR = unsafe extern "system" fn( + _command_buffer: CommandBuffer, + _copy_memory_info: *const CopyDeviceMemoryImageInfoKHR, +); + /// pub type PFN_vkCmdCopyMemoryIndirectKHR = unsafe extern "system" fn( _command_buffer: CommandBuffer, @@ -645,6 +697,12 @@ pub type PFN_vkCmdCopyMemoryIndirectNV = unsafe extern "system" fn( _stride: u32, ); +/// +pub type PFN_vkCmdCopyMemoryKHR = unsafe extern "system" fn( + _command_buffer: CommandBuffer, + _copy_memory_info: *const CopyDeviceMemoryInfoKHR, +); + /// pub type PFN_vkCmdCopyMemoryToAccelerationStructureKHR = unsafe extern "system" fn( _command_buffer: CommandBuffer, @@ -668,6 +726,12 @@ pub type PFN_vkCmdCopyMemoryToImageIndirectNV = unsafe extern "system" fn( _image_subresources: *const ImageSubresourceLayers, ); +/// +pub type PFN_vkCmdCopyMemoryToImageKHR = unsafe extern "system" fn( + _command_buffer: CommandBuffer, + _copy_memory_info: *const CopyDeviceMemoryImageInfoKHR, +); + /// pub type PFN_vkCmdCopyMemoryToMicromapEXT = unsafe extern "system" fn( _command_buffer: CommandBuffer, @@ -696,6 +760,17 @@ pub type PFN_vkCmdCopyQueryPoolResults = unsafe extern "system" fn( _flags: QueryResultFlags, ); +/// +pub type PFN_vkCmdCopyQueryPoolResultsToMemoryKHR = unsafe extern "system" fn( + _command_buffer: CommandBuffer, + _query_pool: QueryPool, + _first_query: u32, + _query_count: u32, + _dst_range: *const StridedDeviceAddressRangeKHR, + _dst_flags: AddressCommandFlagsKHR, + _query_result_flags: QueryResultFlags, +); + /// pub type PFN_vkCmdCopyTensorARM = unsafe extern "system" fn( _command_buffer: CommandBuffer, @@ -821,6 +896,12 @@ pub type PFN_vkCmdDispatchGraphIndirectCountAMDX = unsafe extern "system" fn( pub type PFN_vkCmdDispatchIndirect = unsafe extern "system" fn(_command_buffer: CommandBuffer, _buffer: Buffer, _offset: DeviceSize); +/// +pub type PFN_vkCmdDispatchIndirect2KHR = unsafe extern "system" fn( + _command_buffer: CommandBuffer, + _info: *const DispatchIndirect2InfoKHR, +); + /// pub type PFN_vkCmdDispatchTileQCOM = unsafe extern "system" fn( _command_buffer: CommandBuffer, @@ -867,6 +948,10 @@ pub type PFN_vkCmdDrawIndexedIndirect = unsafe extern "system" fn( _stride: u32, ); +/// +pub type PFN_vkCmdDrawIndexedIndirect2KHR = + unsafe extern "system" fn(_command_buffer: CommandBuffer, _info: *const DrawIndirect2InfoKHR); + /// pub type PFN_vkCmdDrawIndexedIndirectCount = unsafe extern "system" fn( _command_buffer: CommandBuffer, @@ -878,6 +963,12 @@ pub type PFN_vkCmdDrawIndexedIndirectCount = unsafe extern "system" fn( _stride: u32, ); +/// +pub type PFN_vkCmdDrawIndexedIndirectCount2KHR = unsafe extern "system" fn( + _command_buffer: CommandBuffer, + _info: *const DrawIndirectCount2InfoKHR, +); + /// pub type PFN_vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCount; @@ -893,6 +984,20 @@ pub type PFN_vkCmdDrawIndirect = unsafe extern "system" fn( _stride: u32, ); +/// +pub type PFN_vkCmdDrawIndirect2KHR = + unsafe extern "system" fn(_command_buffer: CommandBuffer, _info: *const DrawIndirect2InfoKHR); + +/// +pub type PFN_vkCmdDrawIndirectByteCount2EXT = unsafe extern "system" fn( + _command_buffer: CommandBuffer, + _instance_count: u32, + _first_instance: u32, + _counter_info: *const BindTransformFeedbackBuffer2InfoEXT, + _counter_offset: u32, + _vertex_stride: u32, +); + /// pub type PFN_vkCmdDrawIndirectByteCountEXT = unsafe extern "system" fn( _command_buffer: CommandBuffer, @@ -915,6 +1020,12 @@ pub type PFN_vkCmdDrawIndirectCount = unsafe extern "system" fn( _stride: u32, ); +/// +pub type PFN_vkCmdDrawIndirectCount2KHR = unsafe extern "system" fn( + _command_buffer: CommandBuffer, + _info: *const DrawIndirectCount2InfoKHR, +); + /// pub type PFN_vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCount; @@ -929,6 +1040,16 @@ pub type PFN_vkCmdDrawMeshTasksEXT = unsafe extern "system" fn( _group_count_z: u32, ); +/// +pub type PFN_vkCmdDrawMeshTasksIndirect2EXT = + unsafe extern "system" fn(_command_buffer: CommandBuffer, _info: *const DrawIndirect2InfoKHR); + +/// +pub type PFN_vkCmdDrawMeshTasksIndirectCount2EXT = unsafe extern "system" fn( + _command_buffer: CommandBuffer, + _info: *const DrawIndirectCount2InfoKHR, +); + /// pub type PFN_vkCmdDrawMeshTasksIndirectCountEXT = unsafe extern "system" fn( _command_buffer: CommandBuffer, @@ -1052,6 +1173,18 @@ pub type PFN_vkCmdEndRendering2KHR = unsafe extern "system" fn( /// pub type PFN_vkCmdEndRenderingKHR = PFN_vkCmdEndRendering; +/// +pub type PFN_vkCmdEndShaderInstrumentationARM = + unsafe extern "system" fn(_command_buffer: CommandBuffer); + +/// +pub type PFN_vkCmdEndTransformFeedback2EXT = unsafe extern "system" fn( + _command_buffer: CommandBuffer, + _first_counter_range: u32, + _counter_range_count: u32, + _counter_infos: *const BindTransformFeedbackBuffer2InfoEXT, +); + /// pub type PFN_vkCmdEndTransformFeedbackEXT = unsafe extern "system" fn( _command_buffer: CommandBuffer, @@ -1097,6 +1230,14 @@ pub type PFN_vkCmdFillBuffer = unsafe extern "system" fn( _data: u32, ); +/// +pub type PFN_vkCmdFillMemoryKHR = unsafe extern "system" fn( + _command_buffer: CommandBuffer, + _dst_range: *const DeviceAddressRangeKHR, + _dst_flags: AddressCommandFlagsKHR, + _data: u32, +); + /// pub type PFN_vkCmdInitializeGraphScratchMemoryAMDX = unsafe extern "system" fn( _command_buffer: CommandBuffer, @@ -1912,6 +2053,15 @@ pub type PFN_vkCmdUpdateBuffer = unsafe extern "system" fn( _data: *const c_void, ); +/// +pub type PFN_vkCmdUpdateMemoryKHR = unsafe extern "system" fn( + _command_buffer: CommandBuffer, + _dst_range: *const DeviceAddressRangeKHR, + _dst_flags: AddressCommandFlagsKHR, + _data_size: DeviceSize, + _data: *const c_void, +); + /// pub type PFN_vkCmdUpdatePipelineIndirectBufferNV = unsafe extern "system" fn( _command_buffer: CommandBuffer, @@ -1983,6 +2133,10 @@ pub type PFN_vkCmdWriteBufferMarkerAMD = unsafe extern "system" fn( _marker: u32, ); +/// +pub type PFN_vkCmdWriteMarkerToMemoryAMD = + unsafe extern "system" fn(_command_buffer: CommandBuffer, _info: *const MemoryMarkerInfoAMD); + /// pub type PFN_vkCmdWriteMicromapsPropertiesEXT = unsafe extern "system" fn( _command_buffer: CommandBuffer, @@ -2091,6 +2245,14 @@ pub type PFN_vkCopyMicromapToMemoryEXT = unsafe extern "system" fn( _info: *const CopyMicromapToMemoryInfoEXT, ) -> Result; +/// +pub type PFN_vkCreateAccelerationStructure2KHR = unsafe extern "system" fn( + _device: Device, + _create_info: *const AccelerationStructureCreateInfo2KHR, + _allocator: *const AllocationCallbacks, + _acceleration_structure: *mut AccelerationStructureKHR, +) -> Result; + /// pub type PFN_vkCreateAccelerationStructureKHR = unsafe extern "system" fn( _device: Device, @@ -2572,6 +2734,14 @@ pub type PFN_vkCreateSemaphoreSciSyncPoolNV = unsafe extern "system" fn( _semaphore_pool: *mut SemaphoreSciSyncPoolNV, ) -> Result; +/// +pub type PFN_vkCreateShaderInstrumentationARM = unsafe extern "system" fn( + _device: Device, + _create_info: *const ShaderInstrumentationCreateInfoARM, + _allocator: *const AllocationCallbacks, + _instrumentation: *mut ShaderInstrumentationARM, +) -> Result; + /// pub type PFN_vkCreateShaderModule = unsafe extern "system" fn( _device: Device, @@ -3035,6 +3205,13 @@ pub type PFN_vkDestroyShaderEXT = unsafe extern "system" fn( _allocator: *const AllocationCallbacks, ); +/// +pub type PFN_vkDestroyShaderInstrumentationARM = unsafe extern "system" fn( + _device: Device, + _instrumentation: ShaderInstrumentationARM, + _allocator: *const AllocationCallbacks, +); + /// pub type PFN_vkDestroyShaderModule = unsafe extern "system" fn( _device: Device, @@ -3167,6 +3344,14 @@ pub type PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = _counter_descriptions: *mut PerformanceCounterDescriptionKHR, ) -> Result; +/// +pub type PFN_vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM = + unsafe extern "system" fn( + _physical_device: PhysicalDevice, + _description_count: *mut u32, + _descriptions: *mut ShaderInstrumentationMetricDescriptionARM, + ) -> Result; + /// pub type PFN_vkEnumeratePhysicalDevices = unsafe extern "system" fn( _instance: Instance, @@ -3439,6 +3624,10 @@ pub type PFN_vkGetDeviceBufferMemoryRequirementsKHR = PFN_vkGetDeviceBufferMemor pub type PFN_vkGetDeviceCombinedImageSamplerIndexNVX = unsafe extern "system" fn(_device: Device, _image_view_index: u64, _sampler_index: u64) -> u64; +/// +pub type PFN_vkGetDeviceFaultDebugInfoKHR = + unsafe extern "system" fn(_device: Device, _debug_info: *mut DeviceFaultDebugInfoKHR) -> Result; + /// pub type PFN_vkGetDeviceFaultInfoEXT = unsafe extern "system" fn( _device: Device, @@ -3446,6 +3635,14 @@ pub type PFN_vkGetDeviceFaultInfoEXT = unsafe extern "system" fn( _fault_info: *mut DeviceFaultInfoEXT, ) -> Result; +/// +pub type PFN_vkGetDeviceFaultReportsKHR = unsafe extern "system" fn( + _device: Device, + _timeout: u64, + _fault_counts: *mut u32, + _fault_info: *mut DeviceFaultInfoKHR, +) -> Result; + /// pub type PFN_vkGetDeviceGroupPeerMemoryFeatures = unsafe extern "system" fn( _device: Device, @@ -4693,6 +4890,15 @@ pub type PFN_vkGetShaderInfoAMD = unsafe extern "system" fn( _info: *mut c_void, ) -> Result; +/// +pub type PFN_vkGetShaderInstrumentationValuesARM = unsafe extern "system" fn( + _device: Device, + _instrumentation: ShaderInstrumentationARM, + _metric_block_count: *mut u32, + _metric_values: *mut c_void, + _flags: ShaderInstrumentationValuesFlagsARM, +) -> Result; + /// pub type PFN_vkGetShaderModuleCreateInfoIdentifierEXT = unsafe extern "system" fn( _device: Device, diff --git a/vulkanalia-sys/src/enums.rs b/vulkanalia-sys/src/enums.rs index c17e0b9..bb2a1d8 100644 --- a/vulkanalia-sys/src/enums.rs +++ b/vulkanalia-sys/src/enums.rs @@ -1929,12 +1929,12 @@ impl fmt::Debug for DeviceEventTypeEXT { } } -/// +/// #[repr(transparent)] #[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] -pub struct DeviceFaultAddressTypeEXT(i32); +pub struct DeviceFaultAddressTypeKHR(i32); -impl DeviceFaultAddressTypeEXT { +impl DeviceFaultAddressTypeKHR { pub const NONE: Self = Self(0); pub const READ_INVALID: Self = Self(1); pub const WRITE_INVALID: Self = Self(2); @@ -1956,7 +1956,7 @@ impl DeviceFaultAddressTypeEXT { } } -impl fmt::Debug for DeviceFaultAddressTypeEXT { +impl fmt::Debug for DeviceFaultAddressTypeKHR { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match self.0 { 0 => write!(f, "NONE"), @@ -1971,12 +1971,12 @@ impl fmt::Debug for DeviceFaultAddressTypeEXT { } } -/// +/// #[repr(transparent)] #[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] -pub struct DeviceFaultVendorBinaryHeaderVersionEXT(i32); +pub struct DeviceFaultVendorBinaryHeaderVersionKHR(i32); -impl DeviceFaultVendorBinaryHeaderVersionEXT { +impl DeviceFaultVendorBinaryHeaderVersionKHR { pub const ONE: Self = Self(1); /// Constructs an instance of this enum with the supplied underlying value. @@ -1992,7 +1992,7 @@ impl DeviceFaultVendorBinaryHeaderVersionEXT { } } -impl fmt::Debug for DeviceFaultVendorBinaryHeaderVersionEXT { +impl fmt::Debug for DeviceFaultVendorBinaryHeaderVersionKHR { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match self.0 { 1 => write!(f, "ONE"), @@ -4152,6 +4152,7 @@ impl ObjectType { pub const EXTERNAL_COMPUTE_QUEUE_NV: Self = Self(1000556000); pub const INDIRECT_COMMANDS_LAYOUT_EXT: Self = Self(1000572000); pub const INDIRECT_EXECUTION_SET_EXT: Self = Self(1000572001); + pub const SHADER_INSTRUMENTATION_ARM: Self = Self(1000607000); /// Constructs an instance of this enum with the supplied underlying value. #[inline] @@ -4228,6 +4229,7 @@ impl fmt::Debug for ObjectType { 1000556000 => write!(f, "EXTERNAL_COMPUTE_QUEUE_NV"), 1000572000 => write!(f, "INDIRECT_COMMANDS_LAYOUT_EXT"), 1000572001 => write!(f, "INDIRECT_EXECUTION_SET_EXT"), + 1000607000 => write!(f, "SHADER_INSTRUMENTATION_ARM"), _ => self.0.fmt(f), } } @@ -6903,6 +6905,10 @@ impl StructureType { pub const RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: Self = Self(1000044006); pub const PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: Self = Self(1000227000); pub const PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD: Self = Self(1000229000); + pub const PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR: Self = Self(1000231000); + pub const PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR: Self = Self(1000233000); + pub const DEVICE_FAULT_SHADER_ABORT_MESSAGE_INFO_KHR: Self = Self(1000233001); + pub const PHYSICAL_DEVICE_SHADER_ABORT_PROPERTIES_KHR: Self = Self(1000233002); pub const PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: Self = Self(1000234000); pub const PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR: Self = Self(1000235000); pub const PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: Self = Self(1000237000); @@ -7023,6 +7029,22 @@ impl StructureType { pub const DESCRIPTOR_BUFFER_BINDING_INFO_EXT: Self = Self(1000316011); pub const DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT: Self = Self(1000316012); pub const ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT: Self = Self(1000316009); + pub const DEVICE_MEMORY_COPY_KHR: Self = Self(1000318000); + pub const COPY_DEVICE_MEMORY_INFO_KHR: Self = Self(1000318001); + pub const DEVICE_MEMORY_IMAGE_COPY_KHR: Self = Self(1000318002); + pub const COPY_DEVICE_MEMORY_IMAGE_INFO_KHR: Self = Self(1000318003); + pub const MEMORY_RANGE_BARRIERS_INFO_KHR: Self = Self(1000318004); + pub const MEMORY_RANGE_BARRIER_KHR: Self = Self(1000318005); + pub const PHYSICAL_DEVICE_DEVICE_ADDRESS_COMMANDS_FEATURES_KHR: Self = Self(1000318006); + pub const BIND_INDEX_BUFFER_3_INFO_KHR: Self = Self(1000318007); + pub const BIND_VERTEX_BUFFER_3_INFO_KHR: Self = Self(1000318008); + pub const DRAW_INDIRECT_2_INFO_KHR: Self = Self(1000318009); + pub const DRAW_INDIRECT_COUNT_2_INFO_KHR: Self = Self(1000318010); + pub const DISPATCH_INDIRECT_2_INFO_KHR: Self = Self(1000318011); + pub const CONDITIONAL_RENDERING_BEGIN_INFO_2_EXT: Self = Self(1000318012); + pub const BIND_TRANSFORM_FEEDBACK_BUFFER_2_INFO_EXT: Self = Self(1000318013); + pub const MEMORY_MARKER_INFO_AMD: Self = Self(1000318014); + pub const ACCELERATION_STRUCTURE_CREATE_INFO_2_KHR: Self = Self(1000318015); pub const PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: Self = Self(1000320000); pub const PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: Self = Self(1000320001); pub const GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: Self = Self(1000320002); @@ -7460,6 +7482,10 @@ impl StructureType { pub const INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT: Self = Self(1000572012); pub const GENERATED_COMMANDS_PIPELINE_INFO_EXT: Self = Self(1000572013); pub const GENERATED_COMMANDS_SHADER_INFO_EXT: Self = Self(1000572014); + pub const PHYSICAL_DEVICE_FAULT_FEATURES_KHR: Self = Self(1000573000); + pub const PHYSICAL_DEVICE_FAULT_PROPERTIES_KHR: Self = Self(1000573001); + pub const DEVICE_FAULT_INFO_KHR: Self = Self(1000573002); + pub const DEVICE_FAULT_DEBUG_INFO_KHR: Self = Self(1000573003); pub const PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR: Self = Self(1000574000); pub const MEMORY_BARRIER_ACCESS_FLAGS_3_KHR: Self = Self(1000574002); pub const PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA: Self = Self(1000575000); @@ -7498,6 +7524,10 @@ impl StructureType { pub const PERFORMANCE_COUNTER_ARM: Self = Self(1000605002); pub const PERFORMANCE_COUNTER_DESCRIPTION_ARM: Self = Self(1000605003); pub const RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM: Self = Self(1000605004); + pub const PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_FEATURES_ARM: Self = Self(1000607000); + pub const PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_PROPERTIES_ARM: Self = Self(1000607001); + pub const SHADER_INSTRUMENTATION_CREATE_INFO_ARM: Self = Self(1000607002); + pub const SHADER_INSTRUMENTATION_METRIC_DESCRIPTION_ARM: Self = Self(1000607003); pub const PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT: Self = Self(1000608000); pub const PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM: Self = Self(1000609000); pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE: Self = Self(1000611000); @@ -8178,6 +8208,10 @@ impl fmt::Debug for StructureType { 1000044006 => write!(f, "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"), 1000227000 => write!(f, "PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD"), 1000229000 => write!(f, "PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD"), + 1000231000 => write!(f, "PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR"), + 1000233000 => write!(f, "PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR"), + 1000233001 => write!(f, "DEVICE_FAULT_SHADER_ABORT_MESSAGE_INFO_KHR"), + 1000233002 => write!(f, "PHYSICAL_DEVICE_SHADER_ABORT_PROPERTIES_KHR"), 1000234000 => write!(f, "PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT"), 1000235000 => write!(f, "PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR"), 1000237000 => write!(f, "PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT"), @@ -8317,6 +8351,22 @@ impl fmt::Debug for StructureType { "DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT" ), 1000316009 => write!(f, "ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"), + 1000318000 => write!(f, "DEVICE_MEMORY_COPY_KHR"), + 1000318001 => write!(f, "COPY_DEVICE_MEMORY_INFO_KHR"), + 1000318002 => write!(f, "DEVICE_MEMORY_IMAGE_COPY_KHR"), + 1000318003 => write!(f, "COPY_DEVICE_MEMORY_IMAGE_INFO_KHR"), + 1000318004 => write!(f, "MEMORY_RANGE_BARRIERS_INFO_KHR"), + 1000318005 => write!(f, "MEMORY_RANGE_BARRIER_KHR"), + 1000318006 => write!(f, "PHYSICAL_DEVICE_DEVICE_ADDRESS_COMMANDS_FEATURES_KHR"), + 1000318007 => write!(f, "BIND_INDEX_BUFFER_3_INFO_KHR"), + 1000318008 => write!(f, "BIND_VERTEX_BUFFER_3_INFO_KHR"), + 1000318009 => write!(f, "DRAW_INDIRECT_2_INFO_KHR"), + 1000318010 => write!(f, "DRAW_INDIRECT_COUNT_2_INFO_KHR"), + 1000318011 => write!(f, "DISPATCH_INDIRECT_2_INFO_KHR"), + 1000318012 => write!(f, "CONDITIONAL_RENDERING_BEGIN_INFO_2_EXT"), + 1000318013 => write!(f, "BIND_TRANSFORM_FEEDBACK_BUFFER_2_INFO_EXT"), + 1000318014 => write!(f, "MEMORY_MARKER_INFO_AMD"), + 1000318015 => write!(f, "ACCELERATION_STRUCTURE_CREATE_INFO_2_KHR"), 1000320000 => write!(f, "PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT"), 1000320001 => write!( f, @@ -8921,6 +8971,10 @@ impl fmt::Debug for StructureType { 1000572012 => write!(f, "INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT"), 1000572013 => write!(f, "GENERATED_COMMANDS_PIPELINE_INFO_EXT"), 1000572014 => write!(f, "GENERATED_COMMANDS_SHADER_INFO_EXT"), + 1000573000 => write!(f, "PHYSICAL_DEVICE_FAULT_FEATURES_KHR"), + 1000573001 => write!(f, "PHYSICAL_DEVICE_FAULT_PROPERTIES_KHR"), + 1000573002 => write!(f, "DEVICE_FAULT_INFO_KHR"), + 1000573003 => write!(f, "DEVICE_FAULT_DEBUG_INFO_KHR"), 1000574000 => write!(f, "PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR"), 1000574002 => write!(f, "MEMORY_BARRIER_ACCESS_FLAGS_3_KHR"), 1000575000 => write!(f, "PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA"), @@ -8972,6 +9026,10 @@ impl fmt::Debug for StructureType { f, "RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM" ), + 1000607000 => write!(f, "PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_FEATURES_ARM"), + 1000607001 => write!(f, "PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_PROPERTIES_ARM"), + 1000607002 => write!(f, "SHADER_INSTRUMENTATION_CREATE_INFO_ARM"), + 1000607003 => write!(f, "SHADER_INSTRUMENTATION_METRIC_DESCRIPTION_ARM"), 1000608000 => write!( f, "PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT" @@ -9661,6 +9719,10 @@ pub type ComponentTypeNV = ComponentTypeKHR; pub type CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR; /// pub type DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType; +/// +pub type DeviceFaultAddressTypeEXT = DeviceFaultAddressTypeKHR; +/// +pub type DeviceFaultVendorBinaryHeaderVersionEXT = DeviceFaultVendorBinaryHeaderVersionKHR; /// pub type DriverIdKHR = DriverId; /// diff --git a/vulkanalia-sys/src/extensions.rs b/vulkanalia-sys/src/extensions.rs index d92dc7b..8d1a7d5 100644 --- a/vulkanalia-sys/src/extensions.rs +++ b/vulkanalia-sys/src/extensions.rs @@ -651,6 +651,22 @@ pub const ARM_SHADER_CORE_PROPERTIES_EXTENSION: Extension = Extension { promoted_to: None, }; +/// +#[allow(deprecated)] +pub const ARM_SHADER_INSTRUMENTATION_EXTENSION: Extension = Extension { + name: ExtensionName::from_bytes(b"VK_ARM_shader_instrumentation"), + number: 608, + type_: "device", + author: "ARM", + contact: "Jan-Harald Fredriksen @janharaldfredriksen-arm", + platform: None, + required_extensions: None, + required_version: None, + deprecated_by: None, + obsoleted_by: None, + promoted_to: None, +}; + /// #[allow(deprecated)] pub const ARM_TENSORS_EXTENSION: Extension = Extension { @@ -1147,7 +1163,7 @@ pub const EXT_DEVICE_FAULT_EXTENSION: Extension = Extension { required_version: None, deprecated_by: None, obsoleted_by: None, - promoted_to: None, + promoted_to: Some("VK_KHR_device_fault"), }; /// @@ -3619,6 +3635,38 @@ pub const KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION: Extension = Extension { promoted_to: Some("VK_VERSION_1_1"), }; +/// +#[allow(deprecated)] +pub const KHR_DEVICE_ADDRESS_COMMANDS_EXTENSION: Extension = Extension { + name: ExtensionName::from_bytes(b"VK_KHR_device_address_commands"), + number: 319, + type_: "device", + author: "KHR", + contact: "Tobias Hector @tobski", + platform: None, + required_extensions: None, + required_version: None, + deprecated_by: None, + obsoleted_by: None, + promoted_to: None, +}; + +/// +#[allow(deprecated)] +pub const KHR_DEVICE_FAULT_EXTENSION: Extension = Extension { + name: ExtensionName::from_bytes(b"VK_KHR_device_fault"), + number: 574, + type_: "device", + author: "KHR", + contact: "Ralph Potter gitlab:@r_potter", + platform: None, + required_extensions: None, + required_version: None, + deprecated_by: None, + obsoleted_by: None, + promoted_to: None, +}; + /// #[allow(deprecated)] pub const KHR_DEVICE_GROUP_EXTENSION: Extension = Extension { @@ -4731,6 +4779,22 @@ pub const KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION: Extension = Extension { promoted_to: Some("VK_VERSION_1_2"), }; +/// +#[allow(deprecated)] +pub const KHR_SHADER_ABORT_EXTENSION: Extension = Extension { + name: ExtensionName::from_bytes(b"VK_KHR_shader_abort"), + number: 234, + type_: "device", + author: "KHR", + contact: "Tobias Hector @tobski", + platform: None, + required_extensions: None, + required_version: None, + deprecated_by: None, + obsoleted_by: None, + promoted_to: None, +}; + /// #[allow(deprecated)] pub const KHR_SHADER_ATOMIC_INT64_EXTENSION: Extension = Extension { @@ -4779,6 +4843,22 @@ pub const KHR_SHADER_CLOCK_EXTENSION: Extension = Extension { promoted_to: None, }; +/// +#[allow(deprecated)] +pub const KHR_SHADER_CONSTANT_DATA_EXTENSION: Extension = Extension { + name: ExtensionName::from_bytes(b"VK_KHR_shader_constant_data"), + number: 232, + type_: "device", + author: "KHR", + contact: "Tobias Hector @tobski", + platform: None, + required_extensions: None, + required_version: None, + deprecated_by: None, + obsoleted_by: None, + promoted_to: None, +}; + /// #[allow(deprecated)] pub const KHR_SHADER_DRAW_PARAMETERS_EXTENSION: Extension = Extension { @@ -6565,14 +6645,6 @@ pub const NV_PRESENT_BARRIER_EXTENSION: Extension = Extension { }; /// -/// -/// ## WARNING -/// -/// This is a -/// [provisional extension](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/provisional-headers.html). -/// Provisional extensions are not guaranteed to be backwards compatible and are -/// not intended to be used in production applications. -#[cfg(feature = "provisional")] #[allow(deprecated)] pub const NV_PRESENT_METERING_EXTENSION: Extension = Extension { name: ExtensionName::from_bytes(b"VK_NV_present_metering"), @@ -6580,7 +6652,7 @@ pub const NV_PRESENT_METERING_EXTENSION: Extension = Extension { type_: "device", author: "NV", contact: "Charles Hansen @chansen", - platform: Some("provisional"), + platform: None, required_extensions: None, required_version: None, deprecated_by: None, diff --git a/vulkanalia-sys/src/handles.rs b/vulkanalia-sys/src/handles.rs index c4b4d34..654ad36 100644 --- a/vulkanalia-sys/src/handles.rs +++ b/vulkanalia-sys/src/handles.rs @@ -2287,6 +2287,50 @@ impl fmt::Debug for ShaderEXT { } } +/// +#[repr(transparent)] +#[derive(Copy, Clone, PartialEq, Eq, Hash)] +pub struct ShaderInstrumentationARM(u64); + +impl Handle for ShaderInstrumentationARM { + type Repr = u64; + + const TYPE: ObjectType = ObjectType::SHADER_INSTRUMENTATION_ARM; + + #[inline] + fn null() -> Self { + Self(0) + } + + #[inline] + fn from_raw(value: Self::Repr) -> Self { + Self(value) + } + + #[inline] + fn as_raw(self) -> Self::Repr { + self.0 + } + + #[inline] + fn is_null(self) -> bool { + self.0 == 0 + } +} + +impl Default for ShaderInstrumentationARM { + #[inline] + fn default() -> Self { + Self::null() + } +} + +impl fmt::Debug for ShaderInstrumentationARM { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "ShaderInstrumentationARM({:p})", self.0 as *const u8) + } +} + /// #[repr(transparent)] #[derive(Copy, Clone, PartialEq, Eq, Hash)] diff --git a/vulkanalia-sys/src/structs.rs b/vulkanalia-sys/src/structs.rs index b8f0058..516ca81 100644 --- a/vulkanalia-sys/src/structs.rs +++ b/vulkanalia-sys/src/structs.rs @@ -139,6 +139,35 @@ impl Default for AccelerationStructureCaptureDescriptorDataInfoEXT { unsafe impl Send for AccelerationStructureCaptureDescriptorDataInfoEXT {} unsafe impl Sync for AccelerationStructureCaptureDescriptorDataInfoEXT {} +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct AccelerationStructureCreateInfo2KHR { + pub s_type: StructureType, + pub next: *const c_void, + pub create_flags: AccelerationStructureCreateFlagsKHR, + pub address_range: DeviceAddressRangeKHR, + pub address_flags: AddressCommandFlagsKHR, + pub type_: AccelerationStructureTypeKHR, +} + +impl Default for AccelerationStructureCreateInfo2KHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_2_KHR, + next: ptr::null(), + create_flags: AccelerationStructureCreateFlagsKHR::default(), + address_range: DeviceAddressRangeKHR::default(), + address_flags: AddressCommandFlagsKHR::default(), + type_: AccelerationStructureTypeKHR::default(), + } + } +} + +unsafe impl Send for AccelerationStructureCreateInfo2KHR {} +unsafe impl Sync for AccelerationStructureCreateInfo2KHR {} + /// #[repr(C)] #[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] @@ -1725,6 +1754,33 @@ impl Default for BindImagePlaneMemoryInfo { unsafe impl Send for BindImagePlaneMemoryInfo {} unsafe impl Sync for BindImagePlaneMemoryInfo {} +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct BindIndexBuffer3InfoKHR { + pub s_type: StructureType, + pub next: *const c_void, + pub address_range: DeviceAddressRangeKHR, + pub address_flags: AddressCommandFlagsKHR, + pub index_type: IndexType, +} + +impl Default for BindIndexBuffer3InfoKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::BIND_INDEX_BUFFER_3_INFO_KHR, + next: ptr::null(), + address_range: DeviceAddressRangeKHR::default(), + address_flags: AddressCommandFlagsKHR::default(), + index_type: IndexType::default(), + } + } +} + +unsafe impl Send for BindIndexBuffer3InfoKHR {} +unsafe impl Sync for BindIndexBuffer3InfoKHR {} + /// #[repr(C)] #[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)] @@ -1848,6 +1904,58 @@ impl Default for BindTensorMemoryInfoARM { unsafe impl Send for BindTensorMemoryInfoARM {} unsafe impl Sync for BindTensorMemoryInfoARM {} +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct BindTransformFeedbackBuffer2InfoEXT { + pub s_type: StructureType, + pub next: *const c_void, + pub address_range: DeviceAddressRangeKHR, + pub address_flags: AddressCommandFlagsKHR, +} + +impl Default for BindTransformFeedbackBuffer2InfoEXT { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::BIND_TRANSFORM_FEEDBACK_BUFFER_2_INFO_EXT, + next: ptr::null(), + address_range: DeviceAddressRangeKHR::default(), + address_flags: AddressCommandFlagsKHR::default(), + } + } +} + +unsafe impl Send for BindTransformFeedbackBuffer2InfoEXT {} +unsafe impl Sync for BindTransformFeedbackBuffer2InfoEXT {} + +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct BindVertexBuffer3InfoKHR { + pub s_type: StructureType, + pub next: *const c_void, + pub set_stride: Bool32, + pub address_range: StridedDeviceAddressRangeKHR, + pub address_flags: AddressCommandFlagsKHR, +} + +impl Default for BindVertexBuffer3InfoKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::BIND_VERTEX_BUFFER_3_INFO_KHR, + next: ptr::null(), + set_stride: Bool32::default(), + address_range: StridedDeviceAddressRangeKHR::default(), + address_flags: AddressCommandFlagsKHR::default(), + } + } +} + +unsafe impl Send for BindVertexBuffer3InfoKHR {} +unsafe impl Sync for BindVertexBuffer3InfoKHR {} + /// #[repr(C)] #[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)] @@ -3319,6 +3427,33 @@ impl Default for ComputePipelineIndirectBufferInfoNV { unsafe impl Send for ComputePipelineIndirectBufferInfoNV {} unsafe impl Sync for ComputePipelineIndirectBufferInfoNV {} +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct ConditionalRenderingBeginInfo2EXT { + pub s_type: StructureType, + pub next: *const c_void, + pub address_range: DeviceAddressRangeKHR, + pub address_flags: AddressCommandFlagsKHR, + pub flags: ConditionalRenderingFlagsEXT, +} + +impl Default for ConditionalRenderingBeginInfo2EXT { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::CONDITIONAL_RENDERING_BEGIN_INFO_2_EXT, + next: ptr::null(), + address_range: DeviceAddressRangeKHR::default(), + address_flags: AddressCommandFlagsKHR::default(), + flags: ConditionalRenderingFlagsEXT::default(), + } + } +} + +unsafe impl Send for ConditionalRenderingBeginInfo2EXT {} +unsafe impl Sync for ConditionalRenderingBeginInfo2EXT {} + /// #[repr(C)] #[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] @@ -3723,6 +3858,58 @@ impl Default for CopyDescriptorSet { unsafe impl Send for CopyDescriptorSet {} unsafe impl Sync for CopyDescriptorSet {} +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct CopyDeviceMemoryImageInfoKHR { + pub s_type: StructureType, + pub next: *const c_void, + pub image: Image, + pub region_count: u32, + pub regions: *const DeviceMemoryImageCopyKHR, +} + +impl Default for CopyDeviceMemoryImageInfoKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::COPY_DEVICE_MEMORY_IMAGE_INFO_KHR, + next: ptr::null(), + image: Image::default(), + region_count: u32::default(), + regions: ptr::null(), + } + } +} + +unsafe impl Send for CopyDeviceMemoryImageInfoKHR {} +unsafe impl Sync for CopyDeviceMemoryImageInfoKHR {} + +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct CopyDeviceMemoryInfoKHR { + pub s_type: StructureType, + pub next: *const c_void, + pub region_count: u32, + pub regions: *const DeviceMemoryCopyKHR, +} + +impl Default for CopyDeviceMemoryInfoKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::COPY_DEVICE_MEMORY_INFO_KHR, + next: ptr::null(), + region_count: u32::default(), + regions: ptr::null(), + } + } +} + +unsafe impl Send for CopyDeviceMemoryInfoKHR {} +unsafe impl Sync for CopyDeviceMemoryInfoKHR {} + /// #[repr(C)] #[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] @@ -6032,10 +6219,10 @@ impl Default for DeviceAddressBindingCallbackDataEXT { unsafe impl Send for DeviceAddressBindingCallbackDataEXT {} unsafe impl Sync for DeviceAddressBindingCallbackDataEXT {} -/// +/// #[repr(C)] #[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)] -pub struct DeviceAddressRangeEXT { +pub struct DeviceAddressRangeKHR { pub address: DeviceAddress, pub size: DeviceSize, } @@ -6188,11 +6375,11 @@ impl Default for DeviceEventInfoEXT { unsafe impl Send for DeviceEventInfoEXT {} unsafe impl Sync for DeviceEventInfoEXT {} -/// +/// #[repr(C)] #[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)] -pub struct DeviceFaultAddressInfoEXT { - pub address_type: DeviceFaultAddressTypeEXT, +pub struct DeviceFaultAddressInfoKHR { + pub address_type: DeviceFaultAddressTypeKHR, pub reported_address: DeviceAddress, pub address_precision: DeviceSize, } @@ -6224,6 +6411,31 @@ impl Default for DeviceFaultCountsEXT { unsafe impl Send for DeviceFaultCountsEXT {} unsafe impl Sync for DeviceFaultCountsEXT {} +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct DeviceFaultDebugInfoKHR { + pub s_type: StructureType, + pub next: *mut c_void, + pub vendor_binary_size: u32, + pub vendor_binary_data: *mut c_void, +} + +impl Default for DeviceFaultDebugInfoKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::DEVICE_FAULT_DEBUG_INFO_KHR, + next: ptr::null_mut(), + vendor_binary_size: u32::default(), + vendor_binary_data: ptr::null_mut(), + } + } +} + +unsafe impl Send for DeviceFaultDebugInfoKHR {} +unsafe impl Sync for DeviceFaultDebugInfoKHR {} + /// #[repr(C)] #[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] @@ -6231,8 +6443,8 @@ pub struct DeviceFaultInfoEXT { pub s_type: StructureType, pub next: *mut c_void, pub description: StringArray, - pub address_infos: *mut DeviceFaultAddressInfoEXT, - pub vendor_infos: *mut DeviceFaultVendorInfoEXT, + pub address_infos: *mut DeviceFaultAddressInfoKHR, + pub vendor_infos: *mut DeviceFaultVendorInfoKHR, pub vendor_binary_data: *mut c_void, } @@ -6253,12 +6465,70 @@ impl Default for DeviceFaultInfoEXT { unsafe impl Send for DeviceFaultInfoEXT {} unsafe impl Sync for DeviceFaultInfoEXT {} -/// +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct DeviceFaultInfoKHR { + pub s_type: StructureType, + pub next: *mut c_void, + pub flags: DeviceFaultFlagsKHR, + pub group_id: u64, + pub description: StringArray, + pub fault_address_info: DeviceFaultAddressInfoKHR, + pub instruction_address_info: DeviceFaultAddressInfoKHR, + pub vendor_info: DeviceFaultVendorInfoKHR, +} + +impl Default for DeviceFaultInfoKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::DEVICE_FAULT_INFO_KHR, + next: ptr::null_mut(), + flags: DeviceFaultFlagsKHR::default(), + group_id: u64::default(), + description: StringArray::default(), + fault_address_info: DeviceFaultAddressInfoKHR::default(), + instruction_address_info: DeviceFaultAddressInfoKHR::default(), + vendor_info: DeviceFaultVendorInfoKHR::default(), + } + } +} + +unsafe impl Send for DeviceFaultInfoKHR {} +unsafe impl Sync for DeviceFaultInfoKHR {} + +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct DeviceFaultShaderAbortMessageInfoKHR { + pub s_type: StructureType, + pub next: *mut c_void, + pub message_data_size: u64, + pub message_data: *mut c_void, +} + +impl Default for DeviceFaultShaderAbortMessageInfoKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::DEVICE_FAULT_SHADER_ABORT_MESSAGE_INFO_KHR, + next: ptr::null_mut(), + message_data_size: u64::default(), + message_data: ptr::null_mut(), + } + } +} + +unsafe impl Send for DeviceFaultShaderAbortMessageInfoKHR {} +unsafe impl Sync for DeviceFaultShaderAbortMessageInfoKHR {} + +/// #[repr(C)] #[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)] -pub struct DeviceFaultVendorBinaryHeaderVersionOneEXT { +pub struct DeviceFaultVendorBinaryHeaderVersionOneKHR { pub header_size: u32, - pub header_version: DeviceFaultVendorBinaryHeaderVersionEXT, + pub header_version: DeviceFaultVendorBinaryHeaderVersionKHR, pub vendor_id: u32, pub device_id: u32, pub driver_version: u32, @@ -6270,10 +6540,10 @@ pub struct DeviceFaultVendorBinaryHeaderVersionOneEXT { pub api_version: u32, } -/// +/// #[repr(C)] #[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)] -pub struct DeviceFaultVendorInfoEXT { +pub struct DeviceFaultVendorInfoKHR { pub description: StringArray, pub vendor_fault_code: u64, pub vendor_fault_data: u64, @@ -6537,6 +6807,72 @@ impl Default for DeviceImageSubresourceInfo { unsafe impl Send for DeviceImageSubresourceInfo {} unsafe impl Sync for DeviceImageSubresourceInfo {} +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct DeviceMemoryCopyKHR { + pub s_type: StructureType, + pub next: *const c_void, + pub src_range: DeviceAddressRangeKHR, + pub src_flags: AddressCommandFlagsKHR, + pub dst_range: DeviceAddressRangeKHR, + pub dst_flags: AddressCommandFlagsKHR, +} + +impl Default for DeviceMemoryCopyKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::DEVICE_MEMORY_COPY_KHR, + next: ptr::null(), + src_range: DeviceAddressRangeKHR::default(), + src_flags: AddressCommandFlagsKHR::default(), + dst_range: DeviceAddressRangeKHR::default(), + dst_flags: AddressCommandFlagsKHR::default(), + } + } +} + +unsafe impl Send for DeviceMemoryCopyKHR {} +unsafe impl Sync for DeviceMemoryCopyKHR {} + +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct DeviceMemoryImageCopyKHR { + pub s_type: StructureType, + pub next: *const c_void, + pub address_range: DeviceAddressRangeKHR, + pub address_flags: AddressCommandFlagsKHR, + pub address_row_length: u32, + pub address_image_height: u32, + pub image_subresource: ImageSubresourceLayers, + pub image_layout: ImageLayout, + pub image_offset: Offset3D, + pub image_extent: Extent3D, +} + +impl Default for DeviceMemoryImageCopyKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::DEVICE_MEMORY_IMAGE_COPY_KHR, + next: ptr::null(), + address_range: DeviceAddressRangeKHR::default(), + address_flags: AddressCommandFlagsKHR::default(), + address_row_length: u32::default(), + address_image_height: u32::default(), + image_subresource: ImageSubresourceLayers::default(), + image_layout: ImageLayout::default(), + image_offset: Offset3D::default(), + image_extent: Extent3D::default(), + } + } +} + +unsafe impl Send for DeviceMemoryImageCopyKHR {} +unsafe impl Sync for DeviceMemoryImageCopyKHR {} + /// #[repr(C)] #[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] @@ -6924,6 +7260,31 @@ pub struct DispatchGraphInfoAMDX { pub payload_stride: u64, } +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct DispatchIndirect2InfoKHR { + pub s_type: StructureType, + pub next: *const c_void, + pub address_range: DeviceAddressRangeKHR, + pub address_flags: AddressCommandFlagsKHR, +} + +impl Default for DispatchIndirect2InfoKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::DISPATCH_INDIRECT_2_INFO_KHR, + next: ptr::null(), + address_range: DeviceAddressRangeKHR::default(), + address_flags: AddressCommandFlagsKHR::default(), + } + } +} + +unsafe impl Send for DispatchIndirect2InfoKHR {} +unsafe impl Sync for DispatchIndirect2InfoKHR {} + /// #[repr(C)] #[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)] @@ -7356,6 +7717,33 @@ pub struct DrawIndexedIndirectCommand { pub first_instance: u32, } +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct DrawIndirect2InfoKHR { + pub s_type: StructureType, + pub next: *const c_void, + pub address_range: StridedDeviceAddressRangeKHR, + pub address_flags: AddressCommandFlagsKHR, + pub draw_count: u32, +} + +impl Default for DrawIndirect2InfoKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::DRAW_INDIRECT_2_INFO_KHR, + next: ptr::null(), + address_range: StridedDeviceAddressRangeKHR::default(), + address_flags: AddressCommandFlagsKHR::default(), + draw_count: u32::default(), + } + } +} + +unsafe impl Send for DrawIndirect2InfoKHR {} +unsafe impl Sync for DrawIndirect2InfoKHR {} + /// #[repr(C)] #[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)] @@ -7366,6 +7754,37 @@ pub struct DrawIndirectCommand { pub first_instance: u32, } +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct DrawIndirectCount2InfoKHR { + pub s_type: StructureType, + pub next: *const c_void, + pub address_range: StridedDeviceAddressRangeKHR, + pub address_flags: AddressCommandFlagsKHR, + pub count_address_range: DeviceAddressRangeKHR, + pub count_address_flags: AddressCommandFlagsKHR, + pub max_draw_count: u32, +} + +impl Default for DrawIndirectCount2InfoKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::DRAW_INDIRECT_COUNT_2_INFO_KHR, + next: ptr::null(), + address_range: StridedDeviceAddressRangeKHR::default(), + address_flags: AddressCommandFlagsKHR::default(), + count_address_range: DeviceAddressRangeKHR::default(), + count_address_flags: AddressCommandFlagsKHR::default(), + max_draw_count: u32::default(), + } + } +} + +unsafe impl Send for DrawIndirectCount2InfoKHR {} +unsafe impl Sync for DrawIndirectCount2InfoKHR {} + /// #[repr(C)] #[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)] @@ -12227,6 +12646,35 @@ impl Default for MemoryMapPlacedInfoEXT { unsafe impl Send for MemoryMapPlacedInfoEXT {} unsafe impl Sync for MemoryMapPlacedInfoEXT {} +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct MemoryMarkerInfoAMD { + pub s_type: StructureType, + pub next: *const c_void, + pub stage: PipelineStageFlags2KHR, + pub dst_range: DeviceAddressRangeKHR, + pub dst_flags: AddressCommandFlagsKHR, + pub marker: u32, +} + +impl Default for MemoryMarkerInfoAMD { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::MEMORY_MARKER_INFO_AMD, + next: ptr::null(), + stage: PipelineStageFlags2KHR::default(), + dst_range: DeviceAddressRangeKHR::default(), + dst_flags: AddressCommandFlagsKHR::default(), + marker: u32::default(), + } + } +} + +unsafe impl Send for MemoryMarkerInfoAMD {} +unsafe impl Sync for MemoryMarkerInfoAMD {} + /// #[repr(C)] #[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] @@ -12296,6 +12744,68 @@ impl Default for MemoryPriorityAllocateInfoEXT { unsafe impl Send for MemoryPriorityAllocateInfoEXT {} unsafe impl Sync for MemoryPriorityAllocateInfoEXT {} +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct MemoryRangeBarrierKHR { + pub s_type: StructureType, + pub next: *const c_void, + 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 address_range: DeviceAddressRangeKHR, + pub address_flags: AddressCommandFlagsKHR, +} + +impl Default for MemoryRangeBarrierKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::MEMORY_RANGE_BARRIER_KHR, + next: ptr::null(), + 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(), + address_range: DeviceAddressRangeKHR::default(), + address_flags: AddressCommandFlagsKHR::default(), + } + } +} + +unsafe impl Send for MemoryRangeBarrierKHR {} +unsafe impl Sync for MemoryRangeBarrierKHR {} + +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct MemoryRangeBarriersInfoKHR { + pub s_type: StructureType, + pub next: *const c_void, + pub memory_range_barrier_count: u32, + pub memory_range_barriers: *const MemoryRangeBarrierKHR, +} + +impl Default for MemoryRangeBarriersInfoKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::MEMORY_RANGE_BARRIERS_INFO_KHR, + next: ptr::null(), + memory_range_barrier_count: u32::default(), + memory_range_barriers: ptr::null(), + } + } +} + +unsafe impl Send for MemoryRangeBarriersInfoKHR {} +unsafe impl Sync for MemoryRangeBarriersInfoKHR {} + /// #[repr(C)] #[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)] @@ -15609,6 +16119,29 @@ impl Default for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE { unsafe impl Send for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {} unsafe impl Sync for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {} +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct PhysicalDeviceDeviceAddressCommandsFeaturesKHR { + pub s_type: StructureType, + pub next: *mut c_void, + pub device_address_commands: Bool32, +} + +impl Default for PhysicalDeviceDeviceAddressCommandsFeaturesKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::PHYSICAL_DEVICE_DEVICE_ADDRESS_COMMANDS_FEATURES_KHR, + next: ptr::null_mut(), + device_address_commands: Bool32::default(), + } + } +} + +unsafe impl Send for PhysicalDeviceDeviceAddressCommandsFeaturesKHR {} +unsafe impl Sync for PhysicalDeviceDeviceAddressCommandsFeaturesKHR {} + /// #[repr(C)] #[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] @@ -16619,6 +17152,58 @@ impl Default for PhysicalDeviceFaultFeaturesEXT { unsafe impl Send for PhysicalDeviceFaultFeaturesEXT {} unsafe impl Sync for PhysicalDeviceFaultFeaturesEXT {} +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct PhysicalDeviceFaultFeaturesKHR { + pub s_type: StructureType, + pub next: *mut c_void, + pub device_fault: Bool32, + pub device_fault_vendor_binary: Bool32, + pub device_fault_report_masked: Bool32, + pub device_fault_device_lost_on_masked: Bool32, +} + +impl Default for PhysicalDeviceFaultFeaturesKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::PHYSICAL_DEVICE_FAULT_FEATURES_KHR, + next: ptr::null_mut(), + device_fault: Bool32::default(), + device_fault_vendor_binary: Bool32::default(), + device_fault_report_masked: Bool32::default(), + device_fault_device_lost_on_masked: Bool32::default(), + } + } +} + +unsafe impl Send for PhysicalDeviceFaultFeaturesKHR {} +unsafe impl Sync for PhysicalDeviceFaultFeaturesKHR {} + +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct PhysicalDeviceFaultPropertiesKHR { + pub s_type: StructureType, + pub next: *mut c_void, + pub max_device_fault_count: u32, +} + +impl Default for PhysicalDeviceFaultPropertiesKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::PHYSICAL_DEVICE_FAULT_PROPERTIES_KHR, + next: ptr::null_mut(), + max_device_fault_count: u32::default(), + } + } +} + +unsafe impl Send for PhysicalDeviceFaultPropertiesKHR {} +unsafe impl Sync for PhysicalDeviceFaultPropertiesKHR {} + /// #[repr(C)] #[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)] @@ -21333,6 +21918,52 @@ impl Default for PhysicalDeviceShader64BitIndexingFeaturesEXT { unsafe impl Send for PhysicalDeviceShader64BitIndexingFeaturesEXT {} unsafe impl Sync for PhysicalDeviceShader64BitIndexingFeaturesEXT {} +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct PhysicalDeviceShaderAbortFeaturesKHR { + pub s_type: StructureType, + pub next: *mut c_void, + pub shader_abort: Bool32, +} + +impl Default for PhysicalDeviceShaderAbortFeaturesKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR, + next: ptr::null_mut(), + shader_abort: Bool32::default(), + } + } +} + +unsafe impl Send for PhysicalDeviceShaderAbortFeaturesKHR {} +unsafe impl Sync for PhysicalDeviceShaderAbortFeaturesKHR {} + +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct PhysicalDeviceShaderAbortPropertiesKHR { + pub s_type: StructureType, + pub next: *mut c_void, + pub max_shader_abort_message_size: u64, +} + +impl Default for PhysicalDeviceShaderAbortPropertiesKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::PHYSICAL_DEVICE_SHADER_ABORT_PROPERTIES_KHR, + next: ptr::null_mut(), + max_shader_abort_message_size: u64::default(), + } + } +} + +unsafe impl Send for PhysicalDeviceShaderAbortPropertiesKHR {} +unsafe impl Sync for PhysicalDeviceShaderAbortPropertiesKHR {} + /// #[repr(C)] #[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] @@ -21523,6 +22154,29 @@ impl Default for PhysicalDeviceShaderClockFeaturesKHR { unsafe impl Send for PhysicalDeviceShaderClockFeaturesKHR {} unsafe impl Sync for PhysicalDeviceShaderClockFeaturesKHR {} +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct PhysicalDeviceShaderConstantDataFeaturesKHR { + pub s_type: StructureType, + pub next: *mut c_void, + pub shader_constant_data: Bool32, +} + +impl Default for PhysicalDeviceShaderConstantDataFeaturesKHR { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR, + next: ptr::null_mut(), + shader_constant_data: Bool32::default(), + } + } +} + +unsafe impl Send for PhysicalDeviceShaderConstantDataFeaturesKHR {} +unsafe impl Sync for PhysicalDeviceShaderConstantDataFeaturesKHR {} + /// #[repr(C)] #[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] @@ -21975,6 +22629,54 @@ impl Default for PhysicalDeviceShaderImageFootprintFeaturesNV { unsafe impl Send for PhysicalDeviceShaderImageFootprintFeaturesNV {} unsafe impl Sync for PhysicalDeviceShaderImageFootprintFeaturesNV {} +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct PhysicalDeviceShaderInstrumentationFeaturesARM { + pub s_type: StructureType, + pub next: *mut c_void, + pub shader_instrumentation: Bool32, +} + +impl Default for PhysicalDeviceShaderInstrumentationFeaturesARM { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_FEATURES_ARM, + next: ptr::null_mut(), + shader_instrumentation: Bool32::default(), + } + } +} + +unsafe impl Send for PhysicalDeviceShaderInstrumentationFeaturesARM {} +unsafe impl Sync for PhysicalDeviceShaderInstrumentationFeaturesARM {} + +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct PhysicalDeviceShaderInstrumentationPropertiesARM { + pub s_type: StructureType, + pub next: *mut c_void, + pub num_metrics: u32, + pub per_basic_block_granularity: Bool32, +} + +impl Default for PhysicalDeviceShaderInstrumentationPropertiesARM { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_PROPERTIES_ARM, + next: ptr::null_mut(), + num_metrics: u32::default(), + per_basic_block_granularity: Bool32::default(), + } + } +} + +unsafe impl Send for PhysicalDeviceShaderInstrumentationPropertiesARM {} +unsafe impl Sync for PhysicalDeviceShaderInstrumentationPropertiesARM {} + /// #[repr(C)] #[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] @@ -29173,6 +29875,62 @@ impl Default for ShaderDescriptorSetAndBindingMappingInfoEXT { unsafe impl Send for ShaderDescriptorSetAndBindingMappingInfoEXT {} unsafe impl Sync for ShaderDescriptorSetAndBindingMappingInfoEXT {} +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct ShaderInstrumentationCreateInfoARM { + pub s_type: StructureType, + pub next: *mut c_void, +} + +impl Default for ShaderInstrumentationCreateInfoARM { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::SHADER_INSTRUMENTATION_CREATE_INFO_ARM, + next: ptr::null_mut(), + } + } +} + +unsafe impl Send for ShaderInstrumentationCreateInfoARM {} +unsafe impl Sync for ShaderInstrumentationCreateInfoARM {} + +/// +#[repr(C)] +#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)] +pub struct ShaderInstrumentationMetricDataHeaderARM { + pub result_index: u32, + pub result_sub_index: u32, + pub stages: ShaderStageFlags, + pub basic_block_index: u32, +} + +/// +#[repr(C)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] +pub struct ShaderInstrumentationMetricDescriptionARM { + pub s_type: StructureType, + pub next: *mut c_void, + pub name: StringArray, + pub description: StringArray, +} + +impl Default for ShaderInstrumentationMetricDescriptionARM { + #[inline] + fn default() -> Self { + Self { + s_type: StructureType::SHADER_INSTRUMENTATION_METRIC_DESCRIPTION_ARM, + next: ptr::null_mut(), + name: StringArray::default(), + description: StringArray::default(), + } + } +} + +unsafe impl Send for ShaderInstrumentationMetricDescriptionARM {} +unsafe impl Sync for ShaderInstrumentationMetricDescriptionARM {} + /// #[repr(C)] #[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)] @@ -34900,8 +35658,16 @@ pub type DescriptorSetVariableDescriptorCountLayoutSupportEXT = pub type DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo; /// pub type DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry; +/// +pub type DeviceAddressRangeEXT = DeviceAddressRangeKHR; /// pub type DeviceBufferMemoryRequirementsKHR = DeviceBufferMemoryRequirements; +/// +pub type DeviceFaultAddressInfoEXT = DeviceFaultAddressInfoKHR; +/// +pub type DeviceFaultVendorBinaryHeaderVersionOneEXT = DeviceFaultVendorBinaryHeaderVersionOneKHR; +/// +pub type DeviceFaultVendorInfoEXT = DeviceFaultVendorInfoKHR; /// pub type DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo; /// diff --git a/vulkanalia/src/vk/builders.rs b/vulkanalia/src/vk/builders.rs index 558b91e..f4e8d93 100644 --- a/vulkanalia/src/vk/builders.rs +++ b/vulkanalia/src/vk/builders.rs @@ -508,6 +508,102 @@ unsafe impl Cast for AccelerationStructureCaptureDescriptorDataInfoEXTBuilder { } } +/// A Vulkan struct that can be used to extend a [`AccelerationStructureCreateInfo2KHR`]. +pub unsafe trait ExtendsAccelerationStructureCreateInfo2KHR: fmt::Debug {} +unsafe impl ExtendsAccelerationStructureCreateInfo2KHR + for OpaqueCaptureDescriptorDataCreateInfoEXT +{ +} + +unsafe impl Cast for AccelerationStructureCreateInfo2KHR { + type Target = AccelerationStructureCreateInfo2KHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl<'b> HasBuilder<'b> for AccelerationStructureCreateInfo2KHR { + type Builder = AccelerationStructureCreateInfo2KHRBuilder<'b>; +} + +/// A builder for a [`AccelerationStructureCreateInfo2KHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct AccelerationStructureCreateInfo2KHRBuilder<'b> { + value: AccelerationStructureCreateInfo2KHR, + _marker: PhantomData<&'b ()>, +} + +impl<'b> AccelerationStructureCreateInfo2KHRBuilder<'b> { + #[inline] + pub fn push_next(mut self, next: &'b mut impl Cast) -> Self + where + T: ExtendsAccelerationStructureCreateInfo2KHR, + { + self.next = merge(self.next as *mut c_void, NonNull::from(next).cast()); + self + } + + #[inline] + pub fn create_flags(mut self, create_flags: AccelerationStructureCreateFlagsKHR) -> Self { + self.value.create_flags = create_flags; + self + } + + #[inline] + pub fn address_range( + mut self, + address_range: impl Cast, + ) -> Self { + self.value.address_range = address_range.into(); + self + } + + #[inline] + pub fn address_flags(mut self, address_flags: AddressCommandFlagsKHR) -> Self { + self.value.address_flags = address_flags; + self + } + + #[inline] + pub fn type_(mut self, type_: AccelerationStructureTypeKHR) -> Self { + self.value.type_ = type_; + self + } + + #[inline] + pub fn build(self) -> AccelerationStructureCreateInfo2KHR { + self.value + } +} + +impl ops::Deref for AccelerationStructureCreateInfo2KHRBuilder<'_> { + type Target = AccelerationStructureCreateInfo2KHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for AccelerationStructureCreateInfo2KHRBuilder<'_> { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for AccelerationStructureCreateInfo2KHRBuilder<'_> { + type Target = AccelerationStructureCreateInfo2KHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + /// A Vulkan struct that can be used to extend a [`AccelerationStructureCreateInfoKHR`]. pub unsafe trait ExtendsAccelerationStructureCreateInfoKHR: fmt::Debug {} unsafe impl ExtendsAccelerationStructureCreateInfoKHR for AccelerationStructureMotionInfoNV {} @@ -4878,8 +4974,8 @@ pub struct BindHeapInfoEXTBuilder { impl BindHeapInfoEXTBuilder { #[inline] - pub fn heap_range(mut self, heap_range: impl Cast) -> Self { - self.value.heap_range = heap_range.into(); + pub fn heap_range(mut self, heap_range: DeviceAddressRangeEXT) -> Self { + self.value.heap_range = heap_range; self } @@ -5205,6 +5301,79 @@ unsafe impl Cast for BindImagePlaneMemoryInfoBuilder { } } +unsafe impl Cast for BindIndexBuffer3InfoKHR { + type Target = BindIndexBuffer3InfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for BindIndexBuffer3InfoKHR { + type Builder = BindIndexBuffer3InfoKHRBuilder; +} + +/// A builder for a [`BindIndexBuffer3InfoKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct BindIndexBuffer3InfoKHRBuilder { + value: BindIndexBuffer3InfoKHR, +} + +impl BindIndexBuffer3InfoKHRBuilder { + #[inline] + pub fn address_range( + mut self, + address_range: impl Cast, + ) -> Self { + self.value.address_range = address_range.into(); + self + } + + #[inline] + pub fn address_flags(mut self, address_flags: AddressCommandFlagsKHR) -> Self { + self.value.address_flags = address_flags; + self + } + + #[inline] + pub fn index_type(mut self, index_type: IndexType) -> Self { + self.value.index_type = index_type; + self + } + + #[inline] + pub fn build(self) -> BindIndexBuffer3InfoKHR { + self.value + } +} + +impl ops::Deref for BindIndexBuffer3InfoKHRBuilder { + type Target = BindIndexBuffer3InfoKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for BindIndexBuffer3InfoKHRBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for BindIndexBuffer3InfoKHRBuilder { + type Target = BindIndexBuffer3InfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + unsafe impl Cast for BindIndexBufferIndirectCommandEXT { type Target = BindIndexBufferIndirectCommandEXT; @@ -5703,6 +5872,146 @@ unsafe impl Cast for BindTensorMemoryInfoARMBuilder { } } +unsafe impl Cast for BindTransformFeedbackBuffer2InfoEXT { + type Target = BindTransformFeedbackBuffer2InfoEXT; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for BindTransformFeedbackBuffer2InfoEXT { + type Builder = BindTransformFeedbackBuffer2InfoEXTBuilder; +} + +/// A builder for a [`BindTransformFeedbackBuffer2InfoEXT`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct BindTransformFeedbackBuffer2InfoEXTBuilder { + value: BindTransformFeedbackBuffer2InfoEXT, +} + +impl BindTransformFeedbackBuffer2InfoEXTBuilder { + #[inline] + pub fn address_range( + mut self, + address_range: impl Cast, + ) -> Self { + self.value.address_range = address_range.into(); + self + } + + #[inline] + pub fn address_flags(mut self, address_flags: AddressCommandFlagsKHR) -> Self { + self.value.address_flags = address_flags; + self + } + + #[inline] + pub fn build(self) -> BindTransformFeedbackBuffer2InfoEXT { + self.value + } +} + +impl ops::Deref for BindTransformFeedbackBuffer2InfoEXTBuilder { + type Target = BindTransformFeedbackBuffer2InfoEXT; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for BindTransformFeedbackBuffer2InfoEXTBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for BindTransformFeedbackBuffer2InfoEXTBuilder { + type Target = BindTransformFeedbackBuffer2InfoEXT; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + +unsafe impl Cast for BindVertexBuffer3InfoKHR { + type Target = BindVertexBuffer3InfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for BindVertexBuffer3InfoKHR { + type Builder = BindVertexBuffer3InfoKHRBuilder; +} + +/// A builder for a [`BindVertexBuffer3InfoKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct BindVertexBuffer3InfoKHRBuilder { + value: BindVertexBuffer3InfoKHR, +} + +impl BindVertexBuffer3InfoKHRBuilder { + #[inline] + pub fn set_stride(mut self, set_stride: bool) -> Self { + self.value.set_stride = set_stride as Bool32; + self + } + + #[inline] + pub fn address_range( + mut self, + address_range: impl Cast, + ) -> Self { + self.value.address_range = address_range.into(); + self + } + + #[inline] + pub fn address_flags(mut self, address_flags: AddressCommandFlagsKHR) -> Self { + self.value.address_flags = address_flags; + self + } + + #[inline] + pub fn build(self) -> BindVertexBuffer3InfoKHR { + self.value + } +} + +impl ops::Deref for BindVertexBuffer3InfoKHRBuilder { + type Target = BindVertexBuffer3InfoKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for BindVertexBuffer3InfoKHRBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for BindVertexBuffer3InfoKHRBuilder { + type Target = BindVertexBuffer3InfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + unsafe impl Cast for BindVertexBufferIndirectCommandEXT { type Target = BindVertexBufferIndirectCommandEXT; @@ -10809,6 +11118,79 @@ unsafe impl Cast for ComputePipelineIndirectBufferInfoNVBuilder { } } +unsafe impl Cast for ConditionalRenderingBeginInfo2EXT { + type Target = ConditionalRenderingBeginInfo2EXT; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for ConditionalRenderingBeginInfo2EXT { + type Builder = ConditionalRenderingBeginInfo2EXTBuilder; +} + +/// A builder for a [`ConditionalRenderingBeginInfo2EXT`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct ConditionalRenderingBeginInfo2EXTBuilder { + value: ConditionalRenderingBeginInfo2EXT, +} + +impl ConditionalRenderingBeginInfo2EXTBuilder { + #[inline] + pub fn address_range( + mut self, + address_range: impl Cast, + ) -> Self { + self.value.address_range = address_range.into(); + self + } + + #[inline] + pub fn address_flags(mut self, address_flags: AddressCommandFlagsKHR) -> Self { + self.value.address_flags = address_flags; + self + } + + #[inline] + pub fn flags(mut self, flags: ConditionalRenderingFlagsEXT) -> Self { + self.value.flags = flags; + self + } + + #[inline] + pub fn build(self) -> ConditionalRenderingBeginInfo2EXT { + self.value + } +} + +impl ops::Deref for ConditionalRenderingBeginInfo2EXTBuilder { + type Target = ConditionalRenderingBeginInfo2EXT; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for ConditionalRenderingBeginInfo2EXTBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for ConditionalRenderingBeginInfo2EXTBuilder { + type Target = ConditionalRenderingBeginInfo2EXT; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + unsafe impl Cast for ConditionalRenderingBeginInfoEXT { type Target = ConditionalRenderingBeginInfoEXT; @@ -11928,6 +12310,132 @@ unsafe impl Cast for CopyDescriptorSetBuilder { } } +unsafe impl Cast for CopyDeviceMemoryImageInfoKHR { + type Target = CopyDeviceMemoryImageInfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl<'b> HasBuilder<'b> for CopyDeviceMemoryImageInfoKHR { + type Builder = CopyDeviceMemoryImageInfoKHRBuilder<'b>; +} + +/// A builder for a [`CopyDeviceMemoryImageInfoKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct CopyDeviceMemoryImageInfoKHRBuilder<'b> { + value: CopyDeviceMemoryImageInfoKHR, + _marker: PhantomData<&'b ()>, +} + +impl<'b> CopyDeviceMemoryImageInfoKHRBuilder<'b> { + #[inline] + pub fn image(mut self, image: Image) -> Self { + self.value.image = image; + self + } + + #[inline] + pub fn regions(mut self, regions: &'b [impl Cast]) -> Self { + self.value.region_count = regions.len() as u32; + self.value.regions = regions.as_ptr().cast(); + self + } + + #[inline] + pub fn build(self) -> CopyDeviceMemoryImageInfoKHR { + self.value + } +} + +impl ops::Deref for CopyDeviceMemoryImageInfoKHRBuilder<'_> { + type Target = CopyDeviceMemoryImageInfoKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for CopyDeviceMemoryImageInfoKHRBuilder<'_> { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for CopyDeviceMemoryImageInfoKHRBuilder<'_> { + type Target = CopyDeviceMemoryImageInfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + +unsafe impl Cast for CopyDeviceMemoryInfoKHR { + type Target = CopyDeviceMemoryInfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl<'b> HasBuilder<'b> for CopyDeviceMemoryInfoKHR { + type Builder = CopyDeviceMemoryInfoKHRBuilder<'b>; +} + +/// A builder for a [`CopyDeviceMemoryInfoKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct CopyDeviceMemoryInfoKHRBuilder<'b> { + value: CopyDeviceMemoryInfoKHR, + _marker: PhantomData<&'b ()>, +} + +impl<'b> CopyDeviceMemoryInfoKHRBuilder<'b> { + #[inline] + pub fn regions(mut self, regions: &'b [impl Cast]) -> Self { + self.value.region_count = regions.len() as u32; + self.value.regions = regions.as_ptr().cast(); + self + } + + #[inline] + pub fn build(self) -> CopyDeviceMemoryInfoKHR { + self.value + } +} + +impl ops::Deref for CopyDeviceMemoryInfoKHRBuilder<'_> { + type Target = CopyDeviceMemoryInfoKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for CopyDeviceMemoryInfoKHRBuilder<'_> { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for CopyDeviceMemoryInfoKHRBuilder<'_> { + type Target = CopyDeviceMemoryInfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + unsafe impl Cast for CopyImageInfo2 { type Target = CopyImageInfo2; @@ -15966,6 +16474,7 @@ unsafe impl Cast for DedicatedAllocationMemoryAllocateInfoNVBuilder { /// A Vulkan struct that can be used to extend a [`DependencyInfo`]. pub unsafe trait ExtendsDependencyInfo: fmt::Debug {} +unsafe impl ExtendsDependencyInfo for MemoryRangeBarriersInfoKHR {} unsafe impl ExtendsDependencyInfo for TensorDependencyInfoARM {} unsafe impl ExtendsDependencyInfo for TensorMemoryBarrierARM {} @@ -18674,8 +19183,8 @@ unsafe impl Cast for DeviceAddressBindingCallbackDataEXTBuilder { } } -unsafe impl Cast for DeviceAddressRangeEXT { - type Target = DeviceAddressRangeEXT; +unsafe impl Cast for DeviceAddressRangeKHR { + type Target = DeviceAddressRangeKHR; #[inline] fn into(self) -> Self::Target { @@ -18683,18 +19192,18 @@ unsafe impl Cast for DeviceAddressRangeEXT { } } -impl HasBuilder<'static> for DeviceAddressRangeEXT { - type Builder = DeviceAddressRangeEXTBuilder; +impl HasBuilder<'static> for DeviceAddressRangeKHR { + type Builder = DeviceAddressRangeKHRBuilder; } -/// A builder for a [`DeviceAddressRangeEXT`]. +/// A builder for a [`DeviceAddressRangeKHR`]. #[repr(transparent)] #[derive(Copy, Clone, Debug, Default)] -pub struct DeviceAddressRangeEXTBuilder { - value: DeviceAddressRangeEXT, +pub struct DeviceAddressRangeKHRBuilder { + value: DeviceAddressRangeKHR, } -impl DeviceAddressRangeEXTBuilder { +impl DeviceAddressRangeKHRBuilder { #[inline] pub fn address(mut self, address: DeviceAddress) -> Self { self.value.address = address; @@ -18708,13 +19217,13 @@ impl DeviceAddressRangeEXTBuilder { } #[inline] - pub fn build(self) -> DeviceAddressRangeEXT { + pub fn build(self) -> DeviceAddressRangeKHR { self.value } } -impl ops::Deref for DeviceAddressRangeEXTBuilder { - type Target = DeviceAddressRangeEXT; +impl ops::Deref for DeviceAddressRangeKHRBuilder { + type Target = DeviceAddressRangeKHR; #[inline] fn deref(&self) -> &Self::Target { @@ -18722,15 +19231,15 @@ impl ops::Deref for DeviceAddressRangeEXTBuilder { } } -impl ops::DerefMut for DeviceAddressRangeEXTBuilder { +impl ops::DerefMut for DeviceAddressRangeKHRBuilder { #[inline] fn deref_mut(&mut self) -> &mut Self::Target { &mut self.value } } -unsafe impl Cast for DeviceAddressRangeEXTBuilder { - type Target = DeviceAddressRangeEXT; +unsafe impl Cast for DeviceAddressRangeKHRBuilder { + type Target = DeviceAddressRangeKHR; #[inline] fn into(self) -> Self::Target { @@ -18864,6 +19373,7 @@ unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorHeapFeaturesEXT unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorIndexingFeatures {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {} +unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDeviceAddressCommandsFeaturesKHR {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {} @@ -18885,6 +19395,7 @@ unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExternalMemoryScreenBuffer unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExternalSciSync2FeaturesNV {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExternalSciSyncFeaturesNV {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFaultFeaturesEXT {} +unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFaultFeaturesKHR {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFeatures2 {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFormatPackFeaturesARM {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentDensityMap2FeaturesEXT {} @@ -18995,12 +19506,14 @@ unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceScalarBlockLayoutFeatures unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSchedulingControlsFeaturesARM {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSeparateDepthStencilLayoutsFeatures {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShader64BitIndexingFeaturesEXT {} +unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAbortFeaturesKHR {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAtomicFloat2FeaturesEXT {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAtomicFloatFeaturesEXT {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAtomicInt64Features {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderBfloat16FeaturesKHR {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderClockFeaturesKHR {} +unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderConstantDataFeaturesKHR {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderCoreBuiltinsFeaturesARM {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderDemoteToHelperInvocationFeatures {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderDrawParametersFeatures {} @@ -19013,6 +19526,7 @@ unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderFloatControls2Featur unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderFmaFeaturesKHR {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderImageFootprintFeaturesNV {} +unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderInstrumentationFeaturesARM {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderIntegerDotProductFeatures {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {} unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderLongVectorFeaturesEXT {} @@ -19120,9 +19634,14 @@ impl<'b> DeviceCreateInfoBuilder<'b> { } #[inline] - pub fn enabled_layer_names(mut self, enabled_layer_names: &'b [*const c_char]) -> Self { - self.value.enabled_layer_count = enabled_layer_names.len() as u32; - self.value.enabled_layer_names = enabled_layer_names.as_ptr(); + pub fn enabled_layer_count(mut self, enabled_layer_count: u32) -> Self { + self.value.enabled_layer_count = enabled_layer_count; + self + } + + #[inline] + pub fn enabled_layer_names(mut self, enabled_layer_names: &'b [&'b c_char]) -> Self { + self.value.enabled_layer_names = enabled_layer_names.as_ptr().cast(); self } @@ -19360,8 +19879,8 @@ unsafe impl Cast for DeviceEventInfoEXTBuilder { } } -unsafe impl Cast for DeviceFaultAddressInfoEXT { - type Target = DeviceFaultAddressInfoEXT; +unsafe impl Cast for DeviceFaultAddressInfoKHR { + type Target = DeviceFaultAddressInfoKHR; #[inline] fn into(self) -> Self::Target { @@ -19369,20 +19888,20 @@ unsafe impl Cast for DeviceFaultAddressInfoEXT { } } -impl HasBuilder<'static> for DeviceFaultAddressInfoEXT { - type Builder = DeviceFaultAddressInfoEXTBuilder; +impl HasBuilder<'static> for DeviceFaultAddressInfoKHR { + type Builder = DeviceFaultAddressInfoKHRBuilder; } -/// A builder for a [`DeviceFaultAddressInfoEXT`]. +/// A builder for a [`DeviceFaultAddressInfoKHR`]. #[repr(transparent)] #[derive(Copy, Clone, Debug, Default)] -pub struct DeviceFaultAddressInfoEXTBuilder { - value: DeviceFaultAddressInfoEXT, +pub struct DeviceFaultAddressInfoKHRBuilder { + value: DeviceFaultAddressInfoKHR, } -impl DeviceFaultAddressInfoEXTBuilder { +impl DeviceFaultAddressInfoKHRBuilder { #[inline] - pub fn address_type(mut self, address_type: DeviceFaultAddressTypeEXT) -> Self { + pub fn address_type(mut self, address_type: DeviceFaultAddressTypeKHR) -> Self { self.value.address_type = address_type; self } @@ -19400,13 +19919,13 @@ impl DeviceFaultAddressInfoEXTBuilder { } #[inline] - pub fn build(self) -> DeviceFaultAddressInfoEXT { + pub fn build(self) -> DeviceFaultAddressInfoKHR { self.value } } -impl ops::Deref for DeviceFaultAddressInfoEXTBuilder { - type Target = DeviceFaultAddressInfoEXT; +impl ops::Deref for DeviceFaultAddressInfoKHRBuilder { + type Target = DeviceFaultAddressInfoKHR; #[inline] fn deref(&self) -> &Self::Target { @@ -19414,15 +19933,15 @@ impl ops::Deref for DeviceFaultAddressInfoEXTBuilder { } } -impl ops::DerefMut for DeviceFaultAddressInfoEXTBuilder { +impl ops::DerefMut for DeviceFaultAddressInfoKHRBuilder { #[inline] fn deref_mut(&mut self) -> &mut Self::Target { &mut self.value } } -unsafe impl Cast for DeviceFaultAddressInfoEXTBuilder { - type Target = DeviceFaultAddressInfoEXT; +unsafe impl Cast for DeviceFaultAddressInfoKHRBuilder { + type Target = DeviceFaultAddressInfoKHR; #[inline] fn into(self) -> Self::Target { @@ -19500,6 +20019,85 @@ unsafe impl Cast for DeviceFaultCountsEXTBuilder { } } +/// A Vulkan struct that can be used to extend a [`DeviceFaultDebugInfoKHR`]. +pub unsafe trait ExtendsDeviceFaultDebugInfoKHR: fmt::Debug {} +unsafe impl ExtendsDeviceFaultDebugInfoKHR for DeviceFaultShaderAbortMessageInfoKHR {} + +unsafe impl Cast for DeviceFaultDebugInfoKHR { + type Target = DeviceFaultDebugInfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl<'b> HasBuilder<'b> for DeviceFaultDebugInfoKHR { + type Builder = DeviceFaultDebugInfoKHRBuilder<'b>; +} + +/// A builder for a [`DeviceFaultDebugInfoKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct DeviceFaultDebugInfoKHRBuilder<'b> { + value: DeviceFaultDebugInfoKHR, + _marker: PhantomData<&'b ()>, +} + +impl<'b> DeviceFaultDebugInfoKHRBuilder<'b> { + #[inline] + pub fn push_next(mut self, next: &'b mut impl Cast) -> Self + where + T: ExtendsDeviceFaultDebugInfoKHR, + { + self.next = merge(self.next as *mut c_void, NonNull::from(next).cast()); + self + } + + #[inline] + pub fn vendor_binary_size(mut self, vendor_binary_size: u32) -> Self { + self.value.vendor_binary_size = vendor_binary_size; + self + } + + #[inline] + pub fn vendor_binary_data(mut self, vendor_binary_data: &'b mut [u8]) -> Self { + self.value.vendor_binary_size = vendor_binary_data.len() as u32; + self.value.vendor_binary_data = vendor_binary_data.as_mut_ptr().cast(); + self + } + + #[inline] + pub fn build(self) -> DeviceFaultDebugInfoKHR { + self.value + } +} + +impl ops::Deref for DeviceFaultDebugInfoKHRBuilder<'_> { + type Target = DeviceFaultDebugInfoKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for DeviceFaultDebugInfoKHRBuilder<'_> { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for DeviceFaultDebugInfoKHRBuilder<'_> { + type Target = DeviceFaultDebugInfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + unsafe impl Cast for DeviceFaultInfoEXT { type Target = DeviceFaultInfoEXT; @@ -19534,7 +20132,7 @@ impl<'b> DeviceFaultInfoEXTBuilder<'b> { #[inline] pub fn address_infos( mut self, - address_infos: &'b mut impl Cast, + address_infos: &'b mut impl Cast, ) -> Self { self.value.address_infos = address_infos.as_mut(); self @@ -19543,7 +20141,7 @@ impl<'b> DeviceFaultInfoEXTBuilder<'b> { #[inline] pub fn vendor_infos( mut self, - vendor_infos: &'b mut impl Cast, + vendor_infos: &'b mut impl Cast, ) -> Self { self.value.vendor_infos = vendor_infos.as_mut(); self @@ -19586,8 +20184,173 @@ unsafe impl Cast for DeviceFaultInfoEXTBuilder<'_> { } } -unsafe impl Cast for DeviceFaultVendorBinaryHeaderVersionOneEXT { - type Target = DeviceFaultVendorBinaryHeaderVersionOneEXT; +unsafe impl Cast for DeviceFaultInfoKHR { + type Target = DeviceFaultInfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for DeviceFaultInfoKHR { + type Builder = DeviceFaultInfoKHRBuilder; +} + +/// A builder for a [`DeviceFaultInfoKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct DeviceFaultInfoKHRBuilder { + value: DeviceFaultInfoKHR, +} + +impl DeviceFaultInfoKHRBuilder { + #[inline] + pub fn flags(mut self, flags: DeviceFaultFlagsKHR) -> Self { + self.value.flags = flags; + self + } + + #[inline] + pub fn group_id(mut self, group_id: u64) -> Self { + self.value.group_id = group_id; + self + } + + #[inline] + pub fn description( + mut self, + description: impl Into>, + ) -> Self { + self.value.description = description.into(); + self + } + + #[inline] + pub fn fault_address_info( + mut self, + fault_address_info: impl Cast, + ) -> Self { + self.value.fault_address_info = fault_address_info.into(); + self + } + + #[inline] + pub fn instruction_address_info( + mut self, + instruction_address_info: impl Cast, + ) -> Self { + self.value.instruction_address_info = instruction_address_info.into(); + self + } + + #[inline] + pub fn vendor_info( + mut self, + vendor_info: impl Cast, + ) -> Self { + self.value.vendor_info = vendor_info.into(); + self + } + + #[inline] + pub fn build(self) -> DeviceFaultInfoKHR { + self.value + } +} + +impl ops::Deref for DeviceFaultInfoKHRBuilder { + type Target = DeviceFaultInfoKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for DeviceFaultInfoKHRBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for DeviceFaultInfoKHRBuilder { + type Target = DeviceFaultInfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + +unsafe impl Cast for DeviceFaultShaderAbortMessageInfoKHR { + type Target = DeviceFaultShaderAbortMessageInfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl<'b> HasBuilder<'b> for DeviceFaultShaderAbortMessageInfoKHR { + type Builder = DeviceFaultShaderAbortMessageInfoKHRBuilder<'b>; +} + +/// A builder for a [`DeviceFaultShaderAbortMessageInfoKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct DeviceFaultShaderAbortMessageInfoKHRBuilder<'b> { + value: DeviceFaultShaderAbortMessageInfoKHR, + _marker: PhantomData<&'b ()>, +} + +impl<'b> DeviceFaultShaderAbortMessageInfoKHRBuilder<'b> { + #[inline] + pub fn message_data_size(mut self, message_data_size: u64) -> Self { + self.value.message_data_size = message_data_size; + self + } + + #[inline] + pub fn message_data(mut self, message_data: &'b mut T) -> Self { + self.value.message_data = (message_data as *mut T).cast(); + self + } + + #[inline] + pub fn build(self) -> DeviceFaultShaderAbortMessageInfoKHR { + self.value + } +} + +impl ops::Deref for DeviceFaultShaderAbortMessageInfoKHRBuilder<'_> { + type Target = DeviceFaultShaderAbortMessageInfoKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for DeviceFaultShaderAbortMessageInfoKHRBuilder<'_> { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for DeviceFaultShaderAbortMessageInfoKHRBuilder<'_> { + type Target = DeviceFaultShaderAbortMessageInfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + +unsafe impl Cast for DeviceFaultVendorBinaryHeaderVersionOneKHR { + type Target = DeviceFaultVendorBinaryHeaderVersionOneKHR; #[inline] fn into(self) -> Self::Target { @@ -19595,18 +20358,18 @@ unsafe impl Cast for DeviceFaultVendorBinaryHeaderVersionOneEXT { } } -impl HasBuilder<'static> for DeviceFaultVendorBinaryHeaderVersionOneEXT { - type Builder = DeviceFaultVendorBinaryHeaderVersionOneEXTBuilder; +impl HasBuilder<'static> for DeviceFaultVendorBinaryHeaderVersionOneKHR { + type Builder = DeviceFaultVendorBinaryHeaderVersionOneKHRBuilder; } -/// A builder for a [`DeviceFaultVendorBinaryHeaderVersionOneEXT`]. +/// A builder for a [`DeviceFaultVendorBinaryHeaderVersionOneKHR`]. #[repr(transparent)] #[derive(Copy, Clone, Debug, Default)] -pub struct DeviceFaultVendorBinaryHeaderVersionOneEXTBuilder { - value: DeviceFaultVendorBinaryHeaderVersionOneEXT, +pub struct DeviceFaultVendorBinaryHeaderVersionOneKHRBuilder { + value: DeviceFaultVendorBinaryHeaderVersionOneKHR, } -impl DeviceFaultVendorBinaryHeaderVersionOneEXTBuilder { +impl DeviceFaultVendorBinaryHeaderVersionOneKHRBuilder { #[inline] pub fn header_size(mut self, header_size: u32) -> Self { self.value.header_size = header_size; @@ -19616,7 +20379,7 @@ impl DeviceFaultVendorBinaryHeaderVersionOneEXTBuilder { #[inline] pub fn header_version( mut self, - header_version: DeviceFaultVendorBinaryHeaderVersionEXT, + header_version: DeviceFaultVendorBinaryHeaderVersionKHR, ) -> Self { self.value.header_version = header_version; self @@ -19680,13 +20443,13 @@ impl DeviceFaultVendorBinaryHeaderVersionOneEXTBuilder { } #[inline] - pub fn build(self) -> DeviceFaultVendorBinaryHeaderVersionOneEXT { + pub fn build(self) -> DeviceFaultVendorBinaryHeaderVersionOneKHR { self.value } } -impl ops::Deref for DeviceFaultVendorBinaryHeaderVersionOneEXTBuilder { - type Target = DeviceFaultVendorBinaryHeaderVersionOneEXT; +impl ops::Deref for DeviceFaultVendorBinaryHeaderVersionOneKHRBuilder { + type Target = DeviceFaultVendorBinaryHeaderVersionOneKHR; #[inline] fn deref(&self) -> &Self::Target { @@ -19694,15 +20457,15 @@ impl ops::Deref for DeviceFaultVendorBinaryHeaderVersionOneEXTBuilder { } } -impl ops::DerefMut for DeviceFaultVendorBinaryHeaderVersionOneEXTBuilder { +impl ops::DerefMut for DeviceFaultVendorBinaryHeaderVersionOneKHRBuilder { #[inline] fn deref_mut(&mut self) -> &mut Self::Target { &mut self.value } } -unsafe impl Cast for DeviceFaultVendorBinaryHeaderVersionOneEXTBuilder { - type Target = DeviceFaultVendorBinaryHeaderVersionOneEXT; +unsafe impl Cast for DeviceFaultVendorBinaryHeaderVersionOneKHRBuilder { + type Target = DeviceFaultVendorBinaryHeaderVersionOneKHR; #[inline] fn into(self) -> Self::Target { @@ -19710,8 +20473,8 @@ unsafe impl Cast for DeviceFaultVendorBinaryHeaderVersionOneEXTBuilder { } } -unsafe impl Cast for DeviceFaultVendorInfoEXT { - type Target = DeviceFaultVendorInfoEXT; +unsafe impl Cast for DeviceFaultVendorInfoKHR { + type Target = DeviceFaultVendorInfoKHR; #[inline] fn into(self) -> Self::Target { @@ -19719,18 +20482,18 @@ unsafe impl Cast for DeviceFaultVendorInfoEXT { } } -impl HasBuilder<'static> for DeviceFaultVendorInfoEXT { - type Builder = DeviceFaultVendorInfoEXTBuilder; +impl HasBuilder<'static> for DeviceFaultVendorInfoKHR { + type Builder = DeviceFaultVendorInfoKHRBuilder; } -/// A builder for a [`DeviceFaultVendorInfoEXT`]. +/// A builder for a [`DeviceFaultVendorInfoKHR`]. #[repr(transparent)] #[derive(Copy, Clone, Debug, Default)] -pub struct DeviceFaultVendorInfoEXTBuilder { - value: DeviceFaultVendorInfoEXT, +pub struct DeviceFaultVendorInfoKHRBuilder { + value: DeviceFaultVendorInfoKHR, } -impl DeviceFaultVendorInfoEXTBuilder { +impl DeviceFaultVendorInfoKHRBuilder { #[inline] pub fn description( mut self, @@ -19753,13 +20516,13 @@ impl DeviceFaultVendorInfoEXTBuilder { } #[inline] - pub fn build(self) -> DeviceFaultVendorInfoEXT { + pub fn build(self) -> DeviceFaultVendorInfoKHR { self.value } } -impl ops::Deref for DeviceFaultVendorInfoEXTBuilder { - type Target = DeviceFaultVendorInfoEXT; +impl ops::Deref for DeviceFaultVendorInfoKHRBuilder { + type Target = DeviceFaultVendorInfoKHR; #[inline] fn deref(&self) -> &Self::Target { @@ -19767,15 +20530,15 @@ impl ops::Deref for DeviceFaultVendorInfoEXTBuilder { } } -impl ops::DerefMut for DeviceFaultVendorInfoEXTBuilder { +impl ops::DerefMut for DeviceFaultVendorInfoKHRBuilder { #[inline] fn deref_mut(&mut self) -> &mut Self::Target { &mut self.value } } -unsafe impl Cast for DeviceFaultVendorInfoEXTBuilder { - type Target = DeviceFaultVendorInfoEXT; +unsafe impl Cast for DeviceFaultVendorInfoKHRBuilder { + type Target = DeviceFaultVendorInfoKHR; #[inline] fn into(self) -> Self::Target { @@ -20432,6 +21195,202 @@ unsafe impl Cast for DeviceImageSubresourceInfoBuilder<'_> { } } +unsafe impl Cast for DeviceMemoryCopyKHR { + type Target = DeviceMemoryCopyKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for DeviceMemoryCopyKHR { + type Builder = DeviceMemoryCopyKHRBuilder; +} + +/// A builder for a [`DeviceMemoryCopyKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct DeviceMemoryCopyKHRBuilder { + value: DeviceMemoryCopyKHR, +} + +impl DeviceMemoryCopyKHRBuilder { + #[inline] + pub fn src_range(mut self, src_range: impl Cast) -> Self { + self.value.src_range = src_range.into(); + self + } + + #[inline] + pub fn src_flags(mut self, src_flags: AddressCommandFlagsKHR) -> Self { + self.value.src_flags = src_flags; + self + } + + #[inline] + pub fn dst_range(mut self, dst_range: impl Cast) -> Self { + self.value.dst_range = dst_range.into(); + self + } + + #[inline] + pub fn dst_flags(mut self, dst_flags: AddressCommandFlagsKHR) -> Self { + self.value.dst_flags = dst_flags; + self + } + + #[inline] + pub fn build(self) -> DeviceMemoryCopyKHR { + self.value + } +} + +impl ops::Deref for DeviceMemoryCopyKHRBuilder { + type Target = DeviceMemoryCopyKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for DeviceMemoryCopyKHRBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for DeviceMemoryCopyKHRBuilder { + type Target = DeviceMemoryCopyKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + +/// A Vulkan struct that can be used to extend a [`DeviceMemoryImageCopyKHR`]. +pub unsafe trait ExtendsDeviceMemoryImageCopyKHR: fmt::Debug {} +unsafe impl ExtendsDeviceMemoryImageCopyKHR for CopyCommandTransformInfoQCOM {} + +unsafe impl Cast for DeviceMemoryImageCopyKHR { + type Target = DeviceMemoryImageCopyKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl<'b> HasBuilder<'b> for DeviceMemoryImageCopyKHR { + type Builder = DeviceMemoryImageCopyKHRBuilder<'b>; +} + +/// A builder for a [`DeviceMemoryImageCopyKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct DeviceMemoryImageCopyKHRBuilder<'b> { + value: DeviceMemoryImageCopyKHR, + _marker: PhantomData<&'b ()>, +} + +impl<'b> DeviceMemoryImageCopyKHRBuilder<'b> { + #[inline] + pub fn push_next(mut self, next: &'b mut impl Cast) -> Self + where + T: ExtendsDeviceMemoryImageCopyKHR, + { + self.next = merge(self.next as *mut c_void, NonNull::from(next).cast()); + self + } + + #[inline] + pub fn address_range( + mut self, + address_range: impl Cast, + ) -> Self { + self.value.address_range = address_range.into(); + self + } + + #[inline] + pub fn address_flags(mut self, address_flags: AddressCommandFlagsKHR) -> Self { + self.value.address_flags = address_flags; + self + } + + #[inline] + pub fn address_row_length(mut self, address_row_length: u32) -> Self { + self.value.address_row_length = address_row_length; + self + } + + #[inline] + pub fn address_image_height(mut self, address_image_height: u32) -> Self { + self.value.address_image_height = address_image_height; + self + } + + #[inline] + pub fn image_subresource( + mut self, + image_subresource: impl Cast, + ) -> Self { + self.value.image_subresource = image_subresource.into(); + self + } + + #[inline] + pub fn image_layout(mut self, image_layout: ImageLayout) -> Self { + self.value.image_layout = image_layout; + self + } + + #[inline] + pub fn image_offset(mut self, image_offset: impl Cast) -> Self { + self.value.image_offset = image_offset.into(); + self + } + + #[inline] + pub fn image_extent(mut self, image_extent: impl Cast) -> Self { + self.value.image_extent = image_extent.into(); + self + } + + #[inline] + pub fn build(self) -> DeviceMemoryImageCopyKHR { + self.value + } +} + +impl ops::Deref for DeviceMemoryImageCopyKHRBuilder<'_> { + type Target = DeviceMemoryImageCopyKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for DeviceMemoryImageCopyKHRBuilder<'_> { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for DeviceMemoryImageCopyKHRBuilder<'_> { + type Target = DeviceMemoryImageCopyKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + unsafe impl Cast for DeviceMemoryOpaqueCaptureAddressInfo { type Target = DeviceMemoryOpaqueCaptureAddressInfo; @@ -21506,6 +22465,73 @@ unsafe impl Cast for DispatchGraphInfoAMDXBuilder { } } +unsafe impl Cast for DispatchIndirect2InfoKHR { + type Target = DispatchIndirect2InfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for DispatchIndirect2InfoKHR { + type Builder = DispatchIndirect2InfoKHRBuilder; +} + +/// A builder for a [`DispatchIndirect2InfoKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct DispatchIndirect2InfoKHRBuilder { + value: DispatchIndirect2InfoKHR, +} + +impl DispatchIndirect2InfoKHRBuilder { + #[inline] + pub fn address_range( + mut self, + address_range: impl Cast, + ) -> Self { + self.value.address_range = address_range.into(); + self + } + + #[inline] + pub fn address_flags(mut self, address_flags: AddressCommandFlagsKHR) -> Self { + self.value.address_flags = address_flags; + self + } + + #[inline] + pub fn build(self) -> DispatchIndirect2InfoKHR { + self.value + } +} + +impl ops::Deref for DispatchIndirect2InfoKHRBuilder { + type Target = DispatchIndirect2InfoKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for DispatchIndirect2InfoKHRBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for DispatchIndirect2InfoKHRBuilder { + type Target = DispatchIndirect2InfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + unsafe impl Cast for DispatchIndirectCommand { type Target = DispatchIndirectCommand; @@ -22970,6 +23996,79 @@ unsafe impl Cast for DrawIndexedIndirectCommandBuilder { } } +unsafe impl Cast for DrawIndirect2InfoKHR { + type Target = DrawIndirect2InfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for DrawIndirect2InfoKHR { + type Builder = DrawIndirect2InfoKHRBuilder; +} + +/// A builder for a [`DrawIndirect2InfoKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct DrawIndirect2InfoKHRBuilder { + value: DrawIndirect2InfoKHR, +} + +impl DrawIndirect2InfoKHRBuilder { + #[inline] + pub fn address_range( + mut self, + address_range: impl Cast, + ) -> Self { + self.value.address_range = address_range.into(); + self + } + + #[inline] + pub fn address_flags(mut self, address_flags: AddressCommandFlagsKHR) -> Self { + self.value.address_flags = address_flags; + self + } + + #[inline] + pub fn draw_count(mut self, draw_count: u32) -> Self { + self.value.draw_count = draw_count; + self + } + + #[inline] + pub fn build(self) -> DrawIndirect2InfoKHR { + self.value + } +} + +impl ops::Deref for DrawIndirect2InfoKHRBuilder { + type Target = DrawIndirect2InfoKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for DrawIndirect2InfoKHRBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for DrawIndirect2InfoKHRBuilder { + type Target = DrawIndirect2InfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + unsafe impl Cast for DrawIndirectCommand { type Target = DrawIndirectCommand; @@ -23046,6 +24145,94 @@ unsafe impl Cast for DrawIndirectCommandBuilder { } } +unsafe impl Cast for DrawIndirectCount2InfoKHR { + type Target = DrawIndirectCount2InfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for DrawIndirectCount2InfoKHR { + type Builder = DrawIndirectCount2InfoKHRBuilder; +} + +/// A builder for a [`DrawIndirectCount2InfoKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct DrawIndirectCount2InfoKHRBuilder { + value: DrawIndirectCount2InfoKHR, +} + +impl DrawIndirectCount2InfoKHRBuilder { + #[inline] + pub fn address_range( + mut self, + address_range: impl Cast, + ) -> Self { + self.value.address_range = address_range.into(); + self + } + + #[inline] + pub fn address_flags(mut self, address_flags: AddressCommandFlagsKHR) -> Self { + self.value.address_flags = address_flags; + self + } + + #[inline] + pub fn count_address_range( + mut self, + count_address_range: impl Cast, + ) -> Self { + self.value.count_address_range = count_address_range.into(); + self + } + + #[inline] + pub fn count_address_flags(mut self, count_address_flags: AddressCommandFlagsKHR) -> Self { + self.value.count_address_flags = count_address_flags; + self + } + + #[inline] + pub fn max_draw_count(mut self, max_draw_count: u32) -> Self { + self.value.max_draw_count = max_draw_count; + self + } + + #[inline] + pub fn build(self) -> DrawIndirectCount2InfoKHR { + self.value + } +} + +impl ops::Deref for DrawIndirectCount2InfoKHRBuilder { + type Target = DrawIndirectCount2InfoKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for DrawIndirectCount2InfoKHRBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for DrawIndirectCount2InfoKHRBuilder { + type Target = DrawIndirectCount2InfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + unsafe impl Cast for DrawIndirectCountIndirectCommandEXT { type Target = DrawIndirectCountIndirectCommandEXT; @@ -37578,6 +38765,82 @@ unsafe impl Cast for MemoryMapPlacedInfoEXTBuilder<'_> { } } +unsafe impl Cast for MemoryMarkerInfoAMD { + type Target = MemoryMarkerInfoAMD; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for MemoryMarkerInfoAMD { + type Builder = MemoryMarkerInfoAMDBuilder; +} + +/// A builder for a [`MemoryMarkerInfoAMD`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct MemoryMarkerInfoAMDBuilder { + value: MemoryMarkerInfoAMD, +} + +impl MemoryMarkerInfoAMDBuilder { + #[inline] + pub fn stage(mut self, stage: PipelineStageFlags2KHR) -> Self { + self.value.stage = stage; + self + } + + #[inline] + pub fn dst_range(mut self, dst_range: impl Cast) -> Self { + self.value.dst_range = dst_range.into(); + self + } + + #[inline] + pub fn dst_flags(mut self, dst_flags: AddressCommandFlagsKHR) -> Self { + self.value.dst_flags = dst_flags; + self + } + + #[inline] + pub fn marker(mut self, marker: u32) -> Self { + self.value.marker = marker; + self + } + + #[inline] + pub fn build(self) -> MemoryMarkerInfoAMD { + self.value + } +} + +impl ops::Deref for MemoryMarkerInfoAMDBuilder { + type Target = MemoryMarkerInfoAMD; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for MemoryMarkerInfoAMDBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for MemoryMarkerInfoAMDBuilder { + type Target = MemoryMarkerInfoAMD; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + unsafe impl Cast for MemoryMetalHandlePropertiesEXT { type Target = MemoryMetalHandlePropertiesEXT; @@ -37752,6 +39015,172 @@ unsafe impl Cast for MemoryPriorityAllocateInfoEXTBuilder { } } +unsafe impl Cast for MemoryRangeBarrierKHR { + type Target = MemoryRangeBarrierKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for MemoryRangeBarrierKHR { + type Builder = MemoryRangeBarrierKHRBuilder; +} + +/// A builder for a [`MemoryRangeBarrierKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct MemoryRangeBarrierKHRBuilder { + value: MemoryRangeBarrierKHR, +} + +impl MemoryRangeBarrierKHRBuilder { + #[inline] + pub fn src_stage_mask(mut self, src_stage_mask: PipelineStageFlags2) -> Self { + self.value.src_stage_mask = src_stage_mask; + self + } + + #[inline] + pub fn src_access_mask(mut self, src_access_mask: AccessFlags2) -> Self { + self.value.src_access_mask = src_access_mask; + self + } + + #[inline] + pub fn dst_stage_mask(mut self, dst_stage_mask: PipelineStageFlags2) -> Self { + self.value.dst_stage_mask = dst_stage_mask; + self + } + + #[inline] + pub fn dst_access_mask(mut self, dst_access_mask: AccessFlags2) -> Self { + self.value.dst_access_mask = dst_access_mask; + self + } + + #[inline] + pub fn src_queue_family_index(mut self, src_queue_family_index: u32) -> Self { + self.value.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.value.dst_queue_family_index = dst_queue_family_index; + self + } + + #[inline] + pub fn address_range( + mut self, + address_range: impl Cast, + ) -> Self { + self.value.address_range = address_range.into(); + self + } + + #[inline] + pub fn address_flags(mut self, address_flags: AddressCommandFlagsKHR) -> Self { + self.value.address_flags = address_flags; + self + } + + #[inline] + pub fn build(self) -> MemoryRangeBarrierKHR { + self.value + } +} + +impl ops::Deref for MemoryRangeBarrierKHRBuilder { + type Target = MemoryRangeBarrierKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for MemoryRangeBarrierKHRBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for MemoryRangeBarrierKHRBuilder { + type Target = MemoryRangeBarrierKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + +unsafe impl Cast for MemoryRangeBarriersInfoKHR { + type Target = MemoryRangeBarriersInfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl<'b> HasBuilder<'b> for MemoryRangeBarriersInfoKHR { + type Builder = MemoryRangeBarriersInfoKHRBuilder<'b>; +} + +/// A builder for a [`MemoryRangeBarriersInfoKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct MemoryRangeBarriersInfoKHRBuilder<'b> { + value: MemoryRangeBarriersInfoKHR, + _marker: PhantomData<&'b ()>, +} + +impl<'b> MemoryRangeBarriersInfoKHRBuilder<'b> { + #[inline] + pub fn memory_range_barriers( + mut self, + memory_range_barriers: &'b [impl Cast], + ) -> Self { + self.value.memory_range_barrier_count = memory_range_barriers.len() as u32; + self.value.memory_range_barriers = memory_range_barriers.as_ptr().cast(); + self + } + + #[inline] + pub fn build(self) -> MemoryRangeBarriersInfoKHR { + self.value + } +} + +impl ops::Deref for MemoryRangeBarriersInfoKHRBuilder<'_> { + type Target = MemoryRangeBarriersInfoKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for MemoryRangeBarriersInfoKHRBuilder<'_> { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for MemoryRangeBarriersInfoKHRBuilder<'_> { + type Target = MemoryRangeBarriersInfoKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + unsafe impl Cast for MemoryRequirements { type Target = MemoryRequirements; @@ -47756,6 +49185,64 @@ unsafe impl Cast for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVEBuilder } } +unsafe impl Cast for PhysicalDeviceDeviceAddressCommandsFeaturesKHR { + type Target = PhysicalDeviceDeviceAddressCommandsFeaturesKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for PhysicalDeviceDeviceAddressCommandsFeaturesKHR { + type Builder = PhysicalDeviceDeviceAddressCommandsFeaturesKHRBuilder; +} + +/// A builder for a [`PhysicalDeviceDeviceAddressCommandsFeaturesKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct PhysicalDeviceDeviceAddressCommandsFeaturesKHRBuilder { + value: PhysicalDeviceDeviceAddressCommandsFeaturesKHR, +} + +impl PhysicalDeviceDeviceAddressCommandsFeaturesKHRBuilder { + #[inline] + pub fn device_address_commands(mut self, device_address_commands: bool) -> Self { + self.value.device_address_commands = device_address_commands as Bool32; + self + } + + #[inline] + pub fn build(self) -> PhysicalDeviceDeviceAddressCommandsFeaturesKHR { + self.value + } +} + +impl ops::Deref for PhysicalDeviceDeviceAddressCommandsFeaturesKHRBuilder { + type Target = PhysicalDeviceDeviceAddressCommandsFeaturesKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for PhysicalDeviceDeviceAddressCommandsFeaturesKHRBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for PhysicalDeviceDeviceAddressCommandsFeaturesKHRBuilder { + type Target = PhysicalDeviceDeviceAddressCommandsFeaturesKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + unsafe impl Cast for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV { type Target = PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV; @@ -50666,6 +52153,144 @@ unsafe impl Cast for PhysicalDeviceFaultFeaturesEXTBuilder { } } +unsafe impl Cast for PhysicalDeviceFaultFeaturesKHR { + type Target = PhysicalDeviceFaultFeaturesKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for PhysicalDeviceFaultFeaturesKHR { + type Builder = PhysicalDeviceFaultFeaturesKHRBuilder; +} + +/// A builder for a [`PhysicalDeviceFaultFeaturesKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct PhysicalDeviceFaultFeaturesKHRBuilder { + value: PhysicalDeviceFaultFeaturesKHR, +} + +impl PhysicalDeviceFaultFeaturesKHRBuilder { + #[inline] + pub fn device_fault(mut self, device_fault: bool) -> Self { + self.value.device_fault = device_fault as Bool32; + self + } + + #[inline] + pub fn device_fault_vendor_binary(mut self, device_fault_vendor_binary: bool) -> Self { + self.value.device_fault_vendor_binary = device_fault_vendor_binary as Bool32; + self + } + + #[inline] + pub fn device_fault_report_masked(mut self, device_fault_report_masked: bool) -> Self { + self.value.device_fault_report_masked = device_fault_report_masked as Bool32; + self + } + + #[inline] + pub fn device_fault_device_lost_on_masked( + mut self, + device_fault_device_lost_on_masked: bool, + ) -> Self { + self.value.device_fault_device_lost_on_masked = + device_fault_device_lost_on_masked as Bool32; + self + } + + #[inline] + pub fn build(self) -> PhysicalDeviceFaultFeaturesKHR { + self.value + } +} + +impl ops::Deref for PhysicalDeviceFaultFeaturesKHRBuilder { + type Target = PhysicalDeviceFaultFeaturesKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for PhysicalDeviceFaultFeaturesKHRBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for PhysicalDeviceFaultFeaturesKHRBuilder { + type Target = PhysicalDeviceFaultFeaturesKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + +unsafe impl Cast for PhysicalDeviceFaultPropertiesKHR { + type Target = PhysicalDeviceFaultPropertiesKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for PhysicalDeviceFaultPropertiesKHR { + type Builder = PhysicalDeviceFaultPropertiesKHRBuilder; +} + +/// A builder for a [`PhysicalDeviceFaultPropertiesKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct PhysicalDeviceFaultPropertiesKHRBuilder { + value: PhysicalDeviceFaultPropertiesKHR, +} + +impl PhysicalDeviceFaultPropertiesKHRBuilder { + #[inline] + pub fn max_device_fault_count(mut self, max_device_fault_count: u32) -> Self { + self.value.max_device_fault_count = max_device_fault_count; + self + } + + #[inline] + pub fn build(self) -> PhysicalDeviceFaultPropertiesKHR { + self.value + } +} + +impl ops::Deref for PhysicalDeviceFaultPropertiesKHRBuilder { + type Target = PhysicalDeviceFaultPropertiesKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for PhysicalDeviceFaultPropertiesKHRBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for PhysicalDeviceFaultPropertiesKHRBuilder { + type Target = PhysicalDeviceFaultPropertiesKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + unsafe impl Cast for PhysicalDeviceFeatures { type Target = PhysicalDeviceFeatures; @@ -51158,6 +52783,7 @@ unsafe impl ExtendsPhysicalDeviceFeatures2 { } unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {} +unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDeviceAddressCommandsFeaturesKHR {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV { @@ -51185,6 +52811,7 @@ unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExternalMemoryScree unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExternalSciSync2FeaturesNV {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExternalSciSyncFeaturesNV {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFaultFeaturesEXT {} +unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFaultFeaturesKHR {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFormatPackFeaturesARM {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFragmentDensityMap2FeaturesEXT {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFragmentDensityMapFeaturesEXT {} @@ -51333,12 +52960,14 @@ unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceScalarBlockLayoutFe unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceSchedulingControlsFeaturesARM {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceSeparateDepthStencilLayoutsFeatures {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShader64BitIndexingFeaturesEXT {} +unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderAbortFeaturesKHR {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderAtomicFloat2FeaturesEXT {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderAtomicFloatFeaturesEXT {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderAtomicInt64Features {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderBfloat16FeaturesKHR {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderClockFeaturesKHR {} +unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderConstantDataFeaturesKHR {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderCoreBuiltinsFeaturesARM {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderDemoteToHelperInvocationFeatures @@ -51357,6 +52986,7 @@ unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderFloatControls unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderFmaFeaturesKHR {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderImageFootprintFeaturesNV {} +unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderInstrumentationFeaturesARM {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderIntegerDotProductFeatures {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {} unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderLongVectorFeaturesEXT {} @@ -62178,6 +63808,7 @@ unsafe impl ExtendsPhysicalDeviceProperties2 { } unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceExternalMemoryHostPropertiesEXT {} +unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceFaultPropertiesKHR {} unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceFloatControlsProperties {} unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceFragmentDensityMap2PropertiesEXT {} unsafe impl ExtendsPhysicalDeviceProperties2 @@ -62265,11 +63896,13 @@ unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceRobustness2Proper unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceSampleLocationsPropertiesEXT {} unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceSamplerFilterMinmaxProperties {} unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceSchedulingControlsPropertiesARM {} +unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderAbortPropertiesKHR {} unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderCoreBuiltinsPropertiesARM {} unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderCoreProperties2AMD {} unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderCorePropertiesAMD {} unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderCorePropertiesARM {} unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderEnqueuePropertiesAMDX {} +unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderInstrumentationPropertiesARM {} unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderIntegerDotProductProperties {} unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderLongVectorPropertiesEXT {} unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderModuleIdentifierPropertiesEXT {} @@ -64913,6 +66546,122 @@ unsafe impl Cast for PhysicalDeviceShader64BitIndexingFeaturesEXTBuilder { } } +unsafe impl Cast for PhysicalDeviceShaderAbortFeaturesKHR { + type Target = PhysicalDeviceShaderAbortFeaturesKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for PhysicalDeviceShaderAbortFeaturesKHR { + type Builder = PhysicalDeviceShaderAbortFeaturesKHRBuilder; +} + +/// A builder for a [`PhysicalDeviceShaderAbortFeaturesKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct PhysicalDeviceShaderAbortFeaturesKHRBuilder { + value: PhysicalDeviceShaderAbortFeaturesKHR, +} + +impl PhysicalDeviceShaderAbortFeaturesKHRBuilder { + #[inline] + pub fn shader_abort(mut self, shader_abort: bool) -> Self { + self.value.shader_abort = shader_abort as Bool32; + self + } + + #[inline] + pub fn build(self) -> PhysicalDeviceShaderAbortFeaturesKHR { + self.value + } +} + +impl ops::Deref for PhysicalDeviceShaderAbortFeaturesKHRBuilder { + type Target = PhysicalDeviceShaderAbortFeaturesKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for PhysicalDeviceShaderAbortFeaturesKHRBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for PhysicalDeviceShaderAbortFeaturesKHRBuilder { + type Target = PhysicalDeviceShaderAbortFeaturesKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + +unsafe impl Cast for PhysicalDeviceShaderAbortPropertiesKHR { + type Target = PhysicalDeviceShaderAbortPropertiesKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for PhysicalDeviceShaderAbortPropertiesKHR { + type Builder = PhysicalDeviceShaderAbortPropertiesKHRBuilder; +} + +/// A builder for a [`PhysicalDeviceShaderAbortPropertiesKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct PhysicalDeviceShaderAbortPropertiesKHRBuilder { + value: PhysicalDeviceShaderAbortPropertiesKHR, +} + +impl PhysicalDeviceShaderAbortPropertiesKHRBuilder { + #[inline] + pub fn max_shader_abort_message_size(mut self, max_shader_abort_message_size: u64) -> Self { + self.value.max_shader_abort_message_size = max_shader_abort_message_size; + self + } + + #[inline] + pub fn build(self) -> PhysicalDeviceShaderAbortPropertiesKHR { + self.value + } +} + +impl ops::Deref for PhysicalDeviceShaderAbortPropertiesKHRBuilder { + type Target = PhysicalDeviceShaderAbortPropertiesKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for PhysicalDeviceShaderAbortPropertiesKHRBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for PhysicalDeviceShaderAbortPropertiesKHRBuilder { + type Target = PhysicalDeviceShaderAbortPropertiesKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + unsafe impl Cast for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV { type Target = PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV; @@ -65477,6 +67226,64 @@ unsafe impl Cast for PhysicalDeviceShaderClockFeaturesKHRBuilder { } } +unsafe impl Cast for PhysicalDeviceShaderConstantDataFeaturesKHR { + type Target = PhysicalDeviceShaderConstantDataFeaturesKHR; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for PhysicalDeviceShaderConstantDataFeaturesKHR { + type Builder = PhysicalDeviceShaderConstantDataFeaturesKHRBuilder; +} + +/// A builder for a [`PhysicalDeviceShaderConstantDataFeaturesKHR`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct PhysicalDeviceShaderConstantDataFeaturesKHRBuilder { + value: PhysicalDeviceShaderConstantDataFeaturesKHR, +} + +impl PhysicalDeviceShaderConstantDataFeaturesKHRBuilder { + #[inline] + pub fn shader_constant_data(mut self, shader_constant_data: bool) -> Self { + self.value.shader_constant_data = shader_constant_data as Bool32; + self + } + + #[inline] + pub fn build(self) -> PhysicalDeviceShaderConstantDataFeaturesKHR { + self.value + } +} + +impl ops::Deref for PhysicalDeviceShaderConstantDataFeaturesKHRBuilder { + type Target = PhysicalDeviceShaderConstantDataFeaturesKHR; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for PhysicalDeviceShaderConstantDataFeaturesKHRBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for PhysicalDeviceShaderConstantDataFeaturesKHRBuilder { + type Target = PhysicalDeviceShaderConstantDataFeaturesKHR; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + unsafe impl Cast for PhysicalDeviceShaderCoreBuiltinsFeaturesARM { type Target = PhysicalDeviceShaderCoreBuiltinsFeaturesARM; @@ -66676,6 +68483,128 @@ unsafe impl Cast for PhysicalDeviceShaderImageFootprintFeaturesNVBuilder { } } +unsafe impl Cast for PhysicalDeviceShaderInstrumentationFeaturesARM { + type Target = PhysicalDeviceShaderInstrumentationFeaturesARM; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for PhysicalDeviceShaderInstrumentationFeaturesARM { + type Builder = PhysicalDeviceShaderInstrumentationFeaturesARMBuilder; +} + +/// A builder for a [`PhysicalDeviceShaderInstrumentationFeaturesARM`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct PhysicalDeviceShaderInstrumentationFeaturesARMBuilder { + value: PhysicalDeviceShaderInstrumentationFeaturesARM, +} + +impl PhysicalDeviceShaderInstrumentationFeaturesARMBuilder { + #[inline] + pub fn shader_instrumentation(mut self, shader_instrumentation: bool) -> Self { + self.value.shader_instrumentation = shader_instrumentation as Bool32; + self + } + + #[inline] + pub fn build(self) -> PhysicalDeviceShaderInstrumentationFeaturesARM { + self.value + } +} + +impl ops::Deref for PhysicalDeviceShaderInstrumentationFeaturesARMBuilder { + type Target = PhysicalDeviceShaderInstrumentationFeaturesARM; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for PhysicalDeviceShaderInstrumentationFeaturesARMBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for PhysicalDeviceShaderInstrumentationFeaturesARMBuilder { + type Target = PhysicalDeviceShaderInstrumentationFeaturesARM; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + +unsafe impl Cast for PhysicalDeviceShaderInstrumentationPropertiesARM { + type Target = PhysicalDeviceShaderInstrumentationPropertiesARM; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for PhysicalDeviceShaderInstrumentationPropertiesARM { + type Builder = PhysicalDeviceShaderInstrumentationPropertiesARMBuilder; +} + +/// A builder for a [`PhysicalDeviceShaderInstrumentationPropertiesARM`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct PhysicalDeviceShaderInstrumentationPropertiesARMBuilder { + value: PhysicalDeviceShaderInstrumentationPropertiesARM, +} + +impl PhysicalDeviceShaderInstrumentationPropertiesARMBuilder { + #[inline] + pub fn num_metrics(mut self, num_metrics: u32) -> Self { + self.value.num_metrics = num_metrics; + self + } + + #[inline] + pub fn per_basic_block_granularity(mut self, per_basic_block_granularity: bool) -> Self { + self.value.per_basic_block_granularity = per_basic_block_granularity as Bool32; + self + } + + #[inline] + pub fn build(self) -> PhysicalDeviceShaderInstrumentationPropertiesARM { + self.value + } +} + +impl ops::Deref for PhysicalDeviceShaderInstrumentationPropertiesARMBuilder { + type Target = PhysicalDeviceShaderInstrumentationPropertiesARM; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for PhysicalDeviceShaderInstrumentationPropertiesARMBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for PhysicalDeviceShaderInstrumentationPropertiesARMBuilder { + type Target = PhysicalDeviceShaderInstrumentationPropertiesARM; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + unsafe impl Cast for PhysicalDeviceShaderIntegerDotProductFeatures { type Target = PhysicalDeviceShaderIntegerDotProductFeatures; @@ -83974,14 +85903,9 @@ pub struct RenderPassPerformanceCountersByRegionBeginInfoARMBuilder<'b> { impl<'b> RenderPassPerformanceCountersByRegionBeginInfoARMBuilder<'b> { #[inline] - pub fn counter_address_count(mut self, counter_address_count: u32) -> Self { - self.value.counter_address_count = counter_address_count; - self - } - - #[inline] - pub fn counter_addresses(mut self, counter_addresses: &'b DeviceAddress) -> Self { - self.value.counter_addresses = counter_addresses as *const DeviceAddress; + pub fn counter_addresses(mut self, counter_addresses: &'b [DeviceAddress]) -> Self { + self.value.counter_address_count = counter_addresses.len() as u32; + self.value.counter_addresses = counter_addresses.as_ptr(); self } @@ -83992,14 +85916,9 @@ impl<'b> RenderPassPerformanceCountersByRegionBeginInfoARMBuilder<'b> { } #[inline] - pub fn counter_index_count(mut self, counter_index_count: u32) -> Self { - self.value.counter_index_count = counter_index_count; - self - } - - #[inline] - pub fn counter_indices(mut self, counter_indices: &'b mut u32) -> Self { - self.value.counter_indices = counter_indices as *mut u32; + pub fn counter_indices(mut self, counter_indices: &'b mut [u32]) -> Self { + self.value.counter_index_count = counter_indices.len() as u32; + self.value.counter_indices = counter_indices.as_mut_ptr(); self } @@ -88265,6 +90184,201 @@ unsafe impl Cast for ShaderDescriptorSetAndBindingMappingInfoEXTBuilder<'_> { } } +unsafe impl Cast for ShaderInstrumentationCreateInfoARM { + type Target = ShaderInstrumentationCreateInfoARM; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for ShaderInstrumentationCreateInfoARM { + type Builder = ShaderInstrumentationCreateInfoARMBuilder; +} + +/// A builder for a [`ShaderInstrumentationCreateInfoARM`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct ShaderInstrumentationCreateInfoARMBuilder { + value: ShaderInstrumentationCreateInfoARM, +} + +impl ShaderInstrumentationCreateInfoARMBuilder { + #[inline] + pub fn build(self) -> ShaderInstrumentationCreateInfoARM { + self.value + } +} + +impl ops::Deref for ShaderInstrumentationCreateInfoARMBuilder { + type Target = ShaderInstrumentationCreateInfoARM; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for ShaderInstrumentationCreateInfoARMBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for ShaderInstrumentationCreateInfoARMBuilder { + type Target = ShaderInstrumentationCreateInfoARM; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + +unsafe impl Cast for ShaderInstrumentationMetricDataHeaderARM { + type Target = ShaderInstrumentationMetricDataHeaderARM; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for ShaderInstrumentationMetricDataHeaderARM { + type Builder = ShaderInstrumentationMetricDataHeaderARMBuilder; +} + +/// A builder for a [`ShaderInstrumentationMetricDataHeaderARM`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct ShaderInstrumentationMetricDataHeaderARMBuilder { + value: ShaderInstrumentationMetricDataHeaderARM, +} + +impl ShaderInstrumentationMetricDataHeaderARMBuilder { + #[inline] + pub fn result_index(mut self, result_index: u32) -> Self { + self.value.result_index = result_index; + self + } + + #[inline] + pub fn result_sub_index(mut self, result_sub_index: u32) -> Self { + self.value.result_sub_index = result_sub_index; + self + } + + #[inline] + pub fn stages(mut self, stages: ShaderStageFlags) -> Self { + self.value.stages = stages; + self + } + + #[inline] + pub fn basic_block_index(mut self, basic_block_index: u32) -> Self { + self.value.basic_block_index = basic_block_index; + self + } + + #[inline] + pub fn build(self) -> ShaderInstrumentationMetricDataHeaderARM { + self.value + } +} + +impl ops::Deref for ShaderInstrumentationMetricDataHeaderARMBuilder { + type Target = ShaderInstrumentationMetricDataHeaderARM; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for ShaderInstrumentationMetricDataHeaderARMBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for ShaderInstrumentationMetricDataHeaderARMBuilder { + type Target = ShaderInstrumentationMetricDataHeaderARM; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + +unsafe impl Cast for ShaderInstrumentationMetricDescriptionARM { + type Target = ShaderInstrumentationMetricDescriptionARM; + + #[inline] + fn into(self) -> Self::Target { + self + } +} + +impl HasBuilder<'static> for ShaderInstrumentationMetricDescriptionARM { + type Builder = ShaderInstrumentationMetricDescriptionARMBuilder; +} + +/// A builder for a [`ShaderInstrumentationMetricDescriptionARM`]. +#[repr(transparent)] +#[derive(Copy, Clone, Debug, Default)] +pub struct ShaderInstrumentationMetricDescriptionARMBuilder { + value: ShaderInstrumentationMetricDescriptionARM, +} + +impl ShaderInstrumentationMetricDescriptionARMBuilder { + #[inline] + pub fn name(mut self, name: impl Into>) -> Self { + self.value.name = name.into(); + self + } + + #[inline] + pub fn description( + mut self, + description: impl Into>, + ) -> Self { + self.value.description = description.into(); + self + } + + #[inline] + pub fn build(self) -> ShaderInstrumentationMetricDescriptionARM { + self.value + } +} + +impl ops::Deref for ShaderInstrumentationMetricDescriptionARMBuilder { + type Target = ShaderInstrumentationMetricDescriptionARM; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.value + } +} + +impl ops::DerefMut for ShaderInstrumentationMetricDescriptionARMBuilder { + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.value + } +} + +unsafe impl Cast for ShaderInstrumentationMetricDescriptionARMBuilder { + type Target = ShaderInstrumentationMetricDescriptionARM; + + #[inline] + fn into(self) -> Self::Target { + self.value + } +} + /// A Vulkan struct that can be used to extend a [`ShaderModuleCreateInfo`]. pub unsafe trait ExtendsShaderModuleCreateInfo: fmt::Debug {} unsafe impl ExtendsShaderModuleCreateInfo for ShaderModuleValidationCacheCreateInfoEXT {} @@ -94121,11 +96235,8 @@ impl TexelBufferDescriptorInfoEXTBuilder { } #[inline] - pub fn address_range( - mut self, - address_range: impl Cast, - ) -> Self { - self.value.address_range = address_range.into(); + pub fn address_range(mut self, address_range: DeviceAddressRangeEXT) -> Self { + self.value.address_range = address_range; self } diff --git a/vulkanalia/src/vk/chains.rs b/vulkanalia/src/vk/chains.rs index 33a199d..6be3b49 100644 --- a/vulkanalia/src/vk/chains.rs +++ b/vulkanalia/src/vk/chains.rs @@ -92,6 +92,20 @@ unsafe impl InputChainStruct for AccelerationStructureCaptureDescriptorDataInfoE } } +unsafe impl InputChainStruct for AccelerationStructureCreateInfo2KHR { + const TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_2_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + unsafe impl InputChainStruct for AccelerationStructureCreateInfoKHR { const TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_KHR; @@ -847,6 +861,20 @@ unsafe impl InputChainStruct for BindImagePlaneMemoryInfo { } } +unsafe impl InputChainStruct for BindIndexBuffer3InfoKHR { + const TYPE: StructureType = StructureType::BIND_INDEX_BUFFER_3_INFO_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + unsafe impl InputChainStruct for BindMemoryStatus { const TYPE: StructureType = StructureType::BIND_MEMORY_STATUS; @@ -889,6 +917,34 @@ unsafe impl InputChainStruct for BindTensorMemoryInfoARM { } } +unsafe impl InputChainStruct for BindTransformFeedbackBuffer2InfoEXT { + const TYPE: StructureType = StructureType::BIND_TRANSFORM_FEEDBACK_BUFFER_2_INFO_EXT; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + +unsafe impl InputChainStruct for BindVertexBuffer3InfoKHR { + const TYPE: StructureType = StructureType::BIND_VERTEX_BUFFER_3_INFO_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + unsafe impl InputChainStruct for BindVideoSessionMemoryInfoKHR { const TYPE: StructureType = StructureType::BIND_VIDEO_SESSION_MEMORY_INFO_KHR; @@ -1558,6 +1614,20 @@ unsafe impl InputChainStruct for ComputePipelineIndirectBufferInfoNV { } } +unsafe impl InputChainStruct for ConditionalRenderingBeginInfo2EXT { + const TYPE: StructureType = StructureType::CONDITIONAL_RENDERING_BEGIN_INFO_2_EXT; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + unsafe impl InputChainStruct for ConditionalRenderingBeginInfoEXT { const TYPE: StructureType = StructureType::CONDITIONAL_RENDERING_BEGIN_INFO_EXT; @@ -1754,6 +1824,34 @@ unsafe impl InputChainStruct for CopyDescriptorSet { } } +unsafe impl InputChainStruct for CopyDeviceMemoryImageInfoKHR { + const TYPE: StructureType = StructureType::COPY_DEVICE_MEMORY_IMAGE_INFO_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + +unsafe impl InputChainStruct for CopyDeviceMemoryInfoKHR { + const TYPE: StructureType = StructureType::COPY_DEVICE_MEMORY_INFO_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + unsafe impl InputChainStruct for CopyImageInfo2 { const TYPE: StructureType = StructureType::COPY_IMAGE_INFO_2; @@ -2902,6 +3000,27 @@ unsafe impl OutputChainStruct for DeviceFaultCountsEXT { } } +unsafe impl InputChainStruct for DeviceFaultDebugInfoKHR { + const TYPE: StructureType = StructureType::DEVICE_FAULT_DEBUG_INFO_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + +unsafe impl OutputChainStruct for DeviceFaultDebugInfoKHR { + #[inline] + fn next_mut(&self) -> *mut c_void { + self.next + } +} + unsafe impl InputChainStruct for DeviceFaultInfoEXT { const TYPE: StructureType = StructureType::DEVICE_FAULT_INFO_EXT; @@ -2923,6 +3042,48 @@ unsafe impl OutputChainStruct for DeviceFaultInfoEXT { } } +unsafe impl InputChainStruct for DeviceFaultInfoKHR { + const TYPE: StructureType = StructureType::DEVICE_FAULT_INFO_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + +unsafe impl OutputChainStruct for DeviceFaultInfoKHR { + #[inline] + fn next_mut(&self) -> *mut c_void { + self.next + } +} + +unsafe impl InputChainStruct for DeviceFaultShaderAbortMessageInfoKHR { + const TYPE: StructureType = StructureType::DEVICE_FAULT_SHADER_ABORT_MESSAGE_INFO_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + +unsafe impl OutputChainStruct for DeviceFaultShaderAbortMessageInfoKHR { + #[inline] + fn next_mut(&self) -> *mut c_void { + self.next + } +} + unsafe impl InputChainStruct for DeviceGroupBindSparseInfo { const TYPE: StructureType = StructureType::DEVICE_GROUP_BIND_SPARSE_INFO; @@ -3070,6 +3231,34 @@ unsafe impl InputChainStruct for DeviceImageSubresourceInfo { } } +unsafe impl InputChainStruct for DeviceMemoryCopyKHR { + const TYPE: StructureType = StructureType::DEVICE_MEMORY_COPY_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + +unsafe impl InputChainStruct for DeviceMemoryImageCopyKHR { + const TYPE: StructureType = StructureType::DEVICE_MEMORY_IMAGE_COPY_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + unsafe impl InputChainStruct for DeviceMemoryOpaqueCaptureAddressInfo { const TYPE: StructureType = StructureType::DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO; @@ -3288,6 +3477,20 @@ unsafe impl InputChainStruct for DirectFBSurfaceCreateInfoEXT { } } +unsafe impl InputChainStruct for DispatchIndirect2InfoKHR { + const TYPE: StructureType = StructureType::DISPATCH_INDIRECT_2_INFO_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + unsafe impl InputChainStruct for DispatchTileInfoQCOM { const TYPE: StructureType = StructureType::DISPATCH_TILE_INFO_QCOM; @@ -3526,6 +3729,34 @@ unsafe impl InputChainStruct for DisplaySurfaceStereoCreateInfoNV { } } +unsafe impl InputChainStruct for DrawIndirect2InfoKHR { + const TYPE: StructureType = StructureType::DRAW_INDIRECT_2_INFO_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + +unsafe impl InputChainStruct for DrawIndirectCount2InfoKHR { + const TYPE: StructureType = StructureType::DRAW_INDIRECT_COUNT_2_INFO_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + unsafe impl InputChainStruct for DrmFormatModifierPropertiesList2EXT { const TYPE: StructureType = StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT; @@ -6088,6 +6319,20 @@ unsafe impl InputChainStruct for MemoryMapPlacedInfoEXT { } } +unsafe impl InputChainStruct for MemoryMarkerInfoAMD { + const TYPE: StructureType = StructureType::MEMORY_MARKER_INFO_AMD; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + unsafe impl InputChainStruct for MemoryMetalHandlePropertiesEXT { const TYPE: StructureType = StructureType::MEMORY_METAL_HANDLE_PROPERTIES_EXT; @@ -6137,6 +6382,34 @@ unsafe impl InputChainStruct for MemoryPriorityAllocateInfoEXT { } } +unsafe impl InputChainStruct for MemoryRangeBarrierKHR { + const TYPE: StructureType = StructureType::MEMORY_RANGE_BARRIER_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + +unsafe impl InputChainStruct for MemoryRangeBarriersInfoKHR { + const TYPE: StructureType = StructureType::MEMORY_RANGE_BARRIERS_INFO_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + unsafe impl InputChainStruct for MemoryRequirements2 { const TYPE: StructureType = StructureType::MEMORY_REQUIREMENTS_2; @@ -8423,6 +8696,27 @@ unsafe impl OutputChainStruct for PhysicalDeviceDescriptorSetHostMappingFeatures } } +unsafe impl InputChainStruct for PhysicalDeviceDeviceAddressCommandsFeaturesKHR { + const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_ADDRESS_COMMANDS_FEATURES_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + +unsafe impl OutputChainStruct for PhysicalDeviceDeviceAddressCommandsFeaturesKHR { + #[inline] + fn next_mut(&self) -> *mut c_void { + self.next + } +} + unsafe impl InputChainStruct for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV { const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV; @@ -9180,6 +9474,48 @@ unsafe impl OutputChainStruct for PhysicalDeviceFaultFeaturesEXT { } } +unsafe impl InputChainStruct for PhysicalDeviceFaultFeaturesKHR { + const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FAULT_FEATURES_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + +unsafe impl OutputChainStruct for PhysicalDeviceFaultFeaturesKHR { + #[inline] + fn next_mut(&self) -> *mut c_void { + self.next + } +} + +unsafe impl InputChainStruct for PhysicalDeviceFaultPropertiesKHR { + const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FAULT_PROPERTIES_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + +unsafe impl OutputChainStruct for PhysicalDeviceFaultPropertiesKHR { + #[inline] + fn next_mut(&self) -> *mut c_void { + self.next + } +} + unsafe impl InputChainStruct for PhysicalDeviceFeatures2 { const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FEATURES_2; @@ -12883,6 +13219,48 @@ unsafe impl OutputChainStruct for PhysicalDeviceShader64BitIndexingFeaturesEXT { } } +unsafe impl InputChainStruct for PhysicalDeviceShaderAbortFeaturesKHR { + const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + +unsafe impl OutputChainStruct for PhysicalDeviceShaderAbortFeaturesKHR { + #[inline] + fn next_mut(&self) -> *mut c_void { + self.next + } +} + +unsafe impl InputChainStruct for PhysicalDeviceShaderAbortPropertiesKHR { + const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ABORT_PROPERTIES_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + +unsafe impl OutputChainStruct for PhysicalDeviceShaderAbortPropertiesKHR { + #[inline] + fn next_mut(&self) -> *mut c_void { + self.next + } +} + unsafe impl InputChainStruct for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV { const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV; @@ -13010,6 +13388,27 @@ unsafe impl OutputChainStruct for PhysicalDeviceShaderClockFeaturesKHR { } } +unsafe impl InputChainStruct for PhysicalDeviceShaderConstantDataFeaturesKHR { + const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + +unsafe impl OutputChainStruct for PhysicalDeviceShaderConstantDataFeaturesKHR { + #[inline] + fn next_mut(&self) -> *mut c_void { + self.next + } +} + unsafe impl InputChainStruct for PhysicalDeviceShaderCoreBuiltinsFeaturesARM { const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM; @@ -13370,6 +13769,49 @@ unsafe impl OutputChainStruct for PhysicalDeviceShaderImageFootprintFeaturesNV { } } +unsafe impl InputChainStruct for PhysicalDeviceShaderInstrumentationFeaturesARM { + const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_FEATURES_ARM; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + +unsafe impl OutputChainStruct for PhysicalDeviceShaderInstrumentationFeaturesARM { + #[inline] + fn next_mut(&self) -> *mut c_void { + self.next + } +} + +unsafe impl InputChainStruct for PhysicalDeviceShaderInstrumentationPropertiesARM { + const TYPE: StructureType = + StructureType::PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_PROPERTIES_ARM; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + +unsafe impl OutputChainStruct for PhysicalDeviceShaderInstrumentationPropertiesARM { + #[inline] + fn next_mut(&self) -> *mut c_void { + self.next + } +} + unsafe impl InputChainStruct for PhysicalDeviceShaderIntegerDotProductFeatures { const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES; @@ -17620,6 +18062,48 @@ unsafe impl InputChainStruct for ShaderDescriptorSetAndBindingMappingInfoEXT { } } +unsafe impl InputChainStruct for ShaderInstrumentationCreateInfoARM { + const TYPE: StructureType = StructureType::SHADER_INSTRUMENTATION_CREATE_INFO_ARM; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + +unsafe impl OutputChainStruct for ShaderInstrumentationCreateInfoARM { + #[inline] + fn next_mut(&self) -> *mut c_void { + self.next + } +} + +unsafe impl InputChainStruct for ShaderInstrumentationMetricDescriptionARM { + const TYPE: StructureType = StructureType::SHADER_INSTRUMENTATION_METRIC_DESCRIPTION_ARM; + + #[inline] + fn s_type(&self) -> StructureType { + self.s_type + } + + #[inline] + fn next(&self) -> *const c_void { + self.next + } +} + +unsafe impl OutputChainStruct for ShaderInstrumentationMetricDescriptionARM { + #[inline] + fn next_mut(&self) -> *mut c_void { + self.next + } +} + unsafe impl InputChainStruct for ShaderModuleCreateInfo { const TYPE: StructureType = StructureType::SHADER_MODULE_CREATE_INFO; diff --git a/vulkanalia/src/vk/commands.rs b/vulkanalia/src/vk/commands.rs index 925dcf3..dd48e0a 100644 --- a/vulkanalia/src/vk/commands.rs +++ b/vulkanalia/src/vk/commands.rs @@ -51,6 +51,8 @@ pub struct DeviceCommands { pub bind_video_session_memory_khr: PFN_vkBindVideoSessionMemoryKHR, pub build_acceleration_structures_khr: PFN_vkBuildAccelerationStructuresKHR, pub build_micromaps_ext: PFN_vkBuildMicromapsEXT, + pub clear_shader_instrumentation_metrics_arm: PFN_vkClearShaderInstrumentationMetricsARM, + pub cmd_begin_conditional_rendering2_ext: PFN_vkCmdBeginConditionalRendering2EXT, pub cmd_begin_conditional_rendering_ext: PFN_vkCmdBeginConditionalRenderingEXT, pub cmd_begin_custom_resolve_ext: PFN_vkCmdBeginCustomResolveEXT, pub cmd_begin_per_tile_execution_qcom: PFN_vkCmdBeginPerTileExecutionQCOM, @@ -61,6 +63,8 @@ pub struct DeviceCommands { pub cmd_begin_render_pass2_khr: PFN_vkCmdBeginRenderPass2KHR, pub cmd_begin_rendering: PFN_vkCmdBeginRendering, pub cmd_begin_rendering_khr: PFN_vkCmdBeginRenderingKHR, + pub cmd_begin_shader_instrumentation_arm: PFN_vkCmdBeginShaderInstrumentationARM, + pub cmd_begin_transform_feedback2_ext: PFN_vkCmdBeginTransformFeedback2EXT, pub cmd_begin_transform_feedback_ext: PFN_vkCmdBeginTransformFeedbackEXT, pub cmd_begin_video_coding_khr: PFN_vkCmdBeginVideoCodingKHR, pub cmd_bind_descriptor_buffer_embedded_samplers2_ext: @@ -74,6 +78,7 @@ pub struct DeviceCommands { pub cmd_bind_index_buffer: PFN_vkCmdBindIndexBuffer, pub cmd_bind_index_buffer2: PFN_vkCmdBindIndexBuffer2, pub cmd_bind_index_buffer2_khr: PFN_vkCmdBindIndexBuffer2KHR, + pub cmd_bind_index_buffer3_khr: PFN_vkCmdBindIndexBuffer3KHR, pub cmd_bind_invocation_mask_huawei: PFN_vkCmdBindInvocationMaskHUAWEI, pub cmd_bind_pipeline: PFN_vkCmdBindPipeline, pub cmd_bind_pipeline_shader_group_nv: PFN_vkCmdBindPipelineShaderGroupNV, @@ -82,10 +87,12 @@ pub struct DeviceCommands { pub cmd_bind_shaders_ext: PFN_vkCmdBindShadersEXT, pub cmd_bind_shading_rate_image_nv: PFN_vkCmdBindShadingRateImageNV, pub cmd_bind_tile_memory_qcom: PFN_vkCmdBindTileMemoryQCOM, + pub cmd_bind_transform_feedback_buffers2_ext: PFN_vkCmdBindTransformFeedbackBuffers2EXT, pub cmd_bind_transform_feedback_buffers_ext: PFN_vkCmdBindTransformFeedbackBuffersEXT, pub cmd_bind_vertex_buffers: PFN_vkCmdBindVertexBuffers, pub cmd_bind_vertex_buffers2: PFN_vkCmdBindVertexBuffers2, pub cmd_bind_vertex_buffers2_ext: PFN_vkCmdBindVertexBuffers2EXT, + pub cmd_bind_vertex_buffers3_khr: PFN_vkCmdBindVertexBuffers3KHR, pub cmd_blit_image: PFN_vkCmdBlitImage, pub cmd_blit_image2: PFN_vkCmdBlitImage2, pub cmd_blit_image2_khr: PFN_vkCmdBlitImage2KHR, @@ -119,16 +126,20 @@ pub struct DeviceCommands { pub cmd_copy_image_to_buffer: PFN_vkCmdCopyImageToBuffer, pub cmd_copy_image_to_buffer2: PFN_vkCmdCopyImageToBuffer2, pub cmd_copy_image_to_buffer2_khr: PFN_vkCmdCopyImageToBuffer2KHR, + pub cmd_copy_image_to_memory_khr: PFN_vkCmdCopyImageToMemoryKHR, pub cmd_copy_memory_indirect_khr: PFN_vkCmdCopyMemoryIndirectKHR, pub cmd_copy_memory_indirect_nv: PFN_vkCmdCopyMemoryIndirectNV, + pub cmd_copy_memory_khr: PFN_vkCmdCopyMemoryKHR, pub cmd_copy_memory_to_acceleration_structure_khr: PFN_vkCmdCopyMemoryToAccelerationStructureKHR, pub cmd_copy_memory_to_image_indirect_khr: PFN_vkCmdCopyMemoryToImageIndirectKHR, pub cmd_copy_memory_to_image_indirect_nv: PFN_vkCmdCopyMemoryToImageIndirectNV, + pub cmd_copy_memory_to_image_khr: PFN_vkCmdCopyMemoryToImageKHR, pub cmd_copy_memory_to_micromap_ext: PFN_vkCmdCopyMemoryToMicromapEXT, pub cmd_copy_micromap_ext: PFN_vkCmdCopyMicromapEXT, pub cmd_copy_micromap_to_memory_ext: PFN_vkCmdCopyMicromapToMemoryEXT, pub cmd_copy_query_pool_results: PFN_vkCmdCopyQueryPoolResults, + pub cmd_copy_query_pool_results_to_memory_khr: PFN_vkCmdCopyQueryPoolResultsToMemoryKHR, pub cmd_copy_tensor_arm: PFN_vkCmdCopyTensorARM, pub cmd_cu_launch_kernel_nvx: PFN_vkCmdCuLaunchKernelNVX, pub cmd_cuda_launch_kernel_nv: PFN_vkCmdCudaLaunchKernelNV, @@ -148,21 +159,29 @@ pub struct DeviceCommands { pub cmd_dispatch_graph_indirect_amdx: PFN_vkCmdDispatchGraphIndirectAMDX, pub cmd_dispatch_graph_indirect_count_amdx: PFN_vkCmdDispatchGraphIndirectCountAMDX, pub cmd_dispatch_indirect: PFN_vkCmdDispatchIndirect, + pub cmd_dispatch_indirect2_khr: PFN_vkCmdDispatchIndirect2KHR, pub cmd_dispatch_tile_qcom: PFN_vkCmdDispatchTileQCOM, pub cmd_draw: PFN_vkCmdDraw, pub cmd_draw_cluster_huawei: PFN_vkCmdDrawClusterHUAWEI, pub cmd_draw_cluster_indirect_huawei: PFN_vkCmdDrawClusterIndirectHUAWEI, pub cmd_draw_indexed: PFN_vkCmdDrawIndexed, pub cmd_draw_indexed_indirect: PFN_vkCmdDrawIndexedIndirect, + pub cmd_draw_indexed_indirect2_khr: PFN_vkCmdDrawIndexedIndirect2KHR, pub cmd_draw_indexed_indirect_count: PFN_vkCmdDrawIndexedIndirectCount, + pub cmd_draw_indexed_indirect_count2_khr: PFN_vkCmdDrawIndexedIndirectCount2KHR, pub cmd_draw_indexed_indirect_count_amd: PFN_vkCmdDrawIndexedIndirectCountAMD, pub cmd_draw_indexed_indirect_count_khr: PFN_vkCmdDrawIndexedIndirectCountKHR, pub cmd_draw_indirect: PFN_vkCmdDrawIndirect, + pub cmd_draw_indirect2_khr: PFN_vkCmdDrawIndirect2KHR, + pub cmd_draw_indirect_byte_count2_ext: PFN_vkCmdDrawIndirectByteCount2EXT, pub cmd_draw_indirect_byte_count_ext: PFN_vkCmdDrawIndirectByteCountEXT, pub cmd_draw_indirect_count: PFN_vkCmdDrawIndirectCount, + pub cmd_draw_indirect_count2_khr: PFN_vkCmdDrawIndirectCount2KHR, pub cmd_draw_indirect_count_amd: PFN_vkCmdDrawIndirectCountAMD, pub cmd_draw_indirect_count_khr: PFN_vkCmdDrawIndirectCountKHR, pub cmd_draw_mesh_tasks_ext: PFN_vkCmdDrawMeshTasksEXT, + pub cmd_draw_mesh_tasks_indirect2_ext: PFN_vkCmdDrawMeshTasksIndirect2EXT, + pub cmd_draw_mesh_tasks_indirect_count2_ext: PFN_vkCmdDrawMeshTasksIndirectCount2EXT, pub cmd_draw_mesh_tasks_indirect_count_ext: PFN_vkCmdDrawMeshTasksIndirectCountEXT, pub cmd_draw_mesh_tasks_indirect_count_nv: PFN_vkCmdDrawMeshTasksIndirectCountNV, pub cmd_draw_mesh_tasks_indirect_ext: PFN_vkCmdDrawMeshTasksIndirectEXT, @@ -182,12 +201,15 @@ pub struct DeviceCommands { pub cmd_end_rendering2_ext: PFN_vkCmdEndRendering2EXT, pub cmd_end_rendering2_khr: PFN_vkCmdEndRendering2KHR, pub cmd_end_rendering_khr: PFN_vkCmdEndRenderingKHR, + pub cmd_end_shader_instrumentation_arm: PFN_vkCmdEndShaderInstrumentationARM, + pub cmd_end_transform_feedback2_ext: PFN_vkCmdEndTransformFeedback2EXT, pub cmd_end_transform_feedback_ext: PFN_vkCmdEndTransformFeedbackEXT, pub cmd_end_video_coding_khr: PFN_vkCmdEndVideoCodingKHR, pub cmd_execute_commands: PFN_vkCmdExecuteCommands, pub cmd_execute_generated_commands_ext: PFN_vkCmdExecuteGeneratedCommandsEXT, pub cmd_execute_generated_commands_nv: PFN_vkCmdExecuteGeneratedCommandsNV, pub cmd_fill_buffer: PFN_vkCmdFillBuffer, + pub cmd_fill_memory_khr: PFN_vkCmdFillMemoryKHR, pub cmd_initialize_graph_scratch_memory_amdx: PFN_vkCmdInitializeGraphScratchMemoryAMDX, pub cmd_next_subpass: PFN_vkCmdNextSubpass, pub cmd_next_subpass2: PFN_vkCmdNextSubpass2, @@ -333,6 +355,7 @@ pub struct DeviceCommands { pub cmd_trace_rays_khr: PFN_vkCmdTraceRaysKHR, pub cmd_trace_rays_nv: PFN_vkCmdTraceRaysNV, pub cmd_update_buffer: PFN_vkCmdUpdateBuffer, + pub cmd_update_memory_khr: PFN_vkCmdUpdateMemoryKHR, pub cmd_update_pipeline_indirect_buffer_nv: PFN_vkCmdUpdatePipelineIndirectBufferNV, pub cmd_wait_events: PFN_vkCmdWaitEvents, pub cmd_wait_events2: PFN_vkCmdWaitEvents2, @@ -343,6 +366,7 @@ pub struct DeviceCommands { PFN_vkCmdWriteAccelerationStructuresPropertiesNV, pub cmd_write_buffer_marker2_amd: PFN_vkCmdWriteBufferMarker2AMD, pub cmd_write_buffer_marker_amd: PFN_vkCmdWriteBufferMarkerAMD, + pub cmd_write_marker_to_memory_amd: PFN_vkCmdWriteMarkerToMemoryAMD, pub cmd_write_micromaps_properties_ext: PFN_vkCmdWriteMicromapsPropertiesEXT, pub cmd_write_timestamp: PFN_vkCmdWriteTimestamp, pub cmd_write_timestamp2: PFN_vkCmdWriteTimestamp2, @@ -361,6 +385,7 @@ pub struct DeviceCommands { pub copy_memory_to_micromap_ext: PFN_vkCopyMemoryToMicromapEXT, pub copy_micromap_ext: PFN_vkCopyMicromapEXT, pub copy_micromap_to_memory_ext: PFN_vkCopyMicromapToMemoryEXT, + pub create_acceleration_structure2_khr: PFN_vkCreateAccelerationStructure2KHR, pub create_acceleration_structure_khr: PFN_vkCreateAccelerationStructureKHR, pub create_acceleration_structure_nv: PFN_vkCreateAccelerationStructureNV, pub create_buffer: PFN_vkCreateBuffer, @@ -408,6 +433,7 @@ pub struct DeviceCommands { pub create_sampler_ycbcr_conversion_khr: PFN_vkCreateSamplerYcbcrConversionKHR, pub create_semaphore: PFN_vkCreateSemaphore, pub create_semaphore_sci_sync_pool_nv: PFN_vkCreateSemaphoreSciSyncPoolNV, + pub create_shader_instrumentation_arm: PFN_vkCreateShaderInstrumentationARM, pub create_shader_module: PFN_vkCreateShaderModule, pub create_shaders_ext: PFN_vkCreateShadersEXT, pub create_shared_swapchains_khr: PFN_vkCreateSharedSwapchainsKHR, @@ -462,6 +488,7 @@ pub struct DeviceCommands { pub destroy_semaphore: PFN_vkDestroySemaphore, pub destroy_semaphore_sci_sync_pool_nv: PFN_vkDestroySemaphoreSciSyncPoolNV, pub destroy_shader_ext: PFN_vkDestroyShaderEXT, + pub destroy_shader_instrumentation_arm: PFN_vkDestroyShaderInstrumentationARM, pub destroy_shader_module: PFN_vkDestroyShaderModule, pub destroy_swapchain_khr: PFN_vkDestroySwapchainKHR, pub destroy_tensor_arm: PFN_vkDestroyTensorARM, @@ -525,7 +552,9 @@ pub struct DeviceCommands { pub get_device_buffer_memory_requirements: PFN_vkGetDeviceBufferMemoryRequirements, pub get_device_buffer_memory_requirements_khr: PFN_vkGetDeviceBufferMemoryRequirementsKHR, pub get_device_combined_image_sampler_index_nvx: PFN_vkGetDeviceCombinedImageSamplerIndexNVX, + pub get_device_fault_debug_info_khr: PFN_vkGetDeviceFaultDebugInfoKHR, pub get_device_fault_info_ext: PFN_vkGetDeviceFaultInfoEXT, + pub get_device_fault_reports_khr: PFN_vkGetDeviceFaultReportsKHR, pub get_device_group_peer_memory_features: PFN_vkGetDeviceGroupPeerMemoryFeatures, pub get_device_group_peer_memory_features_khr: PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR, pub get_device_group_present_capabilities_khr: PFN_vkGetDeviceGroupPresentCapabilitiesKHR, @@ -639,6 +668,7 @@ pub struct DeviceCommands { pub get_semaphore_zircon_handle_fuchsia: PFN_vkGetSemaphoreZirconHandleFUCHSIA, pub get_shader_binary_data_ext: PFN_vkGetShaderBinaryDataEXT, pub get_shader_info_amd: PFN_vkGetShaderInfoAMD, + pub get_shader_instrumentation_values_arm: PFN_vkGetShaderInstrumentationValuesARM, pub get_shader_module_create_info_identifier_ext: PFN_vkGetShaderModuleCreateInfoIdentifierEXT, pub get_shader_module_identifier_ext: PFN_vkGetShaderModuleIdentifierEXT, pub get_swapchain_counter_ext: PFN_vkGetSwapchainCounterEXT, @@ -1095,6 +1125,34 @@ impl DeviceCommands { fallback } }, + clear_shader_instrumentation_metrics_arm: { + let value = loader(c"vkClearShaderInstrumentationMetricsARM".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _device: Device, + _instrumentation: ShaderInstrumentationARM, + ) { + panic!("could not load vkClearShaderInstrumentationMetricsARM") + } + fallback + } + }, + cmd_begin_conditional_rendering2_ext: { + let value = loader(c"vkCmdBeginConditionalRendering2EXT".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _conditional_rendering_begin: *const ConditionalRenderingBeginInfo2EXT, + ) { + panic!("could not load vkCmdBeginConditionalRendering2EXT") + } + fallback + } + }, cmd_begin_conditional_rendering_ext: { let value = loader(c"vkCmdBeginConditionalRenderingEXT".as_ptr()); if let Some(value) = value { @@ -1243,6 +1301,36 @@ impl DeviceCommands { fallback } }, + cmd_begin_shader_instrumentation_arm: { + let value = loader(c"vkCmdBeginShaderInstrumentationARM".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _instrumentation: ShaderInstrumentationARM, + ) { + panic!("could not load vkCmdBeginShaderInstrumentationARM") + } + fallback + } + }, + cmd_begin_transform_feedback2_ext: { + let value = loader(c"vkCmdBeginTransformFeedback2EXT".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _first_counter_range: u32, + _counter_range_count: u32, + _counter_infos: *const BindTransformFeedbackBuffer2InfoEXT, + ) { + panic!("could not load vkCmdBeginTransformFeedback2EXT") + } + fallback + } + }, cmd_begin_transform_feedback_ext: { let value = loader(c"vkCmdBeginTransformFeedbackEXT".as_ptr()); if let Some(value) = value { @@ -1417,6 +1505,20 @@ impl DeviceCommands { fallback } }, + cmd_bind_index_buffer3_khr: { + let value = loader(c"vkCmdBindIndexBuffer3KHR".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _info: *const BindIndexBuffer3InfoKHR, + ) { + panic!("could not load vkCmdBindIndexBuffer3KHR") + } + fallback + } + }, cmd_bind_invocation_mask_huawei: { let value = loader(c"vkCmdBindInvocationMaskHUAWEI".as_ptr()); if let Some(value) = value { @@ -1536,6 +1638,22 @@ impl DeviceCommands { fallback } }, + cmd_bind_transform_feedback_buffers2_ext: { + let value = loader(c"vkCmdBindTransformFeedbackBuffers2EXT".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _first_binding: u32, + _binding_count: u32, + _binding_infos: *const BindTransformFeedbackBuffer2InfoEXT, + ) { + panic!("could not load vkCmdBindTransformFeedbackBuffers2EXT") + } + fallback + } + }, cmd_bind_transform_feedback_buffers_ext: { let value = loader(c"vkCmdBindTransformFeedbackBuffersEXT".as_ptr()); if let Some(value) = value { @@ -1609,6 +1727,22 @@ impl DeviceCommands { fallback } }, + cmd_bind_vertex_buffers3_khr: { + let value = loader(c"vkCmdBindVertexBuffers3KHR".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _first_binding: u32, + _binding_count: u32, + _binding_infos: *const BindVertexBuffer3InfoKHR, + ) { + panic!("could not load vkCmdBindVertexBuffers3KHR") + } + fallback + } + }, cmd_blit_image: { let value = loader(c"vkCmdBlitImage".as_ptr()); if let Some(value) = value { @@ -2065,6 +2199,20 @@ impl DeviceCommands { fallback } }, + cmd_copy_image_to_memory_khr: { + let value = loader(c"vkCmdCopyImageToMemoryKHR".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _copy_memory_info: *const CopyDeviceMemoryImageInfoKHR, + ) { + panic!("could not load vkCmdCopyImageToMemoryKHR") + } + fallback + } + }, cmd_copy_memory_indirect_khr: { let value = loader(c"vkCmdCopyMemoryIndirectKHR".as_ptr()); if let Some(value) = value { @@ -2095,6 +2243,20 @@ impl DeviceCommands { fallback } }, + cmd_copy_memory_khr: { + let value = loader(c"vkCmdCopyMemoryKHR".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _copy_memory_info: *const CopyDeviceMemoryInfoKHR, + ) { + panic!("could not load vkCmdCopyMemoryKHR") + } + fallback + } + }, cmd_copy_memory_to_acceleration_structure_khr: { let value = loader(c"vkCmdCopyMemoryToAccelerationStructureKHR".as_ptr()); if let Some(value) = value { @@ -2142,6 +2304,20 @@ impl DeviceCommands { fallback } }, + cmd_copy_memory_to_image_khr: { + let value = loader(c"vkCmdCopyMemoryToImageKHR".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _copy_memory_info: *const CopyDeviceMemoryImageInfoKHR, + ) { + panic!("could not load vkCmdCopyMemoryToImageKHR") + } + fallback + } + }, cmd_copy_memory_to_micromap_ext: { let value = loader(c"vkCmdCopyMemoryToMicromapEXT".as_ptr()); if let Some(value) = value { @@ -2204,6 +2380,25 @@ impl DeviceCommands { fallback } }, + cmd_copy_query_pool_results_to_memory_khr: { + let value = loader(c"vkCmdCopyQueryPoolResultsToMemoryKHR".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _query_pool: QueryPool, + _first_query: u32, + _query_count: u32, + _dst_range: *const StridedDeviceAddressRangeKHR, + _dst_flags: AddressCommandFlagsKHR, + _query_result_flags: QueryResultFlags, + ) { + panic!("could not load vkCmdCopyQueryPoolResultsToMemoryKHR") + } + fallback + } + }, cmd_copy_tensor_arm: { let value = loader(c"vkCmdCopyTensorARM".as_ptr()); if let Some(value) = value { @@ -2494,6 +2689,20 @@ impl DeviceCommands { fallback } }, + cmd_dispatch_indirect2_khr: { + let value = loader(c"vkCmdDispatchIndirect2KHR".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _info: *const DispatchIndirect2InfoKHR, + ) { + panic!("could not load vkCmdDispatchIndirect2KHR") + } + fallback + } + }, cmd_dispatch_tile_qcom: { let value = loader(c"vkCmdDispatchTileQCOM".as_ptr()); if let Some(value) = value { @@ -2591,6 +2800,20 @@ impl DeviceCommands { fallback } }, + cmd_draw_indexed_indirect2_khr: { + let value = loader(c"vkCmdDrawIndexedIndirect2KHR".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _info: *const DrawIndirect2InfoKHR, + ) { + panic!("could not load vkCmdDrawIndexedIndirect2KHR") + } + fallback + } + }, cmd_draw_indexed_indirect_count: { let value = loader(c"vkCmdDrawIndexedIndirectCount".as_ptr()); if let Some(value) = value { @@ -2610,6 +2833,20 @@ impl DeviceCommands { fallback } }, + cmd_draw_indexed_indirect_count2_khr: { + let value = loader(c"vkCmdDrawIndexedIndirectCount2KHR".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _info: *const DrawIndirectCount2InfoKHR, + ) { + panic!("could not load vkCmdDrawIndexedIndirectCount2KHR") + } + fallback + } + }, cmd_draw_indexed_indirect_count_amd: { let value = loader(c"vkCmdDrawIndexedIndirectCountAMD".as_ptr()); if let Some(value) = value { @@ -2665,6 +2902,38 @@ impl DeviceCommands { fallback } }, + cmd_draw_indirect2_khr: { + let value = loader(c"vkCmdDrawIndirect2KHR".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _info: *const DrawIndirect2InfoKHR, + ) { + panic!("could not load vkCmdDrawIndirect2KHR") + } + fallback + } + }, + cmd_draw_indirect_byte_count2_ext: { + let value = loader(c"vkCmdDrawIndirectByteCount2EXT".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _instance_count: u32, + _first_instance: u32, + _counter_info: *const BindTransformFeedbackBuffer2InfoEXT, + _counter_offset: u32, + _vertex_stride: u32, + ) { + panic!("could not load vkCmdDrawIndirectByteCount2EXT") + } + fallback + } + }, cmd_draw_indirect_byte_count_ext: { let value = loader(c"vkCmdDrawIndirectByteCountEXT".as_ptr()); if let Some(value) = value { @@ -2703,6 +2972,20 @@ impl DeviceCommands { fallback } }, + cmd_draw_indirect_count2_khr: { + let value = loader(c"vkCmdDrawIndirectCount2KHR".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _info: *const DrawIndirectCount2InfoKHR, + ) { + panic!("could not load vkCmdDrawIndirectCount2KHR") + } + fallback + } + }, cmd_draw_indirect_count_amd: { let value = loader(c"vkCmdDrawIndirectCountAMD".as_ptr()); if let Some(value) = value { @@ -2757,6 +3040,34 @@ impl DeviceCommands { fallback } }, + cmd_draw_mesh_tasks_indirect2_ext: { + let value = loader(c"vkCmdDrawMeshTasksIndirect2EXT".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _info: *const DrawIndirect2InfoKHR, + ) { + panic!("could not load vkCmdDrawMeshTasksIndirect2EXT") + } + fallback + } + }, + cmd_draw_mesh_tasks_indirect_count2_ext: { + let value = loader(c"vkCmdDrawMeshTasksIndirectCount2EXT".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _info: *const DrawIndirectCount2InfoKHR, + ) { + panic!("could not load vkCmdDrawMeshTasksIndirectCount2EXT") + } + fallback + } + }, cmd_draw_mesh_tasks_indirect_count_ext: { let value = loader(c"vkCmdDrawMeshTasksIndirectCountEXT".as_ptr()); if let Some(value) = value { @@ -3040,6 +3351,33 @@ impl DeviceCommands { fallback } }, + cmd_end_shader_instrumentation_arm: { + let value = loader(c"vkCmdEndShaderInstrumentationARM".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback(_command_buffer: CommandBuffer) { + panic!("could not load vkCmdEndShaderInstrumentationARM") + } + fallback + } + }, + cmd_end_transform_feedback2_ext: { + let value = loader(c"vkCmdEndTransformFeedback2EXT".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _first_counter_range: u32, + _counter_range_count: u32, + _counter_infos: *const BindTransformFeedbackBuffer2InfoEXT, + ) { + panic!("could not load vkCmdEndTransformFeedback2EXT") + } + fallback + } + }, cmd_end_transform_feedback_ext: { let value = loader(c"vkCmdEndTransformFeedbackEXT".as_ptr()); if let Some(value) = value { @@ -3133,6 +3471,22 @@ impl DeviceCommands { fallback } }, + cmd_fill_memory_khr: { + let value = loader(c"vkCmdFillMemoryKHR".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _dst_range: *const DeviceAddressRangeKHR, + _dst_flags: AddressCommandFlagsKHR, + _data: u32, + ) { + panic!("could not load vkCmdFillMemoryKHR") + } + fallback + } + }, cmd_initialize_graph_scratch_memory_amdx: { let value = loader(c"vkCmdInitializeGraphScratchMemoryAMDX".as_ptr()); if let Some(value) = value { @@ -5250,6 +5604,23 @@ impl DeviceCommands { fallback } }, + cmd_update_memory_khr: { + let value = loader(c"vkCmdUpdateMemoryKHR".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _dst_range: *const DeviceAddressRangeKHR, + _dst_flags: AddressCommandFlagsKHR, + _data_size: DeviceSize, + _data: *const c_void, + ) { + panic!("could not load vkCmdUpdateMemoryKHR") + } + fallback + } + }, cmd_update_pipeline_indirect_buffer_nv: { let value = loader(c"vkCmdUpdatePipelineIndirectBufferNV".as_ptr()); if let Some(value) = value { @@ -5390,6 +5761,20 @@ impl DeviceCommands { fallback } }, + cmd_write_marker_to_memory_amd: { + let value = loader(c"vkCmdWriteMarkerToMemoryAMD".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _command_buffer: CommandBuffer, + _info: *const MemoryMarkerInfoAMD, + ) { + panic!("could not load vkCmdWriteMarkerToMemoryAMD") + } + fallback + } + }, cmd_write_micromaps_properties_ext: { let value = loader(c"vkCmdWriteMicromapsPropertiesEXT".as_ptr()); if let Some(value) = value { @@ -5659,6 +6044,22 @@ impl DeviceCommands { fallback } }, + create_acceleration_structure2_khr: { + let value = loader(c"vkCreateAccelerationStructure2KHR".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _device: Device, + _create_info: *const AccelerationStructureCreateInfo2KHR, + _allocator: *const AllocationCallbacks, + _acceleration_structure: *mut AccelerationStructureKHR, + ) -> Result { + panic!("could not load vkCreateAccelerationStructure2KHR") + } + fallback + } + }, create_acceleration_structure_khr: { let value = loader(c"vkCreateAccelerationStructureKHR".as_ptr()); if let Some(value) = value { @@ -6424,6 +6825,22 @@ impl DeviceCommands { fallback } }, + create_shader_instrumentation_arm: { + let value = loader(c"vkCreateShaderInstrumentationARM".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _device: Device, + _create_info: *const ShaderInstrumentationCreateInfoARM, + _allocator: *const AllocationCallbacks, + _instrumentation: *mut ShaderInstrumentationARM, + ) -> Result { + panic!("could not load vkCreateShaderInstrumentationARM") + } + fallback + } + }, create_shader_module: { let value = loader(c"vkCreateShaderModule".as_ptr()); if let Some(value) = value { @@ -7241,6 +7658,21 @@ impl DeviceCommands { fallback } }, + destroy_shader_instrumentation_arm: { + let value = loader(c"vkDestroyShaderInstrumentationARM".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _device: Device, + _instrumentation: ShaderInstrumentationARM, + _allocator: *const AllocationCallbacks, + ) { + panic!("could not load vkDestroyShaderInstrumentationARM") + } + fallback + } + }, destroy_shader_module: { let value = loader(c"vkDestroyShaderModule".as_ptr()); if let Some(value) = value { @@ -8023,6 +8455,20 @@ impl DeviceCommands { fallback } }, + get_device_fault_debug_info_khr: { + let value = loader(c"vkGetDeviceFaultDebugInfoKHR".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _device: Device, + _debug_info: *mut DeviceFaultDebugInfoKHR, + ) -> Result { + panic!("could not load vkGetDeviceFaultDebugInfoKHR") + } + fallback + } + }, get_device_fault_info_ext: { let value = loader(c"vkGetDeviceFaultInfoEXT".as_ptr()); if let Some(value) = value { @@ -8038,6 +8484,22 @@ impl DeviceCommands { fallback } }, + get_device_fault_reports_khr: { + let value = loader(c"vkGetDeviceFaultReportsKHR".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _device: Device, + _timeout: u64, + _fault_counts: *mut u32, + _fault_info: *mut DeviceFaultInfoKHR, + ) -> Result { + panic!("could not load vkGetDeviceFaultReportsKHR") + } + fallback + } + }, get_device_group_peer_memory_features: { let value = loader(c"vkGetDeviceGroupPeerMemoryFeatures".as_ptr()); if let Some(value) = value { @@ -9625,6 +10087,23 @@ impl DeviceCommands { fallback } }, + get_shader_instrumentation_values_arm: { + let value = loader(c"vkGetShaderInstrumentationValuesARM".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _device: Device, + _instrumentation: ShaderInstrumentationARM, + _metric_block_count: *mut u32, + _metric_values: *mut c_void, + _flags: ShaderInstrumentationValuesFlagsARM, + ) -> Result { + panic!("could not load vkGetShaderInstrumentationValuesARM") + } + fallback + } + }, get_shader_module_create_info_identifier_ext: { let value = loader(c"vkGetShaderModuleCreateInfoIdentifierEXT".as_ptr()); if let Some(value) = value { @@ -11092,6 +11571,8 @@ pub struct InstanceCommands { PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM, pub enumerate_physical_device_queue_family_performance_query_counters_khr: PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, + pub enumerate_physical_device_shader_instrumentation_metrics_arm: + PFN_vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM, pub enumerate_physical_devices: PFN_vkEnumeratePhysicalDevices, pub get_device_proc_addr: PFN_vkGetDeviceProcAddr, pub get_display_mode_properties2_khr: PFN_vkGetDisplayModeProperties2KHR, @@ -11830,6 +12311,22 @@ impl InstanceCommands { fallback } }, + enumerate_physical_device_shader_instrumentation_metrics_arm: { + let value = + loader(c"vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM".as_ptr()); + if let Some(value) = value { + mem::transmute(value) + } else { + unsafe extern "system" fn fallback( + _physical_device: PhysicalDevice, + _description_count: *mut u32, + _descriptions: *mut ShaderInstrumentationMetricDescriptionARM, + ) -> Result { + panic!("could not load vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM") + } + fallback + } + }, enumerate_physical_devices: { let value = loader(c"vkEnumeratePhysicalDevices".as_ptr()); if let Some(value) = value { diff --git a/vulkanalia/src/vk/extensions.rs b/vulkanalia/src/vk/extensions.rs index 0884b48..c6e8cc9 100644 --- a/vulkanalia/src/vk/extensions.rs +++ b/vulkanalia/src/vk/extensions.rs @@ -724,6 +724,143 @@ pub trait ArmPerformanceCountersByRegionExtensionInstanceCommands: InstanceV1_0 impl ArmPerformanceCountersByRegionExtensionInstanceCommands for C {} +/// The device-level commands added by [`ARM_SHADER_INSTRUMENTATION_EXTENSION`]. +pub trait ArmShaderInstrumentationExtensionDeviceCommands: DeviceV1_0 { + /// + #[inline] + unsafe fn clear_shader_instrumentation_metrics_arm( + &self, + instrumentation: ShaderInstrumentationARM, + ) { + let __result = (self.commands().clear_shader_instrumentation_metrics_arm)( + self.handle(), + instrumentation, + ); + } + + /// + #[inline] + unsafe fn cmd_begin_shader_instrumentation_arm( + &self, + command_buffer: CommandBuffer, + instrumentation: ShaderInstrumentationARM, + ) { + let __result = + (self.commands().cmd_begin_shader_instrumentation_arm)(command_buffer, instrumentation); + } + + /// + #[inline] + unsafe fn cmd_end_shader_instrumentation_arm(&self, command_buffer: CommandBuffer) { + let __result = (self.commands().cmd_end_shader_instrumentation_arm)(command_buffer); + } + + /// + #[inline] + unsafe fn create_shader_instrumentation_arm( + &self, + create_info: &ShaderInstrumentationCreateInfoARM, + allocator: Option<&AllocationCallbacks>, + ) -> crate::VkResult { + let mut instrumentation = MaybeUninit::::uninit(); + + let __result = (self.commands().create_shader_instrumentation_arm)( + self.handle(), + create_info, + allocator.map_or(ptr::null(), |v| v), + instrumentation.as_mut_ptr(), + ); + + if __result == Result::SUCCESS { + Ok(instrumentation.assume_init()) + } else { + Err(__result.into()) + } + } + + /// + #[inline] + unsafe fn destroy_shader_instrumentation_arm( + &self, + instrumentation: ShaderInstrumentationARM, + allocator: Option<&AllocationCallbacks>, + ) { + let __result = (self.commands().destroy_shader_instrumentation_arm)( + self.handle(), + instrumentation, + allocator.map_or(ptr::null(), |v| v), + ); + } + + /// + #[inline] + unsafe fn get_shader_instrumentation_values_arm( + &self, + instrumentation: ShaderInstrumentationARM, + metric_values: *mut c_void, + flags: ShaderInstrumentationValuesFlagsARM, + ) -> crate::VkResult { + let mut metric_block_count = MaybeUninit::::uninit(); + + let __result = (self.commands().get_shader_instrumentation_values_arm)( + self.handle(), + instrumentation, + metric_block_count.as_mut_ptr(), + metric_values, + flags, + ); + + if __result == Result::SUCCESS { + Ok(metric_block_count.assume_init()) + } else { + Err(__result.into()) + } + } +} + +impl ArmShaderInstrumentationExtensionDeviceCommands for C {} + +/// The instance-level commands added by [`ARM_SHADER_INSTRUMENTATION_EXTENSION`]. +pub trait ArmShaderInstrumentationExtensionInstanceCommands: InstanceV1_0 { + /// + #[inline] + unsafe fn enumerate_physical_device_shader_instrumentation_metrics_arm( + &self, + physical_device: PhysicalDevice, + ) -> crate::VkResult> { + let mut description_count = 0; + + (self + .commands() + .enumerate_physical_device_shader_instrumentation_metrics_arm)( + physical_device, + &mut description_count, + ptr::null_mut(), + ); + + let mut descriptions = Vec::with_capacity(description_count as usize); + + let __result = (self + .commands() + .enumerate_physical_device_shader_instrumentation_metrics_arm)( + physical_device, + &mut description_count, + descriptions.as_mut_ptr(), + ); + + debug_assert!(descriptions.capacity() >= description_count as usize); + descriptions.set_len(description_count as usize); + + if __result == Result::SUCCESS { + Ok(descriptions) + } else { + Err(__result.into()) + } + } +} + +impl ArmShaderInstrumentationExtensionInstanceCommands for C {} + /// The device-level commands added by [`ARM_TENSORS_EXTENSION`]. pub trait ArmTensorsExtensionDeviceCommands: DeviceV1_0 { /// @@ -6541,6 +6678,370 @@ pub trait KhrDescriptorUpdateTemplateExtensionDeviceCommands: DeviceV1_0 { impl KhrDescriptorUpdateTemplateExtensionDeviceCommands for C {} +/// The device-level commands added by [`KHR_DEVICE_ADDRESS_COMMANDS_EXTENSION`]. +pub trait KhrDeviceAddressCommandsExtensionDeviceCommands: DeviceV1_0 { + /// + #[inline] + unsafe fn cmd_begin_conditional_rendering2_ext( + &self, + command_buffer: CommandBuffer, + conditional_rendering_begin: &ConditionalRenderingBeginInfo2EXT, + ) { + let __result = (self.commands().cmd_begin_conditional_rendering2_ext)( + command_buffer, + conditional_rendering_begin, + ); + } + + /// + #[inline] + unsafe fn cmd_begin_transform_feedback2_ext( + &self, + command_buffer: CommandBuffer, + first_counter_range: u32, + counter_infos: &[impl Cast], + ) { + let __result = (self.commands().cmd_begin_transform_feedback2_ext)( + command_buffer, + first_counter_range, + counter_infos.len() as u32, + counter_infos.as_ptr().cast(), + ); + } + + /// + #[inline] + unsafe fn cmd_bind_index_buffer3_khr( + &self, + command_buffer: CommandBuffer, + info: &BindIndexBuffer3InfoKHR, + ) { + let __result = (self.commands().cmd_bind_index_buffer3_khr)(command_buffer, info); + } + + /// + #[inline] + unsafe fn cmd_bind_transform_feedback_buffers2_ext( + &self, + command_buffer: CommandBuffer, + first_binding: u32, + binding_infos: &[impl Cast], + ) { + let __result = (self.commands().cmd_bind_transform_feedback_buffers2_ext)( + command_buffer, + first_binding, + binding_infos.len() as u32, + binding_infos.as_ptr().cast(), + ); + } + + /// + #[inline] + unsafe fn cmd_bind_vertex_buffers3_khr( + &self, + command_buffer: CommandBuffer, + first_binding: u32, + binding_infos: &[impl Cast], + ) { + let __result = (self.commands().cmd_bind_vertex_buffers3_khr)( + command_buffer, + first_binding, + binding_infos.len() as u32, + binding_infos.as_ptr().cast(), + ); + } + + /// + #[inline] + unsafe fn cmd_copy_image_to_memory_khr( + &self, + command_buffer: CommandBuffer, + copy_memory_info: Option<&CopyDeviceMemoryImageInfoKHR>, + ) { + let __result = (self.commands().cmd_copy_image_to_memory_khr)( + command_buffer, + copy_memory_info.map_or(ptr::null(), |v| v), + ); + } + + /// + #[inline] + unsafe fn cmd_copy_memory_khr( + &self, + command_buffer: CommandBuffer, + copy_memory_info: Option<&CopyDeviceMemoryInfoKHR>, + ) { + let __result = (self.commands().cmd_copy_memory_khr)( + command_buffer, + copy_memory_info.map_or(ptr::null(), |v| v), + ); + } + + /// + #[inline] + unsafe fn cmd_copy_memory_to_image_khr( + &self, + command_buffer: CommandBuffer, + copy_memory_info: Option<&CopyDeviceMemoryImageInfoKHR>, + ) { + let __result = (self.commands().cmd_copy_memory_to_image_khr)( + command_buffer, + copy_memory_info.map_or(ptr::null(), |v| v), + ); + } + + /// + #[inline] + unsafe fn cmd_copy_query_pool_results_to_memory_khr( + &self, + command_buffer: CommandBuffer, + query_pool: QueryPool, + first_query: u32, + query_count: u32, + dst_range: &StridedDeviceAddressRangeKHR, + dst_flags: AddressCommandFlagsKHR, + query_result_flags: QueryResultFlags, + ) { + let __result = (self.commands().cmd_copy_query_pool_results_to_memory_khr)( + command_buffer, + query_pool, + first_query, + query_count, + dst_range, + dst_flags, + query_result_flags, + ); + } + + /// + #[inline] + unsafe fn cmd_dispatch_indirect2_khr( + &self, + command_buffer: CommandBuffer, + info: &DispatchIndirect2InfoKHR, + ) { + let __result = (self.commands().cmd_dispatch_indirect2_khr)(command_buffer, info); + } + + /// + #[inline] + unsafe fn cmd_draw_indexed_indirect2_khr( + &self, + command_buffer: CommandBuffer, + info: &DrawIndirect2InfoKHR, + ) { + let __result = (self.commands().cmd_draw_indexed_indirect2_khr)(command_buffer, info); + } + + /// + #[inline] + unsafe fn cmd_draw_indexed_indirect_count2_khr( + &self, + command_buffer: CommandBuffer, + info: &DrawIndirectCount2InfoKHR, + ) { + let __result = (self.commands().cmd_draw_indexed_indirect_count2_khr)(command_buffer, info); + } + + /// + #[inline] + unsafe fn cmd_draw_indirect2_khr( + &self, + command_buffer: CommandBuffer, + info: &DrawIndirect2InfoKHR, + ) { + let __result = (self.commands().cmd_draw_indirect2_khr)(command_buffer, info); + } + + /// + #[inline] + unsafe fn cmd_draw_indirect_byte_count2_ext( + &self, + command_buffer: CommandBuffer, + instance_count: u32, + first_instance: u32, + counter_info: &BindTransformFeedbackBuffer2InfoEXT, + counter_offset: u32, + vertex_stride: u32, + ) { + let __result = (self.commands().cmd_draw_indirect_byte_count2_ext)( + command_buffer, + instance_count, + first_instance, + counter_info, + counter_offset, + vertex_stride, + ); + } + + /// + #[inline] + unsafe fn cmd_draw_indirect_count2_khr( + &self, + command_buffer: CommandBuffer, + info: &DrawIndirectCount2InfoKHR, + ) { + let __result = (self.commands().cmd_draw_indirect_count2_khr)(command_buffer, info); + } + + /// + #[inline] + unsafe fn cmd_draw_mesh_tasks_indirect2_ext( + &self, + command_buffer: CommandBuffer, + info: &DrawIndirect2InfoKHR, + ) { + let __result = (self.commands().cmd_draw_mesh_tasks_indirect2_ext)(command_buffer, info); + } + + /// + #[inline] + unsafe fn cmd_draw_mesh_tasks_indirect_count2_ext( + &self, + command_buffer: CommandBuffer, + info: &DrawIndirectCount2InfoKHR, + ) { + let __result = + (self.commands().cmd_draw_mesh_tasks_indirect_count2_ext)(command_buffer, info); + } + + /// + #[inline] + unsafe fn cmd_end_transform_feedback2_ext( + &self, + command_buffer: CommandBuffer, + first_counter_range: u32, + counter_infos: &[impl Cast], + ) { + let __result = (self.commands().cmd_end_transform_feedback2_ext)( + command_buffer, + first_counter_range, + counter_infos.len() as u32, + counter_infos.as_ptr().cast(), + ); + } + + /// + #[inline] + unsafe fn cmd_fill_memory_khr( + &self, + command_buffer: CommandBuffer, + dst_range: &DeviceAddressRangeKHR, + dst_flags: AddressCommandFlagsKHR, + data: u32, + ) { + let __result = + (self.commands().cmd_fill_memory_khr)(command_buffer, dst_range, dst_flags, data); + } + + /// + #[inline] + unsafe fn cmd_update_memory_khr( + &self, + command_buffer: CommandBuffer, + dst_range: &DeviceAddressRangeKHR, + dst_flags: AddressCommandFlagsKHR, + data: &[u8], + ) { + let __result = (self.commands().cmd_update_memory_khr)( + command_buffer, + dst_range, + dst_flags, + data.len() as DeviceSize, + data.as_ptr() as *const c_void, + ); + } + + /// + #[inline] + unsafe fn cmd_write_marker_to_memory_amd( + &self, + command_buffer: CommandBuffer, + info: &MemoryMarkerInfoAMD, + ) { + let __result = (self.commands().cmd_write_marker_to_memory_amd)(command_buffer, info); + } + + /// + #[inline] + unsafe fn create_acceleration_structure2_khr( + &self, + create_info: &AccelerationStructureCreateInfo2KHR, + allocator: Option<&AllocationCallbacks>, + ) -> crate::VkResult { + let mut acceleration_structure = MaybeUninit::::uninit(); + + let __result = (self.commands().create_acceleration_structure2_khr)( + self.handle(), + create_info, + allocator.map_or(ptr::null(), |v| v), + acceleration_structure.as_mut_ptr(), + ); + + if __result == Result::SUCCESS { + Ok(acceleration_structure.assume_init()) + } else { + Err(__result.into()) + } + } +} + +impl KhrDeviceAddressCommandsExtensionDeviceCommands for C {} + +/// The device-level commands added by [`KHR_DEVICE_FAULT_EXTENSION`]. +pub trait KhrDeviceFaultExtensionDeviceCommands: DeviceV1_0 { + /// + #[inline] + unsafe fn get_device_fault_debug_info_khr( + &self, + debug_info: &mut DeviceFaultDebugInfoKHR, + ) -> crate::VkResult<()> { + let __result = (self.commands().get_device_fault_debug_info_khr)(self.handle(), debug_info); + + if __result == Result::SUCCESS { + Ok(()) + } else { + Err(__result.into()) + } + } + + /// + #[inline] + unsafe fn get_device_fault_reports_khr( + &self, + timeout: u64, + ) -> crate::VkSuccessResult> { + let mut fault_counts = 0; + + (self.commands().get_device_fault_reports_khr)( + self.handle(), + timeout, + &mut fault_counts, + ptr::null_mut(), + ); + + let mut fault_info = Vec::with_capacity(fault_counts as usize); + + let __result = (self.commands().get_device_fault_reports_khr)( + self.handle(), + timeout, + &mut fault_counts, + fault_info.as_mut_ptr(), + ); + + debug_assert!(fault_info.capacity() >= fault_counts as usize); + fault_info.set_len(fault_counts as usize); + + if __result >= Result::SUCCESS { + Ok((fault_info, __result.into())) + } else { + Err(__result.into()) + } + } +} + +impl KhrDeviceFaultExtensionDeviceCommands for C {} + /// The device-level commands added by [`KHR_DEVICE_GROUP_EXTENSION`]. pub trait KhrDeviceGroupExtensionDeviceCommands: DeviceV1_0 { ///