diff --git a/Changelog.md b/Changelog.md index 2ea908ebb..ec2b7f727 100644 --- a/Changelog.md +++ b/Changelog.md @@ -9,7 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- Update Vulkan-Headers to 1.3.297 (#910, #951) +- Update Vulkan-Headers to 1.3.298 (#910, #951) - Added `VK_KHR_get_display_properties2` instance extension (#932) - Added `VK_EXT_metal_objects` device extension (#942) diff --git a/ash/Cargo.toml b/ash/Cargo.toml index 2f1d3bf4e..0c3ad09b2 100644 --- a/ash/Cargo.toml +++ b/ash/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ash" -version = "0.38.0+1.3.297" +version = "0.38.0+1.3.298" authors = [ "Maik Klein ", "Benjamin Saunders ", diff --git a/ash/src/extensions/amdx/shader_enqueue.rs b/ash/src/extensions/amdx/shader_enqueue.rs index d0f31ea34..84e31158b 100644 --- a/ash/src/extensions/amdx/shader_enqueue.rs +++ b/ash/src/extensions/amdx/shader_enqueue.rs @@ -72,9 +72,16 @@ impl crate::amdx::shader_enqueue::Device { pub unsafe fn cmd_initialize_graph_scratch_memory( &self, command_buffer: vk::CommandBuffer, + execution_graph: vk::Pipeline, scratch: vk::DeviceAddress, + scratch_size: vk::DeviceSize, ) { - (self.fp.cmd_initialize_graph_scratch_memory_amdx)(command_buffer, scratch) + (self.fp.cmd_initialize_graph_scratch_memory_amdx)( + command_buffer, + execution_graph, + scratch, + scratch_size, + ) } /// @@ -83,9 +90,10 @@ impl crate::amdx::shader_enqueue::Device { &self, command_buffer: vk::CommandBuffer, scratch: vk::DeviceAddress, + scratch_size: vk::DeviceSize, count_info: &vk::DispatchGraphCountInfoAMDX, ) { - (self.fp.cmd_dispatch_graph_amdx)(command_buffer, scratch, count_info) + (self.fp.cmd_dispatch_graph_amdx)(command_buffer, scratch, scratch_size, count_info) } /// @@ -94,9 +102,15 @@ impl crate::amdx::shader_enqueue::Device { &self, command_buffer: vk::CommandBuffer, scratch: vk::DeviceAddress, + scratch_size: vk::DeviceSize, count_info: &vk::DispatchGraphCountInfoAMDX, ) { - (self.fp.cmd_dispatch_graph_indirect_amdx)(command_buffer, scratch, count_info) + (self.fp.cmd_dispatch_graph_indirect_amdx)( + command_buffer, + scratch, + scratch_size, + count_info, + ) } /// @@ -105,8 +119,14 @@ impl crate::amdx::shader_enqueue::Device { &self, command_buffer: vk::CommandBuffer, scratch: vk::DeviceAddress, + scratch_size: vk::DeviceSize, count_info: vk::DeviceAddress, ) { - (self.fp.cmd_dispatch_graph_indirect_count_amdx)(command_buffer, scratch, count_info) + (self.fp.cmd_dispatch_graph_indirect_count_amdx)( + command_buffer, + scratch, + scratch_size, + count_info, + ) } } diff --git a/ash/src/extensions_generated.rs b/ash/src/extensions_generated.rs index 24e70e099..69a27809b 100644 --- a/ash/src/extensions_generated.rs +++ b/ash/src/extensions_generated.rs @@ -631,7 +631,9 @@ pub mod amdx { cmd_initialize_graph_scratch_memory_amdx: unsafe { unsafe extern "system" fn cmd_initialize_graph_scratch_memory_amdx( _command_buffer: CommandBuffer, + _execution_graph: Pipeline, _scratch: DeviceAddress, + _scratch_size: DeviceSize, ) { panic!(concat!( "Unable to load ", @@ -652,6 +654,7 @@ pub mod amdx { unsafe extern "system" fn cmd_dispatch_graph_amdx( _command_buffer: CommandBuffer, _scratch: DeviceAddress, + _scratch_size: DeviceSize, _p_count_info: *const DispatchGraphCountInfoAMDX, ) { panic!(concat!( @@ -672,6 +675,7 @@ pub mod amdx { unsafe extern "system" fn cmd_dispatch_graph_indirect_amdx( _command_buffer: CommandBuffer, _scratch: DeviceAddress, + _scratch_size: DeviceSize, _p_count_info: *const DispatchGraphCountInfoAMDX, ) { panic!(concat!( @@ -693,6 +697,7 @@ pub mod amdx { unsafe extern "system" fn cmd_dispatch_graph_indirect_count_amdx( _command_buffer: CommandBuffer, _scratch: DeviceAddress, + _scratch_size: DeviceSize, _count_info: DeviceAddress, ) { panic!(concat!( diff --git a/ash/src/vk/const_debugs.rs b/ash/src/vk/const_debugs.rs index fd43953c9..d33004f59 100644 --- a/ash/src/vk/const_debugs.rs +++ b/ash/src/vk/const_debugs.rs @@ -3849,6 +3849,10 @@ impl fmt::Debug for PipelineCreateFlags2KHR { "ALLOW_DERIVATIVES", ), (PipelineCreateFlags2KHR::DERIVATIVE.0, "DERIVATIVE"), + ( + PipelineCreateFlags2KHR::EXECUTION_GRAPH_AMDX.0, + "EXECUTION_GRAPH_AMDX", + ), ( PipelineCreateFlags2KHR::ENABLE_LEGACY_DITHERING_EXT.0, "ENABLE_LEGACY_DITHERING_EXT", diff --git a/ash/src/vk/definitions.rs b/ash/src/vk/definitions.rs index 08e7145cb..0a99bdb9a 100644 --- a/ash/src/vk/definitions.rs +++ b/ash/src/vk/definitions.rs @@ -58,7 +58,7 @@ pub const API_VERSION_1_2: u32 = make_api_version(0, 1, 2, 0); #[doc = ""] pub const API_VERSION_1_3: u32 = make_api_version(0, 1, 3, 0); #[doc = ""] -pub const HEADER_VERSION: u32 = 297; +pub const HEADER_VERSION: u32 = 298; #[doc = ""] pub const HEADER_VERSION_COMPLETE: u32 = make_api_version(0, 1, 3, HEADER_VERSION); #[doc = ""] @@ -38722,7 +38722,7 @@ impl<'a> GeneratedCommandsShaderInfoEXT<'a> { #[must_use] pub struct GeneratedCommandsMemoryRequirementsInfoEXT<'a> { pub s_type: StructureType, - pub p_next: *mut c_void, + pub p_next: *const c_void, pub indirect_execution_set: IndirectExecutionSetEXT, pub indirect_commands_layout: IndirectCommandsLayoutEXT, pub max_sequence_count: u32, @@ -38736,7 +38736,7 @@ impl ::core::default::Default for GeneratedCommandsMemoryRequirementsInfoEXT<'_> fn default() -> Self { Self { s_type: Self::STRUCTURE_TYPE, - p_next: ::core::ptr::null_mut(), + p_next: ::core::ptr::null(), indirect_execution_set: IndirectExecutionSetEXT::default(), indirect_commands_layout: IndirectCommandsLayoutEXT::default(), max_sequence_count: u32::default(), @@ -38787,7 +38787,7 @@ impl<'a> GeneratedCommandsMemoryRequirementsInfoEXT<'a> { next: &'a mut T, ) -> Self { unsafe { - let next_ptr = <*mut T>::cast(next); + let next_ptr = <*const T>::cast(next); let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = next_ptr; @@ -56705,6 +56705,8 @@ pub struct PhysicalDeviceShaderEnqueuePropertiesAMDX<'a> { pub max_execution_graph_shader_payload_size: u32, pub max_execution_graph_shader_payload_count: u32, pub execution_graph_dispatch_address_alignment: u32, + pub max_execution_graph_workgroup_count: [u32; 3], + pub max_execution_graph_workgroups: u32, pub _marker: PhantomData<&'a ()>, } unsafe impl Send for PhysicalDeviceShaderEnqueuePropertiesAMDX<'_> {} @@ -56720,6 +56722,8 @@ impl ::core::default::Default for PhysicalDeviceShaderEnqueuePropertiesAMDX<'_> max_execution_graph_shader_payload_size: u32::default(), max_execution_graph_shader_payload_count: u32::default(), execution_graph_dispatch_address_alignment: u32::default(), + max_execution_graph_workgroup_count: unsafe { ::core::mem::zeroed() }, + max_execution_graph_workgroups: u32::default(), _marker: PhantomData, } } @@ -56768,6 +56772,19 @@ impl<'a> PhysicalDeviceShaderEnqueuePropertiesAMDX<'a> { execution_graph_dispatch_address_alignment; self } + #[inline] + pub fn max_execution_graph_workgroup_count( + mut self, + max_execution_graph_workgroup_count: [u32; 3], + ) -> Self { + self.max_execution_graph_workgroup_count = max_execution_graph_workgroup_count; + self + } + #[inline] + pub fn max_execution_graph_workgroups(mut self, max_execution_graph_workgroups: u32) -> Self { + self.max_execution_graph_workgroups = max_execution_graph_workgroups; + self + } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -56778,6 +56795,7 @@ pub struct PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> { pub s_type: StructureType, pub p_next: *mut c_void, pub shader_enqueue: Bool32, + pub shader_mesh_enqueue: Bool32, pub _marker: PhantomData<&'a ()>, } unsafe impl Send for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> {} @@ -56789,6 +56807,7 @@ impl ::core::default::Default for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), shader_enqueue: Bool32::default(), + shader_mesh_enqueue: Bool32::default(), _marker: PhantomData, } } @@ -56805,6 +56824,11 @@ impl<'a> PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> { self.shader_enqueue = shader_enqueue.into(); self } + #[inline] + pub fn shader_mesh_enqueue(mut self, shader_mesh_enqueue: bool) -> Self { + self.shader_mesh_enqueue = shader_mesh_enqueue.into(); + self + } } #[repr(C)] #[cfg_attr(feature = "debug", derive(Debug))] @@ -56955,7 +56979,9 @@ impl<'a> PipelineShaderStageNodeCreateInfoAMDX<'a> { pub struct ExecutionGraphPipelineScratchSizeAMDX<'a> { pub s_type: StructureType, pub p_next: *mut c_void, - pub size: DeviceSize, + pub min_size: DeviceSize, + pub max_size: DeviceSize, + pub size_granularity: DeviceSize, pub _marker: PhantomData<&'a ()>, } unsafe impl Send for ExecutionGraphPipelineScratchSizeAMDX<'_> {} @@ -56966,7 +56992,9 @@ impl ::core::default::Default for ExecutionGraphPipelineScratchSizeAMDX<'_> { Self { s_type: Self::STRUCTURE_TYPE, p_next: ::core::ptr::null_mut(), - size: DeviceSize::default(), + min_size: DeviceSize::default(), + max_size: DeviceSize::default(), + size_granularity: DeviceSize::default(), _marker: PhantomData, } } @@ -56976,8 +57004,18 @@ unsafe impl<'a> TaggedStructure for ExecutionGraphPipelineScratchSizeAMDX<'a> { } impl<'a> ExecutionGraphPipelineScratchSizeAMDX<'a> { #[inline] - pub fn size(mut self, size: DeviceSize) -> Self { - self.size = size; + pub fn min_size(mut self, min_size: DeviceSize) -> Self { + self.min_size = min_size; + self + } + #[inline] + pub fn max_size(mut self, max_size: DeviceSize) -> Self { + self.max_size = max_size; + self + } + #[inline] + pub fn size_granularity(mut self, size_granularity: DeviceSize) -> Self { + self.size_granularity = size_granularity; self } } diff --git a/ash/src/vk/extensions.rs b/ash/src/vk/extensions.rs index 2ccfccb4e..bd9a7d6d1 100644 --- a/ash/src/vk/extensions.rs +++ b/ash/src/vk/extensions.rs @@ -984,6 +984,10 @@ impl PipelineBindPoint { pub const EXECUTION_GRAPH_AMDX: Self = Self(1_000_134_000); } #[doc = "Generated from 'VK_AMDX_shader_enqueue'"] +impl PipelineCreateFlags2KHR { + pub const EXECUTION_GRAPH_AMDX: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000); +} +#[doc = "Generated from 'VK_AMDX_shader_enqueue'"] impl StructureType { pub const PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX: Self = Self(1_000_134_000); pub const PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX: Self = Self(1_000_134_001); @@ -5440,7 +5444,7 @@ pub const AMD_GPU_SHADER_INT16_NAME: &CStr = pub const AMD_GPU_SHADER_INT16_SPEC_VERSION: u32 = 2u32; pub const AMDX_SHADER_ENQUEUE_NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMDX_shader_enqueue\0") }; -pub const AMDX_SHADER_ENQUEUE_SPEC_VERSION: u32 = 1u32; +pub const AMDX_SHADER_ENQUEUE_SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateExecutionGraphPipelinesAMDX = unsafe extern "system" fn( device: crate::vk::Device, @@ -5464,24 +5468,31 @@ pub type PFN_vkGetExecutionGraphPipelineNodeIndexAMDX = unsafe extern "system" f p_node_index: *mut u32, ) -> Result; #[allow(non_camel_case_types)] -pub type PFN_vkCmdInitializeGraphScratchMemoryAMDX = - unsafe extern "system" fn(command_buffer: CommandBuffer, scratch: DeviceAddress); +pub type PFN_vkCmdInitializeGraphScratchMemoryAMDX = unsafe extern "system" fn( + command_buffer: CommandBuffer, + execution_graph: Pipeline, + scratch: DeviceAddress, + scratch_size: DeviceSize, +); #[allow(non_camel_case_types)] pub type PFN_vkCmdDispatchGraphAMDX = unsafe extern "system" fn( command_buffer: CommandBuffer, scratch: DeviceAddress, + scratch_size: DeviceSize, p_count_info: *const DispatchGraphCountInfoAMDX, ); #[allow(non_camel_case_types)] pub type PFN_vkCmdDispatchGraphIndirectAMDX = unsafe extern "system" fn( command_buffer: CommandBuffer, scratch: DeviceAddress, + scratch_size: DeviceSize, p_count_info: *const DispatchGraphCountInfoAMDX, ); #[allow(non_camel_case_types)] pub type PFN_vkCmdDispatchGraphIndirectCountAMDX = unsafe extern "system" fn( command_buffer: CommandBuffer, scratch: DeviceAddress, + scratch_size: DeviceSize, count_info: DeviceAddress, ); pub const AMD_MIXED_ATTACHMENT_SAMPLES_NAME: &CStr = diff --git a/generator/Vulkan-Headers b/generator/Vulkan-Headers index 14345dab2..d91597a82 160000 --- a/generator/Vulkan-Headers +++ b/generator/Vulkan-Headers @@ -1 +1 @@ -Subproject commit 14345dab231912ee9601136e96ca67a6e1f632e7 +Subproject commit d91597a82f881d473887b560a03a7edf2720b72c