Update Vulkan-Headers to 1.3.246 (#723)

* Update Vulkan-Headers to 1.3.245

* Upgrade `bindgen` to `0.64`

* Update Vulkan-Headers to 1.3.246
This commit is contained in:
Marijn Suijten 2023-04-03 10:18:26 +02:00
parent 21f4f66095
commit ca68ebd61b
No known key found for this signature in database
GPG key ID: 449FC1DE031665DA
11 changed files with 2251 additions and 48 deletions

View file

@ -8,7 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added ### Added
- Update Vulkan-Headers to 1.3.244 (#697) - Update Vulkan-Headers to 1.3.246 (#697, #723)
- Added `VK_KHR_performance_query` device extension (#726) - Added `VK_KHR_performance_query` device extension (#726)
## [0.37.2] - 2022-01-11 ## [0.37.2] - 2022-01-11

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ash" name = "ash"
version = "0.37.2+1.3.244" version = "0.37.2+1.3.246"
authors = [ authors = [
"Maik Klein <maikklein@googlemail.com>", "Maik Klein <maikklein@googlemail.com>",
"Benjamin Saunders <ben.e.saunders@gmail.com>", "Benjamin Saunders <ben.e.saunders@gmail.com>",

View file

@ -200,6 +200,8 @@ pub type PhysicalDeviceSubgroupSizeControlPropertiesEXT =
PhysicalDeviceSubgroupSizeControlProperties; PhysicalDeviceSubgroupSizeControlProperties;
pub type PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = pub type PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT =
PipelineShaderStageRequiredSubgroupSizeCreateInfo; PipelineShaderStageRequiredSubgroupSizeCreateInfo;
pub type ShaderRequiredSubgroupSizeCreateInfoEXT =
PipelineShaderStageRequiredSubgroupSizeCreateInfo;
pub type MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo; pub type MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
pub type DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo; pub type DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
pub type PhysicalDevicePipelineCreationCacheControlFeaturesEXT = pub type PhysicalDevicePipelineCreationCacheControlFeaturesEXT =

View file

@ -1613,3 +1613,17 @@ vk_bitflags_wrapped!(MicromapCreateFlagsEXT, Flags);
impl MicromapCreateFlagsEXT { impl MicromapCreateFlagsEXT {
pub const DEVICE_ADDRESS_CAPTURE_REPLAY: Self = Self(0b1); pub const DEVICE_ADDRESS_CAPTURE_REPLAY: Self = Self(0b1);
} }
#[repr(transparent)]
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkShaderCreateFlagBitsEXT.html>"]
pub struct ShaderCreateFlagsEXT(pub(crate) Flags);
vk_bitflags_wrapped!(ShaderCreateFlagsEXT, Flags);
impl ShaderCreateFlagsEXT {
pub const LINK_STAGE: Self = Self(0b1);
pub const ALLOW_VARYING_SUBGROUP_SIZE: Self = Self(0b10);
pub const REQUIRE_FULL_SUBGROUPS: Self = Self(0b100);
pub const NO_TASK_SHADER: Self = Self(0b1000);
pub const DISPATCH_BASE: Self = Self(0b1_0000);
pub const FRAGMENT_SHADING_RATE_ATTACHMENT: Self = Self(0b10_0000);
pub const FRAGMENT_DENSITY_MAP_ATTACHMENT: Self = Self(0b100_0000);
}

View file

@ -318,11 +318,15 @@ impl fmt::Debug for AccessFlags2 {
), ),
(AccessFlags2::MICROMAP_READ_EXT.0, "MICROMAP_READ_EXT"), (AccessFlags2::MICROMAP_READ_EXT.0, "MICROMAP_READ_EXT"),
(AccessFlags2::MICROMAP_WRITE_EXT.0, "MICROMAP_WRITE_EXT"), (AccessFlags2::MICROMAP_WRITE_EXT.0, "MICROMAP_WRITE_EXT"),
(AccessFlags2::RESERVED_49_ARM.0, "RESERVED_49_ARM"),
(AccessFlags2::RESERVED_50_ARM.0, "RESERVED_50_ARM"),
(AccessFlags2::OPTICAL_FLOW_READ_NV.0, "OPTICAL_FLOW_READ_NV"), (AccessFlags2::OPTICAL_FLOW_READ_NV.0, "OPTICAL_FLOW_READ_NV"),
( (
AccessFlags2::OPTICAL_FLOW_WRITE_NV.0, AccessFlags2::OPTICAL_FLOW_WRITE_NV.0,
"OPTICAL_FLOW_WRITE_NV", "OPTICAL_FLOW_WRITE_NV",
), ),
(AccessFlags2::RESERVED_47_EXT.0, "RESERVED_47_EXT"),
(AccessFlags2::RESERVED_48_EXT.0, "RESERVED_48_EXT"),
]; ];
debug_flags(f, KNOWN, self.0) debug_flags(f, KNOWN, self.0)
} }
@ -655,12 +659,8 @@ impl fmt::Debug for BuildAccelerationStructureFlagsKHR {
"ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT", "ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT",
), ),
( (
BuildAccelerationStructureFlagsKHR::RESERVED_9_NV.0, BuildAccelerationStructureFlagsKHR::ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV.0,
"RESERVED_9_NV", "ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV",
),
(
BuildAccelerationStructureFlagsKHR::RESERVED_10_NV.0,
"RESERVED_10_NV",
), ),
]; ];
debug_flags(f, KNOWN, self.0) debug_flags(f, KNOWN, self.0)
@ -1448,6 +1448,21 @@ impl fmt::Debug for DiscardRectangleModeEXT {
} }
} }
} }
impl fmt::Debug for DisplacementMicromapFormatNV {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let name = match *self {
Self::TYPE_64_TRIANGLES_64_BYTES => Some("TYPE_64_TRIANGLES_64_BYTES"),
Self::TYPE_256_TRIANGLES_128_BYTES => Some("TYPE_256_TRIANGLES_128_BYTES"),
Self::TYPE_1024_TRIANGLES_128_BYTES => Some("TYPE_1024_TRIANGLES_128_BYTES"),
_ => None,
};
if let Some(x) = name {
f.write_str(x)
} else {
self.0.fmt(f)
}
}
}
impl fmt::Debug for DisplayEventTypeEXT { impl fmt::Debug for DisplayEventTypeEXT {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let name = match *self { let name = match *self {
@ -2713,6 +2728,7 @@ impl fmt::Debug for ImageUsageFlags {
ImageUsageFlags::SAMPLE_BLOCK_MATCH_QCOM.0, ImageUsageFlags::SAMPLE_BLOCK_MATCH_QCOM.0,
"SAMPLE_BLOCK_MATCH_QCOM", "SAMPLE_BLOCK_MATCH_QCOM",
), ),
(ImageUsageFlags::RESERVED_23_EXT.0, "RESERVED_23_EXT"),
]; ];
debug_flags(f, KNOWN, self.0) debug_flags(f, KNOWN, self.0)
} }
@ -2989,6 +3005,7 @@ impl fmt::Debug for MicromapTypeEXT {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let name = match *self { let name = match *self {
Self::OPACITY_MICROMAP => Some("OPACITY_MICROMAP"), Self::OPACITY_MICROMAP => Some("OPACITY_MICROMAP"),
Self::DISPLACEMENT_MICROMAP_NV => Some("DISPLACEMENT_MICROMAP_NV"),
_ => None, _ => None,
}; };
if let Some(x) = name { if let Some(x) = name {
@ -3446,7 +3463,10 @@ impl fmt::Debug for PipelineCreateFlags {
PipelineCreateFlags::RAY_TRACING_OPACITY_MICROMAP_EXT.0, PipelineCreateFlags::RAY_TRACING_OPACITY_MICROMAP_EXT.0,
"RAY_TRACING_OPACITY_MICROMAP_EXT", "RAY_TRACING_OPACITY_MICROMAP_EXT",
), ),
(PipelineCreateFlags::RESERVED_28_NV.0, "RESERVED_28_NV"), (
PipelineCreateFlags::RAY_TRACING_DISPLACEMENT_MICROMAP_NV.0,
"RAY_TRACING_DISPLACEMENT_MICROMAP_NV",
),
( (
PipelineCreateFlags::NO_PROTECTED_ACCESS_EXT.0, PipelineCreateFlags::NO_PROTECTED_ACCESS_EXT.0,
"NO_PROTECTED_ACCESS_EXT", "NO_PROTECTED_ACCESS_EXT",
@ -3795,7 +3815,9 @@ impl fmt::Debug for PipelineStageFlags2 {
PipelineStageFlags2::CLUSTER_CULLING_SHADER_HUAWEI.0, PipelineStageFlags2::CLUSTER_CULLING_SHADER_HUAWEI.0,
"CLUSTER_CULLING_SHADER_HUAWEI", "CLUSTER_CULLING_SHADER_HUAWEI",
), ),
(PipelineStageFlags2::RESERVED_43_ARM.0, "RESERVED_43_ARM"),
(PipelineStageFlags2::OPTICAL_FLOW_NV.0, "OPTICAL_FLOW_NV"), (PipelineStageFlags2::OPTICAL_FLOW_NV.0, "OPTICAL_FLOW_NV"),
(PipelineStageFlags2::RESERVED_42_EXT.0, "RESERVED_42_EXT"),
]; ];
debug_flags(f, KNOWN, self.0) debug_flags(f, KNOWN, self.0)
} }
@ -4102,7 +4124,9 @@ impl fmt::Debug for QueueFlags {
(QueueFlags::RESERVED_9_EXT.0, "RESERVED_9_EXT"), (QueueFlags::RESERVED_9_EXT.0, "RESERVED_9_EXT"),
(QueueFlags::VIDEO_ENCODE_KHR.0, "VIDEO_ENCODE_KHR"), (QueueFlags::VIDEO_ENCODE_KHR.0, "VIDEO_ENCODE_KHR"),
(QueueFlags::RESERVED_7_QCOM.0, "RESERVED_7_QCOM"), (QueueFlags::RESERVED_7_QCOM.0, "RESERVED_7_QCOM"),
(QueueFlags::RESERVED_11_ARM.0, "RESERVED_11_ARM"),
(QueueFlags::OPTICAL_FLOW_NV.0, "OPTICAL_FLOW_NV"), (QueueFlags::OPTICAL_FLOW_NV.0, "OPTICAL_FLOW_NV"),
(QueueFlags::RESERVED_10_EXT.0, "RESERVED_10_EXT"),
(QueueFlags::PROTECTED.0, "PROTECTED"), (QueueFlags::PROTECTED.0, "PROTECTED"),
]; ];
debug_flags(f, KNOWN, self.0) debug_flags(f, KNOWN, self.0)
@ -4374,12 +4398,52 @@ impl fmt::Debug for SemaphoreWaitFlags {
debug_flags(f, KNOWN, self.0) debug_flags(f, KNOWN, self.0)
} }
} }
impl fmt::Debug for ShaderCodeTypeEXT {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let name = match *self {
Self::BINARY => Some("BINARY"),
Self::SPIRV => Some("SPIRV"),
_ => None,
};
if let Some(x) = name {
f.write_str(x)
} else {
self.0.fmt(f)
}
}
}
impl fmt::Debug for ShaderCorePropertiesFlagsAMD { impl fmt::Debug for ShaderCorePropertiesFlagsAMD {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
const KNOWN: &[(Flags, &str)] = &[]; const KNOWN: &[(Flags, &str)] = &[];
debug_flags(f, KNOWN, self.0) debug_flags(f, KNOWN, self.0)
} }
} }
impl fmt::Debug for ShaderCreateFlagsEXT {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
const KNOWN: &[(Flags, &str)] = &[
(ShaderCreateFlagsEXT::LINK_STAGE.0, "LINK_STAGE"),
(
ShaderCreateFlagsEXT::ALLOW_VARYING_SUBGROUP_SIZE.0,
"ALLOW_VARYING_SUBGROUP_SIZE",
),
(
ShaderCreateFlagsEXT::REQUIRE_FULL_SUBGROUPS.0,
"REQUIRE_FULL_SUBGROUPS",
),
(ShaderCreateFlagsEXT::NO_TASK_SHADER.0, "NO_TASK_SHADER"),
(ShaderCreateFlagsEXT::DISPATCH_BASE.0, "DISPATCH_BASE"),
(
ShaderCreateFlagsEXT::FRAGMENT_SHADING_RATE_ATTACHMENT.0,
"FRAGMENT_SHADING_RATE_ATTACHMENT",
),
(
ShaderCreateFlagsEXT::FRAGMENT_DENSITY_MAP_ATTACHMENT.0,
"FRAGMENT_DENSITY_MAP_ATTACHMENT",
),
];
debug_flags(f, KNOWN, self.0)
}
}
impl fmt::Debug for ShaderFloatControlsIndependence { impl fmt::Debug for ShaderFloatControlsIndependence {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let name = match *self { let name = match *self {
@ -4465,9 +4529,6 @@ impl fmt::Debug for ShaderStageFlags {
ShaderStageFlags::CLUSTER_CULLING_HUAWEI.0, ShaderStageFlags::CLUSTER_CULLING_HUAWEI.0,
"CLUSTER_CULLING_HUAWEI", "CLUSTER_CULLING_HUAWEI",
), ),
(ShaderStageFlags::EXT_483_RESERVE_15.0, "EXT_483_RESERVE_15"),
(ShaderStageFlags::EXT_483_RESERVE_16.0, "EXT_483_RESERVE_16"),
(ShaderStageFlags::EXT_483_RESERVE_17.0, "EXT_483_RESERVE_17"),
]; ];
debug_flags(f, KNOWN, self.0) debug_flags(f, KNOWN, self.0)
} }
@ -5728,6 +5789,12 @@ impl fmt::Debug for StructureType {
Self::PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT => { Self::PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT => {
Some("PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT") Some("PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT")
} }
Self::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT => {
Some("PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT")
}
Self::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT => {
Some("PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT")
}
Self::MICROMAP_BUILD_INFO_EXT => Some("MICROMAP_BUILD_INFO_EXT"), Self::MICROMAP_BUILD_INFO_EXT => Some("MICROMAP_BUILD_INFO_EXT"),
Self::MICROMAP_VERSION_INFO_EXT => Some("MICROMAP_VERSION_INFO_EXT"), Self::MICROMAP_VERSION_INFO_EXT => Some("MICROMAP_VERSION_INFO_EXT"),
Self::COPY_MICROMAP_INFO_EXT => Some("COPY_MICROMAP_INFO_EXT"), Self::COPY_MICROMAP_INFO_EXT => Some("COPY_MICROMAP_INFO_EXT"),
@ -5744,6 +5811,15 @@ impl fmt::Debug for StructureType {
Self::ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT => { Self::ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT => {
Some("ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT") Some("ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT")
} }
Self::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV => {
Some("PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV")
}
Self::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV => {
Some("PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV")
}
Self::ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV => {
Some("ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV")
}
Self::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI => { Self::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI => {
Some("PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI") Some("PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI")
} }
@ -5871,6 +5947,13 @@ impl fmt::Debug for StructureType {
Self::PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT => { Self::PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT => {
Some("PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT") Some("PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT")
} }
Self::PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT => {
Some("PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT")
}
Self::PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT => {
Some("PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT")
}
Self::SHADER_CREATE_INFO_EXT => Some("SHADER_CREATE_INFO_EXT"),
Self::PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM => { Self::PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM => {
Some("PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM") Some("PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM")
} }

View file

@ -57,7 +57,7 @@ pub const API_VERSION_1_2: u32 = make_api_version(0, 1, 2, 0);
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_API_VERSION_1_3.html>"] #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_API_VERSION_1_3.html>"]
pub const API_VERSION_1_3: u32 = make_api_version(0, 1, 3, 0); pub const API_VERSION_1_3: u32 = make_api_version(0, 1, 3, 0);
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_HEADER_VERSION.html>"] #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_HEADER_VERSION.html>"]
pub const HEADER_VERSION: u32 = 244; pub const HEADER_VERSION: u32 = 246;
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_HEADER_VERSION_COMPLETE.html>"] #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_HEADER_VERSION_COMPLETE.html>"]
pub const HEADER_VERSION_COMPLETE: u32 = make_api_version(0, 1, 3, HEADER_VERSION); pub const HEADER_VERSION_COMPLETE: u32 = make_api_version(0, 1, 3, HEADER_VERSION);
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSampleMask.html>"] #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSampleMask.html>"]
@ -432,6 +432,12 @@ handle_nondispatchable ! (CuModuleNVX , CU_MODULE_NVX , doc = "<https://www.khro
handle_nondispatchable ! (CuFunctionNVX , CU_FUNCTION_NVX , doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCuFunctionNVX.html>") ; handle_nondispatchable ! (CuFunctionNVX , CU_FUNCTION_NVX , doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCuFunctionNVX.html>") ;
handle_nondispatchable ! (OpticalFlowSessionNV , OPTICAL_FLOW_SESSION_NV , doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkOpticalFlowSessionNV.html>") ; handle_nondispatchable ! (OpticalFlowSessionNV , OPTICAL_FLOW_SESSION_NV , doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkOpticalFlowSessionNV.html>") ;
handle_nondispatchable ! (MicromapEXT , MICROMAP_EXT , doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMicromapEXT.html>") ; handle_nondispatchable ! (MicromapEXT , MICROMAP_EXT , doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMicromapEXT.html>") ;
handle_nondispatchable!(
ShaderEXT,
SHADER_EXT,
doc =
"<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkShaderEXT.html>"
);
handle_nondispatchable!( handle_nondispatchable!(
DisplayKHR, DisplayKHR,
DISPLAY_KHR, DISPLAY_KHR,
@ -44512,6 +44518,11 @@ unsafe impl ExtendsPipelineShaderStageCreateInfo
for PipelineShaderStageRequiredSubgroupSizeCreateInfo for PipelineShaderStageRequiredSubgroupSizeCreateInfo
{ {
} }
unsafe impl ExtendsShaderCreateInfoEXT
for PipelineShaderStageRequiredSubgroupSizeCreateInfoBuilder<'_>
{
}
unsafe impl ExtendsShaderCreateInfoEXT for PipelineShaderStageRequiredSubgroupSizeCreateInfo {}
impl<'a> ::std::ops::Deref for PipelineShaderStageRequiredSubgroupSizeCreateInfoBuilder<'a> { impl<'a> ::std::ops::Deref for PipelineShaderStageRequiredSubgroupSizeCreateInfoBuilder<'a> {
type Target = PipelineShaderStageRequiredSubgroupSizeCreateInfo; type Target = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
fn deref(&self) -> &Self::Target { fn deref(&self) -> &Self::Target {
@ -68725,6 +68736,370 @@ impl<'a> AccelerationStructureTrianglesOpacityMicromapEXTBuilder<'a> {
#[repr(C)] #[repr(C)]
#[cfg_attr(feature = "debug", derive(Debug))] #[cfg_attr(feature = "debug", derive(Debug))]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDisplacementMicromapFeaturesNV.html>"]
pub struct PhysicalDeviceDisplacementMicromapFeaturesNV {
pub s_type: StructureType,
pub p_next: *mut c_void,
pub displacement_micromap: Bool32,
}
impl ::std::default::Default for PhysicalDeviceDisplacementMicromapFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: Self::STRUCTURE_TYPE,
p_next: ::std::ptr::null_mut(),
displacement_micromap: Bool32::default(),
}
}
}
unsafe impl TaggedStructure for PhysicalDeviceDisplacementMicromapFeaturesNV {
const STRUCTURE_TYPE: StructureType =
StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV;
}
impl PhysicalDeviceDisplacementMicromapFeaturesNV {
pub fn builder<'a>() -> PhysicalDeviceDisplacementMicromapFeaturesNVBuilder<'a> {
PhysicalDeviceDisplacementMicromapFeaturesNVBuilder {
inner: Self::default(),
marker: ::std::marker::PhantomData,
}
}
}
#[repr(transparent)]
pub struct PhysicalDeviceDisplacementMicromapFeaturesNVBuilder<'a> {
inner: PhysicalDeviceDisplacementMicromapFeaturesNV,
marker: ::std::marker::PhantomData<&'a ()>,
}
unsafe impl ExtendsPhysicalDeviceFeatures2
for PhysicalDeviceDisplacementMicromapFeaturesNVBuilder<'_>
{
}
unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDisplacementMicromapFeaturesNV {}
unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDisplacementMicromapFeaturesNVBuilder<'_> {}
unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDisplacementMicromapFeaturesNV {}
impl<'a> ::std::ops::Deref for PhysicalDeviceDisplacementMicromapFeaturesNVBuilder<'a> {
type Target = PhysicalDeviceDisplacementMicromapFeaturesNV;
fn deref(&self) -> &Self::Target {
&self.inner
}
}
impl<'a> ::std::ops::DerefMut for PhysicalDeviceDisplacementMicromapFeaturesNVBuilder<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.inner
}
}
impl<'a> PhysicalDeviceDisplacementMicromapFeaturesNVBuilder<'a> {
#[inline]
pub fn displacement_micromap(mut self, displacement_micromap: bool) -> Self {
self.inner.displacement_micromap = displacement_micromap.into();
self
}
#[doc = r" Calling build will **discard** all the lifetime information. Only call this if"]
#[doc = r" necessary! Builders implement `Deref` targeting their corresponding Vulkan struct,"]
#[doc = r" so references to builders can be passed directly to Vulkan functions."]
pub fn build(self) -> PhysicalDeviceDisplacementMicromapFeaturesNV {
self.inner
}
}
#[repr(C)]
#[cfg_attr(feature = "debug", derive(Debug))]
#[derive(Copy, Clone)]
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDisplacementMicromapPropertiesNV.html>"]
pub struct PhysicalDeviceDisplacementMicromapPropertiesNV {
pub s_type: StructureType,
pub p_next: *mut c_void,
pub max_displacement_micromap_subdivision_level: u32,
}
impl ::std::default::Default for PhysicalDeviceDisplacementMicromapPropertiesNV {
#[inline]
fn default() -> Self {
Self {
s_type: Self::STRUCTURE_TYPE,
p_next: ::std::ptr::null_mut(),
max_displacement_micromap_subdivision_level: u32::default(),
}
}
}
unsafe impl TaggedStructure for PhysicalDeviceDisplacementMicromapPropertiesNV {
const STRUCTURE_TYPE: StructureType =
StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV;
}
impl PhysicalDeviceDisplacementMicromapPropertiesNV {
pub fn builder<'a>() -> PhysicalDeviceDisplacementMicromapPropertiesNVBuilder<'a> {
PhysicalDeviceDisplacementMicromapPropertiesNVBuilder {
inner: Self::default(),
marker: ::std::marker::PhantomData,
}
}
}
#[repr(transparent)]
pub struct PhysicalDeviceDisplacementMicromapPropertiesNVBuilder<'a> {
inner: PhysicalDeviceDisplacementMicromapPropertiesNV,
marker: ::std::marker::PhantomData<&'a ()>,
}
unsafe impl ExtendsPhysicalDeviceProperties2
for PhysicalDeviceDisplacementMicromapPropertiesNVBuilder<'_>
{
}
unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceDisplacementMicromapPropertiesNV {}
impl<'a> ::std::ops::Deref for PhysicalDeviceDisplacementMicromapPropertiesNVBuilder<'a> {
type Target = PhysicalDeviceDisplacementMicromapPropertiesNV;
fn deref(&self) -> &Self::Target {
&self.inner
}
}
impl<'a> ::std::ops::DerefMut for PhysicalDeviceDisplacementMicromapPropertiesNVBuilder<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.inner
}
}
impl<'a> PhysicalDeviceDisplacementMicromapPropertiesNVBuilder<'a> {
#[inline]
pub fn max_displacement_micromap_subdivision_level(
mut self,
max_displacement_micromap_subdivision_level: u32,
) -> Self {
self.inner.max_displacement_micromap_subdivision_level =
max_displacement_micromap_subdivision_level;
self
}
#[doc = r" Calling build will **discard** all the lifetime information. Only call this if"]
#[doc = r" necessary! Builders implement `Deref` targeting their corresponding Vulkan struct,"]
#[doc = r" so references to builders can be passed directly to Vulkan functions."]
pub fn build(self) -> PhysicalDeviceDisplacementMicromapPropertiesNV {
self.inner
}
}
#[repr(C)]
#[derive(Copy, Clone)]
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureTrianglesDisplacementMicromapNV.html>"]
pub struct AccelerationStructureTrianglesDisplacementMicromapNV {
pub s_type: StructureType,
pub p_next: *mut c_void,
pub displacement_bias_and_scale_format: Format,
pub displacement_vector_format: Format,
pub displacement_bias_and_scale_buffer: DeviceOrHostAddressConstKHR,
pub displacement_bias_and_scale_stride: DeviceSize,
pub displacement_vector_buffer: DeviceOrHostAddressConstKHR,
pub displacement_vector_stride: DeviceSize,
pub displaced_micromap_primitive_flags: DeviceOrHostAddressConstKHR,
pub displaced_micromap_primitive_flags_stride: DeviceSize,
pub index_type: IndexType,
pub index_buffer: DeviceOrHostAddressConstKHR,
pub index_stride: DeviceSize,
pub base_triangle: u32,
pub usage_counts_count: u32,
pub p_usage_counts: *const MicromapUsageEXT,
pub pp_usage_counts: *const *const MicromapUsageEXT,
pub micromap: MicromapEXT,
}
#[cfg(feature = "debug")]
impl fmt::Debug for AccelerationStructureTrianglesDisplacementMicromapNV {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
fmt.debug_struct("AccelerationStructureTrianglesDisplacementMicromapNV")
.field("s_type", &self.s_type)
.field("p_next", &self.p_next)
.field(
"displacement_bias_and_scale_format",
&self.displacement_bias_and_scale_format,
)
.field(
"displacement_vector_format",
&self.displacement_vector_format,
)
.field("displacement_bias_and_scale_buffer", &"union")
.field(
"displacement_bias_and_scale_stride",
&self.displacement_bias_and_scale_stride,
)
.field("displacement_vector_buffer", &"union")
.field(
"displacement_vector_stride",
&self.displacement_vector_stride,
)
.field("displaced_micromap_primitive_flags", &"union")
.field(
"displaced_micromap_primitive_flags_stride",
&self.displaced_micromap_primitive_flags_stride,
)
.field("index_type", &self.index_type)
.field("index_buffer", &"union")
.field("index_stride", &self.index_stride)
.field("base_triangle", &self.base_triangle)
.field("usage_counts_count", &self.usage_counts_count)
.field("p_usage_counts", &self.p_usage_counts)
.field("pp_usage_counts", &self.pp_usage_counts)
.field("micromap", &self.micromap)
.finish()
}
}
impl ::std::default::Default for AccelerationStructureTrianglesDisplacementMicromapNV {
#[inline]
fn default() -> Self {
Self {
s_type: Self::STRUCTURE_TYPE,
p_next: ::std::ptr::null_mut(),
displacement_bias_and_scale_format: Format::default(),
displacement_vector_format: Format::default(),
displacement_bias_and_scale_buffer: DeviceOrHostAddressConstKHR::default(),
displacement_bias_and_scale_stride: DeviceSize::default(),
displacement_vector_buffer: DeviceOrHostAddressConstKHR::default(),
displacement_vector_stride: DeviceSize::default(),
displaced_micromap_primitive_flags: DeviceOrHostAddressConstKHR::default(),
displaced_micromap_primitive_flags_stride: DeviceSize::default(),
index_type: IndexType::default(),
index_buffer: DeviceOrHostAddressConstKHR::default(),
index_stride: DeviceSize::default(),
base_triangle: u32::default(),
usage_counts_count: u32::default(),
p_usage_counts: ::std::ptr::null(),
pp_usage_counts: ::std::ptr::null(),
micromap: MicromapEXT::default(),
}
}
}
unsafe impl TaggedStructure for AccelerationStructureTrianglesDisplacementMicromapNV {
const STRUCTURE_TYPE: StructureType =
StructureType::ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV;
}
impl AccelerationStructureTrianglesDisplacementMicromapNV {
pub fn builder<'a>() -> AccelerationStructureTrianglesDisplacementMicromapNVBuilder<'a> {
AccelerationStructureTrianglesDisplacementMicromapNVBuilder {
inner: Self::default(),
marker: ::std::marker::PhantomData,
}
}
}
#[repr(transparent)]
pub struct AccelerationStructureTrianglesDisplacementMicromapNVBuilder<'a> {
inner: AccelerationStructureTrianglesDisplacementMicromapNV,
marker: ::std::marker::PhantomData<&'a ()>,
}
unsafe impl ExtendsAccelerationStructureGeometryTrianglesDataKHR
for AccelerationStructureTrianglesDisplacementMicromapNVBuilder<'_>
{
}
unsafe impl ExtendsAccelerationStructureGeometryTrianglesDataKHR
for AccelerationStructureTrianglesDisplacementMicromapNV
{
}
impl<'a> ::std::ops::Deref for AccelerationStructureTrianglesDisplacementMicromapNVBuilder<'a> {
type Target = AccelerationStructureTrianglesDisplacementMicromapNV;
fn deref(&self) -> &Self::Target {
&self.inner
}
}
impl<'a> ::std::ops::DerefMut for AccelerationStructureTrianglesDisplacementMicromapNVBuilder<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.inner
}
}
impl<'a> AccelerationStructureTrianglesDisplacementMicromapNVBuilder<'a> {
#[inline]
pub fn displacement_bias_and_scale_format(
mut self,
displacement_bias_and_scale_format: Format,
) -> Self {
self.inner.displacement_bias_and_scale_format = displacement_bias_and_scale_format;
self
}
#[inline]
pub fn displacement_vector_format(mut self, displacement_vector_format: Format) -> Self {
self.inner.displacement_vector_format = displacement_vector_format;
self
}
#[inline]
pub fn displacement_bias_and_scale_buffer(
mut self,
displacement_bias_and_scale_buffer: DeviceOrHostAddressConstKHR,
) -> Self {
self.inner.displacement_bias_and_scale_buffer = displacement_bias_and_scale_buffer;
self
}
#[inline]
pub fn displacement_bias_and_scale_stride(
mut self,
displacement_bias_and_scale_stride: DeviceSize,
) -> Self {
self.inner.displacement_bias_and_scale_stride = displacement_bias_and_scale_stride;
self
}
#[inline]
pub fn displacement_vector_buffer(
mut self,
displacement_vector_buffer: DeviceOrHostAddressConstKHR,
) -> Self {
self.inner.displacement_vector_buffer = displacement_vector_buffer;
self
}
#[inline]
pub fn displacement_vector_stride(mut self, displacement_vector_stride: DeviceSize) -> Self {
self.inner.displacement_vector_stride = displacement_vector_stride;
self
}
#[inline]
pub fn displaced_micromap_primitive_flags(
mut self,
displaced_micromap_primitive_flags: DeviceOrHostAddressConstKHR,
) -> Self {
self.inner.displaced_micromap_primitive_flags = displaced_micromap_primitive_flags;
self
}
#[inline]
pub fn displaced_micromap_primitive_flags_stride(
mut self,
displaced_micromap_primitive_flags_stride: DeviceSize,
) -> Self {
self.inner.displaced_micromap_primitive_flags_stride =
displaced_micromap_primitive_flags_stride;
self
}
#[inline]
pub fn index_type(mut self, index_type: IndexType) -> Self {
self.inner.index_type = index_type;
self
}
#[inline]
pub fn index_buffer(mut self, index_buffer: DeviceOrHostAddressConstKHR) -> Self {
self.inner.index_buffer = index_buffer;
self
}
#[inline]
pub fn index_stride(mut self, index_stride: DeviceSize) -> Self {
self.inner.index_stride = index_stride;
self
}
#[inline]
pub fn base_triangle(mut self, base_triangle: u32) -> Self {
self.inner.base_triangle = base_triangle;
self
}
#[inline]
pub fn usage_counts(mut self, usage_counts: &'a [MicromapUsageEXT]) -> Self {
self.inner.usage_counts_count = usage_counts.len() as _;
self.inner.p_usage_counts = usage_counts.as_ptr();
self
}
#[inline]
pub fn usage_counts_ptrs(mut self, usage_counts_ptrs: &'a [&'a MicromapUsageEXT]) -> Self {
self.inner.usage_counts_count = usage_counts_ptrs.len() as _;
self.inner.pp_usage_counts = usage_counts_ptrs.as_ptr().cast();
self
}
#[inline]
pub fn micromap(mut self, micromap: MicromapEXT) -> Self {
self.inner.micromap = micromap;
self
}
#[doc = r" Calling build will **discard** all the lifetime information. Only call this if"]
#[doc = r" necessary! Builders implement `Deref` targeting their corresponding Vulkan struct,"]
#[doc = r" so references to builders can be passed directly to Vulkan functions."]
pub fn build(self) -> AccelerationStructureTrianglesDisplacementMicromapNV {
self.inner
}
}
#[repr(C)]
#[cfg_attr(feature = "debug", derive(Debug))]
#[derive(Copy, Clone)]
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelinePropertiesIdentifierEXT.html>"] #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelinePropertiesIdentifierEXT.html>"]
pub struct PipelinePropertiesIdentifierEXT { pub struct PipelinePropertiesIdentifierEXT {
pub s_type: StructureType, pub s_type: StructureType,
@ -73666,3 +74041,457 @@ impl<'a> MemoryUnmapInfoKHRBuilder<'a> {
self.inner self.inner
} }
} }
#[repr(C)]
#[cfg_attr(feature = "debug", derive(Debug))]
#[derive(Copy, Clone)]
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderObjectFeaturesEXT.html>"]
pub struct PhysicalDeviceShaderObjectFeaturesEXT {
pub s_type: StructureType,
pub p_next: *mut c_void,
pub shader_object: Bool32,
}
impl ::std::default::Default for PhysicalDeviceShaderObjectFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: Self::STRUCTURE_TYPE,
p_next: ::std::ptr::null_mut(),
shader_object: Bool32::default(),
}
}
}
unsafe impl TaggedStructure for PhysicalDeviceShaderObjectFeaturesEXT {
const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT;
}
impl PhysicalDeviceShaderObjectFeaturesEXT {
pub fn builder<'a>() -> PhysicalDeviceShaderObjectFeaturesEXTBuilder<'a> {
PhysicalDeviceShaderObjectFeaturesEXTBuilder {
inner: Self::default(),
marker: ::std::marker::PhantomData,
}
}
}
#[repr(transparent)]
pub struct PhysicalDeviceShaderObjectFeaturesEXTBuilder<'a> {
inner: PhysicalDeviceShaderObjectFeaturesEXT,
marker: ::std::marker::PhantomData<&'a ()>,
}
unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderObjectFeaturesEXTBuilder<'_> {}
unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderObjectFeaturesEXT {}
unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderObjectFeaturesEXTBuilder<'_> {}
unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderObjectFeaturesEXT {}
impl<'a> ::std::ops::Deref for PhysicalDeviceShaderObjectFeaturesEXTBuilder<'a> {
type Target = PhysicalDeviceShaderObjectFeaturesEXT;
fn deref(&self) -> &Self::Target {
&self.inner
}
}
impl<'a> ::std::ops::DerefMut for PhysicalDeviceShaderObjectFeaturesEXTBuilder<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.inner
}
}
impl<'a> PhysicalDeviceShaderObjectFeaturesEXTBuilder<'a> {
#[inline]
pub fn shader_object(mut self, shader_object: bool) -> Self {
self.inner.shader_object = shader_object.into();
self
}
#[doc = r" Calling build will **discard** all the lifetime information. Only call this if"]
#[doc = r" necessary! Builders implement `Deref` targeting their corresponding Vulkan struct,"]
#[doc = r" so references to builders can be passed directly to Vulkan functions."]
pub fn build(self) -> PhysicalDeviceShaderObjectFeaturesEXT {
self.inner
}
}
#[repr(C)]
#[cfg_attr(feature = "debug", derive(Debug))]
#[derive(Copy, Clone)]
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderObjectPropertiesEXT.html>"]
pub struct PhysicalDeviceShaderObjectPropertiesEXT {
pub s_type: StructureType,
pub p_next: *mut c_void,
pub shader_binary_uuid: [u8; UUID_SIZE],
pub shader_binary_version: u32,
}
impl ::std::default::Default for PhysicalDeviceShaderObjectPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: Self::STRUCTURE_TYPE,
p_next: ::std::ptr::null_mut(),
shader_binary_uuid: unsafe { ::std::mem::zeroed() },
shader_binary_version: u32::default(),
}
}
}
unsafe impl TaggedStructure for PhysicalDeviceShaderObjectPropertiesEXT {
const STRUCTURE_TYPE: StructureType =
StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT;
}
impl PhysicalDeviceShaderObjectPropertiesEXT {
pub fn builder<'a>() -> PhysicalDeviceShaderObjectPropertiesEXTBuilder<'a> {
PhysicalDeviceShaderObjectPropertiesEXTBuilder {
inner: Self::default(),
marker: ::std::marker::PhantomData,
}
}
}
#[repr(transparent)]
pub struct PhysicalDeviceShaderObjectPropertiesEXTBuilder<'a> {
inner: PhysicalDeviceShaderObjectPropertiesEXT,
marker: ::std::marker::PhantomData<&'a ()>,
}
unsafe impl ExtendsPhysicalDeviceProperties2
for PhysicalDeviceShaderObjectPropertiesEXTBuilder<'_>
{
}
unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderObjectPropertiesEXT {}
impl<'a> ::std::ops::Deref for PhysicalDeviceShaderObjectPropertiesEXTBuilder<'a> {
type Target = PhysicalDeviceShaderObjectPropertiesEXT;
fn deref(&self) -> &Self::Target {
&self.inner
}
}
impl<'a> ::std::ops::DerefMut for PhysicalDeviceShaderObjectPropertiesEXTBuilder<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.inner
}
}
impl<'a> PhysicalDeviceShaderObjectPropertiesEXTBuilder<'a> {
#[inline]
pub fn shader_binary_uuid(mut self, shader_binary_uuid: [u8; UUID_SIZE]) -> Self {
self.inner.shader_binary_uuid = shader_binary_uuid;
self
}
#[inline]
pub fn shader_binary_version(mut self, shader_binary_version: u32) -> Self {
self.inner.shader_binary_version = shader_binary_version;
self
}
#[doc = r" Calling build will **discard** all the lifetime information. Only call this if"]
#[doc = r" necessary! Builders implement `Deref` targeting their corresponding Vulkan struct,"]
#[doc = r" so references to builders can be passed directly to Vulkan functions."]
pub fn build(self) -> PhysicalDeviceShaderObjectPropertiesEXT {
self.inner
}
}
#[repr(C)]
#[cfg_attr(feature = "debug", derive(Debug))]
#[derive(Copy, Clone)]
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkShaderCreateInfoEXT.html>"]
pub struct ShaderCreateInfoEXT {
pub s_type: StructureType,
pub p_next: *const c_void,
pub flags: ShaderCreateFlagsEXT,
pub stage: ShaderStageFlags,
pub next_stage: ShaderStageFlags,
pub code_type: ShaderCodeTypeEXT,
pub code_size: usize,
pub p_code: *const c_void,
pub p_name: *const c_char,
pub set_layout_count: u32,
pub p_set_layouts: *const DescriptorSetLayout,
pub push_constant_range_count: u32,
pub p_push_constant_ranges: *const PushConstantRange,
pub p_specialization_info: *const SpecializationInfo,
}
impl ::std::default::Default for ShaderCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: Self::STRUCTURE_TYPE,
p_next: ::std::ptr::null(),
flags: ShaderCreateFlagsEXT::default(),
stage: ShaderStageFlags::default(),
next_stage: ShaderStageFlags::default(),
code_type: ShaderCodeTypeEXT::default(),
code_size: usize::default(),
p_code: ::std::ptr::null(),
p_name: ::std::ptr::null(),
set_layout_count: u32::default(),
p_set_layouts: ::std::ptr::null(),
push_constant_range_count: u32::default(),
p_push_constant_ranges: ::std::ptr::null(),
p_specialization_info: ::std::ptr::null(),
}
}
}
unsafe impl TaggedStructure for ShaderCreateInfoEXT {
const STRUCTURE_TYPE: StructureType = StructureType::SHADER_CREATE_INFO_EXT;
}
impl ShaderCreateInfoEXT {
pub fn builder<'a>() -> ShaderCreateInfoEXTBuilder<'a> {
ShaderCreateInfoEXTBuilder {
inner: Self::default(),
marker: ::std::marker::PhantomData,
}
}
}
#[repr(transparent)]
pub struct ShaderCreateInfoEXTBuilder<'a> {
inner: ShaderCreateInfoEXT,
marker: ::std::marker::PhantomData<&'a ()>,
}
pub unsafe trait ExtendsShaderCreateInfoEXT {}
impl<'a> ::std::ops::Deref for ShaderCreateInfoEXTBuilder<'a> {
type Target = ShaderCreateInfoEXT;
fn deref(&self) -> &Self::Target {
&self.inner
}
}
impl<'a> ::std::ops::DerefMut for ShaderCreateInfoEXTBuilder<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.inner
}
}
impl<'a> ShaderCreateInfoEXTBuilder<'a> {
#[inline]
pub fn flags(mut self, flags: ShaderCreateFlagsEXT) -> Self {
self.inner.flags = flags;
self
}
#[inline]
pub fn stage(mut self, stage: ShaderStageFlags) -> Self {
self.inner.stage = stage;
self
}
#[inline]
pub fn next_stage(mut self, next_stage: ShaderStageFlags) -> Self {
self.inner.next_stage = next_stage;
self
}
#[inline]
pub fn code_type(mut self, code_type: ShaderCodeTypeEXT) -> Self {
self.inner.code_type = code_type;
self
}
#[inline]
pub fn code(mut self, code: &'a [u8]) -> Self {
self.inner.code_size = code.len();
self.inner.p_code = code.as_ptr().cast();
self
}
#[inline]
pub fn name(mut self, name: &'a ::std::ffi::CStr) -> Self {
self.inner.p_name = name.as_ptr();
self
}
#[inline]
pub fn set_layouts(mut self, set_layouts: &'a [DescriptorSetLayout]) -> Self {
self.inner.set_layout_count = set_layouts.len() as _;
self.inner.p_set_layouts = set_layouts.as_ptr();
self
}
#[inline]
pub fn push_constant_ranges(mut self, push_constant_ranges: &'a [PushConstantRange]) -> Self {
self.inner.push_constant_range_count = push_constant_ranges.len() as _;
self.inner.p_push_constant_ranges = push_constant_ranges.as_ptr();
self
}
#[inline]
pub fn specialization_info(mut self, specialization_info: &'a SpecializationInfo) -> Self {
self.inner.p_specialization_info = specialization_info;
self
}
#[doc = r" Prepends the given extension struct between the root and the first pointer. This"]
#[doc = r" method only exists on structs that can be passed to a function directly. Only"]
#[doc = r" valid extension structs can be pushed into the chain."]
#[doc = r" If the chain looks like `A -> B -> C`, and you call `builder.push_next(&mut D)`, then the"]
#[doc = r" chain will look like `A -> D -> B -> C`."]
pub fn push_next<T: ExtendsShaderCreateInfoEXT>(mut self, next: &'a mut T) -> Self {
unsafe {
let next_ptr = <*const T>::cast(next);
let last_next = ptr_chain_iter(next).last().unwrap();
(*last_next).p_next = self.inner.p_next as _;
self.inner.p_next = next_ptr;
}
self
}
#[doc = r" Calling build will **discard** all the lifetime information. Only call this if"]
#[doc = r" necessary! Builders implement `Deref` targeting their corresponding Vulkan struct,"]
#[doc = r" so references to builders can be passed directly to Vulkan functions."]
pub fn build(self) -> ShaderCreateInfoEXT {
self.inner
}
}
#[repr(C)]
#[cfg_attr(feature = "debug", derive(Debug))]
#[derive(Copy, Clone)]
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderTileImageFeaturesEXT.html>"]
pub struct PhysicalDeviceShaderTileImageFeaturesEXT {
pub s_type: StructureType,
pub p_next: *mut c_void,
pub shader_tile_image_color_read_access: Bool32,
pub shader_tile_image_depth_read_access: Bool32,
pub shader_tile_image_stencil_read_access: Bool32,
}
impl ::std::default::Default for PhysicalDeviceShaderTileImageFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: Self::STRUCTURE_TYPE,
p_next: ::std::ptr::null_mut(),
shader_tile_image_color_read_access: Bool32::default(),
shader_tile_image_depth_read_access: Bool32::default(),
shader_tile_image_stencil_read_access: Bool32::default(),
}
}
}
unsafe impl TaggedStructure for PhysicalDeviceShaderTileImageFeaturesEXT {
const STRUCTURE_TYPE: StructureType =
StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT;
}
impl PhysicalDeviceShaderTileImageFeaturesEXT {
pub fn builder<'a>() -> PhysicalDeviceShaderTileImageFeaturesEXTBuilder<'a> {
PhysicalDeviceShaderTileImageFeaturesEXTBuilder {
inner: Self::default(),
marker: ::std::marker::PhantomData,
}
}
}
#[repr(transparent)]
pub struct PhysicalDeviceShaderTileImageFeaturesEXTBuilder<'a> {
inner: PhysicalDeviceShaderTileImageFeaturesEXT,
marker: ::std::marker::PhantomData<&'a ()>,
}
unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderTileImageFeaturesEXTBuilder<'_> {}
unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderTileImageFeaturesEXT {}
unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderTileImageFeaturesEXTBuilder<'_> {}
unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderTileImageFeaturesEXT {}
impl<'a> ::std::ops::Deref for PhysicalDeviceShaderTileImageFeaturesEXTBuilder<'a> {
type Target = PhysicalDeviceShaderTileImageFeaturesEXT;
fn deref(&self) -> &Self::Target {
&self.inner
}
}
impl<'a> ::std::ops::DerefMut for PhysicalDeviceShaderTileImageFeaturesEXTBuilder<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.inner
}
}
impl<'a> PhysicalDeviceShaderTileImageFeaturesEXTBuilder<'a> {
#[inline]
pub fn shader_tile_image_color_read_access(
mut self,
shader_tile_image_color_read_access: bool,
) -> Self {
self.inner.shader_tile_image_color_read_access = shader_tile_image_color_read_access.into();
self
}
#[inline]
pub fn shader_tile_image_depth_read_access(
mut self,
shader_tile_image_depth_read_access: bool,
) -> Self {
self.inner.shader_tile_image_depth_read_access = shader_tile_image_depth_read_access.into();
self
}
#[inline]
pub fn shader_tile_image_stencil_read_access(
mut self,
shader_tile_image_stencil_read_access: bool,
) -> Self {
self.inner.shader_tile_image_stencil_read_access =
shader_tile_image_stencil_read_access.into();
self
}
#[doc = r" Calling build will **discard** all the lifetime information. Only call this if"]
#[doc = r" necessary! Builders implement `Deref` targeting their corresponding Vulkan struct,"]
#[doc = r" so references to builders can be passed directly to Vulkan functions."]
pub fn build(self) -> PhysicalDeviceShaderTileImageFeaturesEXT {
self.inner
}
}
#[repr(C)]
#[cfg_attr(feature = "debug", derive(Debug))]
#[derive(Copy, Clone)]
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderTileImagePropertiesEXT.html>"]
pub struct PhysicalDeviceShaderTileImagePropertiesEXT {
pub s_type: StructureType,
pub p_next: *mut c_void,
pub shader_tile_image_coherent_read_accelerated: Bool32,
pub shader_tile_image_read_sample_from_pixel_rate_invocation: Bool32,
pub shader_tile_image_read_from_helper_invocation: Bool32,
}
impl ::std::default::Default for PhysicalDeviceShaderTileImagePropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: Self::STRUCTURE_TYPE,
p_next: ::std::ptr::null_mut(),
shader_tile_image_coherent_read_accelerated: Bool32::default(),
shader_tile_image_read_sample_from_pixel_rate_invocation: Bool32::default(),
shader_tile_image_read_from_helper_invocation: Bool32::default(),
}
}
}
unsafe impl TaggedStructure for PhysicalDeviceShaderTileImagePropertiesEXT {
const STRUCTURE_TYPE: StructureType =
StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT;
}
impl PhysicalDeviceShaderTileImagePropertiesEXT {
pub fn builder<'a>() -> PhysicalDeviceShaderTileImagePropertiesEXTBuilder<'a> {
PhysicalDeviceShaderTileImagePropertiesEXTBuilder {
inner: Self::default(),
marker: ::std::marker::PhantomData,
}
}
}
#[repr(transparent)]
pub struct PhysicalDeviceShaderTileImagePropertiesEXTBuilder<'a> {
inner: PhysicalDeviceShaderTileImagePropertiesEXT,
marker: ::std::marker::PhantomData<&'a ()>,
}
unsafe impl ExtendsPhysicalDeviceProperties2
for PhysicalDeviceShaderTileImagePropertiesEXTBuilder<'_>
{
}
unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderTileImagePropertiesEXT {}
impl<'a> ::std::ops::Deref for PhysicalDeviceShaderTileImagePropertiesEXTBuilder<'a> {
type Target = PhysicalDeviceShaderTileImagePropertiesEXT;
fn deref(&self) -> &Self::Target {
&self.inner
}
}
impl<'a> ::std::ops::DerefMut for PhysicalDeviceShaderTileImagePropertiesEXTBuilder<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.inner
}
}
impl<'a> PhysicalDeviceShaderTileImagePropertiesEXTBuilder<'a> {
#[inline]
pub fn shader_tile_image_coherent_read_accelerated(
mut self,
shader_tile_image_coherent_read_accelerated: bool,
) -> Self {
self.inner.shader_tile_image_coherent_read_accelerated =
shader_tile_image_coherent_read_accelerated.into();
self
}
#[inline]
pub fn shader_tile_image_read_sample_from_pixel_rate_invocation(
mut self,
shader_tile_image_read_sample_from_pixel_rate_invocation: bool,
) -> Self {
self.inner
.shader_tile_image_read_sample_from_pixel_rate_invocation =
shader_tile_image_read_sample_from_pixel_rate_invocation.into();
self
}
#[inline]
pub fn shader_tile_image_read_from_helper_invocation(
mut self,
shader_tile_image_read_from_helper_invocation: bool,
) -> Self {
self.inner.shader_tile_image_read_from_helper_invocation =
shader_tile_image_read_from_helper_invocation.into();
self
}
#[doc = r" Calling build will **discard** all the lifetime information. Only call this if"]
#[doc = r" necessary! Builders implement `Deref` targeting their corresponding Vulkan struct,"]
#[doc = r" so references to builders can be passed directly to Vulkan functions."]
pub fn build(self) -> PhysicalDeviceShaderTileImagePropertiesEXT {
self.inner
}
}

View file

@ -2784,6 +2784,43 @@ impl DeviceFaultVendorBinaryHeaderVersionEXT {
impl DeviceFaultVendorBinaryHeaderVersionEXT { impl DeviceFaultVendorBinaryHeaderVersionEXT {
pub const ONE: Self = Self(1); pub const ONE: Self = Self(1);
} }
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
#[repr(transparent)]
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplacementMicromapFormatNV.html>"]
pub struct DisplacementMicromapFormatNV(pub(crate) i32);
impl DisplacementMicromapFormatNV {
#[inline]
pub const fn from_raw(x: i32) -> Self {
Self(x)
}
#[inline]
pub const fn as_raw(self) -> i32 {
self.0
}
}
impl DisplacementMicromapFormatNV {
pub const TYPE_64_TRIANGLES_64_BYTES: Self = Self(1);
pub const TYPE_256_TRIANGLES_128_BYTES: Self = Self(2);
pub const TYPE_1024_TRIANGLES_128_BYTES: Self = Self(3);
}
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
#[repr(transparent)]
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkShaderCodeTypeEXT.html>"]
pub struct ShaderCodeTypeEXT(pub(crate) i32);
impl ShaderCodeTypeEXT {
#[inline]
pub const fn from_raw(x: i32) -> Self {
Self(x)
}
#[inline]
pub const fn as_raw(self) -> i32 {
self.0
}
}
impl ShaderCodeTypeEXT {
pub const BINARY: Self = Self(0);
pub const SPIRV: Self = Self(1);
}
impl fmt::Debug for ObjectType { impl fmt::Debug for ObjectType {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let name = match *self { let name = match *self {
@ -2832,6 +2869,7 @@ impl fmt::Debug for ObjectType {
Self::BUFFER_COLLECTION_FUCHSIA => Some("BUFFER_COLLECTION_FUCHSIA"), Self::BUFFER_COLLECTION_FUCHSIA => Some("BUFFER_COLLECTION_FUCHSIA"),
Self::MICROMAP_EXT => Some("MICROMAP_EXT"), Self::MICROMAP_EXT => Some("MICROMAP_EXT"),
Self::OPTICAL_FLOW_SESSION_NV => Some("OPTICAL_FLOW_SESSION_NV"), Self::OPTICAL_FLOW_SESSION_NV => Some("OPTICAL_FLOW_SESSION_NV"),
Self::SHADER_EXT => Some("SHADER_EXT"),
Self::SAMPLER_YCBCR_CONVERSION => Some("SAMPLER_YCBCR_CONVERSION"), Self::SAMPLER_YCBCR_CONVERSION => Some("SAMPLER_YCBCR_CONVERSION"),
Self::DESCRIPTOR_UPDATE_TEMPLATE => Some("DESCRIPTOR_UPDATE_TEMPLATE"), Self::DESCRIPTOR_UPDATE_TEMPLATE => Some("DESCRIPTOR_UPDATE_TEMPLATE"),
Self::PRIVATE_DATA_SLOT => Some("PRIVATE_DATA_SLOT"), Self::PRIVATE_DATA_SLOT => Some("PRIVATE_DATA_SLOT"),
@ -2906,6 +2944,9 @@ impl fmt::Debug for Result {
Some("ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR") Some("ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR")
} }
Self::ERROR_COMPRESSION_EXHAUSTED_EXT => Some("ERROR_COMPRESSION_EXHAUSTED_EXT"), Self::ERROR_COMPRESSION_EXHAUSTED_EXT => Some("ERROR_COMPRESSION_EXHAUSTED_EXT"),
Self::ERROR_INCOMPATIBLE_SHADER_BINARY_EXT => {
Some("ERROR_INCOMPATIBLE_SHADER_BINARY_EXT")
}
Self::ERROR_OUT_OF_POOL_MEMORY => Some("ERROR_OUT_OF_POOL_MEMORY"), Self::ERROR_OUT_OF_POOL_MEMORY => Some("ERROR_OUT_OF_POOL_MEMORY"),
Self::ERROR_INVALID_EXTERNAL_HANDLE => Some("ERROR_INVALID_EXTERNAL_HANDLE"), Self::ERROR_INVALID_EXTERNAL_HANDLE => Some("ERROR_INVALID_EXTERNAL_HANDLE"),
Self::ERROR_FRAGMENTATION => Some("ERROR_FRAGMENTATION"), Self::ERROR_FRAGMENTATION => Some("ERROR_FRAGMENTATION"),

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,4 @@
/* automatically generated by rust-bindgen 0.63.0 */ /* automatically generated by rust-bindgen 0.64.0 */
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]

View file

@ -5,7 +5,7 @@ authors = ["Maik Klein <maikklein@googlemail.com>"]
edition = "2021" edition = "2021"
[dependencies] [dependencies]
bindgen = "0.63" bindgen = "0.64"
heck = "0.4" heck = "0.4"
itertools = "0.10" itertools = "0.10"
nom = "7.1" nom = "7.1"

@ -1 +1 @@
Subproject commit fa204df59c6caea6b9be3cf0754a88cd89056a87 Subproject commit 63af1cf1ee906ba4dcd5a324bdd0201d4f4bfd12