// SPDX-License-Identifier: Apache-2.0
// DO NOT EDIT.
//
// This file has been generated by the Kotlin project in the `generator`
// directory from a Vulkan API registry.
#![allow(
non_camel_case_types,
non_snake_case,
clippy::let_unit_value,
clippy::missing_safety_doc,
clippy::too_many_arguments,
clippy::type_complexity,
clippy::upper_case_acronyms
)]
use std::fmt;
use std::os::raw::{c_char, c_int, c_void};
use std::ptr;
use crate::*;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAabbPositionsKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, PartialEq)]
pub struct AabbPositionsKHR {
pub min_x: f32,
pub min_y: f32,
pub min_z: f32,
pub max_x: f32,
pub max_y: f32,
pub max_z: f32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureBuildGeometryInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct AccelerationStructureBuildGeometryInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub type_: AccelerationStructureTypeKHR,
pub flags: BuildAccelerationStructureFlagsKHR,
pub mode: BuildAccelerationStructureModeKHR,
pub src_acceleration_structure: AccelerationStructureKHR,
pub dst_acceleration_structure: AccelerationStructureKHR,
pub geometry_count: u32,
pub geometries: *const AccelerationStructureGeometryKHR,
pub pointer_geometries: *const *const AccelerationStructureGeometryKHR,
pub scratch_data: DeviceOrHostAddressKHR,
}
impl Default for AccelerationStructureBuildGeometryInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
next: ptr::null(),
type_: AccelerationStructureTypeKHR::default(),
flags: BuildAccelerationStructureFlagsKHR::default(),
mode: BuildAccelerationStructureModeKHR::default(),
src_acceleration_structure: AccelerationStructureKHR::default(),
dst_acceleration_structure: AccelerationStructureKHR::default(),
geometry_count: u32::default(),
geometries: ptr::null(),
pointer_geometries: ptr::null(),
scratch_data: DeviceOrHostAddressKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureBuildRangeInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct AccelerationStructureBuildRangeInfoKHR {
pub primitive_count: u32,
pub primitive_offset: u32,
pub first_vertex: u32,
pub transform_offset: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureBuildSizesInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AccelerationStructureBuildSizesInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub acceleration_structure_size: DeviceSize,
pub update_scratch_size: DeviceSize,
pub build_scratch_size: DeviceSize,
}
impl Default for AccelerationStructureBuildSizesInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR,
next: ptr::null(),
acceleration_structure_size: DeviceSize::default(),
update_scratch_size: DeviceSize::default(),
build_scratch_size: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureCaptureDescriptorDataInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AccelerationStructureCaptureDescriptorDataInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub acceleration_structure: AccelerationStructureKHR,
pub acceleration_structure_nv: AccelerationStructureNV,
}
impl Default for AccelerationStructureCaptureDescriptorDataInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
next: ptr::null(),
acceleration_structure: AccelerationStructureKHR::default(),
acceleration_structure_nv: AccelerationStructureNV::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureCreateInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AccelerationStructureCreateInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub create_flags: AccelerationStructureCreateFlagsKHR,
pub buffer: Buffer,
pub offset: DeviceSize,
pub size: DeviceSize,
pub type_: AccelerationStructureTypeKHR,
pub device_address: DeviceAddress,
}
impl Default for AccelerationStructureCreateInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_KHR,
next: ptr::null(),
create_flags: AccelerationStructureCreateFlagsKHR::default(),
buffer: Buffer::default(),
offset: DeviceSize::default(),
size: DeviceSize::default(),
type_: AccelerationStructureTypeKHR::default(),
device_address: DeviceAddress::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AccelerationStructureCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub compacted_size: DeviceSize,
pub info: AccelerationStructureInfoNV,
}
impl Default for AccelerationStructureCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_NV,
next: ptr::null(),
compacted_size: DeviceSize::default(),
info: AccelerationStructureInfoNV::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureDeviceAddressInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AccelerationStructureDeviceAddressInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub acceleration_structure: AccelerationStructureKHR,
}
impl Default for AccelerationStructureDeviceAddressInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR,
next: ptr::null(),
acceleration_structure: AccelerationStructureKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureGeometryAabbsDataKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct AccelerationStructureGeometryAabbsDataKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub data: DeviceOrHostAddressConstKHR,
pub stride: DeviceSize,
}
impl Default for AccelerationStructureGeometryAabbsDataKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR,
next: ptr::null(),
data: DeviceOrHostAddressConstKHR::default(),
stride: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureGeometryInstancesDataKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct AccelerationStructureGeometryInstancesDataKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub array_of_pointers: Bool32,
pub data: DeviceOrHostAddressConstKHR,
}
impl Default for AccelerationStructureGeometryInstancesDataKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR,
next: ptr::null(),
array_of_pointers: Bool32::default(),
data: DeviceOrHostAddressConstKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureGeometryKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct AccelerationStructureGeometryKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub geometry_type: GeometryTypeKHR,
pub geometry: AccelerationStructureGeometryDataKHR,
pub flags: GeometryFlagsKHR,
}
impl Default for AccelerationStructureGeometryKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ACCELERATION_STRUCTURE_GEOMETRY_KHR,
next: ptr::null(),
geometry_type: GeometryTypeKHR::default(),
geometry: AccelerationStructureGeometryDataKHR::default(),
flags: GeometryFlagsKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureGeometryMotionTrianglesDataNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct AccelerationStructureGeometryMotionTrianglesDataNV {
pub s_type: StructureType,
pub next: *const c_void,
pub vertex_data: DeviceOrHostAddressConstKHR,
}
impl Default for AccelerationStructureGeometryMotionTrianglesDataNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV,
next: ptr::null(),
vertex_data: DeviceOrHostAddressConstKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureGeometryTrianglesDataKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct AccelerationStructureGeometryTrianglesDataKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub vertex_format: Format,
pub vertex_data: DeviceOrHostAddressConstKHR,
pub vertex_stride: DeviceSize,
pub max_vertex: u32,
pub index_type: IndexType,
pub index_data: DeviceOrHostAddressConstKHR,
pub transform_data: DeviceOrHostAddressConstKHR,
}
impl Default for AccelerationStructureGeometryTrianglesDataKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR,
next: ptr::null(),
vertex_format: Format::default(),
vertex_data: DeviceOrHostAddressConstKHR::default(),
vertex_stride: DeviceSize::default(),
max_vertex: u32::default(),
index_type: IndexType::default(),
index_data: DeviceOrHostAddressConstKHR::default(),
transform_data: DeviceOrHostAddressConstKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AccelerationStructureInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub type_: AccelerationStructureTypeNV,
pub flags: BuildAccelerationStructureFlagsNV,
pub instance_count: u32,
pub geometry_count: u32,
pub geometries: *const GeometryNV,
}
impl Default for AccelerationStructureInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ACCELERATION_STRUCTURE_INFO_NV,
next: ptr::null(),
type_: AccelerationStructureTypeNV::default(),
flags: BuildAccelerationStructureFlagsNV::default(),
instance_count: u32::default(),
geometry_count: u32::default(),
geometries: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureInstanceKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, PartialEq)]
pub struct AccelerationStructureInstanceKHR {
pub transform: TransformMatrixKHR,
pub instance_custom_index_and_mask: Bitfield24_8,
pub instance_shader_binding_table_record_offset_and_flags: Bitfield24_8,
pub acceleration_structure_reference: u64,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureMatrixMotionInstanceNV.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, PartialEq)]
pub struct AccelerationStructureMatrixMotionInstanceNV {
pub transform_t0: TransformMatrixKHR,
pub transform_t1: TransformMatrixKHR,
pub instance_custom_index_and_mask: Bitfield24_8,
pub instance_shader_binding_table_record_offset_and_flags: Bitfield24_8,
pub acceleration_structure_reference: u64,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureMemoryRequirementsInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AccelerationStructureMemoryRequirementsInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub type_: AccelerationStructureMemoryRequirementsTypeNV,
pub acceleration_structure: AccelerationStructureNV,
}
impl Default for AccelerationStructureMemoryRequirementsInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
next: ptr::null(),
type_: AccelerationStructureMemoryRequirementsTypeNV::default(),
acceleration_structure: AccelerationStructureNV::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureMotionInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AccelerationStructureMotionInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub max_instances: u32,
pub flags: AccelerationStructureMotionInfoFlagsNV,
}
impl Default for AccelerationStructureMotionInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ACCELERATION_STRUCTURE_MOTION_INFO_NV,
next: ptr::null(),
max_instances: u32::default(),
flags: AccelerationStructureMotionInfoFlagsNV::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureMotionInstanceNV.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug)]
pub struct AccelerationStructureMotionInstanceNV {
pub type_: AccelerationStructureMotionInstanceTypeNV,
pub flags: AccelerationStructureMotionInstanceFlagsNV,
pub data: AccelerationStructureMotionInstanceDataNV,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureSRTMotionInstanceNV.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, PartialEq)]
pub struct AccelerationStructureSRTMotionInstanceNV {
pub transform_t0: SRTDataNV,
pub transform_t1: SRTDataNV,
pub instance_custom_index_and_mask: Bitfield24_8,
pub instance_shader_binding_table_record_offset_and_flags: Bitfield24_8,
pub acceleration_structure_reference: u64,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureTrianglesOpacityMicromapEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct AccelerationStructureTrianglesOpacityMicromapEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub index_type: IndexType,
pub index_buffer: DeviceOrHostAddressConstKHR,
pub index_stride: DeviceSize,
pub base_triangle: u32,
pub usage_counts_count: u32,
pub usage_counts: *const MicromapUsageEXT,
pub pointer_usage_counts: *const *const MicromapUsageEXT,
pub micromap: MicromapEXT,
}
impl Default for AccelerationStructureTrianglesOpacityMicromapEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT,
next: ptr::null_mut(),
index_type: IndexType::default(),
index_buffer: DeviceOrHostAddressConstKHR::default(),
index_stride: DeviceSize::default(),
base_triangle: u32::default(),
usage_counts_count: u32::default(),
usage_counts: ptr::null(),
pointer_usage_counts: ptr::null(),
micromap: MicromapEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureVersionInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AccelerationStructureVersionInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub version_data: *const u8,
}
impl Default for AccelerationStructureVersionInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ACCELERATION_STRUCTURE_VERSION_INFO_KHR,
next: ptr::null(),
version_data: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAcquireNextImageInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AcquireNextImageInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub swapchain: SwapchainKHR,
pub timeout: u64,
pub semaphore: Semaphore,
pub fence: Fence,
pub device_mask: u32,
}
impl Default for AcquireNextImageInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ACQUIRE_NEXT_IMAGE_INFO_KHR,
next: ptr::null(),
swapchain: SwapchainKHR::default(),
timeout: u64::default(),
semaphore: Semaphore::default(),
fence: Fence::default(),
device_mask: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAcquireProfilingLockInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AcquireProfilingLockInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: AcquireProfilingLockFlagsKHR,
pub timeout: u64,
}
impl Default for AcquireProfilingLockInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ACQUIRE_PROFILING_LOCK_INFO_KHR,
next: ptr::null(),
flags: AcquireProfilingLockFlagsKHR::default(),
timeout: u64::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAllocationCallbacks.html>
#[repr(C)]
#[derive(Copy, Clone)]
pub struct AllocationCallbacks {
pub user_data: *mut c_void,
pub allocation: PFN_vkAllocationFunction,
pub reallocation: PFN_vkReallocationFunction,
pub free: PFN_vkFreeFunction,
pub internal_allocation: PFN_vkInternalAllocationNotification,
pub internal_free: PFN_vkInternalFreeNotification,
}
impl fmt::Debug for AllocationCallbacks {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.debug_struct("AllocationCallbacks")
.field("user_data", &self.user_data)
.field("allocation", &(self.allocation.map(|f| f as *const u8)))
.field("reallocation", &(self.reallocation.map(|f| f as *const u8)))
.field("free", &(self.free.map(|f| f as *const u8)))
.field(
"internal_allocation",
&(self.internal_allocation.map(|f| f as *const u8)),
)
.field(
"internal_free",
&(self.internal_free.map(|f| f as *const u8)),
)
.finish()
}
}
impl Default for AllocationCallbacks {
#[inline]
fn default() -> Self {
Self {
user_data: ptr::null_mut(),
allocation: PFN_vkAllocationFunction::default(),
reallocation: PFN_vkReallocationFunction::default(),
free: PFN_vkFreeFunction::default(),
internal_allocation: PFN_vkInternalAllocationNotification::default(),
internal_free: PFN_vkInternalFreeNotification::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAmigoProfilingSubmitInfoSEC.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AmigoProfilingSubmitInfoSEC {
pub s_type: StructureType,
pub next: *const c_void,
pub first_draw_timestamp: u64,
pub swap_buffer_timestamp: u64,
}
impl Default for AmigoProfilingSubmitInfoSEC {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::AMIGO_PROFILING_SUBMIT_INFO_SEC,
next: ptr::null(),
first_draw_timestamp: u64::default(),
swap_buffer_timestamp: u64::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAndroidHardwareBufferFormatProperties2ANDROID.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AndroidHardwareBufferFormatProperties2ANDROID {
pub s_type: StructureType,
pub next: *mut c_void,
pub format: Format,
pub external_format: u64,
pub format_features: FormatFeatureFlags2,
pub sampler_ycbcr_conversion_components: ComponentMapping,
pub suggested_ycbcr_model: SamplerYcbcrModelConversion,
pub suggested_ycbcr_range: SamplerYcbcrRange,
pub suggested_x_chroma_offset: ChromaLocation,
pub suggested_y_chroma_offset: ChromaLocation,
}
impl Default for AndroidHardwareBufferFormatProperties2ANDROID {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID,
next: ptr::null_mut(),
format: Format::default(),
external_format: u64::default(),
format_features: FormatFeatureFlags2::default(),
sampler_ycbcr_conversion_components: ComponentMapping::default(),
suggested_ycbcr_model: SamplerYcbcrModelConversion::default(),
suggested_ycbcr_range: SamplerYcbcrRange::default(),
suggested_x_chroma_offset: ChromaLocation::default(),
suggested_y_chroma_offset: ChromaLocation::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAndroidHardwareBufferFormatPropertiesANDROID.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AndroidHardwareBufferFormatPropertiesANDROID {
pub s_type: StructureType,
pub next: *mut c_void,
pub format: Format,
pub external_format: u64,
pub format_features: FormatFeatureFlags,
pub sampler_ycbcr_conversion_components: ComponentMapping,
pub suggested_ycbcr_model: SamplerYcbcrModelConversion,
pub suggested_ycbcr_range: SamplerYcbcrRange,
pub suggested_x_chroma_offset: ChromaLocation,
pub suggested_y_chroma_offset: ChromaLocation,
}
impl Default for AndroidHardwareBufferFormatPropertiesANDROID {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID,
next: ptr::null_mut(),
format: Format::default(),
external_format: u64::default(),
format_features: FormatFeatureFlags::default(),
sampler_ycbcr_conversion_components: ComponentMapping::default(),
suggested_ycbcr_model: SamplerYcbcrModelConversion::default(),
suggested_ycbcr_range: SamplerYcbcrRange::default(),
suggested_x_chroma_offset: ChromaLocation::default(),
suggested_y_chroma_offset: ChromaLocation::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAndroidHardwareBufferPropertiesANDROID.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AndroidHardwareBufferPropertiesANDROID {
pub s_type: StructureType,
pub next: *mut c_void,
pub allocation_size: DeviceSize,
pub memory_type_bits: u32,
}
impl Default for AndroidHardwareBufferPropertiesANDROID {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID,
next: ptr::null_mut(),
allocation_size: DeviceSize::default(),
memory_type_bits: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAndroidHardwareBufferUsageANDROID.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AndroidHardwareBufferUsageANDROID {
pub s_type: StructureType,
pub next: *mut c_void,
pub android_hardware_buffer_usage: u64,
}
impl Default for AndroidHardwareBufferUsageANDROID {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ANDROID_HARDWARE_BUFFER_USAGE_ANDROID,
next: ptr::null_mut(),
android_hardware_buffer_usage: u64::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAndroidSurfaceCreateInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AndroidSurfaceCreateInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: AndroidSurfaceCreateFlagsKHR,
pub window: *mut ANativeWindow,
}
impl Default for AndroidSurfaceCreateInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ANDROID_SURFACE_CREATE_INFO_KHR,
next: ptr::null(),
flags: AndroidSurfaceCreateFlagsKHR::default(),
window: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkApplicationInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ApplicationInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub application_name: *const c_char,
pub application_version: u32,
pub engine_name: *const c_char,
pub engine_version: u32,
pub api_version: u32,
}
impl Default for ApplicationInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::APPLICATION_INFO,
next: ptr::null(),
application_name: ptr::null(),
application_version: u32::default(),
engine_name: ptr::null(),
engine_version: u32::default(),
api_version: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAttachmentDescription.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct AttachmentDescription {
pub flags: AttachmentDescriptionFlags,
pub format: Format,
pub samples: SampleCountFlags,
pub load_op: AttachmentLoadOp,
pub store_op: AttachmentStoreOp,
pub stencil_load_op: AttachmentLoadOp,
pub stencil_store_op: AttachmentStoreOp,
pub initial_layout: ImageLayout,
pub final_layout: ImageLayout,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAttachmentDescription2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AttachmentDescription2 {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: AttachmentDescriptionFlags,
pub format: Format,
pub samples: SampleCountFlags,
pub load_op: AttachmentLoadOp,
pub store_op: AttachmentStoreOp,
pub stencil_load_op: AttachmentLoadOp,
pub stencil_store_op: AttachmentStoreOp,
pub initial_layout: ImageLayout,
pub final_layout: ImageLayout,
}
impl Default for AttachmentDescription2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ATTACHMENT_DESCRIPTION_2,
next: ptr::null(),
flags: AttachmentDescriptionFlags::default(),
format: Format::default(),
samples: SampleCountFlags::default(),
load_op: AttachmentLoadOp::default(),
store_op: AttachmentStoreOp::default(),
stencil_load_op: AttachmentLoadOp::default(),
stencil_store_op: AttachmentStoreOp::default(),
initial_layout: ImageLayout::default(),
final_layout: ImageLayout::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAttachmentDescriptionStencilLayout.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AttachmentDescriptionStencilLayout {
pub s_type: StructureType,
pub next: *mut c_void,
pub stencil_initial_layout: ImageLayout,
pub stencil_final_layout: ImageLayout,
}
impl Default for AttachmentDescriptionStencilLayout {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
next: ptr::null_mut(),
stencil_initial_layout: ImageLayout::default(),
stencil_final_layout: ImageLayout::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAttachmentReference.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct AttachmentReference {
pub attachment: u32,
pub layout: ImageLayout,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAttachmentReference2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AttachmentReference2 {
pub s_type: StructureType,
pub next: *const c_void,
pub attachment: u32,
pub layout: ImageLayout,
pub aspect_mask: ImageAspectFlags,
}
impl Default for AttachmentReference2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ATTACHMENT_REFERENCE_2,
next: ptr::null(),
attachment: u32::default(),
layout: ImageLayout::default(),
aspect_mask: ImageAspectFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAttachmentReferenceStencilLayout.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AttachmentReferenceStencilLayout {
pub s_type: StructureType,
pub next: *mut c_void,
pub stencil_layout: ImageLayout,
}
impl Default for AttachmentReferenceStencilLayout {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
next: ptr::null_mut(),
stencil_layout: ImageLayout::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAttachmentSampleCountInfoAMD.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct AttachmentSampleCountInfoAMD {
pub s_type: StructureType,
pub next: *const c_void,
pub color_attachment_count: u32,
pub color_attachment_samples: *const SampleCountFlags,
pub depth_stencil_attachment_samples: SampleCountFlags,
}
impl Default for AttachmentSampleCountInfoAMD {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
next: ptr::null(),
color_attachment_count: u32::default(),
color_attachment_samples: ptr::null(),
depth_stencil_attachment_samples: SampleCountFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAttachmentSampleLocationsEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct AttachmentSampleLocationsEXT {
pub attachment_index: u32,
pub sample_locations_info: SampleLocationsInfoEXT,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBaseInStructure.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BaseInStructure {
pub s_type: StructureType,
pub next: *const BaseInStructure,
}
impl Default for BaseInStructure {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::default(),
next: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBaseOutStructure.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BaseOutStructure {
pub s_type: StructureType,
pub next: *mut BaseOutStructure,
}
impl Default for BaseOutStructure {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::default(),
next: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBindAccelerationStructureMemoryInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BindAccelerationStructureMemoryInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub acceleration_structure: AccelerationStructureNV,
pub memory: DeviceMemory,
pub memory_offset: DeviceSize,
pub device_index_count: u32,
pub device_indices: *const u32,
}
impl Default for BindAccelerationStructureMemoryInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,
next: ptr::null(),
acceleration_structure: AccelerationStructureNV::default(),
memory: DeviceMemory::default(),
memory_offset: DeviceSize::default(),
device_index_count: u32::default(),
device_indices: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBindBufferMemoryDeviceGroupInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BindBufferMemoryDeviceGroupInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub device_index_count: u32,
pub device_indices: *const u32,
}
impl Default for BindBufferMemoryDeviceGroupInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
next: ptr::null(),
device_index_count: u32::default(),
device_indices: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBindBufferMemoryInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BindBufferMemoryInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub buffer: Buffer,
pub memory: DeviceMemory,
pub memory_offset: DeviceSize,
}
impl Default for BindBufferMemoryInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BIND_BUFFER_MEMORY_INFO,
next: ptr::null(),
buffer: Buffer::default(),
memory: DeviceMemory::default(),
memory_offset: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBindImageMemoryDeviceGroupInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BindImageMemoryDeviceGroupInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub device_index_count: u32,
pub device_indices: *const u32,
pub split_instance_bind_region_count: u32,
pub split_instance_bind_regions: *const Rect2D,
}
impl Default for BindImageMemoryDeviceGroupInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
next: ptr::null(),
device_index_count: u32::default(),
device_indices: ptr::null(),
split_instance_bind_region_count: u32::default(),
split_instance_bind_regions: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBindImageMemoryInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BindImageMemoryInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub image: Image,
pub memory: DeviceMemory,
pub memory_offset: DeviceSize,
}
impl Default for BindImageMemoryInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BIND_IMAGE_MEMORY_INFO,
next: ptr::null(),
image: Image::default(),
memory: DeviceMemory::default(),
memory_offset: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBindImageMemorySwapchainInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BindImageMemorySwapchainInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub swapchain: SwapchainKHR,
pub image_index: u32,
}
impl Default for BindImageMemorySwapchainInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
next: ptr::null(),
swapchain: SwapchainKHR::default(),
image_index: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBindImagePlaneMemoryInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BindImagePlaneMemoryInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub plane_aspect: ImageAspectFlags,
}
impl Default for BindImagePlaneMemoryInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BIND_IMAGE_PLANE_MEMORY_INFO,
next: ptr::null(),
plane_aspect: ImageAspectFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBindIndexBufferIndirectCommandNV.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct BindIndexBufferIndirectCommandNV {
pub buffer_address: DeviceAddress,
pub size: u32,
pub index_type: IndexType,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBindShaderGroupIndirectCommandNV.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct BindShaderGroupIndirectCommandNV {
pub group_index: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBindSparseInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BindSparseInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub wait_semaphore_count: u32,
pub wait_semaphores: *const Semaphore,
pub buffer_bind_count: u32,
pub buffer_binds: *const SparseBufferMemoryBindInfo,
pub image_opaque_bind_count: u32,
pub image_opaque_binds: *const SparseImageOpaqueMemoryBindInfo,
pub image_bind_count: u32,
pub image_binds: *const SparseImageMemoryBindInfo,
pub signal_semaphore_count: u32,
pub signal_semaphores: *const Semaphore,
}
impl Default for BindSparseInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BIND_SPARSE_INFO,
next: ptr::null(),
wait_semaphore_count: u32::default(),
wait_semaphores: ptr::null(),
buffer_bind_count: u32::default(),
buffer_binds: ptr::null(),
image_opaque_bind_count: u32::default(),
image_opaque_binds: ptr::null(),
image_bind_count: u32::default(),
image_binds: ptr::null(),
signal_semaphore_count: u32::default(),
signal_semaphores: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBindVertexBufferIndirectCommandNV.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct BindVertexBufferIndirectCommandNV {
pub buffer_address: DeviceAddress,
pub size: u32,
pub stride: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBlitImageInfo2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BlitImageInfo2 {
pub s_type: StructureType,
pub next: *const c_void,
pub src_image: Image,
pub src_image_layout: ImageLayout,
pub dst_image: Image,
pub dst_image_layout: ImageLayout,
pub region_count: u32,
pub regions: *const ImageBlit2,
pub filter: Filter,
}
impl Default for BlitImageInfo2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BLIT_IMAGE_INFO_2,
next: ptr::null(),
src_image: Image::default(),
src_image_layout: ImageLayout::default(),
dst_image: Image::default(),
dst_image_layout: ImageLayout::default(),
region_count: u32::default(),
regions: ptr::null(),
filter: Filter::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferCaptureDescriptorDataInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BufferCaptureDescriptorDataInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub buffer: Buffer,
}
impl Default for BufferCaptureDescriptorDataInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
next: ptr::null(),
buffer: Buffer::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferCollectionBufferCreateInfoFUCHSIA.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BufferCollectionBufferCreateInfoFUCHSIA {
pub s_type: StructureType,
pub next: *const c_void,
pub collection: BufferCollectionFUCHSIA,
pub index: u32,
}
impl Default for BufferCollectionBufferCreateInfoFUCHSIA {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA,
next: ptr::null(),
collection: BufferCollectionFUCHSIA::default(),
index: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferCollectionConstraintsInfoFUCHSIA.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BufferCollectionConstraintsInfoFUCHSIA {
pub s_type: StructureType,
pub next: *const c_void,
pub min_buffer_count: u32,
pub max_buffer_count: u32,
pub min_buffer_count_for_camping: u32,
pub min_buffer_count_for_dedicated_slack: u32,
pub min_buffer_count_for_shared_slack: u32,
}
impl Default for BufferCollectionConstraintsInfoFUCHSIA {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA,
next: ptr::null(),
min_buffer_count: u32::default(),
max_buffer_count: u32::default(),
min_buffer_count_for_camping: u32::default(),
min_buffer_count_for_dedicated_slack: u32::default(),
min_buffer_count_for_shared_slack: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferCollectionCreateInfoFUCHSIA.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BufferCollectionCreateInfoFUCHSIA {
pub s_type: StructureType,
pub next: *const c_void,
pub collection_token: zx_handle_t,
}
impl Default for BufferCollectionCreateInfoFUCHSIA {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BUFFER_COLLECTION_CREATE_INFO_FUCHSIA,
next: ptr::null(),
collection_token: zx_handle_t::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferCollectionImageCreateInfoFUCHSIA.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BufferCollectionImageCreateInfoFUCHSIA {
pub s_type: StructureType,
pub next: *const c_void,
pub collection: BufferCollectionFUCHSIA,
pub index: u32,
}
impl Default for BufferCollectionImageCreateInfoFUCHSIA {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA,
next: ptr::null(),
collection: BufferCollectionFUCHSIA::default(),
index: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferCollectionPropertiesFUCHSIA.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BufferCollectionPropertiesFUCHSIA {
pub s_type: StructureType,
pub next: *mut c_void,
pub memory_type_bits: u32,
pub buffer_count: u32,
pub create_info_index: u32,
pub sysmem_pixel_format: u64,
pub format_features: FormatFeatureFlags,
pub sysmem_color_space_index: SysmemColorSpaceFUCHSIA,
pub sampler_ycbcr_conversion_components: ComponentMapping,
pub suggested_ycbcr_model: SamplerYcbcrModelConversion,
pub suggested_ycbcr_range: SamplerYcbcrRange,
pub suggested_x_chroma_offset: ChromaLocation,
pub suggested_y_chroma_offset: ChromaLocation,
}
impl Default for BufferCollectionPropertiesFUCHSIA {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BUFFER_COLLECTION_PROPERTIES_FUCHSIA,
next: ptr::null_mut(),
memory_type_bits: u32::default(),
buffer_count: u32::default(),
create_info_index: u32::default(),
sysmem_pixel_format: u64::default(),
format_features: FormatFeatureFlags::default(),
sysmem_color_space_index: SysmemColorSpaceFUCHSIA::default(),
sampler_ycbcr_conversion_components: ComponentMapping::default(),
suggested_ycbcr_model: SamplerYcbcrModelConversion::default(),
suggested_ycbcr_range: SamplerYcbcrRange::default(),
suggested_x_chroma_offset: ChromaLocation::default(),
suggested_y_chroma_offset: ChromaLocation::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferConstraintsInfoFUCHSIA.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BufferConstraintsInfoFUCHSIA {
pub s_type: StructureType,
pub next: *const c_void,
pub create_info: BufferCreateInfo,
pub required_format_features: FormatFeatureFlags,
pub buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA,
}
impl Default for BufferConstraintsInfoFUCHSIA {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BUFFER_CONSTRAINTS_INFO_FUCHSIA,
next: ptr::null(),
create_info: BufferCreateInfo::default(),
required_format_features: FormatFeatureFlags::default(),
buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferCopy.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct BufferCopy {
pub src_offset: DeviceSize,
pub dst_offset: DeviceSize,
pub size: DeviceSize,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferCopy2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BufferCopy2 {
pub s_type: StructureType,
pub next: *const c_void,
pub src_offset: DeviceSize,
pub dst_offset: DeviceSize,
pub size: DeviceSize,
}
impl Default for BufferCopy2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BUFFER_COPY_2,
next: ptr::null(),
src_offset: DeviceSize::default(),
dst_offset: DeviceSize::default(),
size: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BufferCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: BufferCreateFlags,
pub size: DeviceSize,
pub usage: BufferUsageFlags,
pub sharing_mode: SharingMode,
pub queue_family_index_count: u32,
pub queue_family_indices: *const u32,
}
impl Default for BufferCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BUFFER_CREATE_INFO,
next: ptr::null(),
flags: BufferCreateFlags::default(),
size: DeviceSize::default(),
usage: BufferUsageFlags::default(),
sharing_mode: SharingMode::default(),
queue_family_index_count: u32::default(),
queue_family_indices: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferDeviceAddressCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BufferDeviceAddressCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub device_address: DeviceAddress,
}
impl Default for BufferDeviceAddressCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,
next: ptr::null(),
device_address: DeviceAddress::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferDeviceAddressInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BufferDeviceAddressInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub buffer: Buffer,
}
impl Default for BufferDeviceAddressInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BUFFER_DEVICE_ADDRESS_INFO,
next: ptr::null(),
buffer: Buffer::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferImageCopy.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct BufferImageCopy {
pub buffer_offset: DeviceSize,
pub buffer_row_length: u32,
pub buffer_image_height: u32,
pub image_subresource: ImageSubresourceLayers,
pub image_offset: Offset3D,
pub image_extent: Extent3D,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferImageCopy2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BufferImageCopy2 {
pub s_type: StructureType,
pub next: *const c_void,
pub buffer_offset: DeviceSize,
pub buffer_row_length: u32,
pub buffer_image_height: u32,
pub image_subresource: ImageSubresourceLayers,
pub image_offset: Offset3D,
pub image_extent: Extent3D,
}
impl Default for BufferImageCopy2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BUFFER_IMAGE_COPY_2,
next: ptr::null(),
buffer_offset: DeviceSize::default(),
buffer_row_length: u32::default(),
buffer_image_height: u32::default(),
image_subresource: ImageSubresourceLayers::default(),
image_offset: Offset3D::default(),
image_extent: Extent3D::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferMemoryBarrier.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BufferMemoryBarrier {
pub s_type: StructureType,
pub next: *const c_void,
pub src_access_mask: AccessFlags,
pub dst_access_mask: AccessFlags,
pub src_queue_family_index: u32,
pub dst_queue_family_index: u32,
pub buffer: Buffer,
pub offset: DeviceSize,
pub size: DeviceSize,
}
impl Default for BufferMemoryBarrier {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BUFFER_MEMORY_BARRIER,
next: ptr::null(),
src_access_mask: AccessFlags::default(),
dst_access_mask: AccessFlags::default(),
src_queue_family_index: u32::default(),
dst_queue_family_index: u32::default(),
buffer: Buffer::default(),
offset: DeviceSize::default(),
size: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferMemoryBarrier2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BufferMemoryBarrier2 {
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 buffer: Buffer,
pub offset: DeviceSize,
pub size: DeviceSize,
}
impl Default for BufferMemoryBarrier2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BUFFER_MEMORY_BARRIER_2,
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(),
buffer: Buffer::default(),
offset: DeviceSize::default(),
size: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferMemoryRequirementsInfo2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BufferMemoryRequirementsInfo2 {
pub s_type: StructureType,
pub next: *const c_void,
pub buffer: Buffer,
}
impl Default for BufferMemoryRequirementsInfo2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BUFFER_MEMORY_REQUIREMENTS_INFO_2,
next: ptr::null(),
buffer: Buffer::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferOpaqueCaptureAddressCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BufferOpaqueCaptureAddressCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub opaque_capture_address: u64,
}
impl Default for BufferOpaqueCaptureAddressCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
next: ptr::null(),
opaque_capture_address: u64::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferViewCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct BufferViewCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: BufferViewCreateFlags,
pub buffer: Buffer,
pub format: Format,
pub offset: DeviceSize,
pub range: DeviceSize,
}
impl Default for BufferViewCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::BUFFER_VIEW_CREATE_INFO,
next: ptr::null(),
flags: BufferViewCreateFlags::default(),
buffer: Buffer::default(),
format: Format::default(),
offset: DeviceSize::default(),
range: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCalibratedTimestampInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CalibratedTimestampInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub time_domain: TimeDomainEXT,
}
impl Default for CalibratedTimestampInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::CALIBRATED_TIMESTAMP_INFO_EXT,
next: ptr::null(),
time_domain: TimeDomainEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCheckpointData2NV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CheckpointData2NV {
pub s_type: StructureType,
pub next: *mut c_void,
pub stage: PipelineStageFlags2,
pub checkpoint_marker: *mut c_void,
}
impl Default for CheckpointData2NV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::CHECKPOINT_DATA_2_NV,
next: ptr::null_mut(),
stage: PipelineStageFlags2::default(),
checkpoint_marker: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCheckpointDataNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CheckpointDataNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub stage: PipelineStageFlags,
pub checkpoint_marker: *mut c_void,
}
impl Default for CheckpointDataNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::CHECKPOINT_DATA_NV,
next: ptr::null_mut(),
stage: PipelineStageFlags::default(),
checkpoint_marker: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkClearAttachment.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug)]
pub struct ClearAttachment {
pub aspect_mask: ImageAspectFlags,
pub color_attachment: u32,
pub clear_value: ClearValue,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkClearDepthStencilValue.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, PartialEq)]
pub struct ClearDepthStencilValue {
pub depth: f32,
pub stencil: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkClearRect.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ClearRect {
pub rect: Rect2D,
pub base_array_layer: u32,
pub layer_count: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCoarseSampleLocationNV.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct CoarseSampleLocationNV {
pub pixel_x: u32,
pub pixel_y: u32,
pub sample: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCoarseSampleOrderCustomNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CoarseSampleOrderCustomNV {
pub shading_rate: ShadingRatePaletteEntryNV,
pub sample_count: u32,
pub sample_location_count: u32,
pub sample_locations: *const CoarseSampleLocationNV,
}
impl Default for CoarseSampleOrderCustomNV {
#[inline]
fn default() -> Self {
Self {
shading_rate: ShadingRatePaletteEntryNV::default(),
sample_count: u32::default(),
sample_location_count: u32::default(),
sample_locations: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkColorBlendAdvancedEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ColorBlendAdvancedEXT {
pub advanced_blend_op: BlendOp,
pub src_premultiplied: Bool32,
pub dst_premultiplied: Bool32,
pub blend_overlap: BlendOverlapEXT,
pub clamp_results: Bool32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkColorBlendEquationEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ColorBlendEquationEXT {
pub src_color_blend_factor: BlendFactor,
pub dst_color_blend_factor: BlendFactor,
pub color_blend_op: BlendOp,
pub src_alpha_blend_factor: BlendFactor,
pub dst_alpha_blend_factor: BlendFactor,
pub alpha_blend_op: BlendOp,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCommandBufferAllocateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CommandBufferAllocateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub command_pool: CommandPool,
pub level: CommandBufferLevel,
pub command_buffer_count: u32,
}
impl Default for CommandBufferAllocateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COMMAND_BUFFER_ALLOCATE_INFO,
next: ptr::null(),
command_pool: CommandPool::default(),
level: CommandBufferLevel::default(),
command_buffer_count: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCommandBufferBeginInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CommandBufferBeginInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: CommandBufferUsageFlags,
pub inheritance_info: *const CommandBufferInheritanceInfo,
}
impl Default for CommandBufferBeginInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COMMAND_BUFFER_BEGIN_INFO,
next: ptr::null(),
flags: CommandBufferUsageFlags::default(),
inheritance_info: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCommandBufferInheritanceConditionalRenderingInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CommandBufferInheritanceConditionalRenderingInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub conditional_rendering_enable: Bool32,
}
impl Default for CommandBufferInheritanceConditionalRenderingInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT,
next: ptr::null(),
conditional_rendering_enable: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCommandBufferInheritanceInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CommandBufferInheritanceInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub render_pass: RenderPass,
pub subpass: u32,
pub framebuffer: Framebuffer,
pub occlusion_query_enable: Bool32,
pub query_flags: QueryControlFlags,
pub pipeline_statistics: QueryPipelineStatisticFlags,
}
impl Default for CommandBufferInheritanceInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COMMAND_BUFFER_INHERITANCE_INFO,
next: ptr::null(),
render_pass: RenderPass::default(),
subpass: u32::default(),
framebuffer: Framebuffer::default(),
occlusion_query_enable: Bool32::default(),
query_flags: QueryControlFlags::default(),
pipeline_statistics: QueryPipelineStatisticFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCommandBufferInheritanceRenderPassTransformInfoQCOM.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CommandBufferInheritanceRenderPassTransformInfoQCOM {
pub s_type: StructureType,
pub next: *mut c_void,
pub transform: SurfaceTransformFlagsKHR,
pub render_area: Rect2D,
}
impl Default for CommandBufferInheritanceRenderPassTransformInfoQCOM {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM,
next: ptr::null_mut(),
transform: SurfaceTransformFlagsKHR::default(),
render_area: Rect2D::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCommandBufferInheritanceRenderingInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CommandBufferInheritanceRenderingInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: RenderingFlags,
pub view_mask: u32,
pub color_attachment_count: u32,
pub color_attachment_formats: *const Format,
pub depth_attachment_format: Format,
pub stencil_attachment_format: Format,
pub rasterization_samples: SampleCountFlags,
}
impl Default for CommandBufferInheritanceRenderingInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
next: ptr::null(),
flags: RenderingFlags::default(),
view_mask: u32::default(),
color_attachment_count: u32::default(),
color_attachment_formats: ptr::null(),
depth_attachment_format: Format::default(),
stencil_attachment_format: Format::default(),
rasterization_samples: SampleCountFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCommandBufferInheritanceViewportScissorInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CommandBufferInheritanceViewportScissorInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub viewport_scissor_2d: Bool32,
pub viewport_depth_count: u32,
pub viewport_depths: *const Viewport,
}
impl Default for CommandBufferInheritanceViewportScissorInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV,
next: ptr::null(),
viewport_scissor_2d: Bool32::default(),
viewport_depth_count: u32::default(),
viewport_depths: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCommandBufferSubmitInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CommandBufferSubmitInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub command_buffer: CommandBuffer,
pub device_mask: u32,
}
impl Default for CommandBufferSubmitInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COMMAND_BUFFER_SUBMIT_INFO,
next: ptr::null(),
command_buffer: CommandBuffer::default(),
device_mask: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCommandPoolCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CommandPoolCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: CommandPoolCreateFlags,
pub queue_family_index: u32,
}
impl Default for CommandPoolCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COMMAND_POOL_CREATE_INFO,
next: ptr::null(),
flags: CommandPoolCreateFlags::default(),
queue_family_index: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkComponentMapping.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ComponentMapping {
pub r: ComponentSwizzle,
pub g: ComponentSwizzle,
pub b: ComponentSwizzle,
pub a: ComponentSwizzle,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkComputePipelineCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ComputePipelineCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineCreateFlags,
pub stage: PipelineShaderStageCreateInfo,
pub layout: PipelineLayout,
pub base_pipeline_handle: Pipeline,
pub base_pipeline_index: i32,
}
impl Default for ComputePipelineCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COMPUTE_PIPELINE_CREATE_INFO,
next: ptr::null(),
flags: PipelineCreateFlags::default(),
stage: PipelineShaderStageCreateInfo::default(),
layout: PipelineLayout::default(),
base_pipeline_handle: Pipeline::default(),
base_pipeline_index: i32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkConditionalRenderingBeginInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ConditionalRenderingBeginInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub buffer: Buffer,
pub offset: DeviceSize,
pub flags: ConditionalRenderingFlagsEXT,
}
impl Default for ConditionalRenderingBeginInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::CONDITIONAL_RENDERING_BEGIN_INFO_EXT,
next: ptr::null(),
buffer: Buffer::default(),
offset: DeviceSize::default(),
flags: ConditionalRenderingFlagsEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkConformanceVersion.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ConformanceVersion {
pub major: u8,
pub minor: u8,
pub subminor: u8,
pub patch: u8,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCooperativeMatrixPropertiesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CooperativeMatrixPropertiesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub m_size: u32,
pub n_size: u32,
pub k_size: u32,
pub a_type: ComponentTypeNV,
pub b_type: ComponentTypeNV,
pub c_type: ComponentTypeNV,
pub d_type: ComponentTypeNV,
pub scope: ScopeNV,
}
impl Default for CooperativeMatrixPropertiesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COOPERATIVE_MATRIX_PROPERTIES_NV,
next: ptr::null_mut(),
m_size: u32::default(),
n_size: u32::default(),
k_size: u32::default(),
a_type: ComponentTypeNV::default(),
b_type: ComponentTypeNV::default(),
c_type: ComponentTypeNV::default(),
d_type: ComponentTypeNV::default(),
scope: ScopeNV::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyAccelerationStructureInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CopyAccelerationStructureInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub src: AccelerationStructureKHR,
pub dst: AccelerationStructureKHR,
pub mode: CopyAccelerationStructureModeKHR,
}
impl Default for CopyAccelerationStructureInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COPY_ACCELERATION_STRUCTURE_INFO_KHR,
next: ptr::null(),
src: AccelerationStructureKHR::default(),
dst: AccelerationStructureKHR::default(),
mode: CopyAccelerationStructureModeKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyAccelerationStructureToMemoryInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct CopyAccelerationStructureToMemoryInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub src: AccelerationStructureKHR,
pub dst: DeviceOrHostAddressKHR,
pub mode: CopyAccelerationStructureModeKHR,
}
impl Default for CopyAccelerationStructureToMemoryInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR,
next: ptr::null(),
src: AccelerationStructureKHR::default(),
dst: DeviceOrHostAddressKHR::default(),
mode: CopyAccelerationStructureModeKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyBufferInfo2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CopyBufferInfo2 {
pub s_type: StructureType,
pub next: *const c_void,
pub src_buffer: Buffer,
pub dst_buffer: Buffer,
pub region_count: u32,
pub regions: *const BufferCopy2,
}
impl Default for CopyBufferInfo2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COPY_BUFFER_INFO_2,
next: ptr::null(),
src_buffer: Buffer::default(),
dst_buffer: Buffer::default(),
region_count: u32::default(),
regions: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyBufferToImageInfo2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CopyBufferToImageInfo2 {
pub s_type: StructureType,
pub next: *const c_void,
pub src_buffer: Buffer,
pub dst_image: Image,
pub dst_image_layout: ImageLayout,
pub region_count: u32,
pub regions: *const BufferImageCopy2,
}
impl Default for CopyBufferToImageInfo2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COPY_BUFFER_TO_IMAGE_INFO_2,
next: ptr::null(),
src_buffer: Buffer::default(),
dst_image: Image::default(),
dst_image_layout: ImageLayout::default(),
region_count: u32::default(),
regions: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyCommandTransformInfoQCOM.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CopyCommandTransformInfoQCOM {
pub s_type: StructureType,
pub next: *const c_void,
pub transform: SurfaceTransformFlagsKHR,
}
impl Default for CopyCommandTransformInfoQCOM {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COPY_COMMAND_TRANSFORM_INFO_QCOM,
next: ptr::null(),
transform: SurfaceTransformFlagsKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyDescriptorSet.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CopyDescriptorSet {
pub s_type: StructureType,
pub next: *const c_void,
pub src_set: DescriptorSet,
pub src_binding: u32,
pub src_array_element: u32,
pub dst_set: DescriptorSet,
pub dst_binding: u32,
pub dst_array_element: u32,
pub descriptor_count: u32,
}
impl Default for CopyDescriptorSet {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COPY_DESCRIPTOR_SET,
next: ptr::null(),
src_set: DescriptorSet::default(),
src_binding: u32::default(),
src_array_element: u32::default(),
dst_set: DescriptorSet::default(),
dst_binding: u32::default(),
dst_array_element: u32::default(),
descriptor_count: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyImageInfo2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CopyImageInfo2 {
pub s_type: StructureType,
pub next: *const c_void,
pub src_image: Image,
pub src_image_layout: ImageLayout,
pub dst_image: Image,
pub dst_image_layout: ImageLayout,
pub region_count: u32,
pub regions: *const ImageCopy2,
}
impl Default for CopyImageInfo2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COPY_IMAGE_INFO_2,
next: ptr::null(),
src_image: Image::default(),
src_image_layout: ImageLayout::default(),
dst_image: Image::default(),
dst_image_layout: ImageLayout::default(),
region_count: u32::default(),
regions: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyImageToBufferInfo2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CopyImageToBufferInfo2 {
pub s_type: StructureType,
pub next: *const c_void,
pub src_image: Image,
pub src_image_layout: ImageLayout,
pub dst_buffer: Buffer,
pub region_count: u32,
pub regions: *const BufferImageCopy2,
}
impl Default for CopyImageToBufferInfo2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COPY_IMAGE_TO_BUFFER_INFO_2,
next: ptr::null(),
src_image: Image::default(),
src_image_layout: ImageLayout::default(),
dst_buffer: Buffer::default(),
region_count: u32::default(),
regions: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyMemoryIndirectCommandNV.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct CopyMemoryIndirectCommandNV {
pub src_address: DeviceAddress,
pub dst_address: DeviceAddress,
pub size: DeviceSize,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyMemoryToAccelerationStructureInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct CopyMemoryToAccelerationStructureInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub src: DeviceOrHostAddressConstKHR,
pub dst: AccelerationStructureKHR,
pub mode: CopyAccelerationStructureModeKHR,
}
impl Default for CopyMemoryToAccelerationStructureInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR,
next: ptr::null(),
src: DeviceOrHostAddressConstKHR::default(),
dst: AccelerationStructureKHR::default(),
mode: CopyAccelerationStructureModeKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyMemoryToImageIndirectCommandNV.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct CopyMemoryToImageIndirectCommandNV {
pub src_address: DeviceAddress,
pub buffer_row_length: u32,
pub buffer_image_height: u32,
pub image_subresource: ImageSubresourceLayers,
pub image_offset: Offset3D,
pub image_extent: Extent3D,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyMemoryToMicromapInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct CopyMemoryToMicromapInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub src: DeviceOrHostAddressConstKHR,
pub dst: MicromapEXT,
pub mode: CopyMicromapModeEXT,
}
impl Default for CopyMemoryToMicromapInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COPY_MEMORY_TO_MICROMAP_INFO_EXT,
next: ptr::null(),
src: DeviceOrHostAddressConstKHR::default(),
dst: MicromapEXT::default(),
mode: CopyMicromapModeEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyMicromapInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CopyMicromapInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub src: MicromapEXT,
pub dst: MicromapEXT,
pub mode: CopyMicromapModeEXT,
}
impl Default for CopyMicromapInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COPY_MICROMAP_INFO_EXT,
next: ptr::null(),
src: MicromapEXT::default(),
dst: MicromapEXT::default(),
mode: CopyMicromapModeEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyMicromapToMemoryInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct CopyMicromapToMemoryInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub src: MicromapEXT,
pub dst: DeviceOrHostAddressKHR,
pub mode: CopyMicromapModeEXT,
}
impl Default for CopyMicromapToMemoryInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::COPY_MICROMAP_TO_MEMORY_INFO_EXT,
next: ptr::null(),
src: MicromapEXT::default(),
dst: DeviceOrHostAddressKHR::default(),
mode: CopyMicromapModeEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCuFunctionCreateInfoNVX.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CuFunctionCreateInfoNVX {
pub s_type: StructureType,
pub next: *const c_void,
pub module: CuModuleNVX,
pub name: *const c_char,
}
impl Default for CuFunctionCreateInfoNVX {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::CU_FUNCTION_CREATE_INFO_NVX,
next: ptr::null(),
module: CuModuleNVX::default(),
name: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCuLaunchInfoNVX.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CuLaunchInfoNVX {
pub s_type: StructureType,
pub next: *const c_void,
pub function: CuFunctionNVX,
pub grid_dim_x: u32,
pub grid_dim_y: u32,
pub grid_dim_z: u32,
pub block_dim_x: u32,
pub block_dim_y: u32,
pub block_dim_z: u32,
pub shared_mem_bytes: u32,
pub param_count: usize,
pub params: *const c_void,
pub extra_count: usize,
pub extras: *const c_void,
}
impl Default for CuLaunchInfoNVX {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::CU_LAUNCH_INFO_NVX,
next: ptr::null(),
function: CuFunctionNVX::default(),
grid_dim_x: u32::default(),
grid_dim_y: u32::default(),
grid_dim_z: u32::default(),
block_dim_x: u32::default(),
block_dim_y: u32::default(),
block_dim_z: u32::default(),
shared_mem_bytes: u32::default(),
param_count: usize::default(),
params: ptr::null(),
extra_count: usize::default(),
extras: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCuModuleCreateInfoNVX.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct CuModuleCreateInfoNVX {
pub s_type: StructureType,
pub next: *const c_void,
pub data_size: usize,
pub data: *const c_void,
}
impl Default for CuModuleCreateInfoNVX {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::CU_MODULE_CREATE_INFO_NVX,
next: ptr::null(),
data_size: usize::default(),
data: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkD3D12FenceSubmitInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct D3D12FenceSubmitInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub wait_semaphore_values_count: u32,
pub wait_semaphore_values: *const u64,
pub signal_semaphore_values_count: u32,
pub signal_semaphore_values: *const u64,
}
impl Default for D3D12FenceSubmitInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::D3D12_FENCE_SUBMIT_INFO_KHR,
next: ptr::null(),
wait_semaphore_values_count: u32::default(),
wait_semaphore_values: ptr::null(),
signal_semaphore_values_count: u32::default(),
signal_semaphore_values: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDebugMarkerMarkerInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct DebugMarkerMarkerInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub marker_name: *const c_char,
pub color: [f32; 4],
}
impl Default for DebugMarkerMarkerInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEBUG_MARKER_MARKER_INFO_EXT,
next: ptr::null(),
marker_name: ptr::null(),
color: [f32::default(); 4],
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDebugMarkerObjectNameInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DebugMarkerObjectNameInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub object_type: DebugReportObjectTypeEXT,
pub object: u64,
pub object_name: *const c_char,
}
impl Default for DebugMarkerObjectNameInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
next: ptr::null(),
object_type: DebugReportObjectTypeEXT::default(),
object: u64::default(),
object_name: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDebugMarkerObjectTagInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DebugMarkerObjectTagInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub object_type: DebugReportObjectTypeEXT,
pub object: u64,
pub tag_name: u64,
pub tag_size: usize,
pub tag: *const c_void,
}
impl Default for DebugMarkerObjectTagInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEBUG_MARKER_OBJECT_TAG_INFO_EXT,
next: ptr::null(),
object_type: DebugReportObjectTypeEXT::default(),
object: u64::default(),
tag_name: u64::default(),
tag_size: usize::default(),
tag: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDebugReportCallbackCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone)]
pub struct DebugReportCallbackCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: DebugReportFlagsEXT,
pub callback: PFN_vkDebugReportCallbackEXT,
pub user_data: *mut c_void,
}
impl fmt::Debug for DebugReportCallbackCreateInfoEXT {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.debug_struct("DebugReportCallbackCreateInfoEXT")
.field("s_type", &self.s_type)
.field("next", &self.next)
.field("flags", &self.flags)
.field("callback", &(self.callback.map(|f| f as *const u8)))
.field("user_data", &self.user_data)
.finish()
}
}
impl Default for DebugReportCallbackCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
next: ptr::null(),
flags: DebugReportFlagsEXT::default(),
callback: PFN_vkDebugReportCallbackEXT::default(),
user_data: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDebugUtilsLabelEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct DebugUtilsLabelEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub label_name: *const c_char,
pub color: [f32; 4],
}
impl Default for DebugUtilsLabelEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEBUG_UTILS_LABEL_EXT,
next: ptr::null(),
label_name: ptr::null(),
color: [f32::default(); 4],
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDebugUtilsMessengerCallbackDataEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DebugUtilsMessengerCallbackDataEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: DebugUtilsMessengerCallbackDataFlagsEXT,
pub message_id_name: *const c_char,
pub message_id_number: i32,
pub message: *const c_char,
pub queue_label_count: u32,
pub queue_labels: *const DebugUtilsLabelEXT,
pub cmd_buf_label_count: u32,
pub cmd_buf_labels: *const DebugUtilsLabelEXT,
pub object_count: u32,
pub objects: *const DebugUtilsObjectNameInfoEXT,
}
impl Default for DebugUtilsMessengerCallbackDataEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT,
next: ptr::null(),
flags: DebugUtilsMessengerCallbackDataFlagsEXT::default(),
message_id_name: ptr::null(),
message_id_number: i32::default(),
message: ptr::null(),
queue_label_count: u32::default(),
queue_labels: ptr::null(),
cmd_buf_label_count: u32::default(),
cmd_buf_labels: ptr::null(),
object_count: u32::default(),
objects: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDebugUtilsMessengerCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone)]
pub struct DebugUtilsMessengerCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: DebugUtilsMessengerCreateFlagsEXT,
pub message_severity: DebugUtilsMessageSeverityFlagsEXT,
pub message_type: DebugUtilsMessageTypeFlagsEXT,
pub user_callback: PFN_vkDebugUtilsMessengerCallbackEXT,
pub user_data: *mut c_void,
}
impl fmt::Debug for DebugUtilsMessengerCreateInfoEXT {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.debug_struct("DebugUtilsMessengerCreateInfoEXT")
.field("s_type", &self.s_type)
.field("next", &self.next)
.field("flags", &self.flags)
.field("message_severity", &self.message_severity)
.field("message_type", &self.message_type)
.field(
"user_callback",
&(self.user_callback.map(|f| f as *const u8)),
)
.field("user_data", &self.user_data)
.finish()
}
}
impl Default for DebugUtilsMessengerCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
next: ptr::null(),
flags: DebugUtilsMessengerCreateFlagsEXT::default(),
message_severity: DebugUtilsMessageSeverityFlagsEXT::default(),
message_type: DebugUtilsMessageTypeFlagsEXT::default(),
user_callback: PFN_vkDebugUtilsMessengerCallbackEXT::default(),
user_data: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDebugUtilsObjectNameInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DebugUtilsObjectNameInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub object_type: ObjectType,
pub object_handle: u64,
pub object_name: *const c_char,
}
impl Default for DebugUtilsObjectNameInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
next: ptr::null(),
object_type: ObjectType::default(),
object_handle: u64::default(),
object_name: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDebugUtilsObjectTagInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DebugUtilsObjectTagInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub object_type: ObjectType,
pub object_handle: u64,
pub tag_name: u64,
pub tag_size: usize,
pub tag: *const c_void,
}
impl Default for DebugUtilsObjectTagInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEBUG_UTILS_OBJECT_TAG_INFO_EXT,
next: ptr::null(),
object_type: ObjectType::default(),
object_handle: u64::default(),
tag_name: u64::default(),
tag_size: usize::default(),
tag: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDecompressMemoryRegionNV.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DecompressMemoryRegionNV {
pub src_address: DeviceAddress,
pub dst_address: DeviceAddress,
pub compressed_size: DeviceSize,
pub decompressed_size: DeviceSize,
pub decompression_method: MemoryDecompressionMethodFlagsNV,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDedicatedAllocationBufferCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DedicatedAllocationBufferCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub dedicated_allocation: Bool32,
}
impl Default for DedicatedAllocationBufferCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV,
next: ptr::null(),
dedicated_allocation: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDedicatedAllocationImageCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DedicatedAllocationImageCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub dedicated_allocation: Bool32,
}
impl Default for DedicatedAllocationImageCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,
next: ptr::null(),
dedicated_allocation: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDedicatedAllocationMemoryAllocateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DedicatedAllocationMemoryAllocateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub image: Image,
pub buffer: Buffer,
}
impl Default for DedicatedAllocationMemoryAllocateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,
next: ptr::null(),
image: Image::default(),
buffer: Buffer::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDependencyInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DependencyInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub dependency_flags: DependencyFlags,
pub memory_barrier_count: u32,
pub memory_barriers: *const MemoryBarrier2,
pub buffer_memory_barrier_count: u32,
pub buffer_memory_barriers: *const BufferMemoryBarrier2,
pub image_memory_barrier_count: u32,
pub image_memory_barriers: *const ImageMemoryBarrier2,
}
impl Default for DependencyInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEPENDENCY_INFO,
next: ptr::null(),
dependency_flags: DependencyFlags::default(),
memory_barrier_count: u32::default(),
memory_barriers: ptr::null(),
buffer_memory_barrier_count: u32::default(),
buffer_memory_barriers: ptr::null(),
image_memory_barrier_count: u32::default(),
image_memory_barriers: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorAddressInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorAddressInfoEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub address: DeviceAddress,
pub range: DeviceSize,
pub format: Format,
}
impl Default for DescriptorAddressInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DESCRIPTOR_ADDRESS_INFO_EXT,
next: ptr::null_mut(),
address: DeviceAddress::default(),
range: DeviceSize::default(),
format: Format::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorBufferBindingInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorBufferBindingInfoEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub address: DeviceAddress,
pub usage: BufferUsageFlags,
}
impl Default for DescriptorBufferBindingInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DESCRIPTOR_BUFFER_BINDING_INFO_EXT,
next: ptr::null_mut(),
address: DeviceAddress::default(),
usage: BufferUsageFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorBufferBindingPushDescriptorBufferHandleEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorBufferBindingPushDescriptorBufferHandleEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub buffer: Buffer,
}
impl Default for DescriptorBufferBindingPushDescriptorBufferHandleEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT,
next: ptr::null_mut(),
buffer: Buffer::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorBufferInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorBufferInfo {
pub buffer: Buffer,
pub offset: DeviceSize,
pub range: DeviceSize,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorGetInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct DescriptorGetInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub type_: DescriptorType,
pub data: DescriptorDataEXT,
}
impl Default for DescriptorGetInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DESCRIPTOR_GET_INFO_EXT,
next: ptr::null(),
type_: DescriptorType::default(),
data: DescriptorDataEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorImageInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorImageInfo {
pub sampler: Sampler,
pub image_view: ImageView,
pub image_layout: ImageLayout,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorPoolCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorPoolCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: DescriptorPoolCreateFlags,
pub max_sets: u32,
pub pool_size_count: u32,
pub pool_sizes: *const DescriptorPoolSize,
}
impl Default for DescriptorPoolCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DESCRIPTOR_POOL_CREATE_INFO,
next: ptr::null(),
flags: DescriptorPoolCreateFlags::default(),
max_sets: u32::default(),
pool_size_count: u32::default(),
pool_sizes: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorPoolInlineUniformBlockCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorPoolInlineUniformBlockCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub max_inline_uniform_block_bindings: u32,
}
impl Default for DescriptorPoolInlineUniformBlockCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
next: ptr::null(),
max_inline_uniform_block_bindings: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorPoolSize.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorPoolSize {
pub type_: DescriptorType,
pub descriptor_count: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetAllocateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorSetAllocateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub descriptor_pool: DescriptorPool,
pub descriptor_set_count: u32,
pub set_layouts: *const DescriptorSetLayout,
}
impl Default for DescriptorSetAllocateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DESCRIPTOR_SET_ALLOCATE_INFO,
next: ptr::null(),
descriptor_pool: DescriptorPool::default(),
descriptor_set_count: u32::default(),
set_layouts: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetBindingReferenceVALVE.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorSetBindingReferenceVALVE {
pub s_type: StructureType,
pub next: *const c_void,
pub descriptor_set_layout: DescriptorSetLayout,
pub binding: u32,
}
impl Default for DescriptorSetBindingReferenceVALVE {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DESCRIPTOR_SET_BINDING_REFERENCE_VALVE,
next: ptr::null(),
descriptor_set_layout: DescriptorSetLayout::default(),
binding: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetLayoutBinding.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorSetLayoutBinding {
pub binding: u32,
pub descriptor_type: DescriptorType,
pub descriptor_count: u32,
pub stage_flags: ShaderStageFlags,
pub immutable_samplers: *const Sampler,
}
impl Default for DescriptorSetLayoutBinding {
#[inline]
fn default() -> Self {
Self {
binding: u32::default(),
descriptor_type: DescriptorType::default(),
descriptor_count: u32::default(),
stage_flags: ShaderStageFlags::default(),
immutable_samplers: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetLayoutBindingFlagsCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorSetLayoutBindingFlagsCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub binding_count: u32,
pub binding_flags: *const DescriptorBindingFlags,
}
impl Default for DescriptorSetLayoutBindingFlagsCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
next: ptr::null(),
binding_count: u32::default(),
binding_flags: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetLayoutCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorSetLayoutCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: DescriptorSetLayoutCreateFlags,
pub binding_count: u32,
pub bindings: *const DescriptorSetLayoutBinding,
}
impl Default for DescriptorSetLayoutCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
next: ptr::null(),
flags: DescriptorSetLayoutCreateFlags::default(),
binding_count: u32::default(),
bindings: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetLayoutHostMappingInfoVALVE.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorSetLayoutHostMappingInfoVALVE {
pub s_type: StructureType,
pub next: *mut c_void,
pub descriptor_offset: usize,
pub descriptor_size: u32,
}
impl Default for DescriptorSetLayoutHostMappingInfoVALVE {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE,
next: ptr::null_mut(),
descriptor_offset: usize::default(),
descriptor_size: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetLayoutSupport.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorSetLayoutSupport {
pub s_type: StructureType,
pub next: *mut c_void,
pub supported: Bool32,
}
impl Default for DescriptorSetLayoutSupport {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DESCRIPTOR_SET_LAYOUT_SUPPORT,
next: ptr::null_mut(),
supported: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetVariableDescriptorCountAllocateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorSetVariableDescriptorCountAllocateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub descriptor_set_count: u32,
pub descriptor_counts: *const u32,
}
impl Default for DescriptorSetVariableDescriptorCountAllocateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
next: ptr::null(),
descriptor_set_count: u32::default(),
descriptor_counts: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetVariableDescriptorCountLayoutSupport.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorSetVariableDescriptorCountLayoutSupport {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_variable_descriptor_count: u32,
}
impl Default for DescriptorSetVariableDescriptorCountLayoutSupport {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
next: ptr::null_mut(),
max_variable_descriptor_count: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplateCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorUpdateTemplateCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: DescriptorUpdateTemplateCreateFlags,
pub descriptor_update_entry_count: u32,
pub descriptor_update_entries: *const DescriptorUpdateTemplateEntry,
pub template_type: DescriptorUpdateTemplateType,
pub descriptor_set_layout: DescriptorSetLayout,
pub pipeline_bind_point: PipelineBindPoint,
pub pipeline_layout: PipelineLayout,
pub set: u32,
}
impl Default for DescriptorUpdateTemplateCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
next: ptr::null(),
flags: DescriptorUpdateTemplateCreateFlags::default(),
descriptor_update_entry_count: u32::default(),
descriptor_update_entries: ptr::null(),
template_type: DescriptorUpdateTemplateType::default(),
descriptor_set_layout: DescriptorSetLayout::default(),
pipeline_bind_point: PipelineBindPoint::default(),
pipeline_layout: PipelineLayout::default(),
set: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplateEntry.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DescriptorUpdateTemplateEntry {
pub dst_binding: u32,
pub dst_array_element: u32,
pub descriptor_count: u32,
pub descriptor_type: DescriptorType,
pub offset: usize,
pub stride: usize,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceAddressBindingCallbackDataEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceAddressBindingCallbackDataEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub flags: DeviceAddressBindingFlagsEXT,
pub base_address: DeviceAddress,
pub size: DeviceSize,
pub binding_type: DeviceAddressBindingTypeEXT,
}
impl Default for DeviceAddressBindingCallbackDataEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT,
next: ptr::null_mut(),
flags: DeviceAddressBindingFlagsEXT::default(),
base_address: DeviceAddress::default(),
size: DeviceSize::default(),
binding_type: DeviceAddressBindingTypeEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceBufferMemoryRequirements.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceBufferMemoryRequirements {
pub s_type: StructureType,
pub next: *const c_void,
pub create_info: *const BufferCreateInfo,
}
impl Default for DeviceBufferMemoryRequirements {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_BUFFER_MEMORY_REQUIREMENTS,
next: ptr::null(),
create_info: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: DeviceCreateFlags,
pub queue_create_info_count: u32,
pub queue_create_infos: *const DeviceQueueCreateInfo,
pub enabled_layer_count: u32,
pub enabled_layer_names: *const *const c_char,
pub enabled_extension_count: u32,
pub enabled_extension_names: *const *const c_char,
pub enabled_features: *const PhysicalDeviceFeatures,
}
impl Default for DeviceCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_CREATE_INFO,
next: ptr::null(),
flags: DeviceCreateFlags::default(),
queue_create_info_count: u32::default(),
queue_create_infos: ptr::null(),
enabled_layer_count: u32::default(),
enabled_layer_names: ptr::null(),
enabled_extension_count: u32::default(),
enabled_extension_names: ptr::null(),
enabled_features: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceDeviceMemoryReportCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone)]
pub struct DeviceDeviceMemoryReportCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: DeviceMemoryReportFlagsEXT,
pub user_callback: PFN_vkDeviceMemoryReportCallbackEXT,
pub user_data: *mut c_void,
}
impl fmt::Debug for DeviceDeviceMemoryReportCreateInfoEXT {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.debug_struct("DeviceDeviceMemoryReportCreateInfoEXT")
.field("s_type", &self.s_type)
.field("next", &self.next)
.field("flags", &self.flags)
.field(
"user_callback",
&(self.user_callback.map(|f| f as *const u8)),
)
.field("user_data", &self.user_data)
.finish()
}
}
impl Default for DeviceDeviceMemoryReportCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT,
next: ptr::null(),
flags: DeviceMemoryReportFlagsEXT::default(),
user_callback: PFN_vkDeviceMemoryReportCallbackEXT::default(),
user_data: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceDiagnosticsConfigCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceDiagnosticsConfigCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: DeviceDiagnosticsConfigFlagsNV,
}
impl Default for DeviceDiagnosticsConfigCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
next: ptr::null(),
flags: DeviceDiagnosticsConfigFlagsNV::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceEventInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceEventInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub device_event: DeviceEventTypeEXT,
}
impl Default for DeviceEventInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_EVENT_INFO_EXT,
next: ptr::null(),
device_event: DeviceEventTypeEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceFaultAddressInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DeviceFaultAddressInfoEXT {
pub address_type: DeviceFaultAddressTypeEXT,
pub reported_address: DeviceAddress,
pub address_precision: DeviceSize,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceFaultCountsEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceFaultCountsEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub address_info_count: u32,
pub vendor_info_count: u32,
pub vendor_binary_size: DeviceSize,
}
impl Default for DeviceFaultCountsEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_FAULT_COUNTS_EXT,
next: ptr::null_mut(),
address_info_count: u32::default(),
vendor_info_count: u32::default(),
vendor_binary_size: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceFaultInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceFaultInfoEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub description: StringArray<MAX_DESCRIPTION_SIZE>,
pub address_infos: *mut DeviceFaultAddressInfoEXT,
pub vendor_infos: *mut DeviceFaultVendorInfoEXT,
pub vendor_binary_data: *mut c_void,
}
impl Default for DeviceFaultInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_FAULT_INFO_EXT,
next: ptr::null_mut(),
description: StringArray::default(),
address_infos: ptr::null_mut(),
vendor_infos: ptr::null_mut(),
vendor_binary_data: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceFaultVendorBinaryHeaderVersionOneEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DeviceFaultVendorBinaryHeaderVersionOneEXT {
pub header_size: u32,
pub header_version: DeviceFaultVendorBinaryHeaderVersionEXT,
pub vendor_id: u32,
pub device_id: u32,
pub driver_version: u32,
pub pipeline_cache_uuid: ByteArray<UUID_SIZE>,
pub application_name_offset: u32,
pub application_version: u32,
pub engine_name_offset: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceFaultVendorInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DeviceFaultVendorInfoEXT {
pub description: StringArray<MAX_DESCRIPTION_SIZE>,
pub vendor_fault_code: u64,
pub vendor_fault_data: u64,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupBindSparseInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceGroupBindSparseInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub resource_device_index: u32,
pub memory_device_index: u32,
}
impl Default for DeviceGroupBindSparseInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_GROUP_BIND_SPARSE_INFO,
next: ptr::null(),
resource_device_index: u32::default(),
memory_device_index: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupCommandBufferBeginInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceGroupCommandBufferBeginInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub device_mask: u32,
}
impl Default for DeviceGroupCommandBufferBeginInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
next: ptr::null(),
device_mask: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupDeviceCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceGroupDeviceCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub physical_device_count: u32,
pub physical_devices: *const PhysicalDevice,
}
impl Default for DeviceGroupDeviceCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_GROUP_DEVICE_CREATE_INFO,
next: ptr::null(),
physical_device_count: u32::default(),
physical_devices: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupPresentCapabilitiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceGroupPresentCapabilitiesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub present_mask: [u32; MAX_DEVICE_GROUP_SIZE],
pub modes: DeviceGroupPresentModeFlagsKHR,
}
impl Default for DeviceGroupPresentCapabilitiesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
next: ptr::null_mut(),
present_mask: [u32::default(); MAX_DEVICE_GROUP_SIZE],
modes: DeviceGroupPresentModeFlagsKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupPresentInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceGroupPresentInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub swapchain_count: u32,
pub device_masks: *const u32,
pub mode: DeviceGroupPresentModeFlagsKHR,
}
impl Default for DeviceGroupPresentInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_GROUP_PRESENT_INFO_KHR,
next: ptr::null(),
swapchain_count: u32::default(),
device_masks: ptr::null(),
mode: DeviceGroupPresentModeFlagsKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupRenderPassBeginInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceGroupRenderPassBeginInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub device_mask: u32,
pub device_render_area_count: u32,
pub device_render_areas: *const Rect2D,
}
impl Default for DeviceGroupRenderPassBeginInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
next: ptr::null(),
device_mask: u32::default(),
device_render_area_count: u32::default(),
device_render_areas: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupSubmitInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceGroupSubmitInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub wait_semaphore_count: u32,
pub wait_semaphore_device_indices: *const u32,
pub command_buffer_count: u32,
pub command_buffer_device_masks: *const u32,
pub signal_semaphore_count: u32,
pub signal_semaphore_device_indices: *const u32,
}
impl Default for DeviceGroupSubmitInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_GROUP_SUBMIT_INFO,
next: ptr::null(),
wait_semaphore_count: u32::default(),
wait_semaphore_device_indices: ptr::null(),
command_buffer_count: u32::default(),
command_buffer_device_masks: ptr::null(),
signal_semaphore_count: u32::default(),
signal_semaphore_device_indices: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupSwapchainCreateInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceGroupSwapchainCreateInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub modes: DeviceGroupPresentModeFlagsKHR,
}
impl Default for DeviceGroupSwapchainCreateInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
next: ptr::null(),
modes: DeviceGroupPresentModeFlagsKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceImageMemoryRequirements.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceImageMemoryRequirements {
pub s_type: StructureType,
pub next: *const c_void,
pub create_info: *const ImageCreateInfo,
pub plane_aspect: ImageAspectFlags,
}
impl Default for DeviceImageMemoryRequirements {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_IMAGE_MEMORY_REQUIREMENTS,
next: ptr::null(),
create_info: ptr::null(),
plane_aspect: ImageAspectFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceMemoryOpaqueCaptureAddressInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceMemoryOpaqueCaptureAddressInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub memory: DeviceMemory,
}
impl Default for DeviceMemoryOpaqueCaptureAddressInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
next: ptr::null(),
memory: DeviceMemory::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceMemoryOverallocationCreateInfoAMD.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceMemoryOverallocationCreateInfoAMD {
pub s_type: StructureType,
pub next: *const c_void,
pub overallocation_behavior: MemoryOverallocationBehaviorAMD,
}
impl Default for DeviceMemoryOverallocationCreateInfoAMD {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,
next: ptr::null(),
overallocation_behavior: MemoryOverallocationBehaviorAMD::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceMemoryReportCallbackDataEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceMemoryReportCallbackDataEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub flags: DeviceMemoryReportFlagsEXT,
pub type_: DeviceMemoryReportEventTypeEXT,
pub memory_object_id: u64,
pub size: DeviceSize,
pub object_type: ObjectType,
pub object_handle: u64,
pub heap_index: u32,
}
impl Default for DeviceMemoryReportCallbackDataEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT,
next: ptr::null_mut(),
flags: DeviceMemoryReportFlagsEXT::default(),
type_: DeviceMemoryReportEventTypeEXT::default(),
memory_object_id: u64::default(),
size: DeviceSize::default(),
object_type: ObjectType::default(),
object_handle: u64::default(),
heap_index: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDevicePrivateDataCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DevicePrivateDataCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub private_data_slot_request_count: u32,
}
impl Default for DevicePrivateDataCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_PRIVATE_DATA_CREATE_INFO,
next: ptr::null(),
private_data_slot_request_count: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceQueueCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceQueueCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: DeviceQueueCreateFlags,
pub queue_family_index: u32,
pub queue_count: u32,
pub queue_priorities: *const f32,
}
impl Default for DeviceQueueCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_QUEUE_CREATE_INFO,
next: ptr::null(),
flags: DeviceQueueCreateFlags::default(),
queue_family_index: u32::default(),
queue_count: u32::default(),
queue_priorities: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceQueueGlobalPriorityCreateInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceQueueGlobalPriorityCreateInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub global_priority: QueueGlobalPriorityKHR,
}
impl Default for DeviceQueueGlobalPriorityCreateInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR,
next: ptr::null(),
global_priority: QueueGlobalPriorityKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceQueueInfo2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DeviceQueueInfo2 {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: DeviceQueueCreateFlags,
pub queue_family_index: u32,
pub queue_index: u32,
}
impl Default for DeviceQueueInfo2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DEVICE_QUEUE_INFO_2,
next: ptr::null(),
flags: DeviceQueueCreateFlags::default(),
queue_family_index: u32::default(),
queue_index: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDirectDriverLoadingInfoLUNARG.html>
#[repr(C)]
#[derive(Copy, Clone)]
pub struct DirectDriverLoadingInfoLUNARG {
pub s_type: StructureType,
pub next: *mut c_void,
pub flags: DirectDriverLoadingFlagsLUNARG,
pub get_instance_proc_addr: PFN_vkGetInstanceProcAddrLUNARG,
}
impl fmt::Debug for DirectDriverLoadingInfoLUNARG {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.debug_struct("DirectDriverLoadingInfoLUNARG")
.field("s_type", &self.s_type)
.field("next", &self.next)
.field("flags", &self.flags)
.field(
"get_instance_proc_addr",
&(self.get_instance_proc_addr.map(|f| f as *const u8)),
)
.finish()
}
}
impl Default for DirectDriverLoadingInfoLUNARG {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DIRECT_DRIVER_LOADING_INFO_LUNARG,
next: ptr::null_mut(),
flags: DirectDriverLoadingFlagsLUNARG::default(),
get_instance_proc_addr: PFN_vkGetInstanceProcAddrLUNARG::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDirectDriverLoadingListLUNARG.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DirectDriverLoadingListLUNARG {
pub s_type: StructureType,
pub next: *mut c_void,
pub mode: DirectDriverLoadingModeLUNARG,
pub driver_count: u32,
pub drivers: *const DirectDriverLoadingInfoLUNARG,
}
impl Default for DirectDriverLoadingListLUNARG {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DIRECT_DRIVER_LOADING_LIST_LUNARG,
next: ptr::null_mut(),
mode: DirectDriverLoadingModeLUNARG::default(),
driver_count: u32::default(),
drivers: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDirectFBSurfaceCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DirectFBSurfaceCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: DirectFBSurfaceCreateFlagsEXT,
pub dfb: *mut IDirectFB,
pub surface: *mut IDirectFBSurface,
}
impl Default for DirectFBSurfaceCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DIRECTFB_SURFACE_CREATE_INFO_EXT,
next: ptr::null(),
flags: DirectFBSurfaceCreateFlagsEXT::default(),
dfb: ptr::null_mut(),
surface: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDispatchIndirectCommand.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DispatchIndirectCommand {
pub x: u32,
pub y: u32,
pub z: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayEventInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DisplayEventInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub display_event: DisplayEventTypeEXT,
}
impl Default for DisplayEventInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DISPLAY_EVENT_INFO_EXT,
next: ptr::null(),
display_event: DisplayEventTypeEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayModeCreateInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DisplayModeCreateInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: DisplayModeCreateFlagsKHR,
pub parameters: DisplayModeParametersKHR,
}
impl Default for DisplayModeCreateInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DISPLAY_MODE_CREATE_INFO_KHR,
next: ptr::null(),
flags: DisplayModeCreateFlagsKHR::default(),
parameters: DisplayModeParametersKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayModeParametersKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DisplayModeParametersKHR {
pub visible_region: Extent2D,
pub refresh_rate: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayModeProperties2KHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DisplayModeProperties2KHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub display_mode_properties: DisplayModePropertiesKHR,
}
impl Default for DisplayModeProperties2KHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DISPLAY_MODE_PROPERTIES_2_KHR,
next: ptr::null_mut(),
display_mode_properties: DisplayModePropertiesKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayModePropertiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DisplayModePropertiesKHR {
pub display_mode: DisplayModeKHR,
pub parameters: DisplayModeParametersKHR,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayNativeHdrSurfaceCapabilitiesAMD.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DisplayNativeHdrSurfaceCapabilitiesAMD {
pub s_type: StructureType,
pub next: *mut c_void,
pub local_dimming_support: Bool32,
}
impl Default for DisplayNativeHdrSurfaceCapabilitiesAMD {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,
next: ptr::null_mut(),
local_dimming_support: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayPlaneCapabilities2KHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DisplayPlaneCapabilities2KHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub capabilities: DisplayPlaneCapabilitiesKHR,
}
impl Default for DisplayPlaneCapabilities2KHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DISPLAY_PLANE_CAPABILITIES_2_KHR,
next: ptr::null_mut(),
capabilities: DisplayPlaneCapabilitiesKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayPlaneCapabilitiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DisplayPlaneCapabilitiesKHR {
pub supported_alpha: DisplayPlaneAlphaFlagsKHR,
pub min_src_position: Offset2D,
pub max_src_position: Offset2D,
pub min_src_extent: Extent2D,
pub max_src_extent: Extent2D,
pub min_dst_position: Offset2D,
pub max_dst_position: Offset2D,
pub min_dst_extent: Extent2D,
pub max_dst_extent: Extent2D,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayPlaneInfo2KHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DisplayPlaneInfo2KHR {
pub s_type: StructureType,
pub next: *const c_void,
pub mode: DisplayModeKHR,
pub plane_index: u32,
}
impl Default for DisplayPlaneInfo2KHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DISPLAY_PLANE_INFO_2_KHR,
next: ptr::null(),
mode: DisplayModeKHR::default(),
plane_index: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayPlaneProperties2KHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DisplayPlaneProperties2KHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub display_plane_properties: DisplayPlanePropertiesKHR,
}
impl Default for DisplayPlaneProperties2KHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DISPLAY_PLANE_PROPERTIES_2_KHR,
next: ptr::null_mut(),
display_plane_properties: DisplayPlanePropertiesKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayPlanePropertiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DisplayPlanePropertiesKHR {
pub current_display: DisplayKHR,
pub current_stack_index: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayPowerInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DisplayPowerInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub power_state: DisplayPowerStateEXT,
}
impl Default for DisplayPowerInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DISPLAY_POWER_INFO_EXT,
next: ptr::null(),
power_state: DisplayPowerStateEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayPresentInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DisplayPresentInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub src_rect: Rect2D,
pub dst_rect: Rect2D,
pub persistent: Bool32,
}
impl Default for DisplayPresentInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DISPLAY_PRESENT_INFO_KHR,
next: ptr::null(),
src_rect: Rect2D::default(),
dst_rect: Rect2D::default(),
persistent: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayProperties2KHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DisplayProperties2KHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub display_properties: DisplayPropertiesKHR,
}
impl Default for DisplayProperties2KHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DISPLAY_PROPERTIES_2_KHR,
next: ptr::null_mut(),
display_properties: DisplayPropertiesKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayPropertiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DisplayPropertiesKHR {
pub display: DisplayKHR,
pub display_name: *const c_char,
pub physical_dimensions: Extent2D,
pub physical_resolution: Extent2D,
pub supported_transforms: SurfaceTransformFlagsKHR,
pub plane_reorder_possible: Bool32,
pub persistent_content: Bool32,
}
impl Default for DisplayPropertiesKHR {
#[inline]
fn default() -> Self {
Self {
display: DisplayKHR::default(),
display_name: ptr::null(),
physical_dimensions: Extent2D::default(),
physical_resolution: Extent2D::default(),
supported_transforms: SurfaceTransformFlagsKHR::default(),
plane_reorder_possible: Bool32::default(),
persistent_content: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplaySurfaceCreateInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct DisplaySurfaceCreateInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: DisplaySurfaceCreateFlagsKHR,
pub display_mode: DisplayModeKHR,
pub plane_index: u32,
pub plane_stack_index: u32,
pub transform: SurfaceTransformFlagsKHR,
pub global_alpha: f32,
pub alpha_mode: DisplayPlaneAlphaFlagsKHR,
pub image_extent: Extent2D,
}
impl Default for DisplaySurfaceCreateInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DISPLAY_SURFACE_CREATE_INFO_KHR,
next: ptr::null(),
flags: DisplaySurfaceCreateFlagsKHR::default(),
display_mode: DisplayModeKHR::default(),
plane_index: u32::default(),
plane_stack_index: u32::default(),
transform: SurfaceTransformFlagsKHR::default(),
global_alpha: f32::default(),
alpha_mode: DisplayPlaneAlphaFlagsKHR::default(),
image_extent: Extent2D::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDrawIndexedIndirectCommand.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DrawIndexedIndirectCommand {
pub index_count: u32,
pub instance_count: u32,
pub first_index: u32,
pub vertex_offset: i32,
pub first_instance: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDrawIndirectCommand.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DrawIndirectCommand {
pub vertex_count: u32,
pub instance_count: u32,
pub first_vertex: u32,
pub first_instance: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDrawMeshTasksIndirectCommandEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DrawMeshTasksIndirectCommandEXT {
pub group_count_x: u32,
pub group_count_y: u32,
pub group_count_z: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDrawMeshTasksIndirectCommandNV.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DrawMeshTasksIndirectCommandNV {
pub task_count: u32,
pub first_task: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDrmFormatModifierProperties2EXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DrmFormatModifierProperties2EXT {
pub drm_format_modifier: u64,
pub drm_format_modifier_plane_count: u32,
pub drm_format_modifier_tiling_features: FormatFeatureFlags2,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDrmFormatModifierPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct DrmFormatModifierPropertiesEXT {
pub drm_format_modifier: u64,
pub drm_format_modifier_plane_count: u32,
pub drm_format_modifier_tiling_features: FormatFeatureFlags,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDrmFormatModifierPropertiesList2EXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DrmFormatModifierPropertiesList2EXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub drm_format_modifier_count: u32,
pub drm_format_modifier_properties: *mut DrmFormatModifierProperties2EXT,
}
impl Default for DrmFormatModifierPropertiesList2EXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT,
next: ptr::null_mut(),
drm_format_modifier_count: u32::default(),
drm_format_modifier_properties: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDrmFormatModifierPropertiesListEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct DrmFormatModifierPropertiesListEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub drm_format_modifier_count: u32,
pub drm_format_modifier_properties: *mut DrmFormatModifierPropertiesEXT,
}
impl Default for DrmFormatModifierPropertiesListEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
next: ptr::null_mut(),
drm_format_modifier_count: u32::default(),
drm_format_modifier_properties: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkEventCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct EventCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: EventCreateFlags,
}
impl Default for EventCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EVENT_CREATE_INFO,
next: ptr::null(),
flags: EventCreateFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportFenceCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExportFenceCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub handle_types: ExternalFenceHandleTypeFlags,
}
impl Default for ExportFenceCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXPORT_FENCE_CREATE_INFO,
next: ptr::null(),
handle_types: ExternalFenceHandleTypeFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportFenceWin32HandleInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExportFenceWin32HandleInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub attributes: *const SECURITY_ATTRIBUTES,
pub dw_access: DWORD,
pub name: LPCWSTR,
}
impl Default for ExportFenceWin32HandleInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,
next: ptr::null(),
attributes: ptr::null(),
dw_access: DWORD::default(),
name: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportMemoryAllocateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExportMemoryAllocateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub handle_types: ExternalMemoryHandleTypeFlags,
}
impl Default for ExportMemoryAllocateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXPORT_MEMORY_ALLOCATE_INFO,
next: ptr::null(),
handle_types: ExternalMemoryHandleTypeFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportMemoryAllocateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExportMemoryAllocateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub handle_types: ExternalMemoryHandleTypeFlagsNV,
}
impl Default for ExportMemoryAllocateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXPORT_MEMORY_ALLOCATE_INFO_NV,
next: ptr::null(),
handle_types: ExternalMemoryHandleTypeFlagsNV::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportMemoryWin32HandleInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExportMemoryWin32HandleInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub attributes: *const SECURITY_ATTRIBUTES,
pub dw_access: DWORD,
pub name: LPCWSTR,
}
impl Default for ExportMemoryWin32HandleInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
next: ptr::null(),
attributes: ptr::null(),
dw_access: DWORD::default(),
name: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportMemoryWin32HandleInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExportMemoryWin32HandleInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub attributes: *const SECURITY_ATTRIBUTES,
pub dw_access: DWORD,
}
impl Default for ExportMemoryWin32HandleInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXPORT_MEMORY_WIN32_HANDLE_INFO_NV,
next: ptr::null(),
attributes: ptr::null(),
dw_access: DWORD::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportMetalBufferInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExportMetalBufferInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub memory: DeviceMemory,
pub mtl_buffer: MTLBuffer_id,
}
impl Default for ExportMetalBufferInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXPORT_METAL_BUFFER_INFO_EXT,
next: ptr::null(),
memory: DeviceMemory::default(),
mtl_buffer: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportMetalCommandQueueInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExportMetalCommandQueueInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub queue: Queue,
pub mtl_command_queue: MTLCommandQueue_id,
}
impl Default for ExportMetalCommandQueueInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXPORT_METAL_COMMAND_QUEUE_INFO_EXT,
next: ptr::null(),
queue: Queue::default(),
mtl_command_queue: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportMetalDeviceInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExportMetalDeviceInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub mtl_device: MTLDevice_id,
}
impl Default for ExportMetalDeviceInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXPORT_METAL_DEVICE_INFO_EXT,
next: ptr::null(),
mtl_device: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportMetalIOSurfaceInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExportMetalIOSurfaceInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub image: Image,
pub io_surface: IOSurfaceRef,
}
impl Default for ExportMetalIOSurfaceInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXPORT_METAL_IO_SURFACE_INFO_EXT,
next: ptr::null(),
image: Image::default(),
io_surface: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportMetalObjectCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExportMetalObjectCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub export_object_type: ExportMetalObjectTypeFlagsEXT,
}
impl Default for ExportMetalObjectCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXPORT_METAL_OBJECT_CREATE_INFO_EXT,
next: ptr::null(),
export_object_type: ExportMetalObjectTypeFlagsEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportMetalObjectsInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExportMetalObjectsInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
}
impl Default for ExportMetalObjectsInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXPORT_METAL_OBJECTS_INFO_EXT,
next: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportMetalSharedEventInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExportMetalSharedEventInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub semaphore: Semaphore,
pub event: Event,
pub mtl_shared_event: MTLSharedEvent_id,
}
impl Default for ExportMetalSharedEventInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXPORT_METAL_SHARED_EVENT_INFO_EXT,
next: ptr::null(),
semaphore: Semaphore::default(),
event: Event::default(),
mtl_shared_event: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportMetalTextureInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExportMetalTextureInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub image: Image,
pub image_view: ImageView,
pub buffer_view: BufferView,
pub plane: ImageAspectFlags,
pub mtl_texture: MTLTexture_id,
}
impl Default for ExportMetalTextureInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXPORT_METAL_TEXTURE_INFO_EXT,
next: ptr::null(),
image: Image::default(),
image_view: ImageView::default(),
buffer_view: BufferView::default(),
plane: ImageAspectFlags::default(),
mtl_texture: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportSemaphoreCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExportSemaphoreCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub handle_types: ExternalSemaphoreHandleTypeFlags,
}
impl Default for ExportSemaphoreCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXPORT_SEMAPHORE_CREATE_INFO,
next: ptr::null(),
handle_types: ExternalSemaphoreHandleTypeFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportSemaphoreWin32HandleInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExportSemaphoreWin32HandleInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub attributes: *const SECURITY_ATTRIBUTES,
pub dw_access: DWORD,
pub name: LPCWSTR,
}
impl Default for ExportSemaphoreWin32HandleInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
next: ptr::null(),
attributes: ptr::null(),
dw_access: DWORD::default(),
name: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExtensionProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ExtensionProperties {
pub extension_name: StringArray<MAX_EXTENSION_NAME_SIZE>,
pub spec_version: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExtent2D.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct Extent2D {
pub width: u32,
pub height: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExtent3D.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct Extent3D {
pub width: u32,
pub height: u32,
pub depth: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExternalBufferProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExternalBufferProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub external_memory_properties: ExternalMemoryProperties,
}
impl Default for ExternalBufferProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXTERNAL_BUFFER_PROPERTIES,
next: ptr::null_mut(),
external_memory_properties: ExternalMemoryProperties::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExternalFenceProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExternalFenceProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub export_from_imported_handle_types: ExternalFenceHandleTypeFlags,
pub compatible_handle_types: ExternalFenceHandleTypeFlags,
pub external_fence_features: ExternalFenceFeatureFlags,
}
impl Default for ExternalFenceProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXTERNAL_FENCE_PROPERTIES,
next: ptr::null_mut(),
export_from_imported_handle_types: ExternalFenceHandleTypeFlags::default(),
compatible_handle_types: ExternalFenceHandleTypeFlags::default(),
external_fence_features: ExternalFenceFeatureFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExternalFormatANDROID.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExternalFormatANDROID {
pub s_type: StructureType,
pub next: *mut c_void,
pub external_format: u64,
}
impl Default for ExternalFormatANDROID {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXTERNAL_FORMAT_ANDROID,
next: ptr::null_mut(),
external_format: u64::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExternalImageFormatProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExternalImageFormatProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub external_memory_properties: ExternalMemoryProperties,
}
impl Default for ExternalImageFormatProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXTERNAL_IMAGE_FORMAT_PROPERTIES,
next: ptr::null_mut(),
external_memory_properties: ExternalMemoryProperties::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExternalImageFormatPropertiesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ExternalImageFormatPropertiesNV {
pub image_format_properties: ImageFormatProperties,
pub external_memory_features: ExternalMemoryFeatureFlagsNV,
pub export_from_imported_handle_types: ExternalMemoryHandleTypeFlagsNV,
pub compatible_handle_types: ExternalMemoryHandleTypeFlagsNV,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryBufferCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExternalMemoryBufferCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub handle_types: ExternalMemoryHandleTypeFlags,
}
impl Default for ExternalMemoryBufferCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
next: ptr::null(),
handle_types: ExternalMemoryHandleTypeFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryImageCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExternalMemoryImageCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub handle_types: ExternalMemoryHandleTypeFlags,
}
impl Default for ExternalMemoryImageCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
next: ptr::null(),
handle_types: ExternalMemoryHandleTypeFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryImageCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExternalMemoryImageCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub handle_types: ExternalMemoryHandleTypeFlagsNV,
}
impl Default for ExternalMemoryImageCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
next: ptr::null(),
handle_types: ExternalMemoryHandleTypeFlagsNV::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ExternalMemoryProperties {
pub external_memory_features: ExternalMemoryFeatureFlags,
pub export_from_imported_handle_types: ExternalMemoryHandleTypeFlags,
pub compatible_handle_types: ExternalMemoryHandleTypeFlags,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ExternalSemaphoreProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub export_from_imported_handle_types: ExternalSemaphoreHandleTypeFlags,
pub compatible_handle_types: ExternalSemaphoreHandleTypeFlags,
pub external_semaphore_features: ExternalSemaphoreFeatureFlags,
}
impl Default for ExternalSemaphoreProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::EXTERNAL_SEMAPHORE_PROPERTIES,
next: ptr::null_mut(),
export_from_imported_handle_types: ExternalSemaphoreHandleTypeFlags::default(),
compatible_handle_types: ExternalSemaphoreHandleTypeFlags::default(),
external_semaphore_features: ExternalSemaphoreFeatureFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFenceCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct FenceCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: FenceCreateFlags,
}
impl Default for FenceCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::FENCE_CREATE_INFO,
next: ptr::null(),
flags: FenceCreateFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFenceGetFdInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct FenceGetFdInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub fence: Fence,
pub handle_type: ExternalFenceHandleTypeFlags,
}
impl Default for FenceGetFdInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::FENCE_GET_FD_INFO_KHR,
next: ptr::null(),
fence: Fence::default(),
handle_type: ExternalFenceHandleTypeFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFenceGetWin32HandleInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct FenceGetWin32HandleInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub fence: Fence,
pub handle_type: ExternalFenceHandleTypeFlags,
}
impl Default for FenceGetWin32HandleInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::FENCE_GET_WIN32_HANDLE_INFO_KHR,
next: ptr::null(),
fence: Fence::default(),
handle_type: ExternalFenceHandleTypeFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFilterCubicImageViewImageFormatPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct FilterCubicImageViewImageFormatPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub filter_cubic: Bool32,
pub filter_cubic_minmax: Bool32,
}
impl Default for FilterCubicImageViewImageFormatPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,
next: ptr::null_mut(),
filter_cubic: Bool32::default(),
filter_cubic_minmax: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFormatProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct FormatProperties {
pub linear_tiling_features: FormatFeatureFlags,
pub optimal_tiling_features: FormatFeatureFlags,
pub buffer_features: FormatFeatureFlags,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFormatProperties2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct FormatProperties2 {
pub s_type: StructureType,
pub next: *mut c_void,
pub format_properties: FormatProperties,
}
impl Default for FormatProperties2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::FORMAT_PROPERTIES_2,
next: ptr::null_mut(),
format_properties: FormatProperties::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFormatProperties3.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct FormatProperties3 {
pub s_type: StructureType,
pub next: *mut c_void,
pub linear_tiling_features: FormatFeatureFlags2,
pub optimal_tiling_features: FormatFeatureFlags2,
pub buffer_features: FormatFeatureFlags2,
}
impl Default for FormatProperties3 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::FORMAT_PROPERTIES_3,
next: ptr::null_mut(),
linear_tiling_features: FormatFeatureFlags2::default(),
optimal_tiling_features: FormatFeatureFlags2::default(),
buffer_features: FormatFeatureFlags2::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFragmentShadingRateAttachmentInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct FragmentShadingRateAttachmentInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub fragment_shading_rate_attachment: *const AttachmentReference2,
pub shading_rate_attachment_texel_size: Extent2D,
}
impl Default for FragmentShadingRateAttachmentInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
next: ptr::null(),
fragment_shading_rate_attachment: ptr::null(),
shading_rate_attachment_texel_size: Extent2D::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFramebufferAttachmentImageInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct FramebufferAttachmentImageInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: ImageCreateFlags,
pub usage: ImageUsageFlags,
pub width: u32,
pub height: u32,
pub layer_count: u32,
pub view_format_count: u32,
pub view_formats: *const Format,
}
impl Default for FramebufferAttachmentImageInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
next: ptr::null(),
flags: ImageCreateFlags::default(),
usage: ImageUsageFlags::default(),
width: u32::default(),
height: u32::default(),
layer_count: u32::default(),
view_format_count: u32::default(),
view_formats: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFramebufferAttachmentsCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct FramebufferAttachmentsCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub attachment_image_info_count: u32,
pub attachment_image_infos: *const FramebufferAttachmentImageInfo,
}
impl Default for FramebufferAttachmentsCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
next: ptr::null(),
attachment_image_info_count: u32::default(),
attachment_image_infos: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFramebufferCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct FramebufferCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: FramebufferCreateFlags,
pub render_pass: RenderPass,
pub attachment_count: u32,
pub attachments: *const ImageView,
pub width: u32,
pub height: u32,
pub layers: u32,
}
impl Default for FramebufferCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::FRAMEBUFFER_CREATE_INFO,
next: ptr::null(),
flags: FramebufferCreateFlags::default(),
render_pass: RenderPass::default(),
attachment_count: u32::default(),
attachments: ptr::null(),
width: u32::default(),
height: u32::default(),
layers: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFramebufferMixedSamplesCombinationNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct FramebufferMixedSamplesCombinationNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub coverage_reduction_mode: CoverageReductionModeNV,
pub rasterization_samples: SampleCountFlags,
pub depth_stencil_samples: SampleCountFlags,
pub color_samples: SampleCountFlags,
}
impl Default for FramebufferMixedSamplesCombinationNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,
next: ptr::null_mut(),
coverage_reduction_mode: CoverageReductionModeNV::default(),
rasterization_samples: SampleCountFlags::default(),
depth_stencil_samples: SampleCountFlags::default(),
color_samples: SampleCountFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkGeneratedCommandsInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct GeneratedCommandsInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub pipeline_bind_point: PipelineBindPoint,
pub pipeline: Pipeline,
pub indirect_commands_layout: IndirectCommandsLayoutNV,
pub stream_count: u32,
pub streams: *const IndirectCommandsStreamNV,
pub sequences_count: u32,
pub preprocess_buffer: Buffer,
pub preprocess_offset: DeviceSize,
pub preprocess_size: DeviceSize,
pub sequences_count_buffer: Buffer,
pub sequences_count_offset: DeviceSize,
pub sequences_index_buffer: Buffer,
pub sequences_index_offset: DeviceSize,
}
impl Default for GeneratedCommandsInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::GENERATED_COMMANDS_INFO_NV,
next: ptr::null(),
pipeline_bind_point: PipelineBindPoint::default(),
pipeline: Pipeline::default(),
indirect_commands_layout: IndirectCommandsLayoutNV::default(),
stream_count: u32::default(),
streams: ptr::null(),
sequences_count: u32::default(),
preprocess_buffer: Buffer::default(),
preprocess_offset: DeviceSize::default(),
preprocess_size: DeviceSize::default(),
sequences_count_buffer: Buffer::default(),
sequences_count_offset: DeviceSize::default(),
sequences_index_buffer: Buffer::default(),
sequences_index_offset: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkGeneratedCommandsMemoryRequirementsInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct GeneratedCommandsMemoryRequirementsInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub pipeline_bind_point: PipelineBindPoint,
pub pipeline: Pipeline,
pub indirect_commands_layout: IndirectCommandsLayoutNV,
pub max_sequences_count: u32,
}
impl Default for GeneratedCommandsMemoryRequirementsInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV,
next: ptr::null(),
pipeline_bind_point: PipelineBindPoint::default(),
pipeline: Pipeline::default(),
indirect_commands_layout: IndirectCommandsLayoutNV::default(),
max_sequences_count: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkGeometryAABBNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct GeometryAABBNV {
pub s_type: StructureType,
pub next: *const c_void,
pub aabb_data: Buffer,
pub num_aab_bs: u32,
pub stride: u32,
pub offset: DeviceSize,
}
impl Default for GeometryAABBNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::GEOMETRY_AABB_NV,
next: ptr::null(),
aabb_data: Buffer::default(),
num_aab_bs: u32::default(),
stride: u32::default(),
offset: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkGeometryDataNV.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct GeometryDataNV {
pub triangles: GeometryTrianglesNV,
pub aabbs: GeometryAABBNV,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkGeometryNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct GeometryNV {
pub s_type: StructureType,
pub next: *const c_void,
pub geometry_type: GeometryTypeKHR,
pub geometry: GeometryDataNV,
pub flags: GeometryFlagsKHR,
}
impl Default for GeometryNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::GEOMETRY_NV,
next: ptr::null(),
geometry_type: GeometryTypeKHR::default(),
geometry: GeometryDataNV::default(),
flags: GeometryFlagsKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkGeometryTrianglesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct GeometryTrianglesNV {
pub s_type: StructureType,
pub next: *const c_void,
pub vertex_data: Buffer,
pub vertex_offset: DeviceSize,
pub vertex_count: u32,
pub vertex_stride: DeviceSize,
pub vertex_format: Format,
pub index_data: Buffer,
pub index_offset: DeviceSize,
pub index_count: u32,
pub index_type: IndexType,
pub transform_data: Buffer,
pub transform_offset: DeviceSize,
}
impl Default for GeometryTrianglesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::GEOMETRY_TRIANGLES_NV,
next: ptr::null(),
vertex_data: Buffer::default(),
vertex_offset: DeviceSize::default(),
vertex_count: u32::default(),
vertex_stride: DeviceSize::default(),
vertex_format: Format::default(),
index_data: Buffer::default(),
index_offset: DeviceSize::default(),
index_count: u32::default(),
index_type: IndexType::default(),
transform_data: Buffer::default(),
transform_offset: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkGraphicsPipelineCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct GraphicsPipelineCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineCreateFlags,
pub stage_count: u32,
pub stages: *const PipelineShaderStageCreateInfo,
pub vertex_input_state: *const PipelineVertexInputStateCreateInfo,
pub input_assembly_state: *const PipelineInputAssemblyStateCreateInfo,
pub tessellation_state: *const PipelineTessellationStateCreateInfo,
pub viewport_state: *const PipelineViewportStateCreateInfo,
pub rasterization_state: *const PipelineRasterizationStateCreateInfo,
pub multisample_state: *const PipelineMultisampleStateCreateInfo,
pub depth_stencil_state: *const PipelineDepthStencilStateCreateInfo,
pub color_blend_state: *const PipelineColorBlendStateCreateInfo,
pub dynamic_state: *const PipelineDynamicStateCreateInfo,
pub layout: PipelineLayout,
pub render_pass: RenderPass,
pub subpass: u32,
pub base_pipeline_handle: Pipeline,
pub base_pipeline_index: i32,
}
impl Default for GraphicsPipelineCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::GRAPHICS_PIPELINE_CREATE_INFO,
next: ptr::null(),
flags: PipelineCreateFlags::default(),
stage_count: u32::default(),
stages: ptr::null(),
vertex_input_state: ptr::null(),
input_assembly_state: ptr::null(),
tessellation_state: ptr::null(),
viewport_state: ptr::null(),
rasterization_state: ptr::null(),
multisample_state: ptr::null(),
depth_stencil_state: ptr::null(),
color_blend_state: ptr::null(),
dynamic_state: ptr::null(),
layout: PipelineLayout::default(),
render_pass: RenderPass::default(),
subpass: u32::default(),
base_pipeline_handle: Pipeline::default(),
base_pipeline_index: i32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkGraphicsPipelineLibraryCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct GraphicsPipelineLibraryCreateInfoEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub flags: GraphicsPipelineLibraryFlagsEXT,
}
impl Default for GraphicsPipelineLibraryCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT,
next: ptr::null_mut(),
flags: GraphicsPipelineLibraryFlagsEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkGraphicsPipelineShaderGroupsCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct GraphicsPipelineShaderGroupsCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub group_count: u32,
pub groups: *const GraphicsShaderGroupCreateInfoNV,
pub pipeline_count: u32,
pub pipelines: *const Pipeline,
}
impl Default for GraphicsPipelineShaderGroupsCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV,
next: ptr::null(),
group_count: u32::default(),
groups: ptr::null(),
pipeline_count: u32::default(),
pipelines: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkGraphicsShaderGroupCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct GraphicsShaderGroupCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub stage_count: u32,
pub stages: *const PipelineShaderStageCreateInfo,
pub vertex_input_state: *const PipelineVertexInputStateCreateInfo,
pub tessellation_state: *const PipelineTessellationStateCreateInfo,
}
impl Default for GraphicsShaderGroupCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::GRAPHICS_SHADER_GROUP_CREATE_INFO_NV,
next: ptr::null(),
stage_count: u32::default(),
stages: ptr::null(),
vertex_input_state: ptr::null(),
tessellation_state: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkHdrMetadataEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct HdrMetadataEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub display_primary_red: XYColorEXT,
pub display_primary_green: XYColorEXT,
pub display_primary_blue: XYColorEXT,
pub white_point: XYColorEXT,
pub max_luminance: f32,
pub min_luminance: f32,
pub max_content_light_level: f32,
pub max_frame_average_light_level: f32,
}
impl Default for HdrMetadataEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::HDR_METADATA_EXT,
next: ptr::null(),
display_primary_red: XYColorEXT::default(),
display_primary_green: XYColorEXT::default(),
display_primary_blue: XYColorEXT::default(),
white_point: XYColorEXT::default(),
max_luminance: f32::default(),
min_luminance: f32::default(),
max_content_light_level: f32::default(),
max_frame_average_light_level: f32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkHeadlessSurfaceCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct HeadlessSurfaceCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: HeadlessSurfaceCreateFlagsEXT,
}
impl Default for HeadlessSurfaceCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::HEADLESS_SURFACE_CREATE_INFO_EXT,
next: ptr::null(),
flags: HeadlessSurfaceCreateFlagsEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkIOSSurfaceCreateInfoMVK.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct IOSSurfaceCreateInfoMVK {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: IOSSurfaceCreateFlagsMVK,
pub view: *const c_void,
}
impl Default for IOSSurfaceCreateInfoMVK {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IOS_SURFACE_CREATE_INFO_MVK,
next: ptr::null(),
flags: IOSSurfaceCreateFlagsMVK::default(),
view: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageBlit.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ImageBlit {
pub src_subresource: ImageSubresourceLayers,
pub src_offsets: [Offset3D; 2],
pub dst_subresource: ImageSubresourceLayers,
pub dst_offsets: [Offset3D; 2],
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageBlit2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageBlit2 {
pub s_type: StructureType,
pub next: *const c_void,
pub src_subresource: ImageSubresourceLayers,
pub src_offsets: [Offset3D; 2],
pub dst_subresource: ImageSubresourceLayers,
pub dst_offsets: [Offset3D; 2],
}
impl Default for ImageBlit2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_BLIT_2,
next: ptr::null(),
src_subresource: ImageSubresourceLayers::default(),
src_offsets: [Offset3D::default(); 2],
dst_subresource: ImageSubresourceLayers::default(),
dst_offsets: [Offset3D::default(); 2],
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageCaptureDescriptorDataInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageCaptureDescriptorDataInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub image: Image,
}
impl Default for ImageCaptureDescriptorDataInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
next: ptr::null(),
image: Image::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageCompressionControlEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageCompressionControlEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: ImageCompressionFlagsEXT,
pub compression_control_plane_count: u32,
pub fixed_rate_flags: *mut ImageCompressionFixedRateFlagsEXT,
}
impl Default for ImageCompressionControlEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_COMPRESSION_CONTROL_EXT,
next: ptr::null(),
flags: ImageCompressionFlagsEXT::default(),
compression_control_plane_count: u32::default(),
fixed_rate_flags: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageCompressionPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageCompressionPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub image_compression_flags: ImageCompressionFlagsEXT,
pub image_compression_fixed_rate_flags: ImageCompressionFixedRateFlagsEXT,
}
impl Default for ImageCompressionPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_COMPRESSION_PROPERTIES_EXT,
next: ptr::null_mut(),
image_compression_flags: ImageCompressionFlagsEXT::default(),
image_compression_fixed_rate_flags: ImageCompressionFixedRateFlagsEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageConstraintsInfoFUCHSIA.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageConstraintsInfoFUCHSIA {
pub s_type: StructureType,
pub next: *const c_void,
pub format_constraints_count: u32,
pub format_constraints: *const ImageFormatConstraintsInfoFUCHSIA,
pub buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA,
pub flags: ImageConstraintsInfoFlagsFUCHSIA,
}
impl Default for ImageConstraintsInfoFUCHSIA {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_CONSTRAINTS_INFO_FUCHSIA,
next: ptr::null(),
format_constraints_count: u32::default(),
format_constraints: ptr::null(),
buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA::default(),
flags: ImageConstraintsInfoFlagsFUCHSIA::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageCopy.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ImageCopy {
pub src_subresource: ImageSubresourceLayers,
pub src_offset: Offset3D,
pub dst_subresource: ImageSubresourceLayers,
pub dst_offset: Offset3D,
pub extent: Extent3D,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageCopy2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageCopy2 {
pub s_type: StructureType,
pub next: *const c_void,
pub src_subresource: ImageSubresourceLayers,
pub src_offset: Offset3D,
pub dst_subresource: ImageSubresourceLayers,
pub dst_offset: Offset3D,
pub extent: Extent3D,
}
impl Default for ImageCopy2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_COPY_2,
next: ptr::null(),
src_subresource: ImageSubresourceLayers::default(),
src_offset: Offset3D::default(),
dst_subresource: ImageSubresourceLayers::default(),
dst_offset: Offset3D::default(),
extent: Extent3D::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: ImageCreateFlags,
pub image_type: ImageType,
pub format: Format,
pub extent: Extent3D,
pub mip_levels: u32,
pub array_layers: u32,
pub samples: SampleCountFlags,
pub tiling: ImageTiling,
pub usage: ImageUsageFlags,
pub sharing_mode: SharingMode,
pub queue_family_index_count: u32,
pub queue_family_indices: *const u32,
pub initial_layout: ImageLayout,
}
impl Default for ImageCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_CREATE_INFO,
next: ptr::null(),
flags: ImageCreateFlags::default(),
image_type: ImageType::default(),
format: Format::default(),
extent: Extent3D::default(),
mip_levels: u32::default(),
array_layers: u32::default(),
samples: SampleCountFlags::default(),
tiling: ImageTiling::default(),
usage: ImageUsageFlags::default(),
sharing_mode: SharingMode::default(),
queue_family_index_count: u32::default(),
queue_family_indices: ptr::null(),
initial_layout: ImageLayout::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageDrmFormatModifierExplicitCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageDrmFormatModifierExplicitCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub drm_format_modifier: u64,
pub drm_format_modifier_plane_count: u32,
pub plane_layouts: *const SubresourceLayout,
}
impl Default for ImageDrmFormatModifierExplicitCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
next: ptr::null(),
drm_format_modifier: u64::default(),
drm_format_modifier_plane_count: u32::default(),
plane_layouts: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageDrmFormatModifierListCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageDrmFormatModifierListCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub drm_format_modifier_count: u32,
pub drm_format_modifiers: *const u64,
}
impl Default for ImageDrmFormatModifierListCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
next: ptr::null(),
drm_format_modifier_count: u32::default(),
drm_format_modifiers: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageDrmFormatModifierPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageDrmFormatModifierPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub drm_format_modifier: u64,
}
impl Default for ImageDrmFormatModifierPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
next: ptr::null_mut(),
drm_format_modifier: u64::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageFormatConstraintsInfoFUCHSIA.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageFormatConstraintsInfoFUCHSIA {
pub s_type: StructureType,
pub next: *const c_void,
pub image_create_info: ImageCreateInfo,
pub required_format_features: FormatFeatureFlags,
pub flags: ImageFormatConstraintsFlagsFUCHSIA,
pub sysmem_pixel_format: u64,
pub color_space_count: u32,
pub color_spaces: *const SysmemColorSpaceFUCHSIA,
}
impl Default for ImageFormatConstraintsInfoFUCHSIA {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA,
next: ptr::null(),
image_create_info: ImageCreateInfo::default(),
required_format_features: FormatFeatureFlags::default(),
flags: ImageFormatConstraintsFlagsFUCHSIA::default(),
sysmem_pixel_format: u64::default(),
color_space_count: u32::default(),
color_spaces: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageFormatListCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageFormatListCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub view_format_count: u32,
pub view_formats: *const Format,
}
impl Default for ImageFormatListCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_FORMAT_LIST_CREATE_INFO,
next: ptr::null(),
view_format_count: u32::default(),
view_formats: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageFormatProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ImageFormatProperties {
pub max_extent: Extent3D,
pub max_mip_levels: u32,
pub max_array_layers: u32,
pub sample_counts: SampleCountFlags,
pub max_resource_size: DeviceSize,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageFormatProperties2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageFormatProperties2 {
pub s_type: StructureType,
pub next: *mut c_void,
pub image_format_properties: ImageFormatProperties,
}
impl Default for ImageFormatProperties2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_FORMAT_PROPERTIES_2,
next: ptr::null_mut(),
image_format_properties: ImageFormatProperties::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageMemoryBarrier.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageMemoryBarrier {
pub s_type: StructureType,
pub next: *const c_void,
pub src_access_mask: AccessFlags,
pub dst_access_mask: AccessFlags,
pub old_layout: ImageLayout,
pub new_layout: ImageLayout,
pub src_queue_family_index: u32,
pub dst_queue_family_index: u32,
pub image: Image,
pub subresource_range: ImageSubresourceRange,
}
impl Default for ImageMemoryBarrier {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_MEMORY_BARRIER,
next: ptr::null(),
src_access_mask: AccessFlags::default(),
dst_access_mask: AccessFlags::default(),
old_layout: ImageLayout::default(),
new_layout: ImageLayout::default(),
src_queue_family_index: u32::default(),
dst_queue_family_index: u32::default(),
image: Image::default(),
subresource_range: ImageSubresourceRange::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageMemoryBarrier2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageMemoryBarrier2 {
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 old_layout: ImageLayout,
pub new_layout: ImageLayout,
pub src_queue_family_index: u32,
pub dst_queue_family_index: u32,
pub image: Image,
pub subresource_range: ImageSubresourceRange,
}
impl Default for ImageMemoryBarrier2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_MEMORY_BARRIER_2,
next: ptr::null(),
src_stage_mask: PipelineStageFlags2::default(),
src_access_mask: AccessFlags2::default(),
dst_stage_mask: PipelineStageFlags2::default(),
dst_access_mask: AccessFlags2::default(),
old_layout: ImageLayout::default(),
new_layout: ImageLayout::default(),
src_queue_family_index: u32::default(),
dst_queue_family_index: u32::default(),
image: Image::default(),
subresource_range: ImageSubresourceRange::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageMemoryRequirementsInfo2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageMemoryRequirementsInfo2 {
pub s_type: StructureType,
pub next: *const c_void,
pub image: Image,
}
impl Default for ImageMemoryRequirementsInfo2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_MEMORY_REQUIREMENTS_INFO_2,
next: ptr::null(),
image: Image::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImagePipeSurfaceCreateInfoFUCHSIA.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImagePipeSurfaceCreateInfoFUCHSIA {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: ImagePipeSurfaceCreateFlagsFUCHSIA,
pub image_pipe_handle: zx_handle_t,
}
impl Default for ImagePipeSurfaceCreateInfoFUCHSIA {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA,
next: ptr::null(),
flags: ImagePipeSurfaceCreateFlagsFUCHSIA::default(),
image_pipe_handle: zx_handle_t::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImagePlaneMemoryRequirementsInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImagePlaneMemoryRequirementsInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub plane_aspect: ImageAspectFlags,
}
impl Default for ImagePlaneMemoryRequirementsInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
next: ptr::null(),
plane_aspect: ImageAspectFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageResolve.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ImageResolve {
pub src_subresource: ImageSubresourceLayers,
pub src_offset: Offset3D,
pub dst_subresource: ImageSubresourceLayers,
pub dst_offset: Offset3D,
pub extent: Extent3D,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageResolve2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageResolve2 {
pub s_type: StructureType,
pub next: *const c_void,
pub src_subresource: ImageSubresourceLayers,
pub src_offset: Offset3D,
pub dst_subresource: ImageSubresourceLayers,
pub dst_offset: Offset3D,
pub extent: Extent3D,
}
impl Default for ImageResolve2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_RESOLVE_2,
next: ptr::null(),
src_subresource: ImageSubresourceLayers::default(),
src_offset: Offset3D::default(),
dst_subresource: ImageSubresourceLayers::default(),
dst_offset: Offset3D::default(),
extent: Extent3D::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageSparseMemoryRequirementsInfo2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageSparseMemoryRequirementsInfo2 {
pub s_type: StructureType,
pub next: *const c_void,
pub image: Image,
}
impl Default for ImageSparseMemoryRequirementsInfo2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
next: ptr::null(),
image: Image::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageStencilUsageCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageStencilUsageCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub stencil_usage: ImageUsageFlags,
}
impl Default for ImageStencilUsageCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_STENCIL_USAGE_CREATE_INFO,
next: ptr::null(),
stencil_usage: ImageUsageFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageSubresource.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ImageSubresource {
pub aspect_mask: ImageAspectFlags,
pub mip_level: u32,
pub array_layer: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageSubresource2EXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageSubresource2EXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub image_subresource: ImageSubresource,
}
impl Default for ImageSubresource2EXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_SUBRESOURCE_2_EXT,
next: ptr::null_mut(),
image_subresource: ImageSubresource::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageSubresourceLayers.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ImageSubresourceLayers {
pub aspect_mask: ImageAspectFlags,
pub mip_level: u32,
pub base_array_layer: u32,
pub layer_count: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageSubresourceRange.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ImageSubresourceRange {
pub aspect_mask: ImageAspectFlags,
pub base_mip_level: u32,
pub level_count: u32,
pub base_array_layer: u32,
pub layer_count: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageSwapchainCreateInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageSwapchainCreateInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub swapchain: SwapchainKHR,
}
impl Default for ImageSwapchainCreateInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
next: ptr::null(),
swapchain: SwapchainKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageViewASTCDecodeModeEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageViewASTCDecodeModeEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub decode_mode: Format,
}
impl Default for ImageViewASTCDecodeModeEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
next: ptr::null(),
decode_mode: Format::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageViewAddressPropertiesNVX.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageViewAddressPropertiesNVX {
pub s_type: StructureType,
pub next: *mut c_void,
pub device_address: DeviceAddress,
pub size: DeviceSize,
}
impl Default for ImageViewAddressPropertiesNVX {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_VIEW_ADDRESS_PROPERTIES_NVX,
next: ptr::null_mut(),
device_address: DeviceAddress::default(),
size: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageViewCaptureDescriptorDataInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageViewCaptureDescriptorDataInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub image_view: ImageView,
}
impl Default for ImageViewCaptureDescriptorDataInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
next: ptr::null(),
image_view: ImageView::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageViewCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageViewCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: ImageViewCreateFlags,
pub image: Image,
pub view_type: ImageViewType,
pub format: Format,
pub components: ComponentMapping,
pub subresource_range: ImageSubresourceRange,
}
impl Default for ImageViewCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_VIEW_CREATE_INFO,
next: ptr::null(),
flags: ImageViewCreateFlags::default(),
image: Image::default(),
view_type: ImageViewType::default(),
format: Format::default(),
components: ComponentMapping::default(),
subresource_range: ImageSubresourceRange::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageViewHandleInfoNVX.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageViewHandleInfoNVX {
pub s_type: StructureType,
pub next: *const c_void,
pub image_view: ImageView,
pub descriptor_type: DescriptorType,
pub sampler: Sampler,
}
impl Default for ImageViewHandleInfoNVX {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_VIEW_HANDLE_INFO_NVX,
next: ptr::null(),
image_view: ImageView::default(),
descriptor_type: DescriptorType::default(),
sampler: Sampler::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageViewMinLodCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct ImageViewMinLodCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub min_lod: f32,
}
impl Default for ImageViewMinLodCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT,
next: ptr::null(),
min_lod: f32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageViewSampleWeightCreateInfoQCOM.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageViewSampleWeightCreateInfoQCOM {
pub s_type: StructureType,
pub next: *const c_void,
pub filter_center: Offset2D,
pub filter_size: Extent2D,
pub num_phases: u32,
}
impl Default for ImageViewSampleWeightCreateInfoQCOM {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM,
next: ptr::null(),
filter_center: Offset2D::default(),
filter_size: Extent2D::default(),
num_phases: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageViewUsageCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImageViewUsageCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub usage: ImageUsageFlags,
}
impl Default for ImageViewUsageCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMAGE_VIEW_USAGE_CREATE_INFO,
next: ptr::null(),
usage: ImageUsageFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImportAndroidHardwareBufferInfoANDROID.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImportAndroidHardwareBufferInfoANDROID {
pub s_type: StructureType,
pub next: *const c_void,
pub buffer: *mut AHardwareBuffer,
}
impl Default for ImportAndroidHardwareBufferInfoANDROID {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
next: ptr::null(),
buffer: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImportFenceFdInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImportFenceFdInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub fence: Fence,
pub flags: FenceImportFlags,
pub handle_type: ExternalFenceHandleTypeFlags,
pub fd: c_int,
}
impl Default for ImportFenceFdInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMPORT_FENCE_FD_INFO_KHR,
next: ptr::null(),
fence: Fence::default(),
flags: FenceImportFlags::default(),
handle_type: ExternalFenceHandleTypeFlags::default(),
fd: c_int::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImportFenceWin32HandleInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImportFenceWin32HandleInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub fence: Fence,
pub flags: FenceImportFlags,
pub handle_type: ExternalFenceHandleTypeFlags,
pub handle: HANDLE,
pub name: LPCWSTR,
}
impl Default for ImportFenceWin32HandleInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMPORT_FENCE_WIN32_HANDLE_INFO_KHR,
next: ptr::null(),
fence: Fence::default(),
flags: FenceImportFlags::default(),
handle_type: ExternalFenceHandleTypeFlags::default(),
handle: ptr::null_mut(),
name: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImportMemoryBufferCollectionFUCHSIA.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImportMemoryBufferCollectionFUCHSIA {
pub s_type: StructureType,
pub next: *const c_void,
pub collection: BufferCollectionFUCHSIA,
pub index: u32,
}
impl Default for ImportMemoryBufferCollectionFUCHSIA {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA,
next: ptr::null(),
collection: BufferCollectionFUCHSIA::default(),
index: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImportMemoryFdInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImportMemoryFdInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub handle_type: ExternalMemoryHandleTypeFlags,
pub fd: c_int,
}
impl Default for ImportMemoryFdInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMPORT_MEMORY_FD_INFO_KHR,
next: ptr::null(),
handle_type: ExternalMemoryHandleTypeFlags::default(),
fd: c_int::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImportMemoryHostPointerInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImportMemoryHostPointerInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub handle_type: ExternalMemoryHandleTypeFlags,
pub host_pointer: *mut c_void,
}
impl Default for ImportMemoryHostPointerInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
next: ptr::null(),
handle_type: ExternalMemoryHandleTypeFlags::default(),
host_pointer: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImportMemoryWin32HandleInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImportMemoryWin32HandleInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub handle_type: ExternalMemoryHandleTypeFlags,
pub handle: HANDLE,
pub name: LPCWSTR,
}
impl Default for ImportMemoryWin32HandleInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
next: ptr::null(),
handle_type: ExternalMemoryHandleTypeFlags::default(),
handle: ptr::null_mut(),
name: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImportMemoryWin32HandleInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImportMemoryWin32HandleInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub handle_type: ExternalMemoryHandleTypeFlagsNV,
pub handle: HANDLE,
}
impl Default for ImportMemoryWin32HandleInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMPORT_MEMORY_WIN32_HANDLE_INFO_NV,
next: ptr::null(),
handle_type: ExternalMemoryHandleTypeFlagsNV::default(),
handle: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImportMemoryZirconHandleInfoFUCHSIA.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImportMemoryZirconHandleInfoFUCHSIA {
pub s_type: StructureType,
pub next: *const c_void,
pub handle_type: ExternalMemoryHandleTypeFlags,
pub handle: zx_handle_t,
}
impl Default for ImportMemoryZirconHandleInfoFUCHSIA {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA,
next: ptr::null(),
handle_type: ExternalMemoryHandleTypeFlags::default(),
handle: zx_handle_t::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImportMetalBufferInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImportMetalBufferInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub mtl_buffer: MTLBuffer_id,
}
impl Default for ImportMetalBufferInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMPORT_METAL_BUFFER_INFO_EXT,
next: ptr::null(),
mtl_buffer: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImportMetalIOSurfaceInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImportMetalIOSurfaceInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub io_surface: IOSurfaceRef,
}
impl Default for ImportMetalIOSurfaceInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMPORT_METAL_IO_SURFACE_INFO_EXT,
next: ptr::null(),
io_surface: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImportMetalSharedEventInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImportMetalSharedEventInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub mtl_shared_event: MTLSharedEvent_id,
}
impl Default for ImportMetalSharedEventInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMPORT_METAL_SHARED_EVENT_INFO_EXT,
next: ptr::null(),
mtl_shared_event: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImportMetalTextureInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImportMetalTextureInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub plane: ImageAspectFlags,
pub mtl_texture: MTLTexture_id,
}
impl Default for ImportMetalTextureInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMPORT_METAL_TEXTURE_INFO_EXT,
next: ptr::null(),
plane: ImageAspectFlags::default(),
mtl_texture: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImportSemaphoreFdInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImportSemaphoreFdInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub semaphore: Semaphore,
pub flags: SemaphoreImportFlags,
pub handle_type: ExternalSemaphoreHandleTypeFlags,
pub fd: c_int,
}
impl Default for ImportSemaphoreFdInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMPORT_SEMAPHORE_FD_INFO_KHR,
next: ptr::null(),
semaphore: Semaphore::default(),
flags: SemaphoreImportFlags::default(),
handle_type: ExternalSemaphoreHandleTypeFlags::default(),
fd: c_int::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImportSemaphoreWin32HandleInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImportSemaphoreWin32HandleInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub semaphore: Semaphore,
pub flags: SemaphoreImportFlags,
pub handle_type: ExternalSemaphoreHandleTypeFlags,
pub handle: HANDLE,
pub name: LPCWSTR,
}
impl Default for ImportSemaphoreWin32HandleInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
next: ptr::null(),
semaphore: Semaphore::default(),
flags: SemaphoreImportFlags::default(),
handle_type: ExternalSemaphoreHandleTypeFlags::default(),
handle: ptr::null_mut(),
name: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImportSemaphoreZirconHandleInfoFUCHSIA.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ImportSemaphoreZirconHandleInfoFUCHSIA {
pub s_type: StructureType,
pub next: *const c_void,
pub semaphore: Semaphore,
pub flags: SemaphoreImportFlags,
pub handle_type: ExternalSemaphoreHandleTypeFlags,
pub zircon_handle: zx_handle_t,
}
impl Default for ImportSemaphoreZirconHandleInfoFUCHSIA {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA,
next: ptr::null(),
semaphore: Semaphore::default(),
flags: SemaphoreImportFlags::default(),
handle_type: ExternalSemaphoreHandleTypeFlags::default(),
zircon_handle: zx_handle_t::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkIndirectCommandsLayoutCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct IndirectCommandsLayoutCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: IndirectCommandsLayoutUsageFlagsNV,
pub pipeline_bind_point: PipelineBindPoint,
pub token_count: u32,
pub tokens: *const IndirectCommandsLayoutTokenNV,
pub stream_count: u32,
pub stream_strides: *const u32,
}
impl Default for IndirectCommandsLayoutCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV,
next: ptr::null(),
flags: IndirectCommandsLayoutUsageFlagsNV::default(),
pipeline_bind_point: PipelineBindPoint::default(),
token_count: u32::default(),
tokens: ptr::null(),
stream_count: u32::default(),
stream_strides: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkIndirectCommandsLayoutTokenNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct IndirectCommandsLayoutTokenNV {
pub s_type: StructureType,
pub next: *const c_void,
pub token_type: IndirectCommandsTokenTypeNV,
pub stream: u32,
pub offset: u32,
pub vertex_binding_unit: u32,
pub vertex_dynamic_stride: Bool32,
pub pushconstant_pipeline_layout: PipelineLayout,
pub pushconstant_shader_stage_flags: ShaderStageFlags,
pub pushconstant_offset: u32,
pub pushconstant_size: u32,
pub indirect_state_flags: IndirectStateFlagsNV,
pub index_type_count: u32,
pub index_types: *const IndexType,
pub index_type_values: *const u32,
}
impl Default for IndirectCommandsLayoutTokenNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::INDIRECT_COMMANDS_LAYOUT_TOKEN_NV,
next: ptr::null(),
token_type: IndirectCommandsTokenTypeNV::default(),
stream: u32::default(),
offset: u32::default(),
vertex_binding_unit: u32::default(),
vertex_dynamic_stride: Bool32::default(),
pushconstant_pipeline_layout: PipelineLayout::default(),
pushconstant_shader_stage_flags: ShaderStageFlags::default(),
pushconstant_offset: u32::default(),
pushconstant_size: u32::default(),
indirect_state_flags: IndirectStateFlagsNV::default(),
index_type_count: u32::default(),
index_types: ptr::null(),
index_type_values: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkIndirectCommandsStreamNV.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct IndirectCommandsStreamNV {
pub buffer: Buffer,
pub offset: DeviceSize,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkInitializePerformanceApiInfoINTEL.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct InitializePerformanceApiInfoINTEL {
pub s_type: StructureType,
pub next: *const c_void,
pub user_data: *mut c_void,
}
impl Default for InitializePerformanceApiInfoINTEL {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::INITIALIZE_PERFORMANCE_API_INFO_INTEL,
next: ptr::null(),
user_data: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkInputAttachmentAspectReference.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct InputAttachmentAspectReference {
pub subpass: u32,
pub input_attachment_index: u32,
pub aspect_mask: ImageAspectFlags,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkInstanceCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct InstanceCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: InstanceCreateFlags,
pub application_info: *const ApplicationInfo,
pub enabled_layer_count: u32,
pub enabled_layer_names: *const *const c_char,
pub enabled_extension_count: u32,
pub enabled_extension_names: *const *const c_char,
}
impl Default for InstanceCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::INSTANCE_CREATE_INFO,
next: ptr::null(),
flags: InstanceCreateFlags::default(),
application_info: ptr::null(),
enabled_layer_count: u32::default(),
enabled_layer_names: ptr::null(),
enabled_extension_count: u32::default(),
enabled_extension_names: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkLayerProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct LayerProperties {
pub layer_name: StringArray<MAX_EXTENSION_NAME_SIZE>,
pub spec_version: u32,
pub implementation_version: u32,
pub description: StringArray<MAX_DESCRIPTION_SIZE>,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMacOSSurfaceCreateInfoMVK.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MacOSSurfaceCreateInfoMVK {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: MacOSSurfaceCreateFlagsMVK,
pub view: *const c_void,
}
impl Default for MacOSSurfaceCreateInfoMVK {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MACOS_SURFACE_CREATE_INFO_MVK,
next: ptr::null(),
flags: MacOSSurfaceCreateFlagsMVK::default(),
view: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMappedMemoryRange.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MappedMemoryRange {
pub s_type: StructureType,
pub next: *const c_void,
pub memory: DeviceMemory,
pub offset: DeviceSize,
pub size: DeviceSize,
}
impl Default for MappedMemoryRange {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MAPPED_MEMORY_RANGE,
next: ptr::null(),
memory: DeviceMemory::default(),
offset: DeviceSize::default(),
size: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryAllocateFlagsInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MemoryAllocateFlagsInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: MemoryAllocateFlags,
pub device_mask: u32,
}
impl Default for MemoryAllocateFlagsInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MEMORY_ALLOCATE_FLAGS_INFO,
next: ptr::null(),
flags: MemoryAllocateFlags::default(),
device_mask: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryAllocateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MemoryAllocateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub allocation_size: DeviceSize,
pub memory_type_index: u32,
}
impl Default for MemoryAllocateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MEMORY_ALLOCATE_INFO,
next: ptr::null(),
allocation_size: DeviceSize::default(),
memory_type_index: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryBarrier.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MemoryBarrier {
pub s_type: StructureType,
pub next: *const c_void,
pub src_access_mask: AccessFlags,
pub dst_access_mask: AccessFlags,
}
impl Default for MemoryBarrier {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MEMORY_BARRIER,
next: ptr::null(),
src_access_mask: AccessFlags::default(),
dst_access_mask: AccessFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryBarrier2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MemoryBarrier2 {
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,
}
impl Default for MemoryBarrier2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MEMORY_BARRIER_2,
next: ptr::null(),
src_stage_mask: PipelineStageFlags2::default(),
src_access_mask: AccessFlags2::default(),
dst_stage_mask: PipelineStageFlags2::default(),
dst_access_mask: AccessFlags2::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryDedicatedAllocateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MemoryDedicatedAllocateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub image: Image,
pub buffer: Buffer,
}
impl Default for MemoryDedicatedAllocateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MEMORY_DEDICATED_ALLOCATE_INFO,
next: ptr::null(),
image: Image::default(),
buffer: Buffer::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryDedicatedRequirements.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MemoryDedicatedRequirements {
pub s_type: StructureType,
pub next: *mut c_void,
pub prefers_dedicated_allocation: Bool32,
pub requires_dedicated_allocation: Bool32,
}
impl Default for MemoryDedicatedRequirements {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MEMORY_DEDICATED_REQUIREMENTS,
next: ptr::null_mut(),
prefers_dedicated_allocation: Bool32::default(),
requires_dedicated_allocation: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryFdPropertiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MemoryFdPropertiesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub memory_type_bits: u32,
}
impl Default for MemoryFdPropertiesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MEMORY_FD_PROPERTIES_KHR,
next: ptr::null_mut(),
memory_type_bits: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryGetAndroidHardwareBufferInfoANDROID.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MemoryGetAndroidHardwareBufferInfoANDROID {
pub s_type: StructureType,
pub next: *const c_void,
pub memory: DeviceMemory,
}
impl Default for MemoryGetAndroidHardwareBufferInfoANDROID {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
next: ptr::null(),
memory: DeviceMemory::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryGetFdInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MemoryGetFdInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub memory: DeviceMemory,
pub handle_type: ExternalMemoryHandleTypeFlags,
}
impl Default for MemoryGetFdInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MEMORY_GET_FD_INFO_KHR,
next: ptr::null(),
memory: DeviceMemory::default(),
handle_type: ExternalMemoryHandleTypeFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryGetRemoteAddressInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MemoryGetRemoteAddressInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub memory: DeviceMemory,
pub handle_type: ExternalMemoryHandleTypeFlags,
}
impl Default for MemoryGetRemoteAddressInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MEMORY_GET_REMOTE_ADDRESS_INFO_NV,
next: ptr::null(),
memory: DeviceMemory::default(),
handle_type: ExternalMemoryHandleTypeFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryGetWin32HandleInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MemoryGetWin32HandleInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub memory: DeviceMemory,
pub handle_type: ExternalMemoryHandleTypeFlags,
}
impl Default for MemoryGetWin32HandleInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MEMORY_GET_WIN32_HANDLE_INFO_KHR,
next: ptr::null(),
memory: DeviceMemory::default(),
handle_type: ExternalMemoryHandleTypeFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryGetZirconHandleInfoFUCHSIA.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MemoryGetZirconHandleInfoFUCHSIA {
pub s_type: StructureType,
pub next: *const c_void,
pub memory: DeviceMemory,
pub handle_type: ExternalMemoryHandleTypeFlags,
}
impl Default for MemoryGetZirconHandleInfoFUCHSIA {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
next: ptr::null(),
memory: DeviceMemory::default(),
handle_type: ExternalMemoryHandleTypeFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryHeap.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct MemoryHeap {
pub size: DeviceSize,
pub flags: MemoryHeapFlags,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryHostPointerPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MemoryHostPointerPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub memory_type_bits: u32,
}
impl Default for MemoryHostPointerPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MEMORY_HOST_POINTER_PROPERTIES_EXT,
next: ptr::null_mut(),
memory_type_bits: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryOpaqueCaptureAddressAllocateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MemoryOpaqueCaptureAddressAllocateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub opaque_capture_address: u64,
}
impl Default for MemoryOpaqueCaptureAddressAllocateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
next: ptr::null(),
opaque_capture_address: u64::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryPriorityAllocateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct MemoryPriorityAllocateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub priority: f32,
}
impl Default for MemoryPriorityAllocateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MEMORY_PRIORITY_ALLOCATE_INFO_EXT,
next: ptr::null(),
priority: f32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryRequirements.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct MemoryRequirements {
pub size: DeviceSize,
pub alignment: DeviceSize,
pub memory_type_bits: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryRequirements2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MemoryRequirements2 {
pub s_type: StructureType,
pub next: *mut c_void,
pub memory_requirements: MemoryRequirements,
}
impl Default for MemoryRequirements2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MEMORY_REQUIREMENTS_2,
next: ptr::null_mut(),
memory_requirements: MemoryRequirements::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryType.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct MemoryType {
pub property_flags: MemoryPropertyFlags,
pub heap_index: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryWin32HandlePropertiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MemoryWin32HandlePropertiesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub memory_type_bits: u32,
}
impl Default for MemoryWin32HandlePropertiesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MEMORY_WIN32_HANDLE_PROPERTIES_KHR,
next: ptr::null_mut(),
memory_type_bits: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryZirconHandlePropertiesFUCHSIA.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MemoryZirconHandlePropertiesFUCHSIA {
pub s_type: StructureType,
pub next: *mut c_void,
pub memory_type_bits: u32,
}
impl Default for MemoryZirconHandlePropertiesFUCHSIA {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA,
next: ptr::null_mut(),
memory_type_bits: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMetalSurfaceCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MetalSurfaceCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: MetalSurfaceCreateFlagsEXT,
pub layer: *const CAMetalLayer,
}
impl Default for MetalSurfaceCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::METAL_SURFACE_CREATE_INFO_EXT,
next: ptr::null(),
flags: MetalSurfaceCreateFlagsEXT::default(),
layer: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMicromapBuildInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct MicromapBuildInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub type_: MicromapTypeEXT,
pub flags: BuildMicromapFlagsEXT,
pub mode: BuildMicromapModeEXT,
pub dst_micromap: MicromapEXT,
pub usage_counts_count: u32,
pub usage_counts: *const MicromapUsageEXT,
pub pointer_usage_counts: *const *const MicromapUsageEXT,
pub data: DeviceOrHostAddressConstKHR,
pub scratch_data: DeviceOrHostAddressKHR,
pub triangle_array: DeviceOrHostAddressConstKHR,
pub triangle_array_stride: DeviceSize,
}
impl Default for MicromapBuildInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MICROMAP_BUILD_INFO_EXT,
next: ptr::null(),
type_: MicromapTypeEXT::default(),
flags: BuildMicromapFlagsEXT::default(),
mode: BuildMicromapModeEXT::default(),
dst_micromap: MicromapEXT::default(),
usage_counts_count: u32::default(),
usage_counts: ptr::null(),
pointer_usage_counts: ptr::null(),
data: DeviceOrHostAddressConstKHR::default(),
scratch_data: DeviceOrHostAddressKHR::default(),
triangle_array: DeviceOrHostAddressConstKHR::default(),
triangle_array_stride: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMicromapBuildSizesInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MicromapBuildSizesInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub micromap_size: DeviceSize,
pub build_scratch_size: DeviceSize,
pub discardable: Bool32,
}
impl Default for MicromapBuildSizesInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MICROMAP_BUILD_SIZES_INFO_EXT,
next: ptr::null(),
micromap_size: DeviceSize::default(),
build_scratch_size: DeviceSize::default(),
discardable: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMicromapCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MicromapCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub create_flags: MicromapCreateFlagsEXT,
pub buffer: Buffer,
pub offset: DeviceSize,
pub size: DeviceSize,
pub type_: MicromapTypeEXT,
pub device_address: DeviceAddress,
}
impl Default for MicromapCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MICROMAP_CREATE_INFO_EXT,
next: ptr::null(),
create_flags: MicromapCreateFlagsEXT::default(),
buffer: Buffer::default(),
offset: DeviceSize::default(),
size: DeviceSize::default(),
type_: MicromapTypeEXT::default(),
device_address: DeviceAddress::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMicromapTriangleEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct MicromapTriangleEXT {
pub data_offset: u32,
pub subdivision_level: u16,
pub format: u16,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMicromapUsageEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct MicromapUsageEXT {
pub count: u32,
pub subdivision_level: u32,
pub format: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMicromapVersionInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MicromapVersionInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub version_data: *const u8,
}
impl Default for MicromapVersionInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MICROMAP_VERSION_INFO_EXT,
next: ptr::null(),
version_data: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMultiDrawIndexedInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct MultiDrawIndexedInfoEXT {
pub first_index: u32,
pub index_count: u32,
pub vertex_offset: i32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMultiDrawInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct MultiDrawInfoEXT {
pub first_vertex: u32,
pub vertex_count: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMultisamplePropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MultisamplePropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_sample_location_grid_size: Extent2D,
}
impl Default for MultisamplePropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MULTISAMPLE_PROPERTIES_EXT,
next: ptr::null_mut(),
max_sample_location_grid_size: Extent2D::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMultisampledRenderToSingleSampledInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MultisampledRenderToSingleSampledInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub multisampled_render_to_single_sampled_enable: Bool32,
pub rasterization_samples: SampleCountFlags,
}
impl Default for MultisampledRenderToSingleSampledInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT,
next: ptr::null(),
multisampled_render_to_single_sampled_enable: Bool32::default(),
rasterization_samples: SampleCountFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMultiviewPerViewAttributesInfoNVX.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MultiviewPerViewAttributesInfoNVX {
pub s_type: StructureType,
pub next: *const c_void,
pub per_view_attributes: Bool32,
pub per_view_attributes_position_x_only: Bool32,
}
impl Default for MultiviewPerViewAttributesInfoNVX {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX,
next: ptr::null(),
per_view_attributes: Bool32::default(),
per_view_attributes_position_x_only: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMutableDescriptorTypeCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MutableDescriptorTypeCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub mutable_descriptor_type_list_count: u32,
pub mutable_descriptor_type_lists: *const MutableDescriptorTypeListEXT,
}
impl Default for MutableDescriptorTypeCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
next: ptr::null(),
mutable_descriptor_type_list_count: u32::default(),
mutable_descriptor_type_lists: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMutableDescriptorTypeListEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct MutableDescriptorTypeListEXT {
pub descriptor_type_count: u32,
pub descriptor_types: *const DescriptorType,
}
impl Default for MutableDescriptorTypeListEXT {
#[inline]
fn default() -> Self {
Self {
descriptor_type_count: u32::default(),
descriptor_types: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkOffset2D.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct Offset2D {
pub x: i32,
pub y: i32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkOffset3D.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct Offset3D {
pub x: i32,
pub y: i32,
pub z: i32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkOpaqueCaptureDescriptorDataCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct OpaqueCaptureDescriptorDataCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub opaque_capture_descriptor_data: *const c_void,
}
impl Default for OpaqueCaptureDescriptorDataCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT,
next: ptr::null(),
opaque_capture_descriptor_data: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkOpticalFlowExecuteInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct OpticalFlowExecuteInfoNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub flags: OpticalFlowExecuteFlagsNV,
pub region_count: u32,
pub regions: *const Rect2D,
}
impl Default for OpticalFlowExecuteInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::OPTICAL_FLOW_EXECUTE_INFO_NV,
next: ptr::null_mut(),
flags: OpticalFlowExecuteFlagsNV::default(),
region_count: u32::default(),
regions: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkOpticalFlowImageFormatInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct OpticalFlowImageFormatInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub usage: OpticalFlowUsageFlagsNV,
}
impl Default for OpticalFlowImageFormatInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV,
next: ptr::null(),
usage: OpticalFlowUsageFlagsNV::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkOpticalFlowImageFormatPropertiesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct OpticalFlowImageFormatPropertiesNV {
pub s_type: StructureType,
pub next: *const c_void,
pub format: Format,
}
impl Default for OpticalFlowImageFormatPropertiesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV,
next: ptr::null(),
format: Format::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkOpticalFlowSessionCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct OpticalFlowSessionCreateInfoNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub width: u32,
pub height: u32,
pub image_format: Format,
pub flow_vector_format: Format,
pub cost_format: Format,
pub output_grid_size: OpticalFlowGridSizeFlagsNV,
pub hint_grid_size: OpticalFlowGridSizeFlagsNV,
pub performance_level: OpticalFlowPerformanceLevelNV,
pub flags: OpticalFlowSessionCreateFlagsNV,
}
impl Default for OpticalFlowSessionCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::OPTICAL_FLOW_SESSION_CREATE_INFO_NV,
next: ptr::null_mut(),
width: u32::default(),
height: u32::default(),
image_format: Format::default(),
flow_vector_format: Format::default(),
cost_format: Format::default(),
output_grid_size: OpticalFlowGridSizeFlagsNV::default(),
hint_grid_size: OpticalFlowGridSizeFlagsNV::default(),
performance_level: OpticalFlowPerformanceLevelNV::default(),
flags: OpticalFlowSessionCreateFlagsNV::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkOpticalFlowSessionCreatePrivateDataInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct OpticalFlowSessionCreatePrivateDataInfoNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub id: u32,
pub size: u32,
pub private_data: *const c_void,
}
impl Default for OpticalFlowSessionCreatePrivateDataInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV,
next: ptr::null_mut(),
id: u32::default(),
size: u32::default(),
private_data: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPastPresentationTimingGOOGLE.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct PastPresentationTimingGOOGLE {
pub present_id: u32,
pub desired_present_time: u64,
pub actual_present_time: u64,
pub earliest_present_time: u64,
pub present_margin: u64,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPerformanceConfigurationAcquireInfoINTEL.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PerformanceConfigurationAcquireInfoINTEL {
pub s_type: StructureType,
pub next: *const c_void,
pub type_: PerformanceConfigurationTypeINTEL,
}
impl Default for PerformanceConfigurationAcquireInfoINTEL {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
next: ptr::null(),
type_: PerformanceConfigurationTypeINTEL::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPerformanceCounterDescriptionKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PerformanceCounterDescriptionKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub flags: PerformanceCounterDescriptionFlagsKHR,
pub name: StringArray<MAX_DESCRIPTION_SIZE>,
pub category: StringArray<MAX_DESCRIPTION_SIZE>,
pub description: StringArray<MAX_DESCRIPTION_SIZE>,
}
impl Default for PerformanceCounterDescriptionKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PERFORMANCE_COUNTER_DESCRIPTION_KHR,
next: ptr::null_mut(),
flags: PerformanceCounterDescriptionFlagsKHR::default(),
name: StringArray::default(),
category: StringArray::default(),
description: StringArray::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPerformanceCounterKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PerformanceCounterKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub unit: PerformanceCounterUnitKHR,
pub scope: PerformanceCounterScopeKHR,
pub storage: PerformanceCounterStorageKHR,
pub uuid: ByteArray<UUID_SIZE>,
}
impl Default for PerformanceCounterKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PERFORMANCE_COUNTER_KHR,
next: ptr::null_mut(),
unit: PerformanceCounterUnitKHR::default(),
scope: PerformanceCounterScopeKHR::default(),
storage: PerformanceCounterStorageKHR::default(),
uuid: ByteArray::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPerformanceMarkerInfoINTEL.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PerformanceMarkerInfoINTEL {
pub s_type: StructureType,
pub next: *const c_void,
pub marker: u64,
}
impl Default for PerformanceMarkerInfoINTEL {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PERFORMANCE_MARKER_INFO_INTEL,
next: ptr::null(),
marker: u64::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPerformanceOverrideInfoINTEL.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PerformanceOverrideInfoINTEL {
pub s_type: StructureType,
pub next: *const c_void,
pub type_: PerformanceOverrideTypeINTEL,
pub enable: Bool32,
pub parameter: u64,
}
impl Default for PerformanceOverrideInfoINTEL {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PERFORMANCE_OVERRIDE_INFO_INTEL,
next: ptr::null(),
type_: PerformanceOverrideTypeINTEL::default(),
enable: Bool32::default(),
parameter: u64::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPerformanceQuerySubmitInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PerformanceQuerySubmitInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub counter_pass_index: u32,
}
impl Default for PerformanceQuerySubmitInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PERFORMANCE_QUERY_SUBMIT_INFO_KHR,
next: ptr::null(),
counter_pass_index: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPerformanceStreamMarkerInfoINTEL.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PerformanceStreamMarkerInfoINTEL {
pub s_type: StructureType,
pub next: *const c_void,
pub marker: u32,
}
impl Default for PerformanceStreamMarkerInfoINTEL {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PERFORMANCE_STREAM_MARKER_INFO_INTEL,
next: ptr::null(),
marker: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPerformanceValueINTEL.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug)]
pub struct PerformanceValueINTEL {
pub type_: PerformanceValueTypeINTEL,
pub data: PerformanceValueDataINTEL,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevice16BitStorageFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevice16BitStorageFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub storage_buffer_16bit_access: Bool32,
pub uniform_and_storage_buffer_16bit_access: Bool32,
pub storage_push_constant16: Bool32,
pub storage_input_output16: Bool32,
}
impl Default for PhysicalDevice16BitStorageFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
next: ptr::null_mut(),
storage_buffer_16bit_access: Bool32::default(),
uniform_and_storage_buffer_16bit_access: Bool32::default(),
storage_push_constant16: Bool32::default(),
storage_input_output16: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevice4444FormatsFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevice4444FormatsFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub format_a4_r4_g4_b4: Bool32,
pub format_a4_b4_g4_r4: Bool32,
}
impl Default for PhysicalDevice4444FormatsFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT,
next: ptr::null_mut(),
format_a4_r4_g4_b4: Bool32::default(),
format_a4_b4_g4_r4: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevice8BitStorageFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevice8BitStorageFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub storage_buffer_8bit_access: Bool32,
pub uniform_and_storage_buffer_8bit_access: Bool32,
pub storage_push_constant8: Bool32,
}
impl Default for PhysicalDevice8BitStorageFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
next: ptr::null_mut(),
storage_buffer_8bit_access: Bool32::default(),
uniform_and_storage_buffer_8bit_access: Bool32::default(),
storage_push_constant8: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceASTCDecodeFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceASTCDecodeFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub decode_mode_shared_exponent: Bool32,
}
impl Default for PhysicalDeviceASTCDecodeFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,
next: ptr::null_mut(),
decode_mode_shared_exponent: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceAccelerationStructureFeaturesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceAccelerationStructureFeaturesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub acceleration_structure: Bool32,
pub acceleration_structure_capture_replay: Bool32,
pub acceleration_structure_indirect_build: Bool32,
pub acceleration_structure_host_commands: Bool32,
pub descriptor_binding_acceleration_structure_update_after_bind: Bool32,
}
impl Default for PhysicalDeviceAccelerationStructureFeaturesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR,
next: ptr::null_mut(),
acceleration_structure: Bool32::default(),
acceleration_structure_capture_replay: Bool32::default(),
acceleration_structure_indirect_build: Bool32::default(),
acceleration_structure_host_commands: Bool32::default(),
descriptor_binding_acceleration_structure_update_after_bind: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceAccelerationStructurePropertiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceAccelerationStructurePropertiesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_geometry_count: u64,
pub max_instance_count: u64,
pub max_primitive_count: u64,
pub max_per_stage_descriptor_acceleration_structures: u32,
pub max_per_stage_descriptor_update_after_bind_acceleration_structures: u32,
pub max_descriptor_set_acceleration_structures: u32,
pub max_descriptor_set_update_after_bind_acceleration_structures: u32,
pub min_acceleration_structure_scratch_offset_alignment: u32,
}
impl Default for PhysicalDeviceAccelerationStructurePropertiesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR,
next: ptr::null_mut(),
max_geometry_count: u64::default(),
max_instance_count: u64::default(),
max_primitive_count: u64::default(),
max_per_stage_descriptor_acceleration_structures: u32::default(),
max_per_stage_descriptor_update_after_bind_acceleration_structures: u32::default(),
max_descriptor_set_acceleration_structures: u32::default(),
max_descriptor_set_update_after_bind_acceleration_structures: u32::default(),
min_acceleration_structure_scratch_offset_alignment: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceAddressBindingReportFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceAddressBindingReportFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub report_address_binding: Bool32,
}
impl Default for PhysicalDeviceAddressBindingReportFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT,
next: ptr::null_mut(),
report_address_binding: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceAmigoProfilingFeaturesSEC.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceAmigoProfilingFeaturesSEC {
pub s_type: StructureType,
pub next: *mut c_void,
pub amigo_profiling: Bool32,
}
impl Default for PhysicalDeviceAmigoProfilingFeaturesSEC {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC,
next: ptr::null_mut(),
amigo_profiling: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub attachment_feedback_loop_layout: Bool32,
}
impl Default for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT,
next: ptr::null_mut(),
attachment_feedback_loop_layout: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub advanced_blend_coherent_operations: Bool32,
}
impl Default for PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
next: ptr::null_mut(),
advanced_blend_coherent_operations: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub advanced_blend_max_color_attachments: u32,
pub advanced_blend_independent_blend: Bool32,
pub advanced_blend_non_premultiplied_src_color: Bool32,
pub advanced_blend_non_premultiplied_dst_color: Bool32,
pub advanced_blend_correlated_overlap: Bool32,
pub advanced_blend_all_operations: Bool32,
}
impl Default for PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
next: ptr::null_mut(),
advanced_blend_max_color_attachments: u32::default(),
advanced_blend_independent_blend: Bool32::default(),
advanced_blend_non_premultiplied_src_color: Bool32::default(),
advanced_blend_non_premultiplied_dst_color: Bool32::default(),
advanced_blend_correlated_overlap: Bool32::default(),
advanced_blend_all_operations: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceBorderColorSwizzleFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceBorderColorSwizzleFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub border_color_swizzle: Bool32,
pub border_color_swizzle_from_image: Bool32,
}
impl Default for PhysicalDeviceBorderColorSwizzleFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT,
next: ptr::null_mut(),
border_color_swizzle: Bool32::default(),
border_color_swizzle_from_image: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceBufferDeviceAddressFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceBufferDeviceAddressFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub buffer_device_address: Bool32,
pub buffer_device_address_capture_replay: Bool32,
pub buffer_device_address_multi_device: Bool32,
}
impl Default for PhysicalDeviceBufferDeviceAddressFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
next: ptr::null_mut(),
buffer_device_address: Bool32::default(),
buffer_device_address_capture_replay: Bool32::default(),
buffer_device_address_multi_device: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceBufferDeviceAddressFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceBufferDeviceAddressFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub buffer_device_address: Bool32,
pub buffer_device_address_capture_replay: Bool32,
pub buffer_device_address_multi_device: Bool32,
}
impl Default for PhysicalDeviceBufferDeviceAddressFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
next: ptr::null_mut(),
buffer_device_address: Bool32::default(),
buffer_device_address_capture_replay: Bool32::default(),
buffer_device_address_multi_device: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceCoherentMemoryFeaturesAMD.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceCoherentMemoryFeaturesAMD {
pub s_type: StructureType,
pub next: *mut c_void,
pub device_coherent_memory: Bool32,
}
impl Default for PhysicalDeviceCoherentMemoryFeaturesAMD {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD,
next: ptr::null_mut(),
device_coherent_memory: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceColorWriteEnableFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceColorWriteEnableFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub color_write_enable: Bool32,
}
impl Default for PhysicalDeviceColorWriteEnableFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT,
next: ptr::null_mut(),
color_write_enable: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceComputeShaderDerivativesFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceComputeShaderDerivativesFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub compute_derivative_group_quads: Bool32,
pub compute_derivative_group_linear: Bool32,
}
impl Default for PhysicalDeviceComputeShaderDerivativesFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,
next: ptr::null_mut(),
compute_derivative_group_quads: Bool32::default(),
compute_derivative_group_linear: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceConditionalRenderingFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceConditionalRenderingFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub conditional_rendering: Bool32,
pub inherited_conditional_rendering: Bool32,
}
impl Default for PhysicalDeviceConditionalRenderingFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT,
next: ptr::null_mut(),
conditional_rendering: Bool32::default(),
inherited_conditional_rendering: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceConservativeRasterizationPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct PhysicalDeviceConservativeRasterizationPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub primitive_overestimation_size: f32,
pub max_extra_primitive_overestimation_size: f32,
pub extra_primitive_overestimation_size_granularity: f32,
pub primitive_underestimation: Bool32,
pub conservative_point_and_line_rasterization: Bool32,
pub degenerate_triangles_rasterized: Bool32,
pub degenerate_lines_rasterized: Bool32,
pub fully_covered_fragment_shader_input_variable: Bool32,
pub conservative_rasterization_post_depth_coverage: Bool32,
}
impl Default for PhysicalDeviceConservativeRasterizationPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,
next: ptr::null_mut(),
primitive_overestimation_size: f32::default(),
max_extra_primitive_overestimation_size: f32::default(),
extra_primitive_overestimation_size_granularity: f32::default(),
primitive_underestimation: Bool32::default(),
conservative_point_and_line_rasterization: Bool32::default(),
degenerate_triangles_rasterized: Bool32::default(),
degenerate_lines_rasterized: Bool32::default(),
fully_covered_fragment_shader_input_variable: Bool32::default(),
conservative_rasterization_post_depth_coverage: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceCooperativeMatrixFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceCooperativeMatrixFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub cooperative_matrix: Bool32,
pub cooperative_matrix_robust_buffer_access: Bool32,
}
impl Default for PhysicalDeviceCooperativeMatrixFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,
next: ptr::null_mut(),
cooperative_matrix: Bool32::default(),
cooperative_matrix_robust_buffer_access: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceCooperativeMatrixPropertiesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceCooperativeMatrixPropertiesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub cooperative_matrix_supported_stages: ShaderStageFlags,
}
impl Default for PhysicalDeviceCooperativeMatrixPropertiesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,
next: ptr::null_mut(),
cooperative_matrix_supported_stages: ShaderStageFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceCopyMemoryIndirectFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceCopyMemoryIndirectFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub indirect_copy: Bool32,
}
impl Default for PhysicalDeviceCopyMemoryIndirectFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV,
next: ptr::null_mut(),
indirect_copy: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceCopyMemoryIndirectPropertiesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceCopyMemoryIndirectPropertiesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub supported_queues: QueueFlags,
}
impl Default for PhysicalDeviceCopyMemoryIndirectPropertiesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV,
next: ptr::null_mut(),
supported_queues: QueueFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceCornerSampledImageFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceCornerSampledImageFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub corner_sampled_image: Bool32,
}
impl Default for PhysicalDeviceCornerSampledImageFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV,
next: ptr::null_mut(),
corner_sampled_image: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceCoverageReductionModeFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceCoverageReductionModeFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub coverage_reduction_mode: Bool32,
}
impl Default for PhysicalDeviceCoverageReductionModeFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV,
next: ptr::null_mut(),
coverage_reduction_mode: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceCustomBorderColorFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceCustomBorderColorFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub custom_border_colors: Bool32,
pub custom_border_color_without_format: Bool32,
}
impl Default for PhysicalDeviceCustomBorderColorFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT,
next: ptr::null_mut(),
custom_border_colors: Bool32::default(),
custom_border_color_without_format: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceCustomBorderColorPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceCustomBorderColorPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_custom_border_color_samplers: u32,
}
impl Default for PhysicalDeviceCustomBorderColorPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,
next: ptr::null_mut(),
max_custom_border_color_samplers: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub dedicated_allocation_image_aliasing: Bool32,
}
impl Default for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,
next: ptr::null_mut(),
dedicated_allocation_image_aliasing: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDepthClampZeroOneFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDepthClampZeroOneFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub depth_clamp_zero_one: Bool32,
}
impl Default for PhysicalDeviceDepthClampZeroOneFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT,
next: ptr::null_mut(),
depth_clamp_zero_one: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDepthClipControlFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDepthClipControlFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub depth_clip_control: Bool32,
}
impl Default for PhysicalDeviceDepthClipControlFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT,
next: ptr::null_mut(),
depth_clip_control: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDepthClipEnableFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDepthClipEnableFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub depth_clip_enable: Bool32,
}
impl Default for PhysicalDeviceDepthClipEnableFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT,
next: ptr::null_mut(),
depth_clip_enable: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDepthStencilResolveProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDepthStencilResolveProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub supported_depth_resolve_modes: ResolveModeFlags,
pub supported_stencil_resolve_modes: ResolveModeFlags,
pub independent_resolve_none: Bool32,
pub independent_resolve: Bool32,
}
impl Default for PhysicalDeviceDepthStencilResolveProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
next: ptr::null_mut(),
supported_depth_resolve_modes: ResolveModeFlags::default(),
supported_stencil_resolve_modes: ResolveModeFlags::default(),
independent_resolve_none: Bool32::default(),
independent_resolve: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub combined_image_sampler_density_map_descriptor_size: usize,
}
impl Default for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT,
next: ptr::null_mut(),
combined_image_sampler_density_map_descriptor_size: usize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDescriptorBufferFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDescriptorBufferFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub descriptor_buffer: Bool32,
pub descriptor_buffer_capture_replay: Bool32,
pub descriptor_buffer_image_layout_ignored: Bool32,
pub descriptor_buffer_push_descriptors: Bool32,
}
impl Default for PhysicalDeviceDescriptorBufferFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT,
next: ptr::null_mut(),
descriptor_buffer: Bool32::default(),
descriptor_buffer_capture_replay: Bool32::default(),
descriptor_buffer_image_layout_ignored: Bool32::default(),
descriptor_buffer_push_descriptors: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDescriptorBufferPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDescriptorBufferPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub combined_image_sampler_descriptor_single_array: Bool32,
pub bufferless_push_descriptors: Bool32,
pub allow_sampler_image_view_post_submit_creation: Bool32,
pub descriptor_buffer_offset_alignment: DeviceSize,
pub max_descriptor_buffer_bindings: u32,
pub max_resource_descriptor_buffer_bindings: u32,
pub max_sampler_descriptor_buffer_bindings: u32,
pub max_embedded_immutable_sampler_bindings: u32,
pub max_embedded_immutable_samplers: u32,
pub buffer_capture_replay_descriptor_data_size: usize,
pub image_capture_replay_descriptor_data_size: usize,
pub image_view_capture_replay_descriptor_data_size: usize,
pub sampler_capture_replay_descriptor_data_size: usize,
pub acceleration_structure_capture_replay_descriptor_data_size: usize,
pub sampler_descriptor_size: usize,
pub combined_image_sampler_descriptor_size: usize,
pub sampled_image_descriptor_size: usize,
pub storage_image_descriptor_size: usize,
pub uniform_texel_buffer_descriptor_size: usize,
pub robust_uniform_texel_buffer_descriptor_size: usize,
pub storage_texel_buffer_descriptor_size: usize,
pub robust_storage_texel_buffer_descriptor_size: usize,
pub uniform_buffer_descriptor_size: usize,
pub robust_uniform_buffer_descriptor_size: usize,
pub storage_buffer_descriptor_size: usize,
pub robust_storage_buffer_descriptor_size: usize,
pub input_attachment_descriptor_size: usize,
pub acceleration_structure_descriptor_size: usize,
pub max_sampler_descriptor_buffer_range: DeviceSize,
pub max_resource_descriptor_buffer_range: DeviceSize,
pub sampler_descriptor_buffer_address_space_size: DeviceSize,
pub resource_descriptor_buffer_address_space_size: DeviceSize,
pub descriptor_buffer_address_space_size: DeviceSize,
}
impl Default for PhysicalDeviceDescriptorBufferPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT,
next: ptr::null_mut(),
combined_image_sampler_descriptor_single_array: Bool32::default(),
bufferless_push_descriptors: Bool32::default(),
allow_sampler_image_view_post_submit_creation: Bool32::default(),
descriptor_buffer_offset_alignment: DeviceSize::default(),
max_descriptor_buffer_bindings: u32::default(),
max_resource_descriptor_buffer_bindings: u32::default(),
max_sampler_descriptor_buffer_bindings: u32::default(),
max_embedded_immutable_sampler_bindings: u32::default(),
max_embedded_immutable_samplers: u32::default(),
buffer_capture_replay_descriptor_data_size: usize::default(),
image_capture_replay_descriptor_data_size: usize::default(),
image_view_capture_replay_descriptor_data_size: usize::default(),
sampler_capture_replay_descriptor_data_size: usize::default(),
acceleration_structure_capture_replay_descriptor_data_size: usize::default(),
sampler_descriptor_size: usize::default(),
combined_image_sampler_descriptor_size: usize::default(),
sampled_image_descriptor_size: usize::default(),
storage_image_descriptor_size: usize::default(),
uniform_texel_buffer_descriptor_size: usize::default(),
robust_uniform_texel_buffer_descriptor_size: usize::default(),
storage_texel_buffer_descriptor_size: usize::default(),
robust_storage_texel_buffer_descriptor_size: usize::default(),
uniform_buffer_descriptor_size: usize::default(),
robust_uniform_buffer_descriptor_size: usize::default(),
storage_buffer_descriptor_size: usize::default(),
robust_storage_buffer_descriptor_size: usize::default(),
input_attachment_descriptor_size: usize::default(),
acceleration_structure_descriptor_size: usize::default(),
max_sampler_descriptor_buffer_range: DeviceSize::default(),
max_resource_descriptor_buffer_range: DeviceSize::default(),
sampler_descriptor_buffer_address_space_size: DeviceSize::default(),
resource_descriptor_buffer_address_space_size: DeviceSize::default(),
descriptor_buffer_address_space_size: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDescriptorIndexingFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDescriptorIndexingFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_input_attachment_array_dynamic_indexing: Bool32,
pub shader_uniform_texel_buffer_array_dynamic_indexing: Bool32,
pub shader_storage_texel_buffer_array_dynamic_indexing: Bool32,
pub shader_uniform_buffer_array_non_uniform_indexing: Bool32,
pub shader_sampled_image_array_non_uniform_indexing: Bool32,
pub shader_storage_buffer_array_non_uniform_indexing: Bool32,
pub shader_storage_image_array_non_uniform_indexing: Bool32,
pub shader_input_attachment_array_non_uniform_indexing: Bool32,
pub shader_uniform_texel_buffer_array_non_uniform_indexing: Bool32,
pub shader_storage_texel_buffer_array_non_uniform_indexing: Bool32,
pub descriptor_binding_uniform_buffer_update_after_bind: Bool32,
pub descriptor_binding_sampled_image_update_after_bind: Bool32,
pub descriptor_binding_storage_image_update_after_bind: Bool32,
pub descriptor_binding_storage_buffer_update_after_bind: Bool32,
pub descriptor_binding_uniform_texel_buffer_update_after_bind: Bool32,
pub descriptor_binding_storage_texel_buffer_update_after_bind: Bool32,
pub descriptor_binding_update_unused_while_pending: Bool32,
pub descriptor_binding_partially_bound: Bool32,
pub descriptor_binding_variable_descriptor_count: Bool32,
pub runtime_descriptor_array: Bool32,
}
impl Default for PhysicalDeviceDescriptorIndexingFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
next: ptr::null_mut(),
shader_input_attachment_array_dynamic_indexing: Bool32::default(),
shader_uniform_texel_buffer_array_dynamic_indexing: Bool32::default(),
shader_storage_texel_buffer_array_dynamic_indexing: Bool32::default(),
shader_uniform_buffer_array_non_uniform_indexing: Bool32::default(),
shader_sampled_image_array_non_uniform_indexing: Bool32::default(),
shader_storage_buffer_array_non_uniform_indexing: Bool32::default(),
shader_storage_image_array_non_uniform_indexing: Bool32::default(),
shader_input_attachment_array_non_uniform_indexing: Bool32::default(),
shader_uniform_texel_buffer_array_non_uniform_indexing: Bool32::default(),
shader_storage_texel_buffer_array_non_uniform_indexing: Bool32::default(),
descriptor_binding_uniform_buffer_update_after_bind: Bool32::default(),
descriptor_binding_sampled_image_update_after_bind: Bool32::default(),
descriptor_binding_storage_image_update_after_bind: Bool32::default(),
descriptor_binding_storage_buffer_update_after_bind: Bool32::default(),
descriptor_binding_uniform_texel_buffer_update_after_bind: Bool32::default(),
descriptor_binding_storage_texel_buffer_update_after_bind: Bool32::default(),
descriptor_binding_update_unused_while_pending: Bool32::default(),
descriptor_binding_partially_bound: Bool32::default(),
descriptor_binding_variable_descriptor_count: Bool32::default(),
runtime_descriptor_array: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDescriptorIndexingProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDescriptorIndexingProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_update_after_bind_descriptors_in_all_pools: u32,
pub shader_uniform_buffer_array_non_uniform_indexing_native: Bool32,
pub shader_sampled_image_array_non_uniform_indexing_native: Bool32,
pub shader_storage_buffer_array_non_uniform_indexing_native: Bool32,
pub shader_storage_image_array_non_uniform_indexing_native: Bool32,
pub shader_input_attachment_array_non_uniform_indexing_native: Bool32,
pub robust_buffer_access_update_after_bind: Bool32,
pub quad_divergent_implicit_lod: Bool32,
pub max_per_stage_descriptor_update_after_bind_samplers: u32,
pub max_per_stage_descriptor_update_after_bind_uniform_buffers: u32,
pub max_per_stage_descriptor_update_after_bind_storage_buffers: u32,
pub max_per_stage_descriptor_update_after_bind_sampled_images: u32,
pub max_per_stage_descriptor_update_after_bind_storage_images: u32,
pub max_per_stage_descriptor_update_after_bind_input_attachments: u32,
pub max_per_stage_update_after_bind_resources: u32,
pub max_descriptor_set_update_after_bind_samplers: u32,
pub max_descriptor_set_update_after_bind_uniform_buffers: u32,
pub max_descriptor_set_update_after_bind_uniform_buffers_dynamic: u32,
pub max_descriptor_set_update_after_bind_storage_buffers: u32,
pub max_descriptor_set_update_after_bind_storage_buffers_dynamic: u32,
pub max_descriptor_set_update_after_bind_sampled_images: u32,
pub max_descriptor_set_update_after_bind_storage_images: u32,
pub max_descriptor_set_update_after_bind_input_attachments: u32,
}
impl Default for PhysicalDeviceDescriptorIndexingProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
next: ptr::null_mut(),
max_update_after_bind_descriptors_in_all_pools: u32::default(),
shader_uniform_buffer_array_non_uniform_indexing_native: Bool32::default(),
shader_sampled_image_array_non_uniform_indexing_native: Bool32::default(),
shader_storage_buffer_array_non_uniform_indexing_native: Bool32::default(),
shader_storage_image_array_non_uniform_indexing_native: Bool32::default(),
shader_input_attachment_array_non_uniform_indexing_native: Bool32::default(),
robust_buffer_access_update_after_bind: Bool32::default(),
quad_divergent_implicit_lod: Bool32::default(),
max_per_stage_descriptor_update_after_bind_samplers: u32::default(),
max_per_stage_descriptor_update_after_bind_uniform_buffers: u32::default(),
max_per_stage_descriptor_update_after_bind_storage_buffers: u32::default(),
max_per_stage_descriptor_update_after_bind_sampled_images: u32::default(),
max_per_stage_descriptor_update_after_bind_storage_images: u32::default(),
max_per_stage_descriptor_update_after_bind_input_attachments: u32::default(),
max_per_stage_update_after_bind_resources: u32::default(),
max_descriptor_set_update_after_bind_samplers: u32::default(),
max_descriptor_set_update_after_bind_uniform_buffers: u32::default(),
max_descriptor_set_update_after_bind_uniform_buffers_dynamic: u32::default(),
max_descriptor_set_update_after_bind_storage_buffers: u32::default(),
max_descriptor_set_update_after_bind_storage_buffers_dynamic: u32::default(),
max_descriptor_set_update_after_bind_sampled_images: u32::default(),
max_descriptor_set_update_after_bind_storage_images: u32::default(),
max_descriptor_set_update_after_bind_input_attachments: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
pub s_type: StructureType,
pub next: *mut c_void,
pub descriptor_set_host_mapping: Bool32,
}
impl Default for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE,
next: ptr::null_mut(),
descriptor_set_host_mapping: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub device_generated_commands: Bool32,
}
impl Default for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV,
next: ptr::null_mut(),
device_generated_commands: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_graphics_shader_group_count: u32,
pub max_indirect_sequence_count: u32,
pub max_indirect_commands_token_count: u32,
pub max_indirect_commands_stream_count: u32,
pub max_indirect_commands_token_offset: u32,
pub max_indirect_commands_stream_stride: u32,
pub min_sequences_count_buffer_offset_alignment: u32,
pub min_sequences_index_buffer_offset_alignment: u32,
pub min_indirect_commands_buffer_offset_alignment: u32,
}
impl Default for PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV,
next: ptr::null_mut(),
max_graphics_shader_group_count: u32::default(),
max_indirect_sequence_count: u32::default(),
max_indirect_commands_token_count: u32::default(),
max_indirect_commands_stream_count: u32::default(),
max_indirect_commands_token_offset: u32::default(),
max_indirect_commands_stream_stride: u32::default(),
min_sequences_count_buffer_offset_alignment: u32::default(),
min_sequences_index_buffer_offset_alignment: u32::default(),
min_indirect_commands_buffer_offset_alignment: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDeviceMemoryReportFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDeviceMemoryReportFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub device_memory_report: Bool32,
}
impl Default for PhysicalDeviceDeviceMemoryReportFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT,
next: ptr::null_mut(),
device_memory_report: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDiagnosticsConfigFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDiagnosticsConfigFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub diagnostics_config: Bool32,
}
impl Default for PhysicalDeviceDiagnosticsConfigFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,
next: ptr::null_mut(),
diagnostics_config: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDiscardRectanglePropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDiscardRectanglePropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_discard_rectangles: u32,
}
impl Default for PhysicalDeviceDiscardRectanglePropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT,
next: ptr::null_mut(),
max_discard_rectangles: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDriverProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDriverProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub driver_id: DriverId,
pub driver_name: StringArray<MAX_DRIVER_NAME_SIZE>,
pub driver_info: StringArray<MAX_DRIVER_INFO_SIZE>,
pub conformance_version: ConformanceVersion,
}
impl Default for PhysicalDeviceDriverProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DRIVER_PROPERTIES,
next: ptr::null_mut(),
driver_id: DriverId::default(),
driver_name: StringArray::default(),
driver_info: StringArray::default(),
conformance_version: ConformanceVersion::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDrmPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDrmPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub has_primary: Bool32,
pub has_render: Bool32,
pub primary_major: i64,
pub primary_minor: i64,
pub render_major: i64,
pub render_minor: i64,
}
impl Default for PhysicalDeviceDrmPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DRM_PROPERTIES_EXT,
next: ptr::null_mut(),
has_primary: Bool32::default(),
has_render: Bool32::default(),
primary_major: i64::default(),
primary_minor: i64::default(),
render_major: i64::default(),
render_minor: i64::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDynamicRenderingFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceDynamicRenderingFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub dynamic_rendering: Bool32,
}
impl Default for PhysicalDeviceDynamicRenderingFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
next: ptr::null_mut(),
dynamic_rendering: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExclusiveScissorFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceExclusiveScissorFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub exclusive_scissor: Bool32,
}
impl Default for PhysicalDeviceExclusiveScissorFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV,
next: ptr::null_mut(),
exclusive_scissor: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExtendedDynamicState2FeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceExtendedDynamicState2FeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub extended_dynamic_state2: Bool32,
pub extended_dynamic_state2_logic_op: Bool32,
pub extended_dynamic_state2_patch_control_points: Bool32,
}
impl Default for PhysicalDeviceExtendedDynamicState2FeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT,
next: ptr::null_mut(),
extended_dynamic_state2: Bool32::default(),
extended_dynamic_state2_logic_op: Bool32::default(),
extended_dynamic_state2_patch_control_points: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExtendedDynamicState3FeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceExtendedDynamicState3FeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub extended_dynamic_state3_tessellation_domain_origin: Bool32,
pub extended_dynamic_state_3depth_clamp_enable: Bool32,
pub extended_dynamic_state3_polygon_mode: Bool32,
pub extended_dynamic_state3_rasterization_samples: Bool32,
pub extended_dynamic_state3_sample_mask: Bool32,
pub extended_dynamic_state3_alpha_to_coverage_enable: Bool32,
pub extended_dynamic_state3_alpha_to_one_enable: Bool32,
pub extended_dynamic_state3_logic_op_enable: Bool32,
pub extended_dynamic_state3_color_blend_enable: Bool32,
pub extended_dynamic_state3_color_blend_equation: Bool32,
pub extended_dynamic_state3_color_write_mask: Bool32,
pub extended_dynamic_state3_rasterization_stream: Bool32,
pub extended_dynamic_state3_conservative_rasterization_mode: Bool32,
pub extended_dynamic_state3_extra_primitive_overestimation_size: Bool32,
pub extended_dynamic_state_3depth_clip_enable: Bool32,
pub extended_dynamic_state3_sample_locations_enable: Bool32,
pub extended_dynamic_state3_color_blend_advanced: Bool32,
pub extended_dynamic_state3_provoking_vertex_mode: Bool32,
pub extended_dynamic_state3_line_rasterization_mode: Bool32,
pub extended_dynamic_state3_line_stipple_enable: Bool32,
pub extended_dynamic_state_3depth_clip_negative_one_to_one: Bool32,
pub extended_dynamic_state3_viewport_w_scaling_enable: Bool32,
pub extended_dynamic_state3_viewport_swizzle: Bool32,
pub extended_dynamic_state3_coverage_to_color_enable: Bool32,
pub extended_dynamic_state3_coverage_to_color_location: Bool32,
pub extended_dynamic_state3_coverage_modulation_mode: Bool32,
pub extended_dynamic_state3_coverage_modulation_table_enable: Bool32,
pub extended_dynamic_state3_coverage_modulation_table: Bool32,
pub extended_dynamic_state3_coverage_reduction_mode: Bool32,
pub extended_dynamic_state3_representative_fragment_test_enable: Bool32,
pub extended_dynamic_state3_shading_rate_image_enable: Bool32,
}
impl Default for PhysicalDeviceExtendedDynamicState3FeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT,
next: ptr::null_mut(),
extended_dynamic_state3_tessellation_domain_origin: Bool32::default(),
extended_dynamic_state_3depth_clamp_enable: Bool32::default(),
extended_dynamic_state3_polygon_mode: Bool32::default(),
extended_dynamic_state3_rasterization_samples: Bool32::default(),
extended_dynamic_state3_sample_mask: Bool32::default(),
extended_dynamic_state3_alpha_to_coverage_enable: Bool32::default(),
extended_dynamic_state3_alpha_to_one_enable: Bool32::default(),
extended_dynamic_state3_logic_op_enable: Bool32::default(),
extended_dynamic_state3_color_blend_enable: Bool32::default(),
extended_dynamic_state3_color_blend_equation: Bool32::default(),
extended_dynamic_state3_color_write_mask: Bool32::default(),
extended_dynamic_state3_rasterization_stream: Bool32::default(),
extended_dynamic_state3_conservative_rasterization_mode: Bool32::default(),
extended_dynamic_state3_extra_primitive_overestimation_size: Bool32::default(),
extended_dynamic_state_3depth_clip_enable: Bool32::default(),
extended_dynamic_state3_sample_locations_enable: Bool32::default(),
extended_dynamic_state3_color_blend_advanced: Bool32::default(),
extended_dynamic_state3_provoking_vertex_mode: Bool32::default(),
extended_dynamic_state3_line_rasterization_mode: Bool32::default(),
extended_dynamic_state3_line_stipple_enable: Bool32::default(),
extended_dynamic_state_3depth_clip_negative_one_to_one: Bool32::default(),
extended_dynamic_state3_viewport_w_scaling_enable: Bool32::default(),
extended_dynamic_state3_viewport_swizzle: Bool32::default(),
extended_dynamic_state3_coverage_to_color_enable: Bool32::default(),
extended_dynamic_state3_coverage_to_color_location: Bool32::default(),
extended_dynamic_state3_coverage_modulation_mode: Bool32::default(),
extended_dynamic_state3_coverage_modulation_table_enable: Bool32::default(),
extended_dynamic_state3_coverage_modulation_table: Bool32::default(),
extended_dynamic_state3_coverage_reduction_mode: Bool32::default(),
extended_dynamic_state3_representative_fragment_test_enable: Bool32::default(),
extended_dynamic_state3_shading_rate_image_enable: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExtendedDynamicState3PropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceExtendedDynamicState3PropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub dynamic_primitive_topology_unrestricted: Bool32,
}
impl Default for PhysicalDeviceExtendedDynamicState3PropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT,
next: ptr::null_mut(),
dynamic_primitive_topology_unrestricted: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExtendedDynamicStateFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceExtendedDynamicStateFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub extended_dynamic_state: Bool32,
}
impl Default for PhysicalDeviceExtendedDynamicStateFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT,
next: ptr::null_mut(),
extended_dynamic_state: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExternalBufferInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceExternalBufferInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: BufferCreateFlags,
pub usage: BufferUsageFlags,
pub handle_type: ExternalMemoryHandleTypeFlags,
}
impl Default for PhysicalDeviceExternalBufferInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
next: ptr::null(),
flags: BufferCreateFlags::default(),
usage: BufferUsageFlags::default(),
handle_type: ExternalMemoryHandleTypeFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExternalFenceInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceExternalFenceInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub handle_type: ExternalFenceHandleTypeFlags,
}
impl Default for PhysicalDeviceExternalFenceInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
next: ptr::null(),
handle_type: ExternalFenceHandleTypeFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExternalImageFormatInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceExternalImageFormatInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub handle_type: ExternalMemoryHandleTypeFlags,
}
impl Default for PhysicalDeviceExternalImageFormatInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
next: ptr::null(),
handle_type: ExternalMemoryHandleTypeFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExternalMemoryHostPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceExternalMemoryHostPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub min_imported_host_pointer_alignment: DeviceSize,
}
impl Default for PhysicalDeviceExternalMemoryHostPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,
next: ptr::null_mut(),
min_imported_host_pointer_alignment: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExternalMemoryRDMAFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceExternalMemoryRDMAFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub external_memory_rdma: Bool32,
}
impl Default for PhysicalDeviceExternalMemoryRDMAFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV,
next: ptr::null_mut(),
external_memory_rdma: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExternalSemaphoreInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceExternalSemaphoreInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub handle_type: ExternalSemaphoreHandleTypeFlags,
}
impl Default for PhysicalDeviceExternalSemaphoreInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
next: ptr::null(),
handle_type: ExternalSemaphoreHandleTypeFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFaultFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceFaultFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub device_fault: Bool32,
pub device_fault_vendor_binary: Bool32,
}
impl Default for PhysicalDeviceFaultFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_FAULT_FEATURES_EXT,
next: ptr::null_mut(),
device_fault: Bool32::default(),
device_fault_vendor_binary: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceFeatures {
pub robust_buffer_access: Bool32,
pub full_draw_index_uint32: Bool32,
pub image_cube_array: Bool32,
pub independent_blend: Bool32,
pub geometry_shader: Bool32,
pub tessellation_shader: Bool32,
pub sample_rate_shading: Bool32,
pub dual_src_blend: Bool32,
pub logic_op: Bool32,
pub multi_draw_indirect: Bool32,
pub draw_indirect_first_instance: Bool32,
pub depth_clamp: Bool32,
pub depth_bias_clamp: Bool32,
pub fill_mode_non_solid: Bool32,
pub depth_bounds: Bool32,
pub wide_lines: Bool32,
pub large_points: Bool32,
pub alpha_to_one: Bool32,
pub multi_viewport: Bool32,
pub sampler_anisotropy: Bool32,
pub texture_compression_etc2: Bool32,
pub texture_compression_astc_ldr: Bool32,
pub texture_compression_bc: Bool32,
pub occlusion_query_precise: Bool32,
pub pipeline_statistics_query: Bool32,
pub vertex_pipeline_stores_and_atomics: Bool32,
pub fragment_stores_and_atomics: Bool32,
pub shader_tessellation_and_geometry_point_size: Bool32,
pub shader_image_gather_extended: Bool32,
pub shader_storage_image_extended_formats: Bool32,
pub shader_storage_image_multisample: Bool32,
pub shader_storage_image_read_without_format: Bool32,
pub shader_storage_image_write_without_format: Bool32,
pub shader_uniform_buffer_array_dynamic_indexing: Bool32,
pub shader_sampled_image_array_dynamic_indexing: Bool32,
pub shader_storage_buffer_array_dynamic_indexing: Bool32,
pub shader_storage_image_array_dynamic_indexing: Bool32,
pub shader_clip_distance: Bool32,
pub shader_cull_distance: Bool32,
pub shader_float64: Bool32,
pub shader_int64: Bool32,
pub shader_int16: Bool32,
pub shader_resource_residency: Bool32,
pub shader_resource_min_lod: Bool32,
pub sparse_binding: Bool32,
pub sparse_residency_buffer: Bool32,
pub sparse_residency_image_2d: Bool32,
pub sparse_residency_image_3d: Bool32,
pub sparse_residency2_samples: Bool32,
pub sparse_residency4_samples: Bool32,
pub sparse_residency8_samples: Bool32,
pub sparse_residency16_samples: Bool32,
pub sparse_residency_aliased: Bool32,
pub variable_multisample_rate: Bool32,
pub inherited_queries: Bool32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFeatures2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceFeatures2 {
pub s_type: StructureType,
pub next: *mut c_void,
pub features: PhysicalDeviceFeatures,
}
impl Default for PhysicalDeviceFeatures2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_FEATURES_2,
next: ptr::null_mut(),
features: PhysicalDeviceFeatures::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFloatControlsProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceFloatControlsProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub denorm_behavior_independence: ShaderFloatControlsIndependence,
pub rounding_mode_independence: ShaderFloatControlsIndependence,
pub shader_signed_zero_inf_nan_preserve_float16: Bool32,
pub shader_signed_zero_inf_nan_preserve_float32: Bool32,
pub shader_signed_zero_inf_nan_preserve_float64: Bool32,
pub shader_denorm_preserve_float16: Bool32,
pub shader_denorm_preserve_float32: Bool32,
pub shader_denorm_preserve_float64: Bool32,
pub shader_denorm_flush_to_zero_float16: Bool32,
pub shader_denorm_flush_to_zero_float32: Bool32,
pub shader_denorm_flush_to_zero_float64: Bool32,
pub shader_rounding_mode_rte_float16: Bool32,
pub shader_rounding_mode_rte_float32: Bool32,
pub shader_rounding_mode_rte_float64: Bool32,
pub shader_rounding_mode_rtz_float16: Bool32,
pub shader_rounding_mode_rtz_float32: Bool32,
pub shader_rounding_mode_rtz_float64: Bool32,
}
impl Default for PhysicalDeviceFloatControlsProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
next: ptr::null_mut(),
denorm_behavior_independence: ShaderFloatControlsIndependence::default(),
rounding_mode_independence: ShaderFloatControlsIndependence::default(),
shader_signed_zero_inf_nan_preserve_float16: Bool32::default(),
shader_signed_zero_inf_nan_preserve_float32: Bool32::default(),
shader_signed_zero_inf_nan_preserve_float64: Bool32::default(),
shader_denorm_preserve_float16: Bool32::default(),
shader_denorm_preserve_float32: Bool32::default(),
shader_denorm_preserve_float64: Bool32::default(),
shader_denorm_flush_to_zero_float16: Bool32::default(),
shader_denorm_flush_to_zero_float32: Bool32::default(),
shader_denorm_flush_to_zero_float64: Bool32::default(),
shader_rounding_mode_rte_float16: Bool32::default(),
shader_rounding_mode_rte_float32: Bool32::default(),
shader_rounding_mode_rte_float64: Bool32::default(),
shader_rounding_mode_rtz_float16: Bool32::default(),
shader_rounding_mode_rtz_float32: Bool32::default(),
shader_rounding_mode_rtz_float64: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFragmentDensityMap2FeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceFragmentDensityMap2FeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub fragment_density_map_deferred: Bool32,
}
impl Default for PhysicalDeviceFragmentDensityMap2FeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,
next: ptr::null_mut(),
fragment_density_map_deferred: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFragmentDensityMap2PropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceFragmentDensityMap2PropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub subsampled_loads: Bool32,
pub subsampled_coarse_reconstruction_early_access: Bool32,
pub max_subsampled_array_layers: u32,
pub max_descriptor_set_subsampled_samplers: u32,
}
impl Default for PhysicalDeviceFragmentDensityMap2PropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,
next: ptr::null_mut(),
subsampled_loads: Bool32::default(),
subsampled_coarse_reconstruction_early_access: Bool32::default(),
max_subsampled_array_layers: u32::default(),
max_descriptor_set_subsampled_samplers: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFragmentDensityMapFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceFragmentDensityMapFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub fragment_density_map: Bool32,
pub fragment_density_map_dynamic: Bool32,
pub fragment_density_map_non_subsampled_images: Bool32,
}
impl Default for PhysicalDeviceFragmentDensityMapFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,
next: ptr::null_mut(),
fragment_density_map: Bool32::default(),
fragment_density_map_dynamic: Bool32::default(),
fragment_density_map_non_subsampled_images: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM {
pub s_type: StructureType,
pub next: *mut c_void,
pub fragment_density_map_offset: Bool32,
}
impl Default for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM,
next: ptr::null_mut(),
fragment_density_map_offset: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM {
pub s_type: StructureType,
pub next: *mut c_void,
pub fragment_density_offset_granularity: Extent2D,
}
impl Default for PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM,
next: ptr::null_mut(),
fragment_density_offset_granularity: Extent2D::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFragmentDensityMapPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceFragmentDensityMapPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub min_fragment_density_texel_size: Extent2D,
pub max_fragment_density_texel_size: Extent2D,
pub fragment_density_invocations: Bool32,
}
impl Default for PhysicalDeviceFragmentDensityMapPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,
next: ptr::null_mut(),
min_fragment_density_texel_size: Extent2D::default(),
max_fragment_density_texel_size: Extent2D::default(),
fragment_density_invocations: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub fragment_shader_barycentric: Bool32,
}
impl Default for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
next: ptr::null_mut(),
fragment_shader_barycentric: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub tri_strip_vertex_order_independent_of_provoking_vertex: Bool32,
}
impl Default for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR,
next: ptr::null_mut(),
tri_strip_vertex_order_independent_of_provoking_vertex: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub fragment_shader_sample_interlock: Bool32,
pub fragment_shader_pixel_interlock: Bool32,
pub fragment_shader_shading_rate_interlock: Bool32,
}
impl Default for PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,
next: ptr::null_mut(),
fragment_shader_sample_interlock: Bool32::default(),
fragment_shader_pixel_interlock: Bool32::default(),
fragment_shader_shading_rate_interlock: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub fragment_shading_rate_enums: Bool32,
pub supersample_fragment_shading_rates: Bool32,
pub no_invocation_fragment_shading_rates: Bool32,
}
impl Default for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV,
next: ptr::null_mut(),
fragment_shading_rate_enums: Bool32::default(),
supersample_fragment_shading_rates: Bool32::default(),
no_invocation_fragment_shading_rates: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_fragment_shading_rate_invocation_count: SampleCountFlags,
}
impl Default for PhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV,
next: ptr::null_mut(),
max_fragment_shading_rate_invocation_count: SampleCountFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFragmentShadingRateFeaturesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceFragmentShadingRateFeaturesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub pipeline_fragment_shading_rate: Bool32,
pub primitive_fragment_shading_rate: Bool32,
pub attachment_fragment_shading_rate: Bool32,
}
impl Default for PhysicalDeviceFragmentShadingRateFeaturesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR,
next: ptr::null_mut(),
pipeline_fragment_shading_rate: Bool32::default(),
primitive_fragment_shading_rate: Bool32::default(),
attachment_fragment_shading_rate: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFragmentShadingRateKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceFragmentShadingRateKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub sample_counts: SampleCountFlags,
pub fragment_size: Extent2D,
}
impl Default for PhysicalDeviceFragmentShadingRateKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR,
next: ptr::null_mut(),
sample_counts: SampleCountFlags::default(),
fragment_size: Extent2D::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFragmentShadingRatePropertiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceFragmentShadingRatePropertiesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub min_fragment_shading_rate_attachment_texel_size: Extent2D,
pub max_fragment_shading_rate_attachment_texel_size: Extent2D,
pub max_fragment_shading_rate_attachment_texel_size_aspect_ratio: u32,
pub primitive_fragment_shading_rate_with_multiple_viewports: Bool32,
pub layered_shading_rate_attachments: Bool32,
pub fragment_shading_rate_non_trivial_combiner_ops: Bool32,
pub max_fragment_size: Extent2D,
pub max_fragment_size_aspect_ratio: u32,
pub max_fragment_shading_rate_coverage_samples: u32,
pub max_fragment_shading_rate_rasterization_samples: SampleCountFlags,
pub fragment_shading_rate_with_shader_depth_stencil_writes: Bool32,
pub fragment_shading_rate_with_sample_mask: Bool32,
pub fragment_shading_rate_with_shader_sample_mask: Bool32,
pub fragment_shading_rate_with_conservative_rasterization: Bool32,
pub fragment_shading_rate_with_fragment_shader_interlock: Bool32,
pub fragment_shading_rate_with_custom_sample_locations: Bool32,
pub fragment_shading_rate_strict_multiply_combiner: Bool32,
}
impl Default for PhysicalDeviceFragmentShadingRatePropertiesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR,
next: ptr::null_mut(),
min_fragment_shading_rate_attachment_texel_size: Extent2D::default(),
max_fragment_shading_rate_attachment_texel_size: Extent2D::default(),
max_fragment_shading_rate_attachment_texel_size_aspect_ratio: u32::default(),
primitive_fragment_shading_rate_with_multiple_viewports: Bool32::default(),
layered_shading_rate_attachments: Bool32::default(),
fragment_shading_rate_non_trivial_combiner_ops: Bool32::default(),
max_fragment_size: Extent2D::default(),
max_fragment_size_aspect_ratio: u32::default(),
max_fragment_shading_rate_coverage_samples: u32::default(),
max_fragment_shading_rate_rasterization_samples: SampleCountFlags::default(),
fragment_shading_rate_with_shader_depth_stencil_writes: Bool32::default(),
fragment_shading_rate_with_sample_mask: Bool32::default(),
fragment_shading_rate_with_shader_sample_mask: Bool32::default(),
fragment_shading_rate_with_conservative_rasterization: Bool32::default(),
fragment_shading_rate_with_fragment_shader_interlock: Bool32::default(),
fragment_shading_rate_with_custom_sample_locations: Bool32::default(),
fragment_shading_rate_strict_multiply_combiner: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceGlobalPriorityQueryFeaturesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub global_priority_query: Bool32,
}
impl Default for PhysicalDeviceGlobalPriorityQueryFeaturesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR,
next: ptr::null_mut(),
global_priority_query: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub graphics_pipeline_library: Bool32,
}
impl Default for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT,
next: ptr::null_mut(),
graphics_pipeline_library: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub graphics_pipeline_library_fast_linking: Bool32,
pub graphics_pipeline_library_independent_interpolation_decoration: Bool32,
}
impl Default for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT,
next: ptr::null_mut(),
graphics_pipeline_library_fast_linking: Bool32::default(),
graphics_pipeline_library_independent_interpolation_decoration: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceGroupProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceGroupProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub physical_device_count: u32,
pub physical_devices: [PhysicalDevice; MAX_DEVICE_GROUP_SIZE],
pub subset_allocation: Bool32,
}
impl Default for PhysicalDeviceGroupProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_GROUP_PROPERTIES,
next: ptr::null_mut(),
physical_device_count: u32::default(),
physical_devices: [PhysicalDevice::default(); MAX_DEVICE_GROUP_SIZE],
subset_allocation: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceHostQueryResetFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceHostQueryResetFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub host_query_reset: Bool32,
}
impl Default for PhysicalDeviceHostQueryResetFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
next: ptr::null_mut(),
host_query_reset: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceIDProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceIDProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub device_uuid: ByteArray<UUID_SIZE>,
pub driver_uuid: ByteArray<UUID_SIZE>,
pub device_luid: ByteArray<LUID_SIZE>,
pub device_node_mask: u32,
pub device_luid_valid: Bool32,
}
impl Default for PhysicalDeviceIDProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_ID_PROPERTIES,
next: ptr::null_mut(),
device_uuid: ByteArray::default(),
driver_uuid: ByteArray::default(),
device_luid: ByteArray::default(),
device_node_mask: u32::default(),
device_luid_valid: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceImage2DViewOf3DFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceImage2DViewOf3DFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub image_2d_view_of_3d: Bool32,
pub sampler_2d_view_of_3d: Bool32,
}
impl Default for PhysicalDeviceImage2DViewOf3DFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT,
next: ptr::null_mut(),
image_2d_view_of_3d: Bool32::default(),
sampler_2d_view_of_3d: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceImageCompressionControlFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceImageCompressionControlFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub image_compression_control: Bool32,
}
impl Default for PhysicalDeviceImageCompressionControlFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT,
next: ptr::null_mut(),
image_compression_control: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub image_compression_control_swapchain: Bool32,
}
impl Default for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT,
next: ptr::null_mut(),
image_compression_control_swapchain: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceImageDrmFormatModifierInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceImageDrmFormatModifierInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub drm_format_modifier: u64,
pub sharing_mode: SharingMode,
pub queue_family_index_count: u32,
pub queue_family_indices: *const u32,
}
impl Default for PhysicalDeviceImageDrmFormatModifierInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
next: ptr::null(),
drm_format_modifier: u64::default(),
sharing_mode: SharingMode::default(),
queue_family_index_count: u32::default(),
queue_family_indices: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceImageFormatInfo2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceImageFormatInfo2 {
pub s_type: StructureType,
pub next: *const c_void,
pub format: Format,
pub type_: ImageType,
pub tiling: ImageTiling,
pub usage: ImageUsageFlags,
pub flags: ImageCreateFlags,
}
impl Default for PhysicalDeviceImageFormatInfo2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
next: ptr::null(),
format: Format::default(),
type_: ImageType::default(),
tiling: ImageTiling::default(),
usage: ImageUsageFlags::default(),
flags: ImageCreateFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceImageProcessingFeaturesQCOM.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceImageProcessingFeaturesQCOM {
pub s_type: StructureType,
pub next: *mut c_void,
pub texture_sample_weighted: Bool32,
pub texture_box_filter: Bool32,
pub texture_block_match: Bool32,
}
impl Default for PhysicalDeviceImageProcessingFeaturesQCOM {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM,
next: ptr::null_mut(),
texture_sample_weighted: Bool32::default(),
texture_box_filter: Bool32::default(),
texture_block_match: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceImageProcessingPropertiesQCOM.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceImageProcessingPropertiesQCOM {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_weight_filter_phases: u32,
pub max_weight_filter_dimension: Extent2D,
pub max_block_match_region: Extent2D,
pub max_box_filter_block_size: Extent2D,
}
impl Default for PhysicalDeviceImageProcessingPropertiesQCOM {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM,
next: ptr::null_mut(),
max_weight_filter_phases: u32::default(),
max_weight_filter_dimension: Extent2D::default(),
max_block_match_region: Extent2D::default(),
max_box_filter_block_size: Extent2D::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceImageRobustnessFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceImageRobustnessFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub robust_image_access: Bool32,
}
impl Default for PhysicalDeviceImageRobustnessFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
next: ptr::null_mut(),
robust_image_access: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceImageViewImageFormatInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceImageViewImageFormatInfoEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub image_view_type: ImageViewType,
}
impl Default for PhysicalDeviceImageViewImageFormatInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,
next: ptr::null_mut(),
image_view_type: ImageViewType::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceImageViewMinLodFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceImageViewMinLodFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub min_lod: Bool32,
}
impl Default for PhysicalDeviceImageViewMinLodFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT,
next: ptr::null_mut(),
min_lod: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceImagelessFramebufferFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceImagelessFramebufferFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub imageless_framebuffer: Bool32,
}
impl Default for PhysicalDeviceImagelessFramebufferFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
next: ptr::null_mut(),
imageless_framebuffer: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceIndexTypeUint8FeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceIndexTypeUint8FeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub index_type_uint8: Bool32,
}
impl Default for PhysicalDeviceIndexTypeUint8FeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,
next: ptr::null_mut(),
index_type_uint8: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceInheritedViewportScissorFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceInheritedViewportScissorFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub inherited_viewport_scissor_2d: Bool32,
}
impl Default for PhysicalDeviceInheritedViewportScissorFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV,
next: ptr::null_mut(),
inherited_viewport_scissor_2d: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceInlineUniformBlockFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceInlineUniformBlockFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub inline_uniform_block: Bool32,
pub descriptor_binding_inline_uniform_block_update_after_bind: Bool32,
}
impl Default for PhysicalDeviceInlineUniformBlockFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
next: ptr::null_mut(),
inline_uniform_block: Bool32::default(),
descriptor_binding_inline_uniform_block_update_after_bind: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceInlineUniformBlockProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceInlineUniformBlockProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_inline_uniform_block_size: u32,
pub max_per_stage_descriptor_inline_uniform_blocks: u32,
pub max_per_stage_descriptor_update_after_bind_inline_uniform_blocks: u32,
pub max_descriptor_set_inline_uniform_blocks: u32,
pub max_descriptor_set_update_after_bind_inline_uniform_blocks: u32,
}
impl Default for PhysicalDeviceInlineUniformBlockProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
next: ptr::null_mut(),
max_inline_uniform_block_size: u32::default(),
max_per_stage_descriptor_inline_uniform_blocks: u32::default(),
max_per_stage_descriptor_update_after_bind_inline_uniform_blocks: u32::default(),
max_descriptor_set_inline_uniform_blocks: u32::default(),
max_descriptor_set_update_after_bind_inline_uniform_blocks: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceInvocationMaskFeaturesHUAWEI.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceInvocationMaskFeaturesHUAWEI {
pub s_type: StructureType,
pub next: *mut c_void,
pub invocation_mask: Bool32,
}
impl Default for PhysicalDeviceInvocationMaskFeaturesHUAWEI {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI,
next: ptr::null_mut(),
invocation_mask: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceLegacyDitheringFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceLegacyDitheringFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub legacy_dithering: Bool32,
}
impl Default for PhysicalDeviceLegacyDitheringFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT,
next: ptr::null_mut(),
legacy_dithering: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceLimits.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, PartialEq)]
pub struct PhysicalDeviceLimits {
pub max_image_dimension_1d: u32,
pub max_image_dimension_2d: u32,
pub max_image_dimension_3d: u32,
pub max_image_dimension_cube: u32,
pub max_image_array_layers: u32,
pub max_texel_buffer_elements: u32,
pub max_uniform_buffer_range: u32,
pub max_storage_buffer_range: u32,
pub max_push_constants_size: u32,
pub max_memory_allocation_count: u32,
pub max_sampler_allocation_count: u32,
pub buffer_image_granularity: DeviceSize,
pub sparse_address_space_size: DeviceSize,
pub max_bound_descriptor_sets: u32,
pub max_per_stage_descriptor_samplers: u32,
pub max_per_stage_descriptor_uniform_buffers: u32,
pub max_per_stage_descriptor_storage_buffers: u32,
pub max_per_stage_descriptor_sampled_images: u32,
pub max_per_stage_descriptor_storage_images: u32,
pub max_per_stage_descriptor_input_attachments: u32,
pub max_per_stage_resources: u32,
pub max_descriptor_set_samplers: u32,
pub max_descriptor_set_uniform_buffers: u32,
pub max_descriptor_set_uniform_buffers_dynamic: u32,
pub max_descriptor_set_storage_buffers: u32,
pub max_descriptor_set_storage_buffers_dynamic: u32,
pub max_descriptor_set_sampled_images: u32,
pub max_descriptor_set_storage_images: u32,
pub max_descriptor_set_input_attachments: u32,
pub max_vertex_input_attributes: u32,
pub max_vertex_input_bindings: u32,
pub max_vertex_input_attribute_offset: u32,
pub max_vertex_input_binding_stride: u32,
pub max_vertex_output_components: u32,
pub max_tessellation_generation_level: u32,
pub max_tessellation_patch_size: u32,
pub max_tessellation_control_per_vertex_input_components: u32,
pub max_tessellation_control_per_vertex_output_components: u32,
pub max_tessellation_control_per_patch_output_components: u32,
pub max_tessellation_control_total_output_components: u32,
pub max_tessellation_evaluation_input_components: u32,
pub max_tessellation_evaluation_output_components: u32,
pub max_geometry_shader_invocations: u32,
pub max_geometry_input_components: u32,
pub max_geometry_output_components: u32,
pub max_geometry_output_vertices: u32,
pub max_geometry_total_output_components: u32,
pub max_fragment_input_components: u32,
pub max_fragment_output_attachments: u32,
pub max_fragment_dual_src_attachments: u32,
pub max_fragment_combined_output_resources: u32,
pub max_compute_shared_memory_size: u32,
pub max_compute_work_group_count: [u32; 3],
pub max_compute_work_group_invocations: u32,
pub max_compute_work_group_size: [u32; 3],
pub sub_pixel_precision_bits: u32,
pub sub_texel_precision_bits: u32,
pub mipmap_precision_bits: u32,
pub max_draw_indexed_index_value: u32,
pub max_draw_indirect_count: u32,
pub max_sampler_lod_bias: f32,
pub max_sampler_anisotropy: f32,
pub max_viewports: u32,
pub max_viewport_dimensions: [u32; 2],
pub viewport_bounds_range: [f32; 2],
pub viewport_sub_pixel_bits: u32,
pub min_memory_map_alignment: usize,
pub min_texel_buffer_offset_alignment: DeviceSize,
pub min_uniform_buffer_offset_alignment: DeviceSize,
pub min_storage_buffer_offset_alignment: DeviceSize,
pub min_texel_offset: i32,
pub max_texel_offset: u32,
pub min_texel_gather_offset: i32,
pub max_texel_gather_offset: u32,
pub min_interpolation_offset: f32,
pub max_interpolation_offset: f32,
pub sub_pixel_interpolation_offset_bits: u32,
pub max_framebuffer_width: u32,
pub max_framebuffer_height: u32,
pub max_framebuffer_layers: u32,
pub framebuffer_color_sample_counts: SampleCountFlags,
pub framebuffer_depth_sample_counts: SampleCountFlags,
pub framebuffer_stencil_sample_counts: SampleCountFlags,
pub framebuffer_no_attachments_sample_counts: SampleCountFlags,
pub max_color_attachments: u32,
pub sampled_image_color_sample_counts: SampleCountFlags,
pub sampled_image_integer_sample_counts: SampleCountFlags,
pub sampled_image_depth_sample_counts: SampleCountFlags,
pub sampled_image_stencil_sample_counts: SampleCountFlags,
pub storage_image_sample_counts: SampleCountFlags,
pub max_sample_mask_words: u32,
pub timestamp_compute_and_graphics: Bool32,
pub timestamp_period: f32,
pub max_clip_distances: u32,
pub max_cull_distances: u32,
pub max_combined_clip_and_cull_distances: u32,
pub discrete_queue_priorities: u32,
pub point_size_range: [f32; 2],
pub line_width_range: [f32; 2],
pub point_size_granularity: f32,
pub line_width_granularity: f32,
pub strict_lines: Bool32,
pub standard_sample_locations: Bool32,
pub optimal_buffer_copy_offset_alignment: DeviceSize,
pub optimal_buffer_copy_row_pitch_alignment: DeviceSize,
pub non_coherent_atom_size: DeviceSize,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceLineRasterizationFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceLineRasterizationFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub rectangular_lines: Bool32,
pub bresenham_lines: Bool32,
pub smooth_lines: Bool32,
pub stippled_rectangular_lines: Bool32,
pub stippled_bresenham_lines: Bool32,
pub stippled_smooth_lines: Bool32,
}
impl Default for PhysicalDeviceLineRasterizationFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT,
next: ptr::null_mut(),
rectangular_lines: Bool32::default(),
bresenham_lines: Bool32::default(),
smooth_lines: Bool32::default(),
stippled_rectangular_lines: Bool32::default(),
stippled_bresenham_lines: Bool32::default(),
stippled_smooth_lines: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceLineRasterizationPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceLineRasterizationPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub line_sub_pixel_precision_bits: u32,
}
impl Default for PhysicalDeviceLineRasterizationPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,
next: ptr::null_mut(),
line_sub_pixel_precision_bits: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceLinearColorAttachmentFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceLinearColorAttachmentFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub linear_color_attachment: Bool32,
}
impl Default for PhysicalDeviceLinearColorAttachmentFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV,
next: ptr::null_mut(),
linear_color_attachment: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMaintenance3Properties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMaintenance3Properties {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_per_set_descriptors: u32,
pub max_memory_allocation_size: DeviceSize,
}
impl Default for PhysicalDeviceMaintenance3Properties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
next: ptr::null_mut(),
max_per_set_descriptors: u32::default(),
max_memory_allocation_size: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMaintenance4Features.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMaintenance4Features {
pub s_type: StructureType,
pub next: *mut c_void,
pub maintenance4: Bool32,
}
impl Default for PhysicalDeviceMaintenance4Features {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
next: ptr::null_mut(),
maintenance4: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMaintenance4Properties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMaintenance4Properties {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_buffer_size: DeviceSize,
}
impl Default for PhysicalDeviceMaintenance4Properties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
next: ptr::null_mut(),
max_buffer_size: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMemoryBudgetPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMemoryBudgetPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub heap_budget: [DeviceSize; MAX_MEMORY_HEAPS],
pub heap_usage: [DeviceSize; MAX_MEMORY_HEAPS],
}
impl Default for PhysicalDeviceMemoryBudgetPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT,
next: ptr::null_mut(),
heap_budget: [DeviceSize::default(); MAX_MEMORY_HEAPS],
heap_usage: [DeviceSize::default(); MAX_MEMORY_HEAPS],
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMemoryDecompressionFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMemoryDecompressionFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub memory_decompression: Bool32,
}
impl Default for PhysicalDeviceMemoryDecompressionFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV,
next: ptr::null_mut(),
memory_decompression: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMemoryDecompressionPropertiesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMemoryDecompressionPropertiesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub decompression_methods: MemoryDecompressionMethodFlagsNV,
pub max_decompression_indirect_count: u64,
}
impl Default for PhysicalDeviceMemoryDecompressionPropertiesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV,
next: ptr::null_mut(),
decompression_methods: MemoryDecompressionMethodFlagsNV::default(),
max_decompression_indirect_count: u64::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMemoryPriorityFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMemoryPriorityFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub memory_priority: Bool32,
}
impl Default for PhysicalDeviceMemoryPriorityFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT,
next: ptr::null_mut(),
memory_priority: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMemoryProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMemoryProperties {
pub memory_type_count: u32,
pub memory_types: [MemoryType; MAX_MEMORY_TYPES],
pub memory_heap_count: u32,
pub memory_heaps: [MemoryHeap; MAX_MEMORY_HEAPS],
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMemoryProperties2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMemoryProperties2 {
pub s_type: StructureType,
pub next: *mut c_void,
pub memory_properties: PhysicalDeviceMemoryProperties,
}
impl Default for PhysicalDeviceMemoryProperties2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
next: ptr::null_mut(),
memory_properties: PhysicalDeviceMemoryProperties::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMeshShaderFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMeshShaderFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub task_shader: Bool32,
pub mesh_shader: Bool32,
pub multiview_mesh_shader: Bool32,
pub primitive_fragment_shading_rate_mesh_shader: Bool32,
pub mesh_shader_queries: Bool32,
}
impl Default for PhysicalDeviceMeshShaderFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT,
next: ptr::null_mut(),
task_shader: Bool32::default(),
mesh_shader: Bool32::default(),
multiview_mesh_shader: Bool32::default(),
primitive_fragment_shading_rate_mesh_shader: Bool32::default(),
mesh_shader_queries: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMeshShaderFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMeshShaderFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub task_shader: Bool32,
pub mesh_shader: Bool32,
}
impl Default for PhysicalDeviceMeshShaderFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV,
next: ptr::null_mut(),
task_shader: Bool32::default(),
mesh_shader: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMeshShaderPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMeshShaderPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_task_work_group_total_count: u32,
pub max_task_work_group_count: [u32; 3],
pub max_task_work_group_invocations: u32,
pub max_task_work_group_size: [u32; 3],
pub max_task_payload_size: u32,
pub max_task_shared_memory_size: u32,
pub max_task_payload_and_shared_memory_size: u32,
pub max_mesh_work_group_total_count: u32,
pub max_mesh_work_group_count: [u32; 3],
pub max_mesh_work_group_invocations: u32,
pub max_mesh_work_group_size: [u32; 3],
pub max_mesh_shared_memory_size: u32,
pub max_mesh_payload_and_shared_memory_size: u32,
pub max_mesh_output_memory_size: u32,
pub max_mesh_payload_and_output_memory_size: u32,
pub max_mesh_output_components: u32,
pub max_mesh_output_vertices: u32,
pub max_mesh_output_primitives: u32,
pub max_mesh_output_layers: u32,
pub max_mesh_multiview_view_count: u32,
pub mesh_output_per_vertex_granularity: u32,
pub mesh_output_per_primitive_granularity: u32,
pub max_preferred_task_work_group_invocations: u32,
pub max_preferred_mesh_work_group_invocations: u32,
pub prefers_local_invocation_vertex_output: Bool32,
pub prefers_local_invocation_primitive_output: Bool32,
pub prefers_compact_vertex_output: Bool32,
pub prefers_compact_primitive_output: Bool32,
}
impl Default for PhysicalDeviceMeshShaderPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT,
next: ptr::null_mut(),
max_task_work_group_total_count: u32::default(),
max_task_work_group_count: [u32::default(); 3],
max_task_work_group_invocations: u32::default(),
max_task_work_group_size: [u32::default(); 3],
max_task_payload_size: u32::default(),
max_task_shared_memory_size: u32::default(),
max_task_payload_and_shared_memory_size: u32::default(),
max_mesh_work_group_total_count: u32::default(),
max_mesh_work_group_count: [u32::default(); 3],
max_mesh_work_group_invocations: u32::default(),
max_mesh_work_group_size: [u32::default(); 3],
max_mesh_shared_memory_size: u32::default(),
max_mesh_payload_and_shared_memory_size: u32::default(),
max_mesh_output_memory_size: u32::default(),
max_mesh_payload_and_output_memory_size: u32::default(),
max_mesh_output_components: u32::default(),
max_mesh_output_vertices: u32::default(),
max_mesh_output_primitives: u32::default(),
max_mesh_output_layers: u32::default(),
max_mesh_multiview_view_count: u32::default(),
mesh_output_per_vertex_granularity: u32::default(),
mesh_output_per_primitive_granularity: u32::default(),
max_preferred_task_work_group_invocations: u32::default(),
max_preferred_mesh_work_group_invocations: u32::default(),
prefers_local_invocation_vertex_output: Bool32::default(),
prefers_local_invocation_primitive_output: Bool32::default(),
prefers_compact_vertex_output: Bool32::default(),
prefers_compact_primitive_output: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMeshShaderPropertiesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMeshShaderPropertiesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_draw_mesh_tasks_count: u32,
pub max_task_work_group_invocations: u32,
pub max_task_work_group_size: [u32; 3],
pub max_task_total_memory_size: u32,
pub max_task_output_count: u32,
pub max_mesh_work_group_invocations: u32,
pub max_mesh_work_group_size: [u32; 3],
pub max_mesh_total_memory_size: u32,
pub max_mesh_output_vertices: u32,
pub max_mesh_output_primitives: u32,
pub max_mesh_multiview_view_count: u32,
pub mesh_output_per_vertex_granularity: u32,
pub mesh_output_per_primitive_granularity: u32,
}
impl Default for PhysicalDeviceMeshShaderPropertiesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV,
next: ptr::null_mut(),
max_draw_mesh_tasks_count: u32::default(),
max_task_work_group_invocations: u32::default(),
max_task_work_group_size: [u32::default(); 3],
max_task_total_memory_size: u32::default(),
max_task_output_count: u32::default(),
max_mesh_work_group_invocations: u32::default(),
max_mesh_work_group_size: [u32::default(); 3],
max_mesh_total_memory_size: u32::default(),
max_mesh_output_vertices: u32::default(),
max_mesh_output_primitives: u32::default(),
max_mesh_multiview_view_count: u32::default(),
mesh_output_per_vertex_granularity: u32::default(),
mesh_output_per_primitive_granularity: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMultiDrawFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMultiDrawFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub multi_draw: Bool32,
}
impl Default for PhysicalDeviceMultiDrawFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT,
next: ptr::null_mut(),
multi_draw: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMultiDrawPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMultiDrawPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_multi_draw_count: u32,
}
impl Default for PhysicalDeviceMultiDrawPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT,
next: ptr::null_mut(),
max_multi_draw_count: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub multisampled_render_to_single_sampled: Bool32,
}
impl Default for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type:
StructureType::PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT,
next: ptr::null_mut(),
multisampled_render_to_single_sampled: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMultiviewFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMultiviewFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub multiview: Bool32,
pub multiview_geometry_shader: Bool32,
pub multiview_tessellation_shader: Bool32,
}
impl Default for PhysicalDeviceMultiviewFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
next: ptr::null_mut(),
multiview: Bool32::default(),
multiview_geometry_shader: Bool32::default(),
multiview_tessellation_shader: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
pub s_type: StructureType,
pub next: *mut c_void,
pub per_view_position_all_components: Bool32,
}
impl Default for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX,
next: ptr::null_mut(),
per_view_position_all_components: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
pub s_type: StructureType,
pub next: *mut c_void,
pub multiview_per_view_viewports: Bool32,
}
impl Default for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM,
next: ptr::null_mut(),
multiview_per_view_viewports: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMultiviewProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMultiviewProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_multiview_view_count: u32,
pub max_multiview_instance_index: u32,
}
impl Default for PhysicalDeviceMultiviewProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
next: ptr::null_mut(),
max_multiview_view_count: u32::default(),
max_multiview_instance_index: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceMutableDescriptorTypeFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub mutable_descriptor_type: Bool32,
}
impl Default for PhysicalDeviceMutableDescriptorTypeFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
next: ptr::null_mut(),
mutable_descriptor_type: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub non_seamless_cube_map: Bool32,
}
impl Default for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT,
next: ptr::null_mut(),
non_seamless_cube_map: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceOpacityMicromapFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceOpacityMicromapFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub micromap: Bool32,
pub micromap_capture_replay: Bool32,
pub micromap_host_commands: Bool32,
}
impl Default for PhysicalDeviceOpacityMicromapFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT,
next: ptr::null_mut(),
micromap: Bool32::default(),
micromap_capture_replay: Bool32::default(),
micromap_host_commands: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceOpacityMicromapPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceOpacityMicromapPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_opacity2_state_subdivision_level: u32,
pub max_opacity4_state_subdivision_level: u32,
}
impl Default for PhysicalDeviceOpacityMicromapPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT,
next: ptr::null_mut(),
max_opacity2_state_subdivision_level: u32::default(),
max_opacity4_state_subdivision_level: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceOpticalFlowFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceOpticalFlowFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub optical_flow: Bool32,
}
impl Default for PhysicalDeviceOpticalFlowFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV,
next: ptr::null_mut(),
optical_flow: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceOpticalFlowPropertiesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceOpticalFlowPropertiesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub supported_output_grid_sizes: OpticalFlowGridSizeFlagsNV,
pub supported_hint_grid_sizes: OpticalFlowGridSizeFlagsNV,
pub hint_supported: Bool32,
pub cost_supported: Bool32,
pub bidirectional_flow_supported: Bool32,
pub global_flow_supported: Bool32,
pub min_width: u32,
pub min_height: u32,
pub max_width: u32,
pub max_height: u32,
pub max_num_regions_of_interest: u32,
}
impl Default for PhysicalDeviceOpticalFlowPropertiesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV,
next: ptr::null_mut(),
supported_output_grid_sizes: OpticalFlowGridSizeFlagsNV::default(),
supported_hint_grid_sizes: OpticalFlowGridSizeFlagsNV::default(),
hint_supported: Bool32::default(),
cost_supported: Bool32::default(),
bidirectional_flow_supported: Bool32::default(),
global_flow_supported: Bool32::default(),
min_width: u32::default(),
min_height: u32::default(),
max_width: u32::default(),
max_height: u32::default(),
max_num_regions_of_interest: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePCIBusInfoPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePCIBusInfoPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub pci_domain: u32,
pub pci_bus: u32,
pub pci_device: u32,
pub pci_function: u32,
}
impl Default for PhysicalDevicePCIBusInfoPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT,
next: ptr::null_mut(),
pci_domain: u32::default(),
pci_bus: u32::default(),
pci_device: u32::default(),
pci_function: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub pageable_device_local_memory: Bool32,
}
impl Default for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT,
next: ptr::null_mut(),
pageable_device_local_memory: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePerformanceQueryFeaturesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePerformanceQueryFeaturesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub performance_counter_query_pools: Bool32,
pub performance_counter_multiple_query_pools: Bool32,
}
impl Default for PhysicalDevicePerformanceQueryFeaturesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR,
next: ptr::null_mut(),
performance_counter_query_pools: Bool32::default(),
performance_counter_multiple_query_pools: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePerformanceQueryPropertiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePerformanceQueryPropertiesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub allow_command_buffer_query_copies: Bool32,
}
impl Default for PhysicalDevicePerformanceQueryPropertiesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR,
next: ptr::null_mut(),
allow_command_buffer_query_copies: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePipelineCreationCacheControlFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePipelineCreationCacheControlFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub pipeline_creation_cache_control: Bool32,
}
impl Default for PhysicalDevicePipelineCreationCacheControlFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
next: ptr::null_mut(),
pipeline_creation_cache_control: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub pipeline_executable_info: Bool32,
}
impl Default for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,
next: ptr::null_mut(),
pipeline_executable_info: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePipelinePropertiesFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePipelinePropertiesFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub pipeline_properties_identifier: Bool32,
}
impl Default for PhysicalDevicePipelinePropertiesFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT,
next: ptr::null_mut(),
pipeline_properties_identifier: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePipelineProtectedAccessFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePipelineProtectedAccessFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub pipeline_protected_access: Bool32,
}
impl Default for PhysicalDevicePipelineProtectedAccessFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT,
next: ptr::null_mut(),
pipeline_protected_access: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePipelineRobustnessFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePipelineRobustnessFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub pipeline_robustness: Bool32,
}
impl Default for PhysicalDevicePipelineRobustnessFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT,
next: ptr::null_mut(),
pipeline_robustness: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePipelineRobustnessPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePipelineRobustnessPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub default_robustness_storage_buffers: PipelineRobustnessBufferBehaviorEXT,
pub default_robustness_uniform_buffers: PipelineRobustnessBufferBehaviorEXT,
pub default_robustness_vertex_inputs: PipelineRobustnessBufferBehaviorEXT,
pub default_robustness_images: PipelineRobustnessImageBehaviorEXT,
}
impl Default for PhysicalDevicePipelineRobustnessPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT,
next: ptr::null_mut(),
default_robustness_storage_buffers: PipelineRobustnessBufferBehaviorEXT::default(),
default_robustness_uniform_buffers: PipelineRobustnessBufferBehaviorEXT::default(),
default_robustness_vertex_inputs: PipelineRobustnessBufferBehaviorEXT::default(),
default_robustness_images: PipelineRobustnessImageBehaviorEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePointClippingProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePointClippingProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub point_clipping_behavior: PointClippingBehavior,
}
impl Default for PhysicalDevicePointClippingProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
next: ptr::null_mut(),
point_clipping_behavior: PointClippingBehavior::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePortabilitySubsetFeaturesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePortabilitySubsetFeaturesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub constant_alpha_color_blend_factors: Bool32,
pub events: Bool32,
pub image_view_format_reinterpretation: Bool32,
pub image_view_format_swizzle: Bool32,
pub image_view_2d_on_3d_image: Bool32,
pub multisample_array_image: Bool32,
pub mutable_comparison_samplers: Bool32,
pub point_polygons: Bool32,
pub sampler_mip_lod_bias: Bool32,
pub separate_stencil_mask_ref: Bool32,
pub shader_sample_rate_interpolation_functions: Bool32,
pub tessellation_isolines: Bool32,
pub tessellation_point_mode: Bool32,
pub triangle_fans: Bool32,
pub vertex_attribute_access_beyond_stride: Bool32,
}
impl Default for PhysicalDevicePortabilitySubsetFeaturesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR,
next: ptr::null_mut(),
constant_alpha_color_blend_factors: Bool32::default(),
events: Bool32::default(),
image_view_format_reinterpretation: Bool32::default(),
image_view_format_swizzle: Bool32::default(),
image_view_2d_on_3d_image: Bool32::default(),
multisample_array_image: Bool32::default(),
mutable_comparison_samplers: Bool32::default(),
point_polygons: Bool32::default(),
sampler_mip_lod_bias: Bool32::default(),
separate_stencil_mask_ref: Bool32::default(),
shader_sample_rate_interpolation_functions: Bool32::default(),
tessellation_isolines: Bool32::default(),
tessellation_point_mode: Bool32::default(),
triangle_fans: Bool32::default(),
vertex_attribute_access_beyond_stride: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePortabilitySubsetPropertiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePortabilitySubsetPropertiesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub min_vertex_input_binding_stride_alignment: u32,
}
impl Default for PhysicalDevicePortabilitySubsetPropertiesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR,
next: ptr::null_mut(),
min_vertex_input_binding_stride_alignment: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePresentBarrierFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePresentBarrierFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub present_barrier: Bool32,
}
impl Default for PhysicalDevicePresentBarrierFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV,
next: ptr::null_mut(),
present_barrier: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePresentIdFeaturesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePresentIdFeaturesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub present_id: Bool32,
}
impl Default for PhysicalDevicePresentIdFeaturesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR,
next: ptr::null_mut(),
present_id: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePresentWaitFeaturesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePresentWaitFeaturesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub present_wait: Bool32,
}
impl Default for PhysicalDevicePresentWaitFeaturesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR,
next: ptr::null_mut(),
present_wait: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub primitive_topology_list_restart: Bool32,
pub primitive_topology_patch_list_restart: Bool32,
}
impl Default for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT,
next: ptr::null_mut(),
primitive_topology_list_restart: Bool32::default(),
primitive_topology_patch_list_restart: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub primitives_generated_query: Bool32,
pub primitives_generated_query_with_rasterizer_discard: Bool32,
pub primitives_generated_query_with_non_zero_streams: Bool32,
}
impl Default for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT,
next: ptr::null_mut(),
primitives_generated_query: Bool32::default(),
primitives_generated_query_with_rasterizer_discard: Bool32::default(),
primitives_generated_query_with_non_zero_streams: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePrivateDataFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePrivateDataFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub private_data: Bool32,
}
impl Default for PhysicalDevicePrivateDataFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
next: ptr::null_mut(),
private_data: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, PartialEq)]
pub struct PhysicalDeviceProperties {
pub api_version: u32,
pub driver_version: u32,
pub vendor_id: u32,
pub device_id: u32,
pub device_type: PhysicalDeviceType,
pub device_name: StringArray<MAX_PHYSICAL_DEVICE_NAME_SIZE>,
pub pipeline_cache_uuid: ByteArray<UUID_SIZE>,
pub limits: PhysicalDeviceLimits,
pub sparse_properties: PhysicalDeviceSparseProperties,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceProperties2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct PhysicalDeviceProperties2 {
pub s_type: StructureType,
pub next: *mut c_void,
pub properties: PhysicalDeviceProperties,
}
impl Default for PhysicalDeviceProperties2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PROPERTIES_2,
next: ptr::null_mut(),
properties: PhysicalDeviceProperties::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceProtectedMemoryFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceProtectedMemoryFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub protected_memory: Bool32,
}
impl Default for PhysicalDeviceProtectedMemoryFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,
next: ptr::null_mut(),
protected_memory: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceProtectedMemoryProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceProtectedMemoryProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub protected_no_fault: Bool32,
}
impl Default for PhysicalDeviceProtectedMemoryProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,
next: ptr::null_mut(),
protected_no_fault: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceProvokingVertexFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceProvokingVertexFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub provoking_vertex_last: Bool32,
pub transform_feedback_preserves_provoking_vertex: Bool32,
}
impl Default for PhysicalDeviceProvokingVertexFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT,
next: ptr::null_mut(),
provoking_vertex_last: Bool32::default(),
transform_feedback_preserves_provoking_vertex: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceProvokingVertexPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceProvokingVertexPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub provoking_vertex_mode_per_pipeline: Bool32,
pub transform_feedback_preserves_triangle_fan_provoking_vertex: Bool32,
}
impl Default for PhysicalDeviceProvokingVertexPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT,
next: ptr::null_mut(),
provoking_vertex_mode_per_pipeline: Bool32::default(),
transform_feedback_preserves_triangle_fan_provoking_vertex: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePushDescriptorPropertiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDevicePushDescriptorPropertiesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_push_descriptors: u32,
}
impl Default for PhysicalDevicePushDescriptorPropertiesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,
next: ptr::null_mut(),
max_push_descriptors: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceRGBA10X6FormatsFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub format_rgba10x6_without_y_cb_cr_sampler: Bool32,
}
impl Default for PhysicalDeviceRGBA10X6FormatsFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT,
next: ptr::null_mut(),
format_rgba10x6_without_y_cb_cr_sampler: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub rasterization_order_color_attachment_access: Bool32,
pub rasterization_order_depth_attachment_access: Bool32,
pub rasterization_order_stencil_attachment_access: Bool32,
}
impl Default for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type:
StructureType::PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
next: ptr::null_mut(),
rasterization_order_color_attachment_access: Bool32::default(),
rasterization_order_depth_attachment_access: Bool32::default(),
rasterization_order_stencil_attachment_access: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceRayQueryFeaturesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceRayQueryFeaturesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub ray_query: Bool32,
}
impl Default for PhysicalDeviceRayQueryFeaturesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR,
next: ptr::null_mut(),
ray_query: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceRayTracingInvocationReorderFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub ray_tracing_invocation_reorder: Bool32,
}
impl Default for PhysicalDeviceRayTracingInvocationReorderFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV,
next: ptr::null_mut(),
ray_tracing_invocation_reorder: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceRayTracingInvocationReorderPropertiesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub ray_tracing_invocation_reorder_reordering_hint: RayTracingInvocationReorderModeNV,
}
impl Default for PhysicalDeviceRayTracingInvocationReorderPropertiesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV,
next: ptr::null_mut(),
ray_tracing_invocation_reorder_reordering_hint:
RayTracingInvocationReorderModeNV::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceRayTracingMaintenance1FeaturesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub ray_tracing_maintenance1: Bool32,
pub ray_tracing_pipeline_trace_rays_indirect2: Bool32,
}
impl Default for PhysicalDeviceRayTracingMaintenance1FeaturesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR,
next: ptr::null_mut(),
ray_tracing_maintenance1: Bool32::default(),
ray_tracing_pipeline_trace_rays_indirect2: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceRayTracingMotionBlurFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceRayTracingMotionBlurFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub ray_tracing_motion_blur: Bool32,
pub ray_tracing_motion_blur_pipeline_trace_rays_indirect: Bool32,
}
impl Default for PhysicalDeviceRayTracingMotionBlurFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV,
next: ptr::null_mut(),
ray_tracing_motion_blur: Bool32::default(),
ray_tracing_motion_blur_pipeline_trace_rays_indirect: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceRayTracingPipelineFeaturesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceRayTracingPipelineFeaturesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub ray_tracing_pipeline: Bool32,
pub ray_tracing_pipeline_shader_group_handle_capture_replay: Bool32,
pub ray_tracing_pipeline_shader_group_handle_capture_replay_mixed: Bool32,
pub ray_tracing_pipeline_trace_rays_indirect: Bool32,
pub ray_traversal_primitive_culling: Bool32,
}
impl Default for PhysicalDeviceRayTracingPipelineFeaturesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR,
next: ptr::null_mut(),
ray_tracing_pipeline: Bool32::default(),
ray_tracing_pipeline_shader_group_handle_capture_replay: Bool32::default(),
ray_tracing_pipeline_shader_group_handle_capture_replay_mixed: Bool32::default(),
ray_tracing_pipeline_trace_rays_indirect: Bool32::default(),
ray_traversal_primitive_culling: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceRayTracingPipelinePropertiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceRayTracingPipelinePropertiesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_group_handle_size: u32,
pub max_ray_recursion_depth: u32,
pub max_shader_group_stride: u32,
pub shader_group_base_alignment: u32,
pub shader_group_handle_capture_replay_size: u32,
pub max_ray_dispatch_invocation_count: u32,
pub shader_group_handle_alignment: u32,
pub max_ray_hit_attribute_size: u32,
}
impl Default for PhysicalDeviceRayTracingPipelinePropertiesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR,
next: ptr::null_mut(),
shader_group_handle_size: u32::default(),
max_ray_recursion_depth: u32::default(),
max_shader_group_stride: u32::default(),
shader_group_base_alignment: u32::default(),
shader_group_handle_capture_replay_size: u32::default(),
max_ray_dispatch_invocation_count: u32::default(),
shader_group_handle_alignment: u32::default(),
max_ray_hit_attribute_size: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceRayTracingPropertiesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceRayTracingPropertiesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_group_handle_size: u32,
pub max_recursion_depth: u32,
pub max_shader_group_stride: u32,
pub shader_group_base_alignment: u32,
pub max_geometry_count: u64,
pub max_instance_count: u64,
pub max_triangle_count: u64,
pub max_descriptor_set_acceleration_structures: u32,
}
impl Default for PhysicalDeviceRayTracingPropertiesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
next: ptr::null_mut(),
shader_group_handle_size: u32::default(),
max_recursion_depth: u32::default(),
max_shader_group_stride: u32::default(),
shader_group_base_alignment: u32::default(),
max_geometry_count: u64::default(),
max_instance_count: u64::default(),
max_triangle_count: u64::default(),
max_descriptor_set_acceleration_structures: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub representative_fragment_test: Bool32,
}
impl Default for PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,
next: ptr::null_mut(),
representative_fragment_test: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceRobustness2FeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceRobustness2FeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub robust_buffer_access2: Bool32,
pub robust_image_access2: Bool32,
pub null_descriptor: Bool32,
}
impl Default for PhysicalDeviceRobustness2FeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT,
next: ptr::null_mut(),
robust_buffer_access2: Bool32::default(),
robust_image_access2: Bool32::default(),
null_descriptor: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceRobustness2PropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceRobustness2PropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub robust_storage_buffer_access_size_alignment: DeviceSize,
pub robust_uniform_buffer_access_size_alignment: DeviceSize,
}
impl Default for PhysicalDeviceRobustness2PropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT,
next: ptr::null_mut(),
robust_storage_buffer_access_size_alignment: DeviceSize::default(),
robust_uniform_buffer_access_size_alignment: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSampleLocationsPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct PhysicalDeviceSampleLocationsPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub sample_location_sample_counts: SampleCountFlags,
pub max_sample_location_grid_size: Extent2D,
pub sample_location_coordinate_range: [f32; 2],
pub sample_location_sub_pixel_bits: u32,
pub variable_sample_locations: Bool32,
}
impl Default for PhysicalDeviceSampleLocationsPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,
next: ptr::null_mut(),
sample_location_sample_counts: SampleCountFlags::default(),
max_sample_location_grid_size: Extent2D::default(),
sample_location_coordinate_range: [f32::default(); 2],
sample_location_sub_pixel_bits: u32::default(),
variable_sample_locations: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSamplerFilterMinmaxProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceSamplerFilterMinmaxProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub filter_minmax_single_component_formats: Bool32,
pub filter_minmax_image_component_mapping: Bool32,
}
impl Default for PhysicalDeviceSamplerFilterMinmaxProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
next: ptr::null_mut(),
filter_minmax_single_component_formats: Bool32::default(),
filter_minmax_image_component_mapping: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSamplerYcbcrConversionFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceSamplerYcbcrConversionFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub sampler_ycbcr_conversion: Bool32,
}
impl Default for PhysicalDeviceSamplerYcbcrConversionFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
next: ptr::null_mut(),
sampler_ycbcr_conversion: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceScalarBlockLayoutFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceScalarBlockLayoutFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub scalar_block_layout: Bool32,
}
impl Default for PhysicalDeviceScalarBlockLayoutFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
next: ptr::null_mut(),
scalar_block_layout: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub separate_depth_stencil_layouts: Bool32,
}
impl Default for PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
next: ptr::null_mut(),
separate_depth_stencil_layouts: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderAtomicFloat2FeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_buffer_float16_atomics: Bool32,
pub shader_buffer_float16_atomic_add: Bool32,
pub shader_buffer_float16_atomic_min_max: Bool32,
pub shader_buffer_float32_atomic_min_max: Bool32,
pub shader_buffer_float64_atomic_min_max: Bool32,
pub shader_shared_float16_atomics: Bool32,
pub shader_shared_float16_atomic_add: Bool32,
pub shader_shared_float16_atomic_min_max: Bool32,
pub shader_shared_float32_atomic_min_max: Bool32,
pub shader_shared_float64_atomic_min_max: Bool32,
pub shader_image_float32_atomic_min_max: Bool32,
pub sparse_image_float32_atomic_min_max: Bool32,
}
impl Default for PhysicalDeviceShaderAtomicFloat2FeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT,
next: ptr::null_mut(),
shader_buffer_float16_atomics: Bool32::default(),
shader_buffer_float16_atomic_add: Bool32::default(),
shader_buffer_float16_atomic_min_max: Bool32::default(),
shader_buffer_float32_atomic_min_max: Bool32::default(),
shader_buffer_float64_atomic_min_max: Bool32::default(),
shader_shared_float16_atomics: Bool32::default(),
shader_shared_float16_atomic_add: Bool32::default(),
shader_shared_float16_atomic_min_max: Bool32::default(),
shader_shared_float32_atomic_min_max: Bool32::default(),
shader_shared_float64_atomic_min_max: Bool32::default(),
shader_image_float32_atomic_min_max: Bool32::default(),
sparse_image_float32_atomic_min_max: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderAtomicFloatFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderAtomicFloatFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_buffer_float32_atomics: Bool32,
pub shader_buffer_float32_atomic_add: Bool32,
pub shader_buffer_float64_atomics: Bool32,
pub shader_buffer_float64_atomic_add: Bool32,
pub shader_shared_float32_atomics: Bool32,
pub shader_shared_float32_atomic_add: Bool32,
pub shader_shared_float64_atomics: Bool32,
pub shader_shared_float64_atomic_add: Bool32,
pub shader_image_float32_atomics: Bool32,
pub shader_image_float32_atomic_add: Bool32,
pub sparse_image_float32_atomics: Bool32,
pub sparse_image_float32_atomic_add: Bool32,
}
impl Default for PhysicalDeviceShaderAtomicFloatFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT,
next: ptr::null_mut(),
shader_buffer_float32_atomics: Bool32::default(),
shader_buffer_float32_atomic_add: Bool32::default(),
shader_buffer_float64_atomics: Bool32::default(),
shader_buffer_float64_atomic_add: Bool32::default(),
shader_shared_float32_atomics: Bool32::default(),
shader_shared_float32_atomic_add: Bool32::default(),
shader_shared_float64_atomics: Bool32::default(),
shader_shared_float64_atomic_add: Bool32::default(),
shader_image_float32_atomics: Bool32::default(),
shader_image_float32_atomic_add: Bool32::default(),
sparse_image_float32_atomics: Bool32::default(),
sparse_image_float32_atomic_add: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderAtomicInt64Features.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderAtomicInt64Features {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_buffer_int64_atomics: Bool32,
pub shader_shared_int64_atomics: Bool32,
}
impl Default for PhysicalDeviceShaderAtomicInt64Features {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
next: ptr::null_mut(),
shader_buffer_int64_atomics: Bool32::default(),
shader_shared_int64_atomics: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderClockFeaturesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderClockFeaturesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_subgroup_clock: Bool32,
pub shader_device_clock: Bool32,
}
impl Default for PhysicalDeviceShaderClockFeaturesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR,
next: ptr::null_mut(),
shader_subgroup_clock: Bool32::default(),
shader_device_clock: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderCoreBuiltinsFeaturesARM {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_core_builtins: Bool32,
}
impl Default for PhysicalDeviceShaderCoreBuiltinsFeaturesARM {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM,
next: ptr::null_mut(),
shader_core_builtins: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderCoreBuiltinsPropertiesARM {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_core_mask: u64,
pub shader_core_count: u32,
pub shader_warps_per_core: u32,
}
impl Default for PhysicalDeviceShaderCoreBuiltinsPropertiesARM {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM,
next: ptr::null_mut(),
shader_core_mask: u64::default(),
shader_core_count: u32::default(),
shader_warps_per_core: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderCoreProperties2AMD.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderCoreProperties2AMD {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_core_features: ShaderCorePropertiesFlagsAMD,
pub active_compute_unit_count: u32,
}
impl Default for PhysicalDeviceShaderCoreProperties2AMD {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD,
next: ptr::null_mut(),
shader_core_features: ShaderCorePropertiesFlagsAMD::default(),
active_compute_unit_count: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderCorePropertiesAMD.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderCorePropertiesAMD {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_engine_count: u32,
pub shader_arrays_per_engine_count: u32,
pub compute_units_per_shader_array: u32,
pub simd_per_compute_unit: u32,
pub wavefronts_per_simd: u32,
pub wavefront_size: u32,
pub sgprs_per_simd: u32,
pub min_sgpr_allocation: u32,
pub max_sgpr_allocation: u32,
pub sgpr_allocation_granularity: u32,
pub vgprs_per_simd: u32,
pub min_vgpr_allocation: u32,
pub max_vgpr_allocation: u32,
pub vgpr_allocation_granularity: u32,
}
impl Default for PhysicalDeviceShaderCorePropertiesAMD {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,
next: ptr::null_mut(),
shader_engine_count: u32::default(),
shader_arrays_per_engine_count: u32::default(),
compute_units_per_shader_array: u32::default(),
simd_per_compute_unit: u32::default(),
wavefronts_per_simd: u32::default(),
wavefront_size: u32::default(),
sgprs_per_simd: u32::default(),
min_sgpr_allocation: u32::default(),
max_sgpr_allocation: u32::default(),
sgpr_allocation_granularity: u32::default(),
vgprs_per_simd: u32::default(),
min_vgpr_allocation: u32::default(),
max_vgpr_allocation: u32::default(),
vgpr_allocation_granularity: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderDemoteToHelperInvocationFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_demote_to_helper_invocation: Bool32,
}
impl Default for PhysicalDeviceShaderDemoteToHelperInvocationFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
next: ptr::null_mut(),
shader_demote_to_helper_invocation: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderDrawParametersFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderDrawParametersFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_draw_parameters: Bool32,
}
impl Default for PhysicalDeviceShaderDrawParametersFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
next: ptr::null_mut(),
shader_draw_parameters: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_early_and_late_fragment_tests: Bool32,
}
impl Default for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
#[inline]
fn default() -> Self {
Self {
s_type:
StructureType::PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD,
next: ptr::null_mut(),
shader_early_and_late_fragment_tests: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderFloat16Int8Features.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderFloat16Int8Features {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_float16: Bool32,
pub shader_int8: Bool32,
}
impl Default for PhysicalDeviceShaderFloat16Int8Features {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
next: ptr::null_mut(),
shader_float16: Bool32::default(),
shader_int8: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_image_int64_atomics: Bool32,
pub sparse_image_int64_atomics: Bool32,
}
impl Default for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT,
next: ptr::null_mut(),
shader_image_int64_atomics: Bool32::default(),
sparse_image_int64_atomics: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderImageFootprintFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderImageFootprintFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub image_footprint: Bool32,
}
impl Default for PhysicalDeviceShaderImageFootprintFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,
next: ptr::null_mut(),
image_footprint: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderIntegerDotProductFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderIntegerDotProductFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_integer_dot_product: Bool32,
}
impl Default for PhysicalDeviceShaderIntegerDotProductFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
next: ptr::null_mut(),
shader_integer_dot_product: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderIntegerDotProductProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderIntegerDotProductProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub integer_dot_product_8bit_unsigned_accelerated: Bool32,
pub integer_dot_product_8bit_signed_accelerated: Bool32,
pub integer_dot_product_8bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product4x_8bit_packed_unsigned_accelerated: Bool32,
pub integer_dot_product4x_8bit_packed_signed_accelerated: Bool32,
pub integer_dot_product4x_8bit_packed_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_16bit_unsigned_accelerated: Bool32,
pub integer_dot_product_16bit_signed_accelerated: Bool32,
pub integer_dot_product_16bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_32bit_unsigned_accelerated: Bool32,
pub integer_dot_product_32bit_signed_accelerated: Bool32,
pub integer_dot_product_32bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_64bit_unsigned_accelerated: Bool32,
pub integer_dot_product_64bit_signed_accelerated: Bool32,
pub integer_dot_product_64bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_8bit_unsigned_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_8bit_signed_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_8bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating4x_8bit_packed_unsigned_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating4x_8bit_packed_signed_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating4x_8bit_packed_mixed_signedness_accelerated:
Bool32,
pub integer_dot_product_accumulating_saturating_16bit_unsigned_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_16bit_signed_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_16bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_32bit_unsigned_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_32bit_signed_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_32bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_64bit_unsigned_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_64bit_signed_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_64bit_mixed_signedness_accelerated: Bool32,
}
impl Default for PhysicalDeviceShaderIntegerDotProductProperties {
#[inline]
fn default() -> Self {
Self { s_type: StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES, next: ptr::null_mut(), integer_dot_product_8bit_unsigned_accelerated: Bool32::default(), integer_dot_product_8bit_signed_accelerated: Bool32::default(), integer_dot_product_8bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product4x_8bit_packed_unsigned_accelerated: Bool32::default(), integer_dot_product4x_8bit_packed_signed_accelerated: Bool32::default(), integer_dot_product4x_8bit_packed_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_16bit_unsigned_accelerated: Bool32::default(), integer_dot_product_16bit_signed_accelerated: Bool32::default(), integer_dot_product_16bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_32bit_unsigned_accelerated: Bool32::default(), integer_dot_product_32bit_signed_accelerated: Bool32::default(), integer_dot_product_32bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_64bit_unsigned_accelerated: Bool32::default(), integer_dot_product_64bit_signed_accelerated: Bool32::default(), integer_dot_product_64bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_8bit_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_8bit_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_8bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating4x_8bit_packed_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating4x_8bit_packed_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating4x_8bit_packed_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_16bit_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_16bit_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_16bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_32bit_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_32bit_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_32bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_64bit_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_64bit_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_64bit_mixed_signedness_accelerated: Bool32::default() }
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_integer_functions2: Bool32,
}
impl Default for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL,
next: ptr::null_mut(),
shader_integer_functions2: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderModuleIdentifierFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_module_identifier: Bool32,
}
impl Default for PhysicalDeviceShaderModuleIdentifierFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT,
next: ptr::null_mut(),
shader_module_identifier: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderModuleIdentifierPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_module_identifier_algorithm_uuid: ByteArray<UUID_SIZE>,
}
impl Default for PhysicalDeviceShaderModuleIdentifierPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT,
next: ptr::null_mut(),
shader_module_identifier_algorithm_uuid: ByteArray::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderSMBuiltinsFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderSMBuiltinsFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_sm_builtins: Bool32,
}
impl Default for PhysicalDeviceShaderSMBuiltinsFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,
next: ptr::null_mut(),
shader_sm_builtins: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderSMBuiltinsPropertiesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderSMBuiltinsPropertiesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_sm_count: u32,
pub shader_warps_per_sm: u32,
}
impl Default for PhysicalDeviceShaderSMBuiltinsPropertiesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,
next: ptr::null_mut(),
shader_sm_count: u32::default(),
shader_warps_per_sm: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_subgroup_extended_types: Bool32,
}
impl Default for PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
next: ptr::null_mut(),
shader_subgroup_extended_types: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_subgroup_uniform_control_flow: Bool32,
}
impl Default for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
#[inline]
fn default() -> Self {
Self {
s_type:
StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR,
next: ptr::null_mut(),
shader_subgroup_uniform_control_flow: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderTerminateInvocationFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderTerminateInvocationFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_terminate_invocation: Bool32,
}
impl Default for PhysicalDeviceShaderTerminateInvocationFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
next: ptr::null_mut(),
shader_terminate_invocation: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShadingRateImageFeaturesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShadingRateImageFeaturesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub shading_rate_image: Bool32,
pub shading_rate_coarse_sample_order: Bool32,
}
impl Default for PhysicalDeviceShadingRateImageFeaturesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
next: ptr::null_mut(),
shading_rate_image: Bool32::default(),
shading_rate_coarse_sample_order: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShadingRateImagePropertiesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShadingRateImagePropertiesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub shading_rate_texel_size: Extent2D,
pub shading_rate_palette_size: u32,
pub shading_rate_max_coarse_samples: u32,
}
impl Default for PhysicalDeviceShadingRateImagePropertiesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
next: ptr::null_mut(),
shading_rate_texel_size: Extent2D::default(),
shading_rate_palette_size: u32::default(),
shading_rate_max_coarse_samples: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSparseImageFormatInfo2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceSparseImageFormatInfo2 {
pub s_type: StructureType,
pub next: *const c_void,
pub format: Format,
pub type_: ImageType,
pub samples: SampleCountFlags,
pub usage: ImageUsageFlags,
pub tiling: ImageTiling,
}
impl Default for PhysicalDeviceSparseImageFormatInfo2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
next: ptr::null(),
format: Format::default(),
type_: ImageType::default(),
samples: SampleCountFlags::default(),
usage: ImageUsageFlags::default(),
tiling: ImageTiling::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSparseProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceSparseProperties {
pub residency_standard_2d_block_shape: Bool32,
pub residency_standard_2d_multisample_block_shape: Bool32,
pub residency_standard_3d_block_shape: Bool32,
pub residency_aligned_mip_size: Bool32,
pub residency_non_resident_strict: Bool32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSubgroupProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceSubgroupProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub subgroup_size: u32,
pub supported_stages: ShaderStageFlags,
pub supported_operations: SubgroupFeatureFlags,
pub quad_operations_in_all_stages: Bool32,
}
impl Default for PhysicalDeviceSubgroupProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,
next: ptr::null_mut(),
subgroup_size: u32::default(),
supported_stages: ShaderStageFlags::default(),
supported_operations: SubgroupFeatureFlags::default(),
quad_operations_in_all_stages: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSubgroupSizeControlFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceSubgroupSizeControlFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub subgroup_size_control: Bool32,
pub compute_full_subgroups: Bool32,
}
impl Default for PhysicalDeviceSubgroupSizeControlFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
next: ptr::null_mut(),
subgroup_size_control: Bool32::default(),
compute_full_subgroups: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSubgroupSizeControlProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceSubgroupSizeControlProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub min_subgroup_size: u32,
pub max_subgroup_size: u32,
pub max_compute_workgroup_subgroups: u32,
pub required_subgroup_size_stages: ShaderStageFlags,
}
impl Default for PhysicalDeviceSubgroupSizeControlProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
next: ptr::null_mut(),
min_subgroup_size: u32::default(),
max_subgroup_size: u32::default(),
max_compute_workgroup_subgroups: u32::default(),
required_subgroup_size_stages: ShaderStageFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub subpass_merge_feedback: Bool32,
}
impl Default for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT,
next: ptr::null_mut(),
subpass_merge_feedback: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSubpassShadingFeaturesHUAWEI.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceSubpassShadingFeaturesHUAWEI {
pub s_type: StructureType,
pub next: *mut c_void,
pub subpass_shading: Bool32,
}
impl Default for PhysicalDeviceSubpassShadingFeaturesHUAWEI {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI,
next: ptr::null_mut(),
subpass_shading: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSubpassShadingPropertiesHUAWEI.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceSubpassShadingPropertiesHUAWEI {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_subpass_shading_workgroup_size_aspect_ratio: u32,
}
impl Default for PhysicalDeviceSubpassShadingPropertiesHUAWEI {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI,
next: ptr::null_mut(),
max_subpass_shading_workgroup_size_aspect_ratio: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSurfaceInfo2KHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceSurfaceInfo2KHR {
pub s_type: StructureType,
pub next: *const c_void,
pub surface: SurfaceKHR,
}
impl Default for PhysicalDeviceSurfaceInfo2KHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,
next: ptr::null(),
surface: SurfaceKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceSwapchainMaintenance1FeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub swapchain_maintenance1: Bool32,
}
impl Default for PhysicalDeviceSwapchainMaintenance1FeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT,
next: ptr::null_mut(),
swapchain_maintenance1: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSynchronization2Features.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceSynchronization2Features {
pub s_type: StructureType,
pub next: *mut c_void,
pub synchronization2: Bool32,
}
impl Default for PhysicalDeviceSynchronization2Features {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
next: ptr::null_mut(),
synchronization2: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub texel_buffer_alignment: Bool32,
}
impl Default for PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
next: ptr::null_mut(),
texel_buffer_alignment: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceTexelBufferAlignmentProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceTexelBufferAlignmentProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub storage_texel_buffer_offset_alignment_bytes: DeviceSize,
pub storage_texel_buffer_offset_single_texel_alignment: Bool32,
pub uniform_texel_buffer_offset_alignment_bytes: DeviceSize,
pub uniform_texel_buffer_offset_single_texel_alignment: Bool32,
}
impl Default for PhysicalDeviceTexelBufferAlignmentProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
next: ptr::null_mut(),
storage_texel_buffer_offset_alignment_bytes: DeviceSize::default(),
storage_texel_buffer_offset_single_texel_alignment: Bool32::default(),
uniform_texel_buffer_offset_alignment_bytes: DeviceSize::default(),
uniform_texel_buffer_offset_single_texel_alignment: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceTextureCompressionASTCHDRFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceTextureCompressionASTCHDRFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub texture_compression_astc_hdr: Bool32,
}
impl Default for PhysicalDeviceTextureCompressionASTCHDRFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
next: ptr::null_mut(),
texture_compression_astc_hdr: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceTilePropertiesFeaturesQCOM.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceTilePropertiesFeaturesQCOM {
pub s_type: StructureType,
pub next: *mut c_void,
pub tile_properties: Bool32,
}
impl Default for PhysicalDeviceTilePropertiesFeaturesQCOM {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM,
next: ptr::null_mut(),
tile_properties: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceTimelineSemaphoreFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceTimelineSemaphoreFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub timeline_semaphore: Bool32,
}
impl Default for PhysicalDeviceTimelineSemaphoreFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
next: ptr::null_mut(),
timeline_semaphore: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceTimelineSemaphoreProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceTimelineSemaphoreProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_timeline_semaphore_value_difference: u64,
}
impl Default for PhysicalDeviceTimelineSemaphoreProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
next: ptr::null_mut(),
max_timeline_semaphore_value_difference: u64::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceToolProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceToolProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub name: StringArray<MAX_EXTENSION_NAME_SIZE>,
pub version: StringArray<MAX_EXTENSION_NAME_SIZE>,
pub purposes: ToolPurposeFlags,
pub description: StringArray<MAX_DESCRIPTION_SIZE>,
pub layer: StringArray<MAX_EXTENSION_NAME_SIZE>,
}
impl Default for PhysicalDeviceToolProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_TOOL_PROPERTIES,
next: ptr::null_mut(),
name: StringArray::default(),
version: StringArray::default(),
purposes: ToolPurposeFlags::default(),
description: StringArray::default(),
layer: StringArray::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceTransformFeedbackFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceTransformFeedbackFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub transform_feedback: Bool32,
pub geometry_streams: Bool32,
}
impl Default for PhysicalDeviceTransformFeedbackFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,
next: ptr::null_mut(),
transform_feedback: Bool32::default(),
geometry_streams: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceTransformFeedbackPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceTransformFeedbackPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_transform_feedback_streams: u32,
pub max_transform_feedback_buffers: u32,
pub max_transform_feedback_buffer_size: DeviceSize,
pub max_transform_feedback_stream_data_size: u32,
pub max_transform_feedback_buffer_data_size: u32,
pub max_transform_feedback_buffer_data_stride: u32,
pub transform_feedback_queries: Bool32,
pub transform_feedback_streams_lines_triangles: Bool32,
pub transform_feedback_rasterization_stream_select: Bool32,
pub transform_feedback_draw: Bool32,
}
impl Default for PhysicalDeviceTransformFeedbackPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT,
next: ptr::null_mut(),
max_transform_feedback_streams: u32::default(),
max_transform_feedback_buffers: u32::default(),
max_transform_feedback_buffer_size: DeviceSize::default(),
max_transform_feedback_stream_data_size: u32::default(),
max_transform_feedback_buffer_data_size: u32::default(),
max_transform_feedback_buffer_data_stride: u32::default(),
transform_feedback_queries: Bool32::default(),
transform_feedback_streams_lines_triangles: Bool32::default(),
transform_feedback_rasterization_stream_select: Bool32::default(),
transform_feedback_draw: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceUniformBufferStandardLayoutFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceUniformBufferStandardLayoutFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub uniform_buffer_standard_layout: Bool32,
}
impl Default for PhysicalDeviceUniformBufferStandardLayoutFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
next: ptr::null_mut(),
uniform_buffer_standard_layout: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVariablePointersFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceVariablePointersFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub variable_pointers_storage_buffer: Bool32,
pub variable_pointers: Bool32,
}
impl Default for PhysicalDeviceVariablePointersFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
next: ptr::null_mut(),
variable_pointers_storage_buffer: Bool32::default(),
variable_pointers: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub vertex_attribute_instance_rate_divisor: Bool32,
pub vertex_attribute_instance_rate_zero_divisor: Bool32,
}
impl Default for PhysicalDeviceVertexAttributeDivisorFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT,
next: ptr::null_mut(),
vertex_attribute_instance_rate_divisor: Bool32::default(),
vertex_attribute_instance_rate_zero_divisor: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub max_vertex_attrib_divisor: u32,
}
impl Default for PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
next: ptr::null_mut(),
max_vertex_attrib_divisor: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceVertexInputDynamicStateFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub vertex_input_dynamic_state: Bool32,
}
impl Default for PhysicalDeviceVertexInputDynamicStateFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT,
next: ptr::null_mut(),
vertex_input_dynamic_state: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVulkan11Features.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceVulkan11Features {
pub s_type: StructureType,
pub next: *mut c_void,
pub storage_buffer_16bit_access: Bool32,
pub uniform_and_storage_buffer_16bit_access: Bool32,
pub storage_push_constant16: Bool32,
pub storage_input_output16: Bool32,
pub multiview: Bool32,
pub multiview_geometry_shader: Bool32,
pub multiview_tessellation_shader: Bool32,
pub variable_pointers_storage_buffer: Bool32,
pub variable_pointers: Bool32,
pub protected_memory: Bool32,
pub sampler_ycbcr_conversion: Bool32,
pub shader_draw_parameters: Bool32,
}
impl Default for PhysicalDeviceVulkan11Features {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_VULKAN_1_1_FEATURES,
next: ptr::null_mut(),
storage_buffer_16bit_access: Bool32::default(),
uniform_and_storage_buffer_16bit_access: Bool32::default(),
storage_push_constant16: Bool32::default(),
storage_input_output16: Bool32::default(),
multiview: Bool32::default(),
multiview_geometry_shader: Bool32::default(),
multiview_tessellation_shader: Bool32::default(),
variable_pointers_storage_buffer: Bool32::default(),
variable_pointers: Bool32::default(),
protected_memory: Bool32::default(),
sampler_ycbcr_conversion: Bool32::default(),
shader_draw_parameters: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVulkan11Properties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceVulkan11Properties {
pub s_type: StructureType,
pub next: *mut c_void,
pub device_uuid: ByteArray<UUID_SIZE>,
pub driver_uuid: ByteArray<UUID_SIZE>,
pub device_luid: ByteArray<LUID_SIZE>,
pub device_node_mask: u32,
pub device_luid_valid: Bool32,
pub subgroup_size: u32,
pub subgroup_supported_stages: ShaderStageFlags,
pub subgroup_supported_operations: SubgroupFeatureFlags,
pub subgroup_quad_operations_in_all_stages: Bool32,
pub point_clipping_behavior: PointClippingBehavior,
pub max_multiview_view_count: u32,
pub max_multiview_instance_index: u32,
pub protected_no_fault: Bool32,
pub max_per_set_descriptors: u32,
pub max_memory_allocation_size: DeviceSize,
}
impl Default for PhysicalDeviceVulkan11Properties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES,
next: ptr::null_mut(),
device_uuid: ByteArray::default(),
driver_uuid: ByteArray::default(),
device_luid: ByteArray::default(),
device_node_mask: u32::default(),
device_luid_valid: Bool32::default(),
subgroup_size: u32::default(),
subgroup_supported_stages: ShaderStageFlags::default(),
subgroup_supported_operations: SubgroupFeatureFlags::default(),
subgroup_quad_operations_in_all_stages: Bool32::default(),
point_clipping_behavior: PointClippingBehavior::default(),
max_multiview_view_count: u32::default(),
max_multiview_instance_index: u32::default(),
protected_no_fault: Bool32::default(),
max_per_set_descriptors: u32::default(),
max_memory_allocation_size: DeviceSize::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVulkan12Features.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceVulkan12Features {
pub s_type: StructureType,
pub next: *mut c_void,
pub sampler_mirror_clamp_to_edge: Bool32,
pub draw_indirect_count: Bool32,
pub storage_buffer_8bit_access: Bool32,
pub uniform_and_storage_buffer_8bit_access: Bool32,
pub storage_push_constant8: Bool32,
pub shader_buffer_int64_atomics: Bool32,
pub shader_shared_int64_atomics: Bool32,
pub shader_float16: Bool32,
pub shader_int8: Bool32,
pub descriptor_indexing: Bool32,
pub shader_input_attachment_array_dynamic_indexing: Bool32,
pub shader_uniform_texel_buffer_array_dynamic_indexing: Bool32,
pub shader_storage_texel_buffer_array_dynamic_indexing: Bool32,
pub shader_uniform_buffer_array_non_uniform_indexing: Bool32,
pub shader_sampled_image_array_non_uniform_indexing: Bool32,
pub shader_storage_buffer_array_non_uniform_indexing: Bool32,
pub shader_storage_image_array_non_uniform_indexing: Bool32,
pub shader_input_attachment_array_non_uniform_indexing: Bool32,
pub shader_uniform_texel_buffer_array_non_uniform_indexing: Bool32,
pub shader_storage_texel_buffer_array_non_uniform_indexing: Bool32,
pub descriptor_binding_uniform_buffer_update_after_bind: Bool32,
pub descriptor_binding_sampled_image_update_after_bind: Bool32,
pub descriptor_binding_storage_image_update_after_bind: Bool32,
pub descriptor_binding_storage_buffer_update_after_bind: Bool32,
pub descriptor_binding_uniform_texel_buffer_update_after_bind: Bool32,
pub descriptor_binding_storage_texel_buffer_update_after_bind: Bool32,
pub descriptor_binding_update_unused_while_pending: Bool32,
pub descriptor_binding_partially_bound: Bool32,
pub descriptor_binding_variable_descriptor_count: Bool32,
pub runtime_descriptor_array: Bool32,
pub sampler_filter_minmax: Bool32,
pub scalar_block_layout: Bool32,
pub imageless_framebuffer: Bool32,
pub uniform_buffer_standard_layout: Bool32,
pub shader_subgroup_extended_types: Bool32,
pub separate_depth_stencil_layouts: Bool32,
pub host_query_reset: Bool32,
pub timeline_semaphore: Bool32,
pub buffer_device_address: Bool32,
pub buffer_device_address_capture_replay: Bool32,
pub buffer_device_address_multi_device: Bool32,
pub vulkan_memory_model: Bool32,
pub vulkan_memory_model_device_scope: Bool32,
pub vulkan_memory_model_availability_visibility_chains: Bool32,
pub shader_output_viewport_index: Bool32,
pub shader_output_layer: Bool32,
pub subgroup_broadcast_dynamic_id: Bool32,
}
impl Default for PhysicalDeviceVulkan12Features {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_VULKAN_1_2_FEATURES,
next: ptr::null_mut(),
sampler_mirror_clamp_to_edge: Bool32::default(),
draw_indirect_count: Bool32::default(),
storage_buffer_8bit_access: Bool32::default(),
uniform_and_storage_buffer_8bit_access: Bool32::default(),
storage_push_constant8: Bool32::default(),
shader_buffer_int64_atomics: Bool32::default(),
shader_shared_int64_atomics: Bool32::default(),
shader_float16: Bool32::default(),
shader_int8: Bool32::default(),
descriptor_indexing: Bool32::default(),
shader_input_attachment_array_dynamic_indexing: Bool32::default(),
shader_uniform_texel_buffer_array_dynamic_indexing: Bool32::default(),
shader_storage_texel_buffer_array_dynamic_indexing: Bool32::default(),
shader_uniform_buffer_array_non_uniform_indexing: Bool32::default(),
shader_sampled_image_array_non_uniform_indexing: Bool32::default(),
shader_storage_buffer_array_non_uniform_indexing: Bool32::default(),
shader_storage_image_array_non_uniform_indexing: Bool32::default(),
shader_input_attachment_array_non_uniform_indexing: Bool32::default(),
shader_uniform_texel_buffer_array_non_uniform_indexing: Bool32::default(),
shader_storage_texel_buffer_array_non_uniform_indexing: Bool32::default(),
descriptor_binding_uniform_buffer_update_after_bind: Bool32::default(),
descriptor_binding_sampled_image_update_after_bind: Bool32::default(),
descriptor_binding_storage_image_update_after_bind: Bool32::default(),
descriptor_binding_storage_buffer_update_after_bind: Bool32::default(),
descriptor_binding_uniform_texel_buffer_update_after_bind: Bool32::default(),
descriptor_binding_storage_texel_buffer_update_after_bind: Bool32::default(),
descriptor_binding_update_unused_while_pending: Bool32::default(),
descriptor_binding_partially_bound: Bool32::default(),
descriptor_binding_variable_descriptor_count: Bool32::default(),
runtime_descriptor_array: Bool32::default(),
sampler_filter_minmax: Bool32::default(),
scalar_block_layout: Bool32::default(),
imageless_framebuffer: Bool32::default(),
uniform_buffer_standard_layout: Bool32::default(),
shader_subgroup_extended_types: Bool32::default(),
separate_depth_stencil_layouts: Bool32::default(),
host_query_reset: Bool32::default(),
timeline_semaphore: Bool32::default(),
buffer_device_address: Bool32::default(),
buffer_device_address_capture_replay: Bool32::default(),
buffer_device_address_multi_device: Bool32::default(),
vulkan_memory_model: Bool32::default(),
vulkan_memory_model_device_scope: Bool32::default(),
vulkan_memory_model_availability_visibility_chains: Bool32::default(),
shader_output_viewport_index: Bool32::default(),
shader_output_layer: Bool32::default(),
subgroup_broadcast_dynamic_id: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVulkan12Properties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceVulkan12Properties {
pub s_type: StructureType,
pub next: *mut c_void,
pub driver_id: DriverId,
pub driver_name: StringArray<MAX_DRIVER_NAME_SIZE>,
pub driver_info: StringArray<MAX_DRIVER_INFO_SIZE>,
pub conformance_version: ConformanceVersion,
pub denorm_behavior_independence: ShaderFloatControlsIndependence,
pub rounding_mode_independence: ShaderFloatControlsIndependence,
pub shader_signed_zero_inf_nan_preserve_float16: Bool32,
pub shader_signed_zero_inf_nan_preserve_float32: Bool32,
pub shader_signed_zero_inf_nan_preserve_float64: Bool32,
pub shader_denorm_preserve_float16: Bool32,
pub shader_denorm_preserve_float32: Bool32,
pub shader_denorm_preserve_float64: Bool32,
pub shader_denorm_flush_to_zero_float16: Bool32,
pub shader_denorm_flush_to_zero_float32: Bool32,
pub shader_denorm_flush_to_zero_float64: Bool32,
pub shader_rounding_mode_rte_float16: Bool32,
pub shader_rounding_mode_rte_float32: Bool32,
pub shader_rounding_mode_rte_float64: Bool32,
pub shader_rounding_mode_rtz_float16: Bool32,
pub shader_rounding_mode_rtz_float32: Bool32,
pub shader_rounding_mode_rtz_float64: Bool32,
pub max_update_after_bind_descriptors_in_all_pools: u32,
pub shader_uniform_buffer_array_non_uniform_indexing_native: Bool32,
pub shader_sampled_image_array_non_uniform_indexing_native: Bool32,
pub shader_storage_buffer_array_non_uniform_indexing_native: Bool32,
pub shader_storage_image_array_non_uniform_indexing_native: Bool32,
pub shader_input_attachment_array_non_uniform_indexing_native: Bool32,
pub robust_buffer_access_update_after_bind: Bool32,
pub quad_divergent_implicit_lod: Bool32,
pub max_per_stage_descriptor_update_after_bind_samplers: u32,
pub max_per_stage_descriptor_update_after_bind_uniform_buffers: u32,
pub max_per_stage_descriptor_update_after_bind_storage_buffers: u32,
pub max_per_stage_descriptor_update_after_bind_sampled_images: u32,
pub max_per_stage_descriptor_update_after_bind_storage_images: u32,
pub max_per_stage_descriptor_update_after_bind_input_attachments: u32,
pub max_per_stage_update_after_bind_resources: u32,
pub max_descriptor_set_update_after_bind_samplers: u32,
pub max_descriptor_set_update_after_bind_uniform_buffers: u32,
pub max_descriptor_set_update_after_bind_uniform_buffers_dynamic: u32,
pub max_descriptor_set_update_after_bind_storage_buffers: u32,
pub max_descriptor_set_update_after_bind_storage_buffers_dynamic: u32,
pub max_descriptor_set_update_after_bind_sampled_images: u32,
pub max_descriptor_set_update_after_bind_storage_images: u32,
pub max_descriptor_set_update_after_bind_input_attachments: u32,
pub supported_depth_resolve_modes: ResolveModeFlags,
pub supported_stencil_resolve_modes: ResolveModeFlags,
pub independent_resolve_none: Bool32,
pub independent_resolve: Bool32,
pub filter_minmax_single_component_formats: Bool32,
pub filter_minmax_image_component_mapping: Bool32,
pub max_timeline_semaphore_value_difference: u64,
pub framebuffer_integer_color_sample_counts: SampleCountFlags,
}
impl Default for PhysicalDeviceVulkan12Properties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES,
next: ptr::null_mut(),
driver_id: DriverId::default(),
driver_name: StringArray::default(),
driver_info: StringArray::default(),
conformance_version: ConformanceVersion::default(),
denorm_behavior_independence: ShaderFloatControlsIndependence::default(),
rounding_mode_independence: ShaderFloatControlsIndependence::default(),
shader_signed_zero_inf_nan_preserve_float16: Bool32::default(),
shader_signed_zero_inf_nan_preserve_float32: Bool32::default(),
shader_signed_zero_inf_nan_preserve_float64: Bool32::default(),
shader_denorm_preserve_float16: Bool32::default(),
shader_denorm_preserve_float32: Bool32::default(),
shader_denorm_preserve_float64: Bool32::default(),
shader_denorm_flush_to_zero_float16: Bool32::default(),
shader_denorm_flush_to_zero_float32: Bool32::default(),
shader_denorm_flush_to_zero_float64: Bool32::default(),
shader_rounding_mode_rte_float16: Bool32::default(),
shader_rounding_mode_rte_float32: Bool32::default(),
shader_rounding_mode_rte_float64: Bool32::default(),
shader_rounding_mode_rtz_float16: Bool32::default(),
shader_rounding_mode_rtz_float32: Bool32::default(),
shader_rounding_mode_rtz_float64: Bool32::default(),
max_update_after_bind_descriptors_in_all_pools: u32::default(),
shader_uniform_buffer_array_non_uniform_indexing_native: Bool32::default(),
shader_sampled_image_array_non_uniform_indexing_native: Bool32::default(),
shader_storage_buffer_array_non_uniform_indexing_native: Bool32::default(),
shader_storage_image_array_non_uniform_indexing_native: Bool32::default(),
shader_input_attachment_array_non_uniform_indexing_native: Bool32::default(),
robust_buffer_access_update_after_bind: Bool32::default(),
quad_divergent_implicit_lod: Bool32::default(),
max_per_stage_descriptor_update_after_bind_samplers: u32::default(),
max_per_stage_descriptor_update_after_bind_uniform_buffers: u32::default(),
max_per_stage_descriptor_update_after_bind_storage_buffers: u32::default(),
max_per_stage_descriptor_update_after_bind_sampled_images: u32::default(),
max_per_stage_descriptor_update_after_bind_storage_images: u32::default(),
max_per_stage_descriptor_update_after_bind_input_attachments: u32::default(),
max_per_stage_update_after_bind_resources: u32::default(),
max_descriptor_set_update_after_bind_samplers: u32::default(),
max_descriptor_set_update_after_bind_uniform_buffers: u32::default(),
max_descriptor_set_update_after_bind_uniform_buffers_dynamic: u32::default(),
max_descriptor_set_update_after_bind_storage_buffers: u32::default(),
max_descriptor_set_update_after_bind_storage_buffers_dynamic: u32::default(),
max_descriptor_set_update_after_bind_sampled_images: u32::default(),
max_descriptor_set_update_after_bind_storage_images: u32::default(),
max_descriptor_set_update_after_bind_input_attachments: u32::default(),
supported_depth_resolve_modes: ResolveModeFlags::default(),
supported_stencil_resolve_modes: ResolveModeFlags::default(),
independent_resolve_none: Bool32::default(),
independent_resolve: Bool32::default(),
filter_minmax_single_component_formats: Bool32::default(),
filter_minmax_image_component_mapping: Bool32::default(),
max_timeline_semaphore_value_difference: u64::default(),
framebuffer_integer_color_sample_counts: SampleCountFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVulkan13Features.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceVulkan13Features {
pub s_type: StructureType,
pub next: *mut c_void,
pub robust_image_access: Bool32,
pub inline_uniform_block: Bool32,
pub descriptor_binding_inline_uniform_block_update_after_bind: Bool32,
pub pipeline_creation_cache_control: Bool32,
pub private_data: Bool32,
pub shader_demote_to_helper_invocation: Bool32,
pub shader_terminate_invocation: Bool32,
pub subgroup_size_control: Bool32,
pub compute_full_subgroups: Bool32,
pub synchronization2: Bool32,
pub texture_compression_astc_hdr: Bool32,
pub shader_zero_initialize_workgroup_memory: Bool32,
pub dynamic_rendering: Bool32,
pub shader_integer_dot_product: Bool32,
pub maintenance4: Bool32,
}
impl Default for PhysicalDeviceVulkan13Features {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_VULKAN_1_3_FEATURES,
next: ptr::null_mut(),
robust_image_access: Bool32::default(),
inline_uniform_block: Bool32::default(),
descriptor_binding_inline_uniform_block_update_after_bind: Bool32::default(),
pipeline_creation_cache_control: Bool32::default(),
private_data: Bool32::default(),
shader_demote_to_helper_invocation: Bool32::default(),
shader_terminate_invocation: Bool32::default(),
subgroup_size_control: Bool32::default(),
compute_full_subgroups: Bool32::default(),
synchronization2: Bool32::default(),
texture_compression_astc_hdr: Bool32::default(),
shader_zero_initialize_workgroup_memory: Bool32::default(),
dynamic_rendering: Bool32::default(),
shader_integer_dot_product: Bool32::default(),
maintenance4: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVulkan13Properties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceVulkan13Properties {
pub s_type: StructureType,
pub next: *mut c_void,
pub min_subgroup_size: u32,
pub max_subgroup_size: u32,
pub max_compute_workgroup_subgroups: u32,
pub required_subgroup_size_stages: ShaderStageFlags,
pub max_inline_uniform_block_size: u32,
pub max_per_stage_descriptor_inline_uniform_blocks: u32,
pub max_per_stage_descriptor_update_after_bind_inline_uniform_blocks: u32,
pub max_descriptor_set_inline_uniform_blocks: u32,
pub max_descriptor_set_update_after_bind_inline_uniform_blocks: u32,
pub max_inline_uniform_total_size: u32,
pub integer_dot_product_8bit_unsigned_accelerated: Bool32,
pub integer_dot_product_8bit_signed_accelerated: Bool32,
pub integer_dot_product_8bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product4x_8bit_packed_unsigned_accelerated: Bool32,
pub integer_dot_product4x_8bit_packed_signed_accelerated: Bool32,
pub integer_dot_product4x_8bit_packed_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_16bit_unsigned_accelerated: Bool32,
pub integer_dot_product_16bit_signed_accelerated: Bool32,
pub integer_dot_product_16bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_32bit_unsigned_accelerated: Bool32,
pub integer_dot_product_32bit_signed_accelerated: Bool32,
pub integer_dot_product_32bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_64bit_unsigned_accelerated: Bool32,
pub integer_dot_product_64bit_signed_accelerated: Bool32,
pub integer_dot_product_64bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_8bit_unsigned_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_8bit_signed_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_8bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating4x_8bit_packed_unsigned_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating4x_8bit_packed_signed_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating4x_8bit_packed_mixed_signedness_accelerated:
Bool32,
pub integer_dot_product_accumulating_saturating_16bit_unsigned_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_16bit_signed_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_16bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_32bit_unsigned_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_32bit_signed_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_32bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_64bit_unsigned_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_64bit_signed_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating_64bit_mixed_signedness_accelerated: Bool32,
pub storage_texel_buffer_offset_alignment_bytes: DeviceSize,
pub storage_texel_buffer_offset_single_texel_alignment: Bool32,
pub uniform_texel_buffer_offset_alignment_bytes: DeviceSize,
pub uniform_texel_buffer_offset_single_texel_alignment: Bool32,
pub max_buffer_size: DeviceSize,
}
impl Default for PhysicalDeviceVulkan13Properties {
#[inline]
fn default() -> Self {
Self { s_type: StructureType::PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES, next: ptr::null_mut(), min_subgroup_size: u32::default(), max_subgroup_size: u32::default(), max_compute_workgroup_subgroups: u32::default(), required_subgroup_size_stages: ShaderStageFlags::default(), max_inline_uniform_block_size: u32::default(), max_per_stage_descriptor_inline_uniform_blocks: u32::default(), max_per_stage_descriptor_update_after_bind_inline_uniform_blocks: u32::default(), max_descriptor_set_inline_uniform_blocks: u32::default(), max_descriptor_set_update_after_bind_inline_uniform_blocks: u32::default(), max_inline_uniform_total_size: u32::default(), integer_dot_product_8bit_unsigned_accelerated: Bool32::default(), integer_dot_product_8bit_signed_accelerated: Bool32::default(), integer_dot_product_8bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product4x_8bit_packed_unsigned_accelerated: Bool32::default(), integer_dot_product4x_8bit_packed_signed_accelerated: Bool32::default(), integer_dot_product4x_8bit_packed_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_16bit_unsigned_accelerated: Bool32::default(), integer_dot_product_16bit_signed_accelerated: Bool32::default(), integer_dot_product_16bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_32bit_unsigned_accelerated: Bool32::default(), integer_dot_product_32bit_signed_accelerated: Bool32::default(), integer_dot_product_32bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_64bit_unsigned_accelerated: Bool32::default(), integer_dot_product_64bit_signed_accelerated: Bool32::default(), integer_dot_product_64bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_8bit_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_8bit_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_8bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating4x_8bit_packed_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating4x_8bit_packed_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating4x_8bit_packed_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_16bit_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_16bit_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_16bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_32bit_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_32bit_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_32bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_64bit_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_64bit_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_64bit_mixed_signedness_accelerated: Bool32::default(), storage_texel_buffer_offset_alignment_bytes: DeviceSize::default(), storage_texel_buffer_offset_single_texel_alignment: Bool32::default(), uniform_texel_buffer_offset_alignment_bytes: DeviceSize::default(), uniform_texel_buffer_offset_single_texel_alignment: Bool32::default(), max_buffer_size: DeviceSize::default() }
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVulkanMemoryModelFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceVulkanMemoryModelFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub vulkan_memory_model: Bool32,
pub vulkan_memory_model_device_scope: Bool32,
pub vulkan_memory_model_availability_visibility_chains: Bool32,
}
impl Default for PhysicalDeviceVulkanMemoryModelFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
next: ptr::null_mut(),
vulkan_memory_model: Bool32::default(),
vulkan_memory_model_device_scope: Bool32::default(),
vulkan_memory_model_availability_visibility_chains: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub workgroup_memory_explicit_layout: Bool32,
pub workgroup_memory_explicit_layout_scalar_block_layout: Bool32,
pub workgroup_memory_explicit_layout_8bit_access: Bool32,
pub workgroup_memory_explicit_layout_16bit_access: Bool32,
}
impl Default for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR,
next: ptr::null_mut(),
workgroup_memory_explicit_layout: Bool32::default(),
workgroup_memory_explicit_layout_scalar_block_layout: Bool32::default(),
workgroup_memory_explicit_layout_8bit_access: Bool32::default(),
workgroup_memory_explicit_layout_16bit_access: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub ycbcr2plane444_formats: Bool32,
}
impl Default for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT,
next: ptr::null_mut(),
ycbcr2plane444_formats: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceYcbcrImageArraysFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceYcbcrImageArraysFeaturesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub ycbcr_image_arrays: Bool32,
}
impl Default for PhysicalDeviceYcbcrImageArraysFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
next: ptr::null_mut(),
ycbcr_image_arrays: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_zero_initialize_workgroup_memory: Bool32,
}
impl Default for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
next: ptr::null_mut(),
shader_zero_initialize_workgroup_memory: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineCacheCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineCacheCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineCacheCreateFlags,
pub initial_data_size: usize,
pub initial_data: *const c_void,
}
impl Default for PipelineCacheCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_CACHE_CREATE_INFO,
next: ptr::null(),
flags: PipelineCacheCreateFlags::default(),
initial_data_size: usize::default(),
initial_data: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineCacheHeaderVersionOne.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct PipelineCacheHeaderVersionOne {
pub header_size: u32,
pub header_version: PipelineCacheHeaderVersion,
pub vendor_id: u32,
pub device_id: u32,
pub pipeline_cache_uuid: ByteArray<UUID_SIZE>,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineColorBlendAdvancedStateCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineColorBlendAdvancedStateCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub src_premultiplied: Bool32,
pub dst_premultiplied: Bool32,
pub blend_overlap: BlendOverlapEXT,
}
impl Default for PipelineColorBlendAdvancedStateCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
next: ptr::null(),
src_premultiplied: Bool32::default(),
dst_premultiplied: Bool32::default(),
blend_overlap: BlendOverlapEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineColorBlendAttachmentState.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct PipelineColorBlendAttachmentState {
pub blend_enable: Bool32,
pub src_color_blend_factor: BlendFactor,
pub dst_color_blend_factor: BlendFactor,
pub color_blend_op: BlendOp,
pub src_alpha_blend_factor: BlendFactor,
pub dst_alpha_blend_factor: BlendFactor,
pub alpha_blend_op: BlendOp,
pub color_write_mask: ColorComponentFlags,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineColorBlendStateCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct PipelineColorBlendStateCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineColorBlendStateCreateFlags,
pub logic_op_enable: Bool32,
pub logic_op: LogicOp,
pub attachment_count: u32,
pub attachments: *const PipelineColorBlendAttachmentState,
pub blend_constants: [f32; 4],
}
impl Default for PipelineColorBlendStateCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
next: ptr::null(),
flags: PipelineColorBlendStateCreateFlags::default(),
logic_op_enable: Bool32::default(),
logic_op: LogicOp::default(),
attachment_count: u32::default(),
attachments: ptr::null(),
blend_constants: [f32::default(); 4],
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineColorWriteCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineColorWriteCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub attachment_count: u32,
pub color_write_enables: *const Bool32,
}
impl Default for PipelineColorWriteCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_COLOR_WRITE_CREATE_INFO_EXT,
next: ptr::null(),
attachment_count: u32::default(),
color_write_enables: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineCompilerControlCreateInfoAMD.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineCompilerControlCreateInfoAMD {
pub s_type: StructureType,
pub next: *const c_void,
pub compiler_control_flags: PipelineCompilerControlFlagsAMD,
}
impl Default for PipelineCompilerControlCreateInfoAMD {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,
next: ptr::null(),
compiler_control_flags: PipelineCompilerControlFlagsAMD::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineCoverageModulationStateCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineCoverageModulationStateCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineCoverageModulationStateCreateFlagsNV,
pub coverage_modulation_mode: CoverageModulationModeNV,
pub coverage_modulation_table_enable: Bool32,
pub coverage_modulation_table_count: u32,
pub coverage_modulation_table: *const f32,
}
impl Default for PipelineCoverageModulationStateCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,
next: ptr::null(),
flags: PipelineCoverageModulationStateCreateFlagsNV::default(),
coverage_modulation_mode: CoverageModulationModeNV::default(),
coverage_modulation_table_enable: Bool32::default(),
coverage_modulation_table_count: u32::default(),
coverage_modulation_table: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineCoverageReductionStateCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineCoverageReductionStateCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineCoverageReductionStateCreateFlagsNV,
pub coverage_reduction_mode: CoverageReductionModeNV,
}
impl Default for PipelineCoverageReductionStateCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV,
next: ptr::null(),
flags: PipelineCoverageReductionStateCreateFlagsNV::default(),
coverage_reduction_mode: CoverageReductionModeNV::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineCoverageToColorStateCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineCoverageToColorStateCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineCoverageToColorStateCreateFlagsNV,
pub coverage_to_color_enable: Bool32,
pub coverage_to_color_location: u32,
}
impl Default for PipelineCoverageToColorStateCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,
next: ptr::null(),
flags: PipelineCoverageToColorStateCreateFlagsNV::default(),
coverage_to_color_enable: Bool32::default(),
coverage_to_color_location: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineCreationFeedback.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct PipelineCreationFeedback {
pub flags: PipelineCreationFeedbackFlags,
pub duration: u64,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineCreationFeedbackCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineCreationFeedbackCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub pipeline_creation_feedback: *mut PipelineCreationFeedback,
pub pipeline_stage_creation_feedback_count: u32,
pub pipeline_stage_creation_feedbacks: *mut PipelineCreationFeedback,
}
impl Default for PipelineCreationFeedbackCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
next: ptr::null(),
pipeline_creation_feedback: ptr::null_mut(),
pipeline_stage_creation_feedback_count: u32::default(),
pipeline_stage_creation_feedbacks: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineDepthStencilStateCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct PipelineDepthStencilStateCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineDepthStencilStateCreateFlags,
pub depth_test_enable: Bool32,
pub depth_write_enable: Bool32,
pub depth_compare_op: CompareOp,
pub depth_bounds_test_enable: Bool32,
pub stencil_test_enable: Bool32,
pub front: StencilOpState,
pub back: StencilOpState,
pub min_depth_bounds: f32,
pub max_depth_bounds: f32,
}
impl Default for PipelineDepthStencilStateCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
next: ptr::null(),
flags: PipelineDepthStencilStateCreateFlags::default(),
depth_test_enable: Bool32::default(),
depth_write_enable: Bool32::default(),
depth_compare_op: CompareOp::default(),
depth_bounds_test_enable: Bool32::default(),
stencil_test_enable: Bool32::default(),
front: StencilOpState::default(),
back: StencilOpState::default(),
min_depth_bounds: f32::default(),
max_depth_bounds: f32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineDiscardRectangleStateCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineDiscardRectangleStateCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineDiscardRectangleStateCreateFlagsEXT,
pub discard_rectangle_mode: DiscardRectangleModeEXT,
pub discard_rectangle_count: u32,
pub discard_rectangles: *const Rect2D,
}
impl Default for PipelineDiscardRectangleStateCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,
next: ptr::null(),
flags: PipelineDiscardRectangleStateCreateFlagsEXT::default(),
discard_rectangle_mode: DiscardRectangleModeEXT::default(),
discard_rectangle_count: u32::default(),
discard_rectangles: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineDynamicStateCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineDynamicStateCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineDynamicStateCreateFlags,
pub dynamic_state_count: u32,
pub dynamic_states: *const DynamicState,
}
impl Default for PipelineDynamicStateCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_DYNAMIC_STATE_CREATE_INFO,
next: ptr::null(),
flags: PipelineDynamicStateCreateFlags::default(),
dynamic_state_count: u32::default(),
dynamic_states: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineExecutableInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineExecutableInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub pipeline: Pipeline,
pub executable_index: u32,
}
impl Default for PipelineExecutableInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_EXECUTABLE_INFO_KHR,
next: ptr::null(),
pipeline: Pipeline::default(),
executable_index: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineExecutableInternalRepresentationKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineExecutableInternalRepresentationKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub name: StringArray<MAX_DESCRIPTION_SIZE>,
pub description: StringArray<MAX_DESCRIPTION_SIZE>,
pub is_text: Bool32,
pub data_size: usize,
pub data: *mut c_void,
}
impl Default for PipelineExecutableInternalRepresentationKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
next: ptr::null_mut(),
name: StringArray::default(),
description: StringArray::default(),
is_text: Bool32::default(),
data_size: usize::default(),
data: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineExecutablePropertiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineExecutablePropertiesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub stages: ShaderStageFlags,
pub name: StringArray<MAX_DESCRIPTION_SIZE>,
pub description: StringArray<MAX_DESCRIPTION_SIZE>,
pub subgroup_size: u32,
}
impl Default for PipelineExecutablePropertiesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_EXECUTABLE_PROPERTIES_KHR,
next: ptr::null_mut(),
stages: ShaderStageFlags::default(),
name: StringArray::default(),
description: StringArray::default(),
subgroup_size: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineExecutableStatisticKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct PipelineExecutableStatisticKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub name: StringArray<MAX_DESCRIPTION_SIZE>,
pub description: StringArray<MAX_DESCRIPTION_SIZE>,
pub format: PipelineExecutableStatisticFormatKHR,
pub value: PipelineExecutableStatisticValueKHR,
}
impl Default for PipelineExecutableStatisticKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_EXECUTABLE_STATISTIC_KHR,
next: ptr::null_mut(),
name: StringArray::default(),
description: StringArray::default(),
format: PipelineExecutableStatisticFormatKHR::default(),
value: PipelineExecutableStatisticValueKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineFragmentShadingRateEnumStateCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineFragmentShadingRateEnumStateCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub shading_rate_type: FragmentShadingRateTypeNV,
pub shading_rate: FragmentShadingRateNV,
pub combiner_ops: [FragmentShadingRateCombinerOpKHR; 2],
}
impl Default for PipelineFragmentShadingRateEnumStateCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV,
next: ptr::null(),
shading_rate_type: FragmentShadingRateTypeNV::default(),
shading_rate: FragmentShadingRateNV::default(),
combiner_ops: [FragmentShadingRateCombinerOpKHR::default(); 2],
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineFragmentShadingRateStateCreateInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineFragmentShadingRateStateCreateInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub fragment_size: Extent2D,
pub combiner_ops: [FragmentShadingRateCombinerOpKHR; 2],
}
impl Default for PipelineFragmentShadingRateStateCreateInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR,
next: ptr::null(),
fragment_size: Extent2D::default(),
combiner_ops: [FragmentShadingRateCombinerOpKHR::default(); 2],
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub pipeline: Pipeline,
}
impl Default for PipelineInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_INFO_KHR,
next: ptr::null(),
pipeline: Pipeline::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineInputAssemblyStateCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineInputAssemblyStateCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineInputAssemblyStateCreateFlags,
pub topology: PrimitiveTopology,
pub primitive_restart_enable: Bool32,
}
impl Default for PipelineInputAssemblyStateCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,
next: ptr::null(),
flags: PipelineInputAssemblyStateCreateFlags::default(),
topology: PrimitiveTopology::default(),
primitive_restart_enable: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineLayoutCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineLayoutCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineLayoutCreateFlags,
pub set_layout_count: u32,
pub set_layouts: *const DescriptorSetLayout,
pub push_constant_range_count: u32,
pub push_constant_ranges: *const PushConstantRange,
}
impl Default for PipelineLayoutCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_LAYOUT_CREATE_INFO,
next: ptr::null(),
flags: PipelineLayoutCreateFlags::default(),
set_layout_count: u32::default(),
set_layouts: ptr::null(),
push_constant_range_count: u32::default(),
push_constant_ranges: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineLibraryCreateInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineLibraryCreateInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub library_count: u32,
pub libraries: *const Pipeline,
}
impl Default for PipelineLibraryCreateInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_LIBRARY_CREATE_INFO_KHR,
next: ptr::null(),
library_count: u32::default(),
libraries: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineMultisampleStateCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct PipelineMultisampleStateCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineMultisampleStateCreateFlags,
pub rasterization_samples: SampleCountFlags,
pub sample_shading_enable: Bool32,
pub min_sample_shading: f32,
pub sample_mask: *const SampleMask,
pub alpha_to_coverage_enable: Bool32,
pub alpha_to_one_enable: Bool32,
}
impl Default for PipelineMultisampleStateCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,
next: ptr::null(),
flags: PipelineMultisampleStateCreateFlags::default(),
rasterization_samples: SampleCountFlags::default(),
sample_shading_enable: Bool32::default(),
min_sample_shading: f32::default(),
sample_mask: ptr::null(),
alpha_to_coverage_enable: Bool32::default(),
alpha_to_one_enable: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelinePropertiesIdentifierEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelinePropertiesIdentifierEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub pipeline_identifier: ByteArray<UUID_SIZE>,
}
impl Default for PipelinePropertiesIdentifierEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_PROPERTIES_IDENTIFIER_EXT,
next: ptr::null_mut(),
pipeline_identifier: ByteArray::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineRasterizationConservativeStateCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct PipelineRasterizationConservativeStateCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineRasterizationConservativeStateCreateFlagsEXT,
pub conservative_rasterization_mode: ConservativeRasterizationModeEXT,
pub extra_primitive_overestimation_size: f32,
}
impl Default for PipelineRasterizationConservativeStateCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT,
next: ptr::null(),
flags: PipelineRasterizationConservativeStateCreateFlagsEXT::default(),
conservative_rasterization_mode: ConservativeRasterizationModeEXT::default(),
extra_primitive_overestimation_size: f32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineRasterizationDepthClipStateCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineRasterizationDepthClipStateCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineRasterizationDepthClipStateCreateFlagsEXT,
pub depth_clip_enable: Bool32,
}
impl Default for PipelineRasterizationDepthClipStateCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,
next: ptr::null(),
flags: PipelineRasterizationDepthClipStateCreateFlagsEXT::default(),
depth_clip_enable: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineRasterizationLineStateCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineRasterizationLineStateCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub line_rasterization_mode: LineRasterizationModeEXT,
pub stippled_line_enable: Bool32,
pub line_stipple_factor: u32,
pub line_stipple_pattern: u16,
}
impl Default for PipelineRasterizationLineStateCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,
next: ptr::null(),
line_rasterization_mode: LineRasterizationModeEXT::default(),
stippled_line_enable: Bool32::default(),
line_stipple_factor: u32::default(),
line_stipple_pattern: u16::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineRasterizationProvokingVertexStateCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineRasterizationProvokingVertexStateCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub provoking_vertex_mode: ProvokingVertexModeEXT,
}
impl Default for PipelineRasterizationProvokingVertexStateCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT,
next: ptr::null(),
provoking_vertex_mode: ProvokingVertexModeEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineRasterizationStateCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct PipelineRasterizationStateCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineRasterizationStateCreateFlags,
pub depth_clamp_enable: Bool32,
pub rasterizer_discard_enable: Bool32,
pub polygon_mode: PolygonMode,
pub cull_mode: CullModeFlags,
pub front_face: FrontFace,
pub depth_bias_enable: Bool32,
pub depth_bias_constant_factor: f32,
pub depth_bias_clamp: f32,
pub depth_bias_slope_factor: f32,
pub line_width: f32,
}
impl Default for PipelineRasterizationStateCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
next: ptr::null(),
flags: PipelineRasterizationStateCreateFlags::default(),
depth_clamp_enable: Bool32::default(),
rasterizer_discard_enable: Bool32::default(),
polygon_mode: PolygonMode::default(),
cull_mode: CullModeFlags::default(),
front_face: FrontFace::default(),
depth_bias_enable: Bool32::default(),
depth_bias_constant_factor: f32::default(),
depth_bias_clamp: f32::default(),
depth_bias_slope_factor: f32::default(),
line_width: f32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineRasterizationStateRasterizationOrderAMD.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineRasterizationStateRasterizationOrderAMD {
pub s_type: StructureType,
pub next: *const c_void,
pub rasterization_order: RasterizationOrderAMD,
}
impl Default for PipelineRasterizationStateRasterizationOrderAMD {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD,
next: ptr::null(),
rasterization_order: RasterizationOrderAMD::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineRasterizationStateStreamCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineRasterizationStateStreamCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineRasterizationStateStreamCreateFlagsEXT,
pub rasterization_stream: u32,
}
impl Default for PipelineRasterizationStateStreamCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,
next: ptr::null(),
flags: PipelineRasterizationStateStreamCreateFlagsEXT::default(),
rasterization_stream: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineRenderingCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineRenderingCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub view_mask: u32,
pub color_attachment_count: u32,
pub color_attachment_formats: *const Format,
pub depth_attachment_format: Format,
pub stencil_attachment_format: Format,
}
impl Default for PipelineRenderingCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_RENDERING_CREATE_INFO,
next: ptr::null(),
view_mask: u32::default(),
color_attachment_count: u32::default(),
color_attachment_formats: ptr::null(),
depth_attachment_format: Format::default(),
stencil_attachment_format: Format::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineRepresentativeFragmentTestStateCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineRepresentativeFragmentTestStateCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub representative_fragment_test_enable: Bool32,
}
impl Default for PipelineRepresentativeFragmentTestStateCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,
next: ptr::null(),
representative_fragment_test_enable: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineRobustnessCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineRobustnessCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub storage_buffers: PipelineRobustnessBufferBehaviorEXT,
pub uniform_buffers: PipelineRobustnessBufferBehaviorEXT,
pub vertex_inputs: PipelineRobustnessBufferBehaviorEXT,
pub images: PipelineRobustnessImageBehaviorEXT,
}
impl Default for PipelineRobustnessCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_ROBUSTNESS_CREATE_INFO_EXT,
next: ptr::null(),
storage_buffers: PipelineRobustnessBufferBehaviorEXT::default(),
uniform_buffers: PipelineRobustnessBufferBehaviorEXT::default(),
vertex_inputs: PipelineRobustnessBufferBehaviorEXT::default(),
images: PipelineRobustnessImageBehaviorEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineSampleLocationsStateCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineSampleLocationsStateCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub sample_locations_enable: Bool32,
pub sample_locations_info: SampleLocationsInfoEXT,
}
impl Default for PipelineSampleLocationsStateCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
next: ptr::null(),
sample_locations_enable: Bool32::default(),
sample_locations_info: SampleLocationsInfoEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineShaderStageCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineShaderStageCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineShaderStageCreateFlags,
pub stage: ShaderStageFlags,
pub module: ShaderModule,
pub name: *const c_char,
pub specialization_info: *const SpecializationInfo,
}
impl Default for PipelineShaderStageCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_SHADER_STAGE_CREATE_INFO,
next: ptr::null(),
flags: PipelineShaderStageCreateFlags::default(),
stage: ShaderStageFlags::default(),
module: ShaderModule::default(),
name: ptr::null(),
specialization_info: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineShaderStageModuleIdentifierCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineShaderStageModuleIdentifierCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub identifier_size: u32,
pub identifier: *const u8,
}
impl Default for PipelineShaderStageModuleIdentifierCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT,
next: ptr::null(),
identifier_size: u32::default(),
identifier: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineShaderStageRequiredSubgroupSizeCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineShaderStageRequiredSubgroupSizeCreateInfo {
pub s_type: StructureType,
pub next: *mut c_void,
pub required_subgroup_size: u32,
}
impl Default for PipelineShaderStageRequiredSubgroupSizeCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
next: ptr::null_mut(),
required_subgroup_size: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineTessellationDomainOriginStateCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineTessellationDomainOriginStateCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub domain_origin: TessellationDomainOrigin,
}
impl Default for PipelineTessellationDomainOriginStateCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
next: ptr::null(),
domain_origin: TessellationDomainOrigin::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineTessellationStateCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineTessellationStateCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineTessellationStateCreateFlags,
pub patch_control_points: u32,
}
impl Default for PipelineTessellationStateCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_TESSELLATION_STATE_CREATE_INFO,
next: ptr::null(),
flags: PipelineTessellationStateCreateFlags::default(),
patch_control_points: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineVertexInputDivisorStateCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineVertexInputDivisorStateCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub vertex_binding_divisor_count: u32,
pub vertex_binding_divisors: *const VertexInputBindingDivisorDescriptionEXT,
}
impl Default for PipelineVertexInputDivisorStateCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
next: ptr::null(),
vertex_binding_divisor_count: u32::default(),
vertex_binding_divisors: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineVertexInputStateCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineVertexInputStateCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineVertexInputStateCreateFlags,
pub vertex_binding_description_count: u32,
pub vertex_binding_descriptions: *const VertexInputBindingDescription,
pub vertex_attribute_description_count: u32,
pub vertex_attribute_descriptions: *const VertexInputAttributeDescription,
}
impl Default for PipelineVertexInputStateCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,
next: ptr::null(),
flags: PipelineVertexInputStateCreateFlags::default(),
vertex_binding_description_count: u32::default(),
vertex_binding_descriptions: ptr::null(),
vertex_attribute_description_count: u32::default(),
vertex_attribute_descriptions: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineViewportCoarseSampleOrderStateCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineViewportCoarseSampleOrderStateCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub sample_order_type: CoarseSampleOrderTypeNV,
pub custom_sample_order_count: u32,
pub custom_sample_orders: *const CoarseSampleOrderCustomNV,
}
impl Default for PipelineViewportCoarseSampleOrderStateCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
next: ptr::null(),
sample_order_type: CoarseSampleOrderTypeNV::default(),
custom_sample_order_count: u32::default(),
custom_sample_orders: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineViewportDepthClipControlCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineViewportDepthClipControlCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub negative_one_to_one: Bool32,
}
impl Default for PipelineViewportDepthClipControlCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT,
next: ptr::null(),
negative_one_to_one: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineViewportExclusiveScissorStateCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineViewportExclusiveScissorStateCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub exclusive_scissor_count: u32,
pub exclusive_scissors: *const Rect2D,
}
impl Default for PipelineViewportExclusiveScissorStateCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV,
next: ptr::null(),
exclusive_scissor_count: u32::default(),
exclusive_scissors: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineViewportShadingRateImageStateCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineViewportShadingRateImageStateCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub shading_rate_image_enable: Bool32,
pub viewport_count: u32,
pub shading_rate_palettes: *const ShadingRatePaletteNV,
}
impl Default for PipelineViewportShadingRateImageStateCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
next: ptr::null(),
shading_rate_image_enable: Bool32::default(),
viewport_count: u32::default(),
shading_rate_palettes: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineViewportStateCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineViewportStateCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineViewportStateCreateFlags,
pub viewport_count: u32,
pub viewports: *const Viewport,
pub scissor_count: u32,
pub scissors: *const Rect2D,
}
impl Default for PipelineViewportStateCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_VIEWPORT_STATE_CREATE_INFO,
next: ptr::null(),
flags: PipelineViewportStateCreateFlags::default(),
viewport_count: u32::default(),
viewports: ptr::null(),
scissor_count: u32::default(),
scissors: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineViewportSwizzleStateCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineViewportSwizzleStateCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineViewportSwizzleStateCreateFlagsNV,
pub viewport_count: u32,
pub viewport_swizzles: *const ViewportSwizzleNV,
}
impl Default for PipelineViewportSwizzleStateCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV,
next: ptr::null(),
flags: PipelineViewportSwizzleStateCreateFlagsNV::default(),
viewport_count: u32::default(),
viewport_swizzles: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineViewportWScalingStateCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PipelineViewportWScalingStateCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub viewport_w_scaling_enable: Bool32,
pub viewport_count: u32,
pub viewport_w_scalings: *const ViewportWScalingNV,
}
impl Default for PipelineViewportWScalingStateCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,
next: ptr::null(),
viewport_w_scaling_enable: Bool32::default(),
viewport_count: u32::default(),
viewport_w_scalings: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPresentFrameTokenGGP.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PresentFrameTokenGGP {
pub s_type: StructureType,
pub next: *const c_void,
pub frame_token: GgpFrameToken,
}
impl Default for PresentFrameTokenGGP {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PRESENT_FRAME_TOKEN_GGP,
next: ptr::null(),
frame_token: GgpFrameToken::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPresentIdKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PresentIdKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub swapchain_count: u32,
pub present_ids: *const u64,
}
impl Default for PresentIdKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PRESENT_ID_KHR,
next: ptr::null(),
swapchain_count: u32::default(),
present_ids: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPresentInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PresentInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub wait_semaphore_count: u32,
pub wait_semaphores: *const Semaphore,
pub swapchain_count: u32,
pub swapchains: *const SwapchainKHR,
pub image_indices: *const u32,
pub results: *mut Result,
}
impl Default for PresentInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PRESENT_INFO_KHR,
next: ptr::null(),
wait_semaphore_count: u32::default(),
wait_semaphores: ptr::null(),
swapchain_count: u32::default(),
swapchains: ptr::null(),
image_indices: ptr::null(),
results: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPresentRegionKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PresentRegionKHR {
pub rectangle_count: u32,
pub rectangles: *const RectLayerKHR,
}
impl Default for PresentRegionKHR {
#[inline]
fn default() -> Self {
Self {
rectangle_count: u32::default(),
rectangles: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPresentRegionsKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PresentRegionsKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub swapchain_count: u32,
pub regions: *const PresentRegionKHR,
}
impl Default for PresentRegionsKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PRESENT_REGIONS_KHR,
next: ptr::null(),
swapchain_count: u32::default(),
regions: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPresentTimeGOOGLE.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct PresentTimeGOOGLE {
pub present_id: u32,
pub desired_present_time: u64,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPresentTimesInfoGOOGLE.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PresentTimesInfoGOOGLE {
pub s_type: StructureType,
pub next: *const c_void,
pub swapchain_count: u32,
pub times: *const PresentTimeGOOGLE,
}
impl Default for PresentTimesInfoGOOGLE {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PRESENT_TIMES_INFO_GOOGLE,
next: ptr::null(),
swapchain_count: u32::default(),
times: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPrivateDataSlotCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PrivateDataSlotCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PrivateDataSlotCreateFlags,
}
impl Default for PrivateDataSlotCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PRIVATE_DATA_SLOT_CREATE_INFO,
next: ptr::null(),
flags: PrivateDataSlotCreateFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkProtectedSubmitInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ProtectedSubmitInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub protected_submit: Bool32,
}
impl Default for ProtectedSubmitInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PROTECTED_SUBMIT_INFO,
next: ptr::null(),
protected_submit: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPushConstantRange.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct PushConstantRange {
pub stage_flags: ShaderStageFlags,
pub offset: u32,
pub size: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueryPoolCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct QueryPoolCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: QueryPoolCreateFlags,
pub query_type: QueryType,
pub query_count: u32,
pub pipeline_statistics: QueryPipelineStatisticFlags,
}
impl Default for QueryPoolCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::QUERY_POOL_CREATE_INFO,
next: ptr::null(),
flags: QueryPoolCreateFlags::default(),
query_type: QueryType::default(),
query_count: u32::default(),
pipeline_statistics: QueryPipelineStatisticFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueryPoolPerformanceCreateInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct QueryPoolPerformanceCreateInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub queue_family_index: u32,
pub counter_index_count: u32,
pub counter_indices: *const u32,
}
impl Default for QueryPoolPerformanceCreateInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
next: ptr::null(),
queue_family_index: u32::default(),
counter_index_count: u32::default(),
counter_indices: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueryPoolPerformanceQueryCreateInfoINTEL.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct QueryPoolPerformanceQueryCreateInfoINTEL {
pub s_type: StructureType,
pub next: *const c_void,
pub performance_counters_sampling: QueryPoolSamplingModeINTEL,
}
impl Default for QueryPoolPerformanceQueryCreateInfoINTEL {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
next: ptr::null(),
performance_counters_sampling: QueryPoolSamplingModeINTEL::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueueFamilyCheckpointProperties2NV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct QueueFamilyCheckpointProperties2NV {
pub s_type: StructureType,
pub next: *mut c_void,
pub checkpoint_execution_stage_mask: PipelineStageFlags2,
}
impl Default for QueueFamilyCheckpointProperties2NV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV,
next: ptr::null_mut(),
checkpoint_execution_stage_mask: PipelineStageFlags2::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueueFamilyCheckpointPropertiesNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct QueueFamilyCheckpointPropertiesNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub checkpoint_execution_stage_mask: PipelineStageFlags,
}
impl Default for QueueFamilyCheckpointPropertiesNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV,
next: ptr::null_mut(),
checkpoint_execution_stage_mask: PipelineStageFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueueFamilyGlobalPriorityPropertiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct QueueFamilyGlobalPriorityPropertiesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub priority_count: u32,
pub priorities: [QueueGlobalPriorityKHR; MAX_GLOBAL_PRIORITY_SIZE_KHR],
}
impl Default for QueueFamilyGlobalPriorityPropertiesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR,
next: ptr::null_mut(),
priority_count: u32::default(),
priorities: [QueueGlobalPriorityKHR::default(); MAX_GLOBAL_PRIORITY_SIZE_KHR],
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueueFamilyProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct QueueFamilyProperties {
pub queue_flags: QueueFlags,
pub queue_count: u32,
pub timestamp_valid_bits: u32,
pub min_image_transfer_granularity: Extent3D,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueueFamilyProperties2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct QueueFamilyProperties2 {
pub s_type: StructureType,
pub next: *mut c_void,
pub queue_family_properties: QueueFamilyProperties,
}
impl Default for QueueFamilyProperties2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::QUEUE_FAMILY_PROPERTIES_2,
next: ptr::null_mut(),
queue_family_properties: QueueFamilyProperties::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRayTracingPipelineCreateInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RayTracingPipelineCreateInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineCreateFlags,
pub stage_count: u32,
pub stages: *const PipelineShaderStageCreateInfo,
pub group_count: u32,
pub groups: *const RayTracingShaderGroupCreateInfoKHR,
pub max_pipeline_ray_recursion_depth: u32,
pub library_info: *const PipelineLibraryCreateInfoKHR,
pub library_interface: *const RayTracingPipelineInterfaceCreateInfoKHR,
pub dynamic_state: *const PipelineDynamicStateCreateInfo,
pub layout: PipelineLayout,
pub base_pipeline_handle: Pipeline,
pub base_pipeline_index: i32,
}
impl Default for RayTracingPipelineCreateInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RAY_TRACING_PIPELINE_CREATE_INFO_KHR,
next: ptr::null(),
flags: PipelineCreateFlags::default(),
stage_count: u32::default(),
stages: ptr::null(),
group_count: u32::default(),
groups: ptr::null(),
max_pipeline_ray_recursion_depth: u32::default(),
library_info: ptr::null(),
library_interface: ptr::null(),
dynamic_state: ptr::null(),
layout: PipelineLayout::default(),
base_pipeline_handle: Pipeline::default(),
base_pipeline_index: i32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRayTracingPipelineCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RayTracingPipelineCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: PipelineCreateFlags,
pub stage_count: u32,
pub stages: *const PipelineShaderStageCreateInfo,
pub group_count: u32,
pub groups: *const RayTracingShaderGroupCreateInfoNV,
pub max_recursion_depth: u32,
pub layout: PipelineLayout,
pub base_pipeline_handle: Pipeline,
pub base_pipeline_index: i32,
}
impl Default for RayTracingPipelineCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RAY_TRACING_PIPELINE_CREATE_INFO_NV,
next: ptr::null(),
flags: PipelineCreateFlags::default(),
stage_count: u32::default(),
stages: ptr::null(),
group_count: u32::default(),
groups: ptr::null(),
max_recursion_depth: u32::default(),
layout: PipelineLayout::default(),
base_pipeline_handle: Pipeline::default(),
base_pipeline_index: i32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRayTracingPipelineInterfaceCreateInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RayTracingPipelineInterfaceCreateInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub max_pipeline_ray_payload_size: u32,
pub max_pipeline_ray_hit_attribute_size: u32,
}
impl Default for RayTracingPipelineInterfaceCreateInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR,
next: ptr::null(),
max_pipeline_ray_payload_size: u32::default(),
max_pipeline_ray_hit_attribute_size: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRayTracingShaderGroupCreateInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RayTracingShaderGroupCreateInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub type_: RayTracingShaderGroupTypeKHR,
pub general_shader: u32,
pub closest_hit_shader: u32,
pub any_hit_shader: u32,
pub intersection_shader: u32,
pub shader_group_capture_replay_handle: *const c_void,
}
impl Default for RayTracingShaderGroupCreateInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR,
next: ptr::null(),
type_: RayTracingShaderGroupTypeKHR::default(),
general_shader: u32::default(),
closest_hit_shader: u32::default(),
any_hit_shader: u32::default(),
intersection_shader: u32::default(),
shader_group_capture_replay_handle: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRayTracingShaderGroupCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RayTracingShaderGroupCreateInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub type_: RayTracingShaderGroupTypeKHR,
pub general_shader: u32,
pub closest_hit_shader: u32,
pub any_hit_shader: u32,
pub intersection_shader: u32,
}
impl Default for RayTracingShaderGroupCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
next: ptr::null(),
type_: RayTracingShaderGroupTypeKHR::default(),
general_shader: u32::default(),
closest_hit_shader: u32::default(),
any_hit_shader: u32::default(),
intersection_shader: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRect2D.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct Rect2D {
pub offset: Offset2D,
pub extent: Extent2D,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRectLayerKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct RectLayerKHR {
pub offset: Offset2D,
pub extent: Extent2D,
pub layer: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRefreshCycleDurationGOOGLE.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct RefreshCycleDurationGOOGLE {
pub refresh_duration: u64,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkReleaseSwapchainImagesInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ReleaseSwapchainImagesInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub swapchain: SwapchainKHR,
pub image_index_count: u32,
pub image_indices: *const u32,
}
impl Default for ReleaseSwapchainImagesInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RELEASE_SWAPCHAIN_IMAGES_INFO_EXT,
next: ptr::null(),
swapchain: SwapchainKHR::default(),
image_index_count: u32::default(),
image_indices: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPassAttachmentBeginInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RenderPassAttachmentBeginInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub attachment_count: u32,
pub attachments: *const ImageView,
}
impl Default for RenderPassAttachmentBeginInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RENDER_PASS_ATTACHMENT_BEGIN_INFO,
next: ptr::null(),
attachment_count: u32::default(),
attachments: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPassBeginInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RenderPassBeginInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub render_pass: RenderPass,
pub framebuffer: Framebuffer,
pub render_area: Rect2D,
pub clear_value_count: u32,
pub clear_values: *const ClearValue,
}
impl Default for RenderPassBeginInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RENDER_PASS_BEGIN_INFO,
next: ptr::null(),
render_pass: RenderPass::default(),
framebuffer: Framebuffer::default(),
render_area: Rect2D::default(),
clear_value_count: u32::default(),
clear_values: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPassCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RenderPassCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: RenderPassCreateFlags,
pub attachment_count: u32,
pub attachments: *const AttachmentDescription,
pub subpass_count: u32,
pub subpasses: *const SubpassDescription,
pub dependency_count: u32,
pub dependencies: *const SubpassDependency,
}
impl Default for RenderPassCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RENDER_PASS_CREATE_INFO,
next: ptr::null(),
flags: RenderPassCreateFlags::default(),
attachment_count: u32::default(),
attachments: ptr::null(),
subpass_count: u32::default(),
subpasses: ptr::null(),
dependency_count: u32::default(),
dependencies: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPassCreateInfo2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RenderPassCreateInfo2 {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: RenderPassCreateFlags,
pub attachment_count: u32,
pub attachments: *const AttachmentDescription2,
pub subpass_count: u32,
pub subpasses: *const SubpassDescription2,
pub dependency_count: u32,
pub dependencies: *const SubpassDependency2,
pub correlated_view_mask_count: u32,
pub correlated_view_masks: *const u32,
}
impl Default for RenderPassCreateInfo2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RENDER_PASS_CREATE_INFO_2,
next: ptr::null(),
flags: RenderPassCreateFlags::default(),
attachment_count: u32::default(),
attachments: ptr::null(),
subpass_count: u32::default(),
subpasses: ptr::null(),
dependency_count: u32::default(),
dependencies: ptr::null(),
correlated_view_mask_count: u32::default(),
correlated_view_masks: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPassCreationControlEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RenderPassCreationControlEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub disallow_merging: Bool32,
}
impl Default for RenderPassCreationControlEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RENDER_PASS_CREATION_CONTROL_EXT,
next: ptr::null(),
disallow_merging: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPassCreationFeedbackCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RenderPassCreationFeedbackCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub render_pass_feedback: *mut RenderPassCreationFeedbackInfoEXT,
}
impl Default for RenderPassCreationFeedbackCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT,
next: ptr::null(),
render_pass_feedback: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPassCreationFeedbackInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct RenderPassCreationFeedbackInfoEXT {
pub post_merge_subpass_count: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPassFragmentDensityMapCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RenderPassFragmentDensityMapCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub fragment_density_map_attachment: AttachmentReference,
}
impl Default for RenderPassFragmentDensityMapCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
next: ptr::null(),
fragment_density_map_attachment: AttachmentReference::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPassInputAttachmentAspectCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RenderPassInputAttachmentAspectCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub aspect_reference_count: u32,
pub aspect_references: *const InputAttachmentAspectReference,
}
impl Default for RenderPassInputAttachmentAspectCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
next: ptr::null(),
aspect_reference_count: u32::default(),
aspect_references: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPassMultiviewCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RenderPassMultiviewCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub subpass_count: u32,
pub view_masks: *const u32,
pub dependency_count: u32,
pub view_offsets: *const i32,
pub correlation_mask_count: u32,
pub correlation_masks: *const u32,
}
impl Default for RenderPassMultiviewCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RENDER_PASS_MULTIVIEW_CREATE_INFO,
next: ptr::null(),
subpass_count: u32::default(),
view_masks: ptr::null(),
dependency_count: u32::default(),
view_offsets: ptr::null(),
correlation_mask_count: u32::default(),
correlation_masks: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPassSampleLocationsBeginInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RenderPassSampleLocationsBeginInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub attachment_initial_sample_locations_count: u32,
pub attachment_initial_sample_locations: *const AttachmentSampleLocationsEXT,
pub post_subpass_sample_locations_count: u32,
pub post_subpass_sample_locations: *const SubpassSampleLocationsEXT,
}
impl Default for RenderPassSampleLocationsBeginInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,
next: ptr::null(),
attachment_initial_sample_locations_count: u32::default(),
attachment_initial_sample_locations: ptr::null(),
post_subpass_sample_locations_count: u32::default(),
post_subpass_sample_locations: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPassSubpassFeedbackCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RenderPassSubpassFeedbackCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub subpass_feedback: *mut RenderPassSubpassFeedbackInfoEXT,
}
impl Default for RenderPassSubpassFeedbackCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT,
next: ptr::null(),
subpass_feedback: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPassSubpassFeedbackInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct RenderPassSubpassFeedbackInfoEXT {
pub subpass_merge_status: SubpassMergeStatusEXT,
pub description: StringArray<MAX_DESCRIPTION_SIZE>,
pub post_merge_index: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPassTransformBeginInfoQCOM.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RenderPassTransformBeginInfoQCOM {
pub s_type: StructureType,
pub next: *mut c_void,
pub transform: SurfaceTransformFlagsKHR,
}
impl Default for RenderPassTransformBeginInfoQCOM {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM,
next: ptr::null_mut(),
transform: SurfaceTransformFlagsKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderingAttachmentInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct RenderingAttachmentInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub image_view: ImageView,
pub image_layout: ImageLayout,
pub resolve_mode: ResolveModeFlags,
pub resolve_image_view: ImageView,
pub resolve_image_layout: ImageLayout,
pub load_op: AttachmentLoadOp,
pub store_op: AttachmentStoreOp,
pub clear_value: ClearValue,
}
impl Default for RenderingAttachmentInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RENDERING_ATTACHMENT_INFO,
next: ptr::null(),
image_view: ImageView::default(),
image_layout: ImageLayout::default(),
resolve_mode: ResolveModeFlags::default(),
resolve_image_view: ImageView::default(),
resolve_image_layout: ImageLayout::default(),
load_op: AttachmentLoadOp::default(),
store_op: AttachmentStoreOp::default(),
clear_value: ClearValue::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderingFragmentDensityMapAttachmentInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RenderingFragmentDensityMapAttachmentInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub image_view: ImageView,
pub image_layout: ImageLayout,
}
impl Default for RenderingFragmentDensityMapAttachmentInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT,
next: ptr::null(),
image_view: ImageView::default(),
image_layout: ImageLayout::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderingFragmentShadingRateAttachmentInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RenderingFragmentShadingRateAttachmentInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub image_view: ImageView,
pub image_layout: ImageLayout,
pub shading_rate_attachment_texel_size: Extent2D,
}
impl Default for RenderingFragmentShadingRateAttachmentInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
next: ptr::null(),
image_view: ImageView::default(),
image_layout: ImageLayout::default(),
shading_rate_attachment_texel_size: Extent2D::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderingInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct RenderingInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: RenderingFlags,
pub render_area: Rect2D,
pub layer_count: u32,
pub view_mask: u32,
pub color_attachment_count: u32,
pub color_attachments: *const RenderingAttachmentInfo,
pub depth_attachment: *const RenderingAttachmentInfo,
pub stencil_attachment: *const RenderingAttachmentInfo,
}
impl Default for RenderingInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RENDERING_INFO,
next: ptr::null(),
flags: RenderingFlags::default(),
render_area: Rect2D::default(),
layer_count: u32::default(),
view_mask: u32::default(),
color_attachment_count: u32::default(),
color_attachments: ptr::null(),
depth_attachment: ptr::null(),
stencil_attachment: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkResolveImageInfo2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ResolveImageInfo2 {
pub s_type: StructureType,
pub next: *const c_void,
pub src_image: Image,
pub src_image_layout: ImageLayout,
pub dst_image: Image,
pub dst_image_layout: ImageLayout,
pub region_count: u32,
pub regions: *const ImageResolve2,
}
impl Default for ResolveImageInfo2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::RESOLVE_IMAGE_INFO_2,
next: ptr::null(),
src_image: Image::default(),
src_image_layout: ImageLayout::default(),
dst_image: Image::default(),
dst_image_layout: ImageLayout::default(),
region_count: u32::default(),
regions: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSRTDataNV.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, PartialEq)]
pub struct SRTDataNV {
pub sx: f32,
pub a: f32,
pub b: f32,
pub pvx: f32,
pub sy: f32,
pub c: f32,
pub pvy: f32,
pub sz: f32,
pub pvz: f32,
pub qx: f32,
pub qy: f32,
pub qz: f32,
pub qw: f32,
pub tx: f32,
pub ty: f32,
pub tz: f32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSampleLocationEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, PartialEq)]
pub struct SampleLocationEXT {
pub x: f32,
pub y: f32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSampleLocationsInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SampleLocationsInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub sample_locations_per_pixel: SampleCountFlags,
pub sample_location_grid_size: Extent2D,
pub sample_locations_count: u32,
pub sample_locations: *const SampleLocationEXT,
}
impl Default for SampleLocationsInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SAMPLE_LOCATIONS_INFO_EXT,
next: ptr::null(),
sample_locations_per_pixel: SampleCountFlags::default(),
sample_location_grid_size: Extent2D::default(),
sample_locations_count: u32::default(),
sample_locations: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerBorderColorComponentMappingCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SamplerBorderColorComponentMappingCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub components: ComponentMapping,
pub srgb: Bool32,
}
impl Default for SamplerBorderColorComponentMappingCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT,
next: ptr::null(),
components: ComponentMapping::default(),
srgb: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerCaptureDescriptorDataInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SamplerCaptureDescriptorDataInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub sampler: Sampler,
}
impl Default for SamplerCaptureDescriptorDataInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
next: ptr::null(),
sampler: Sampler::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct SamplerCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: SamplerCreateFlags,
pub mag_filter: Filter,
pub min_filter: Filter,
pub mipmap_mode: SamplerMipmapMode,
pub address_mode_u: SamplerAddressMode,
pub address_mode_v: SamplerAddressMode,
pub address_mode_w: SamplerAddressMode,
pub mip_lod_bias: f32,
pub anisotropy_enable: Bool32,
pub max_anisotropy: f32,
pub compare_enable: Bool32,
pub compare_op: CompareOp,
pub min_lod: f32,
pub max_lod: f32,
pub border_color: BorderColor,
pub unnormalized_coordinates: Bool32,
}
impl Default for SamplerCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SAMPLER_CREATE_INFO,
next: ptr::null(),
flags: SamplerCreateFlags::default(),
mag_filter: Filter::default(),
min_filter: Filter::default(),
mipmap_mode: SamplerMipmapMode::default(),
address_mode_u: SamplerAddressMode::default(),
address_mode_v: SamplerAddressMode::default(),
address_mode_w: SamplerAddressMode::default(),
mip_lod_bias: f32::default(),
anisotropy_enable: Bool32::default(),
max_anisotropy: f32::default(),
compare_enable: Bool32::default(),
compare_op: CompareOp::default(),
min_lod: f32::default(),
max_lod: f32::default(),
border_color: BorderColor::default(),
unnormalized_coordinates: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerCustomBorderColorCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct SamplerCustomBorderColorCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub custom_border_color: ClearColorValue,
pub format: Format,
}
impl Default for SamplerCustomBorderColorCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT,
next: ptr::null(),
custom_border_color: ClearColorValue::default(),
format: Format::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerReductionModeCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SamplerReductionModeCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub reduction_mode: SamplerReductionMode,
}
impl Default for SamplerReductionModeCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SAMPLER_REDUCTION_MODE_CREATE_INFO,
next: ptr::null(),
reduction_mode: SamplerReductionMode::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrConversionCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SamplerYcbcrConversionCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub format: Format,
pub ycbcr_model: SamplerYcbcrModelConversion,
pub ycbcr_range: SamplerYcbcrRange,
pub components: ComponentMapping,
pub x_chroma_offset: ChromaLocation,
pub y_chroma_offset: ChromaLocation,
pub chroma_filter: Filter,
pub force_explicit_reconstruction: Bool32,
}
impl Default for SamplerYcbcrConversionCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
next: ptr::null(),
format: Format::default(),
ycbcr_model: SamplerYcbcrModelConversion::default(),
ycbcr_range: SamplerYcbcrRange::default(),
components: ComponentMapping::default(),
x_chroma_offset: ChromaLocation::default(),
y_chroma_offset: ChromaLocation::default(),
chroma_filter: Filter::default(),
force_explicit_reconstruction: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrConversionImageFormatProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SamplerYcbcrConversionImageFormatProperties {
pub s_type: StructureType,
pub next: *mut c_void,
pub combined_image_sampler_descriptor_count: u32,
}
impl Default for SamplerYcbcrConversionImageFormatProperties {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
next: ptr::null_mut(),
combined_image_sampler_descriptor_count: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrConversionInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SamplerYcbcrConversionInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub conversion: SamplerYcbcrConversion,
}
impl Default for SamplerYcbcrConversionInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SAMPLER_YCBCR_CONVERSION_INFO,
next: ptr::null(),
conversion: SamplerYcbcrConversion::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkScreenSurfaceCreateInfoQNX.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ScreenSurfaceCreateInfoQNX {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: ScreenSurfaceCreateFlagsQNX,
pub context: *mut _screen_context,
pub window: *mut _screen_window,
}
impl Default for ScreenSurfaceCreateInfoQNX {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SCREEN_SURFACE_CREATE_INFO_QNX,
next: ptr::null(),
flags: ScreenSurfaceCreateFlagsQNX::default(),
context: ptr::null_mut(),
window: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSemaphoreCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SemaphoreCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: SemaphoreCreateFlags,
}
impl Default for SemaphoreCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SEMAPHORE_CREATE_INFO,
next: ptr::null(),
flags: SemaphoreCreateFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSemaphoreGetFdInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SemaphoreGetFdInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub semaphore: Semaphore,
pub handle_type: ExternalSemaphoreHandleTypeFlags,
}
impl Default for SemaphoreGetFdInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SEMAPHORE_GET_FD_INFO_KHR,
next: ptr::null(),
semaphore: Semaphore::default(),
handle_type: ExternalSemaphoreHandleTypeFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSemaphoreGetWin32HandleInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SemaphoreGetWin32HandleInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub semaphore: Semaphore,
pub handle_type: ExternalSemaphoreHandleTypeFlags,
}
impl Default for SemaphoreGetWin32HandleInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,
next: ptr::null(),
semaphore: Semaphore::default(),
handle_type: ExternalSemaphoreHandleTypeFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSemaphoreGetZirconHandleInfoFUCHSIA.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SemaphoreGetZirconHandleInfoFUCHSIA {
pub s_type: StructureType,
pub next: *const c_void,
pub semaphore: Semaphore,
pub handle_type: ExternalSemaphoreHandleTypeFlags,
}
impl Default for SemaphoreGetZirconHandleInfoFUCHSIA {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
next: ptr::null(),
semaphore: Semaphore::default(),
handle_type: ExternalSemaphoreHandleTypeFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSemaphoreSignalInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SemaphoreSignalInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub semaphore: Semaphore,
pub value: u64,
}
impl Default for SemaphoreSignalInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SEMAPHORE_SIGNAL_INFO,
next: ptr::null(),
semaphore: Semaphore::default(),
value: u64::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSemaphoreSubmitInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SemaphoreSubmitInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub semaphore: Semaphore,
pub value: u64,
pub stage_mask: PipelineStageFlags2,
pub device_index: u32,
}
impl Default for SemaphoreSubmitInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SEMAPHORE_SUBMIT_INFO,
next: ptr::null(),
semaphore: Semaphore::default(),
value: u64::default(),
stage_mask: PipelineStageFlags2::default(),
device_index: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSemaphoreTypeCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SemaphoreTypeCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub semaphore_type: SemaphoreType,
pub initial_value: u64,
}
impl Default for SemaphoreTypeCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SEMAPHORE_TYPE_CREATE_INFO,
next: ptr::null(),
semaphore_type: SemaphoreType::default(),
initial_value: u64::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSemaphoreWaitInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SemaphoreWaitInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: SemaphoreWaitFlags,
pub semaphore_count: u32,
pub semaphores: *const Semaphore,
pub values: *const u64,
}
impl Default for SemaphoreWaitInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SEMAPHORE_WAIT_INFO,
next: ptr::null(),
flags: SemaphoreWaitFlags::default(),
semaphore_count: u32::default(),
semaphores: ptr::null(),
values: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSetStateFlagsIndirectCommandNV.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct SetStateFlagsIndirectCommandNV {
pub data: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkShaderModuleCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ShaderModuleCreateInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: ShaderModuleCreateFlags,
pub code_size: usize,
pub code: *const u32,
}
impl Default for ShaderModuleCreateInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SHADER_MODULE_CREATE_INFO,
next: ptr::null(),
flags: ShaderModuleCreateFlags::default(),
code_size: usize::default(),
code: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkShaderModuleIdentifierEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ShaderModuleIdentifierEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub identifier_size: u32,
pub identifier: ByteArray<MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT>,
}
impl Default for ShaderModuleIdentifierEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SHADER_MODULE_IDENTIFIER_EXT,
next: ptr::null_mut(),
identifier_size: u32::default(),
identifier: ByteArray::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkShaderModuleValidationCacheCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ShaderModuleValidationCacheCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub validation_cache: ValidationCacheEXT,
}
impl Default for ShaderModuleValidationCacheCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,
next: ptr::null(),
validation_cache: ValidationCacheEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkShaderResourceUsageAMD.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ShaderResourceUsageAMD {
pub num_used_vgprs: u32,
pub num_used_sgprs: u32,
pub lds_size_per_local_work_group: u32,
pub lds_usage_size_in_bytes: usize,
pub scratch_mem_usage_in_bytes: usize,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkShaderStatisticsInfoAMD.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ShaderStatisticsInfoAMD {
pub shader_stage_mask: ShaderStageFlags,
pub resource_usage: ShaderResourceUsageAMD,
pub num_physical_vgprs: u32,
pub num_physical_sgprs: u32,
pub num_available_vgprs: u32,
pub num_available_sgprs: u32,
pub compute_work_group_size: [u32; 3],
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkShadingRatePaletteNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ShadingRatePaletteNV {
pub shading_rate_palette_entry_count: u32,
pub shading_rate_palette_entries: *const ShadingRatePaletteEntryNV,
}
impl Default for ShadingRatePaletteNV {
#[inline]
fn default() -> Self {
Self {
shading_rate_palette_entry_count: u32::default(),
shading_rate_palette_entries: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSharedPresentSurfaceCapabilitiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SharedPresentSurfaceCapabilitiesKHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub shared_present_supported_usage_flags: ImageUsageFlags,
}
impl Default for SharedPresentSurfaceCapabilitiesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SHARED_PRESENT_SURFACE_CAPABILITIES_KHR,
next: ptr::null_mut(),
shared_present_supported_usage_flags: ImageUsageFlags::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSparseBufferMemoryBindInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SparseBufferMemoryBindInfo {
pub buffer: Buffer,
pub bind_count: u32,
pub binds: *const SparseMemoryBind,
}
impl Default for SparseBufferMemoryBindInfo {
#[inline]
fn default() -> Self {
Self {
buffer: Buffer::default(),
bind_count: u32::default(),
binds: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSparseImageFormatProperties.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct SparseImageFormatProperties {
pub aspect_mask: ImageAspectFlags,
pub image_granularity: Extent3D,
pub flags: SparseImageFormatFlags,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSparseImageFormatProperties2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SparseImageFormatProperties2 {
pub s_type: StructureType,
pub next: *mut c_void,
pub properties: SparseImageFormatProperties,
}
impl Default for SparseImageFormatProperties2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SPARSE_IMAGE_FORMAT_PROPERTIES_2,
next: ptr::null_mut(),
properties: SparseImageFormatProperties::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSparseImageMemoryBind.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct SparseImageMemoryBind {
pub subresource: ImageSubresource,
pub offset: Offset3D,
pub extent: Extent3D,
pub memory: DeviceMemory,
pub memory_offset: DeviceSize,
pub flags: SparseMemoryBindFlags,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSparseImageMemoryBindInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SparseImageMemoryBindInfo {
pub image: Image,
pub bind_count: u32,
pub binds: *const SparseImageMemoryBind,
}
impl Default for SparseImageMemoryBindInfo {
#[inline]
fn default() -> Self {
Self {
image: Image::default(),
bind_count: u32::default(),
binds: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSparseImageMemoryRequirements.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct SparseImageMemoryRequirements {
pub format_properties: SparseImageFormatProperties,
pub image_mip_tail_first_lod: u32,
pub image_mip_tail_size: DeviceSize,
pub image_mip_tail_offset: DeviceSize,
pub image_mip_tail_stride: DeviceSize,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSparseImageMemoryRequirements2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SparseImageMemoryRequirements2 {
pub s_type: StructureType,
pub next: *mut c_void,
pub memory_requirements: SparseImageMemoryRequirements,
}
impl Default for SparseImageMemoryRequirements2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
next: ptr::null_mut(),
memory_requirements: SparseImageMemoryRequirements::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSparseImageOpaqueMemoryBindInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SparseImageOpaqueMemoryBindInfo {
pub image: Image,
pub bind_count: u32,
pub binds: *const SparseMemoryBind,
}
impl Default for SparseImageOpaqueMemoryBindInfo {
#[inline]
fn default() -> Self {
Self {
image: Image::default(),
bind_count: u32::default(),
binds: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSparseMemoryBind.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct SparseMemoryBind {
pub resource_offset: DeviceSize,
pub size: DeviceSize,
pub memory: DeviceMemory,
pub memory_offset: DeviceSize,
pub flags: SparseMemoryBindFlags,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSpecializationInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SpecializationInfo {
pub map_entry_count: u32,
pub map_entries: *const SpecializationMapEntry,
pub data_size: usize,
pub data: *const c_void,
}
impl Default for SpecializationInfo {
#[inline]
fn default() -> Self {
Self {
map_entry_count: u32::default(),
map_entries: ptr::null(),
data_size: usize::default(),
data: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSpecializationMapEntry.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct SpecializationMapEntry {
pub constant_id: u32,
pub offset: u32,
pub size: usize,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkStencilOpState.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct StencilOpState {
pub fail_op: StencilOp,
pub pass_op: StencilOp,
pub depth_fail_op: StencilOp,
pub compare_op: CompareOp,
pub compare_mask: u32,
pub write_mask: u32,
pub reference: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkStreamDescriptorSurfaceCreateInfoGGP.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct StreamDescriptorSurfaceCreateInfoGGP {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: StreamDescriptorSurfaceCreateFlagsGGP,
pub stream_descriptor: GgpStreamDescriptor,
}
impl Default for StreamDescriptorSurfaceCreateInfoGGP {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP,
next: ptr::null(),
flags: StreamDescriptorSurfaceCreateFlagsGGP::default(),
stream_descriptor: GgpStreamDescriptor::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkStridedDeviceAddressRegionKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct StridedDeviceAddressRegionKHR {
pub device_address: DeviceAddress,
pub stride: DeviceSize,
pub size: DeviceSize,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubmitInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SubmitInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub wait_semaphore_count: u32,
pub wait_semaphores: *const Semaphore,
pub wait_dst_stage_mask: *const PipelineStageFlags,
pub command_buffer_count: u32,
pub command_buffers: *const CommandBuffer,
pub signal_semaphore_count: u32,
pub signal_semaphores: *const Semaphore,
}
impl Default for SubmitInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SUBMIT_INFO,
next: ptr::null(),
wait_semaphore_count: u32::default(),
wait_semaphores: ptr::null(),
wait_dst_stage_mask: ptr::null(),
command_buffer_count: u32::default(),
command_buffers: ptr::null(),
signal_semaphore_count: u32::default(),
signal_semaphores: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubmitInfo2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SubmitInfo2 {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: SubmitFlags,
pub wait_semaphore_info_count: u32,
pub wait_semaphore_infos: *const SemaphoreSubmitInfo,
pub command_buffer_info_count: u32,
pub command_buffer_infos: *const CommandBufferSubmitInfo,
pub signal_semaphore_info_count: u32,
pub signal_semaphore_infos: *const SemaphoreSubmitInfo,
}
impl Default for SubmitInfo2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SUBMIT_INFO_2,
next: ptr::null(),
flags: SubmitFlags::default(),
wait_semaphore_info_count: u32::default(),
wait_semaphore_infos: ptr::null(),
command_buffer_info_count: u32::default(),
command_buffer_infos: ptr::null(),
signal_semaphore_info_count: u32::default(),
signal_semaphore_infos: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubpassBeginInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SubpassBeginInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub contents: SubpassContents,
}
impl Default for SubpassBeginInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SUBPASS_BEGIN_INFO,
next: ptr::null(),
contents: SubpassContents::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubpassDependency.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct SubpassDependency {
pub src_subpass: u32,
pub dst_subpass: u32,
pub src_stage_mask: PipelineStageFlags,
pub dst_stage_mask: PipelineStageFlags,
pub src_access_mask: AccessFlags,
pub dst_access_mask: AccessFlags,
pub dependency_flags: DependencyFlags,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubpassDependency2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SubpassDependency2 {
pub s_type: StructureType,
pub next: *const c_void,
pub src_subpass: u32,
pub dst_subpass: u32,
pub src_stage_mask: PipelineStageFlags,
pub dst_stage_mask: PipelineStageFlags,
pub src_access_mask: AccessFlags,
pub dst_access_mask: AccessFlags,
pub dependency_flags: DependencyFlags,
pub view_offset: i32,
}
impl Default for SubpassDependency2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SUBPASS_DEPENDENCY_2,
next: ptr::null(),
src_subpass: u32::default(),
dst_subpass: u32::default(),
src_stage_mask: PipelineStageFlags::default(),
dst_stage_mask: PipelineStageFlags::default(),
src_access_mask: AccessFlags::default(),
dst_access_mask: AccessFlags::default(),
dependency_flags: DependencyFlags::default(),
view_offset: i32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubpassDescription.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SubpassDescription {
pub flags: SubpassDescriptionFlags,
pub pipeline_bind_point: PipelineBindPoint,
pub input_attachment_count: u32,
pub input_attachments: *const AttachmentReference,
pub color_attachment_count: u32,
pub color_attachments: *const AttachmentReference,
pub resolve_attachments: *const AttachmentReference,
pub depth_stencil_attachment: *const AttachmentReference,
pub preserve_attachment_count: u32,
pub preserve_attachments: *const u32,
}
impl Default for SubpassDescription {
#[inline]
fn default() -> Self {
Self {
flags: SubpassDescriptionFlags::default(),
pipeline_bind_point: PipelineBindPoint::default(),
input_attachment_count: u32::default(),
input_attachments: ptr::null(),
color_attachment_count: u32::default(),
color_attachments: ptr::null(),
resolve_attachments: ptr::null(),
depth_stencil_attachment: ptr::null(),
preserve_attachment_count: u32::default(),
preserve_attachments: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubpassDescription2.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SubpassDescription2 {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: SubpassDescriptionFlags,
pub pipeline_bind_point: PipelineBindPoint,
pub view_mask: u32,
pub input_attachment_count: u32,
pub input_attachments: *const AttachmentReference2,
pub color_attachment_count: u32,
pub color_attachments: *const AttachmentReference2,
pub resolve_attachments: *const AttachmentReference2,
pub depth_stencil_attachment: *const AttachmentReference2,
pub preserve_attachment_count: u32,
pub preserve_attachments: *const u32,
}
impl Default for SubpassDescription2 {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SUBPASS_DESCRIPTION_2,
next: ptr::null(),
flags: SubpassDescriptionFlags::default(),
pipeline_bind_point: PipelineBindPoint::default(),
view_mask: u32::default(),
input_attachment_count: u32::default(),
input_attachments: ptr::null(),
color_attachment_count: u32::default(),
color_attachments: ptr::null(),
resolve_attachments: ptr::null(),
depth_stencil_attachment: ptr::null(),
preserve_attachment_count: u32::default(),
preserve_attachments: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubpassDescriptionDepthStencilResolve.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SubpassDescriptionDepthStencilResolve {
pub s_type: StructureType,
pub next: *const c_void,
pub depth_resolve_mode: ResolveModeFlags,
pub stencil_resolve_mode: ResolveModeFlags,
pub depth_stencil_resolve_attachment: *const AttachmentReference2,
}
impl Default for SubpassDescriptionDepthStencilResolve {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
next: ptr::null(),
depth_resolve_mode: ResolveModeFlags::default(),
stencil_resolve_mode: ResolveModeFlags::default(),
depth_stencil_resolve_attachment: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubpassEndInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SubpassEndInfo {
pub s_type: StructureType,
pub next: *const c_void,
}
impl Default for SubpassEndInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SUBPASS_END_INFO,
next: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubpassFragmentDensityMapOffsetEndInfoQCOM.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SubpassFragmentDensityMapOffsetEndInfoQCOM {
pub s_type: StructureType,
pub next: *const c_void,
pub fragment_density_offset_count: u32,
pub fragment_density_offsets: *const Offset2D,
}
impl Default for SubpassFragmentDensityMapOffsetEndInfoQCOM {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM,
next: ptr::null(),
fragment_density_offset_count: u32::default(),
fragment_density_offsets: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubpassResolvePerformanceQueryEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SubpassResolvePerformanceQueryEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub optimal: Bool32,
}
impl Default for SubpassResolvePerformanceQueryEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT,
next: ptr::null_mut(),
optimal: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubpassSampleLocationsEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct SubpassSampleLocationsEXT {
pub subpass_index: u32,
pub sample_locations_info: SampleLocationsInfoEXT,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubpassShadingPipelineCreateInfoHUAWEI.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SubpassShadingPipelineCreateInfoHUAWEI {
pub s_type: StructureType,
pub next: *mut c_void,
pub render_pass: RenderPass,
pub subpass: u32,
}
impl Default for SubpassShadingPipelineCreateInfoHUAWEI {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI,
next: ptr::null_mut(),
render_pass: RenderPass::default(),
subpass: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubresourceLayout.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct SubresourceLayout {
pub offset: DeviceSize,
pub size: DeviceSize,
pub row_pitch: DeviceSize,
pub array_pitch: DeviceSize,
pub depth_pitch: DeviceSize,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubresourceLayout2EXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SubresourceLayout2EXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub subresource_layout: SubresourceLayout,
}
impl Default for SubresourceLayout2EXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SUBRESOURCE_LAYOUT_2_EXT,
next: ptr::null_mut(),
subresource_layout: SubresourceLayout::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSurfaceCapabilities2EXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SurfaceCapabilities2EXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub min_image_count: u32,
pub max_image_count: u32,
pub current_extent: Extent2D,
pub min_image_extent: Extent2D,
pub max_image_extent: Extent2D,
pub max_image_array_layers: u32,
pub supported_transforms: SurfaceTransformFlagsKHR,
pub current_transform: SurfaceTransformFlagsKHR,
pub supported_composite_alpha: CompositeAlphaFlagsKHR,
pub supported_usage_flags: ImageUsageFlags,
pub supported_surface_counters: SurfaceCounterFlagsEXT,
}
impl Default for SurfaceCapabilities2EXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SURFACE_CAPABILITIES_2_EXT,
next: ptr::null_mut(),
min_image_count: u32::default(),
max_image_count: u32::default(),
current_extent: Extent2D::default(),
min_image_extent: Extent2D::default(),
max_image_extent: Extent2D::default(),
max_image_array_layers: u32::default(),
supported_transforms: SurfaceTransformFlagsKHR::default(),
current_transform: SurfaceTransformFlagsKHR::default(),
supported_composite_alpha: CompositeAlphaFlagsKHR::default(),
supported_usage_flags: ImageUsageFlags::default(),
supported_surface_counters: SurfaceCounterFlagsEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSurfaceCapabilities2KHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SurfaceCapabilities2KHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub surface_capabilities: SurfaceCapabilitiesKHR,
}
impl Default for SurfaceCapabilities2KHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SURFACE_CAPABILITIES_2_KHR,
next: ptr::null_mut(),
surface_capabilities: SurfaceCapabilitiesKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSurfaceCapabilitiesFullScreenExclusiveEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SurfaceCapabilitiesFullScreenExclusiveEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub full_screen_exclusive_supported: Bool32,
}
impl Default for SurfaceCapabilitiesFullScreenExclusiveEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT,
next: ptr::null_mut(),
full_screen_exclusive_supported: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSurfaceCapabilitiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct SurfaceCapabilitiesKHR {
pub min_image_count: u32,
pub max_image_count: u32,
pub current_extent: Extent2D,
pub min_image_extent: Extent2D,
pub max_image_extent: Extent2D,
pub max_image_array_layers: u32,
pub supported_transforms: SurfaceTransformFlagsKHR,
pub current_transform: SurfaceTransformFlagsKHR,
pub supported_composite_alpha: CompositeAlphaFlagsKHR,
pub supported_usage_flags: ImageUsageFlags,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSurfaceCapabilitiesPresentBarrierNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SurfaceCapabilitiesPresentBarrierNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub present_barrier_supported: Bool32,
}
impl Default for SurfaceCapabilitiesPresentBarrierNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SURFACE_CAPABILITIES_PRESENT_BARRIER_NV,
next: ptr::null_mut(),
present_barrier_supported: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSurfaceFormat2KHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SurfaceFormat2KHR {
pub s_type: StructureType,
pub next: *mut c_void,
pub surface_format: SurfaceFormatKHR,
}
impl Default for SurfaceFormat2KHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SURFACE_FORMAT_2_KHR,
next: ptr::null_mut(),
surface_format: SurfaceFormatKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSurfaceFormatKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct SurfaceFormatKHR {
pub format: Format,
pub color_space: ColorSpaceKHR,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSurfaceFullScreenExclusiveInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SurfaceFullScreenExclusiveInfoEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub full_screen_exclusive: FullScreenExclusiveEXT,
}
impl Default for SurfaceFullScreenExclusiveInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT,
next: ptr::null_mut(),
full_screen_exclusive: FullScreenExclusiveEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSurfaceFullScreenExclusiveWin32InfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SurfaceFullScreenExclusiveWin32InfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub hmonitor: HMONITOR,
}
impl Default for SurfaceFullScreenExclusiveWin32InfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT,
next: ptr::null(),
hmonitor: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSurfacePresentModeCompatibilityEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SurfacePresentModeCompatibilityEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub present_mode_count: u32,
pub present_modes: *mut PresentModeKHR,
}
impl Default for SurfacePresentModeCompatibilityEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SURFACE_PRESENT_MODE_COMPATIBILITY_EXT,
next: ptr::null_mut(),
present_mode_count: u32::default(),
present_modes: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSurfacePresentModeEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SurfacePresentModeEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub present_mode: PresentModeKHR,
}
impl Default for SurfacePresentModeEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SURFACE_PRESENT_MODE_EXT,
next: ptr::null_mut(),
present_mode: PresentModeKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSurfacePresentScalingCapabilitiesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SurfacePresentScalingCapabilitiesEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub supported_present_scaling: PresentScalingFlagsEXT,
pub supported_present_gravity_x: PresentGravityFlagsEXT,
pub supported_present_gravity_y: PresentGravityFlagsEXT,
pub min_scaled_image_extent: Extent2D,
pub max_scaled_image_extent: Extent2D,
}
impl Default for SurfacePresentScalingCapabilitiesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SURFACE_PRESENT_SCALING_CAPABILITIES_EXT,
next: ptr::null_mut(),
supported_present_scaling: PresentScalingFlagsEXT::default(),
supported_present_gravity_x: PresentGravityFlagsEXT::default(),
supported_present_gravity_y: PresentGravityFlagsEXT::default(),
min_scaled_image_extent: Extent2D::default(),
max_scaled_image_extent: Extent2D::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSurfaceProtectedCapabilitiesKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SurfaceProtectedCapabilitiesKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub supports_protected: Bool32,
}
impl Default for SurfaceProtectedCapabilitiesKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SURFACE_PROTECTED_CAPABILITIES_KHR,
next: ptr::null(),
supports_protected: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSwapchainCounterCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SwapchainCounterCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub surface_counters: SurfaceCounterFlagsEXT,
}
impl Default for SwapchainCounterCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SWAPCHAIN_COUNTER_CREATE_INFO_EXT,
next: ptr::null(),
surface_counters: SurfaceCounterFlagsEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSwapchainCreateInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SwapchainCreateInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: SwapchainCreateFlagsKHR,
pub surface: SurfaceKHR,
pub min_image_count: u32,
pub image_format: Format,
pub image_color_space: ColorSpaceKHR,
pub image_extent: Extent2D,
pub image_array_layers: u32,
pub image_usage: ImageUsageFlags,
pub image_sharing_mode: SharingMode,
pub queue_family_index_count: u32,
pub queue_family_indices: *const u32,
pub pre_transform: SurfaceTransformFlagsKHR,
pub composite_alpha: CompositeAlphaFlagsKHR,
pub present_mode: PresentModeKHR,
pub clipped: Bool32,
pub old_swapchain: SwapchainKHR,
}
impl Default for SwapchainCreateInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SWAPCHAIN_CREATE_INFO_KHR,
next: ptr::null(),
flags: SwapchainCreateFlagsKHR::default(),
surface: SurfaceKHR::default(),
min_image_count: u32::default(),
image_format: Format::default(),
image_color_space: ColorSpaceKHR::default(),
image_extent: Extent2D::default(),
image_array_layers: u32::default(),
image_usage: ImageUsageFlags::default(),
image_sharing_mode: SharingMode::default(),
queue_family_index_count: u32::default(),
queue_family_indices: ptr::null(),
pre_transform: SurfaceTransformFlagsKHR::default(),
composite_alpha: CompositeAlphaFlagsKHR::default(),
present_mode: PresentModeKHR::default(),
clipped: Bool32::default(),
old_swapchain: SwapchainKHR::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSwapchainDisplayNativeHdrCreateInfoAMD.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SwapchainDisplayNativeHdrCreateInfoAMD {
pub s_type: StructureType,
pub next: *const c_void,
pub local_dimming_enable: Bool32,
}
impl Default for SwapchainDisplayNativeHdrCreateInfoAMD {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,
next: ptr::null(),
local_dimming_enable: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSwapchainPresentBarrierCreateInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SwapchainPresentBarrierCreateInfoNV {
pub s_type: StructureType,
pub next: *mut c_void,
pub present_barrier_enable: Bool32,
}
impl Default for SwapchainPresentBarrierCreateInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV,
next: ptr::null_mut(),
present_barrier_enable: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSwapchainPresentFenceInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SwapchainPresentFenceInfoEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub swapchain_count: u32,
pub fences: *const Fence,
}
impl Default for SwapchainPresentFenceInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SWAPCHAIN_PRESENT_FENCE_INFO_EXT,
next: ptr::null_mut(),
swapchain_count: u32::default(),
fences: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSwapchainPresentModeInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SwapchainPresentModeInfoEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub swapchain_count: u32,
pub present_modes: *const PresentModeKHR,
}
impl Default for SwapchainPresentModeInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SWAPCHAIN_PRESENT_MODE_INFO_EXT,
next: ptr::null_mut(),
swapchain_count: u32::default(),
present_modes: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSwapchainPresentModesCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SwapchainPresentModesCreateInfoEXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub present_mode_count: u32,
pub present_modes: *const PresentModeKHR,
}
impl Default for SwapchainPresentModesCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT,
next: ptr::null_mut(),
present_mode_count: u32::default(),
present_modes: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSwapchainPresentScalingCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SwapchainPresentScalingCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub scaling_behavior: PresentScalingFlagsEXT,
pub present_gravity_x: PresentGravityFlagsEXT,
pub present_gravity_y: PresentGravityFlagsEXT,
}
impl Default for SwapchainPresentScalingCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT,
next: ptr::null(),
scaling_behavior: PresentScalingFlagsEXT::default(),
present_gravity_x: PresentGravityFlagsEXT::default(),
present_gravity_y: PresentGravityFlagsEXT::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSysmemColorSpaceFUCHSIA.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct SysmemColorSpaceFUCHSIA {
pub s_type: StructureType,
pub next: *const c_void,
pub color_space: u32,
}
impl Default for SysmemColorSpaceFUCHSIA {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SYSMEM_COLOR_SPACE_FUCHSIA,
next: ptr::null(),
color_space: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkTextureLODGatherFormatPropertiesAMD.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct TextureLODGatherFormatPropertiesAMD {
pub s_type: StructureType,
pub next: *mut c_void,
pub supports_texture_gather_lod_bias_amd: Bool32,
}
impl Default for TextureLODGatherFormatPropertiesAMD {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
next: ptr::null_mut(),
supports_texture_gather_lod_bias_amd: Bool32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkTilePropertiesQCOM.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct TilePropertiesQCOM {
pub s_type: StructureType,
pub next: *mut c_void,
pub tile_size: Extent3D,
pub apron_size: Extent2D,
pub origin: Offset2D,
}
impl Default for TilePropertiesQCOM {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::TILE_PROPERTIES_QCOM,
next: ptr::null_mut(),
tile_size: Extent3D::default(),
apron_size: Extent2D::default(),
origin: Offset2D::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkTimelineSemaphoreSubmitInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct TimelineSemaphoreSubmitInfo {
pub s_type: StructureType,
pub next: *const c_void,
pub wait_semaphore_value_count: u32,
pub wait_semaphore_values: *const u64,
pub signal_semaphore_value_count: u32,
pub signal_semaphore_values: *const u64,
}
impl Default for TimelineSemaphoreSubmitInfo {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::TIMELINE_SEMAPHORE_SUBMIT_INFO,
next: ptr::null(),
wait_semaphore_value_count: u32::default(),
wait_semaphore_values: ptr::null(),
signal_semaphore_value_count: u32::default(),
signal_semaphore_values: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkTraceRaysIndirectCommand2KHR.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct TraceRaysIndirectCommand2KHR {
pub raygen_shader_record_address: DeviceAddress,
pub raygen_shader_record_size: DeviceSize,
pub miss_shader_binding_table_address: DeviceAddress,
pub miss_shader_binding_table_size: DeviceSize,
pub miss_shader_binding_table_stride: DeviceSize,
pub hit_shader_binding_table_address: DeviceAddress,
pub hit_shader_binding_table_size: DeviceSize,
pub hit_shader_binding_table_stride: DeviceSize,
pub callable_shader_binding_table_address: DeviceAddress,
pub callable_shader_binding_table_size: DeviceSize,
pub callable_shader_binding_table_stride: DeviceSize,
pub width: u32,
pub height: u32,
pub depth: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkTraceRaysIndirectCommandKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct TraceRaysIndirectCommandKHR {
pub width: u32,
pub height: u32,
pub depth: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkTransformMatrixKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, PartialEq)]
pub struct TransformMatrixKHR {
pub matrix: [[f32; 3]; 4],
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkValidationCacheCreateInfoEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ValidationCacheCreateInfoEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: ValidationCacheCreateFlagsEXT,
pub initial_data_size: usize,
pub initial_data: *const c_void,
}
impl Default for ValidationCacheCreateInfoEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::VALIDATION_CACHE_CREATE_INFO_EXT,
next: ptr::null(),
flags: ValidationCacheCreateFlagsEXT::default(),
initial_data_size: usize::default(),
initial_data: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkValidationFeaturesEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ValidationFeaturesEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub enabled_validation_feature_count: u32,
pub enabled_validation_features: *const ValidationFeatureEnableEXT,
pub disabled_validation_feature_count: u32,
pub disabled_validation_features: *const ValidationFeatureDisableEXT,
}
impl Default for ValidationFeaturesEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::VALIDATION_FEATURES_EXT,
next: ptr::null(),
enabled_validation_feature_count: u32::default(),
enabled_validation_features: ptr::null(),
disabled_validation_feature_count: u32::default(),
disabled_validation_features: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkValidationFlagsEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ValidationFlagsEXT {
pub s_type: StructureType,
pub next: *const c_void,
pub disabled_validation_check_count: u32,
pub disabled_validation_checks: *const ValidationCheckEXT,
}
impl Default for ValidationFlagsEXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::VALIDATION_FLAGS_EXT,
next: ptr::null(),
disabled_validation_check_count: u32::default(),
disabled_validation_checks: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVertexInputAttributeDescription.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct VertexInputAttributeDescription {
pub location: u32,
pub binding: u32,
pub format: Format,
pub offset: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVertexInputAttributeDescription2EXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct VertexInputAttributeDescription2EXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub location: u32,
pub binding: u32,
pub format: Format,
pub offset: u32,
}
impl Default for VertexInputAttributeDescription2EXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT,
next: ptr::null_mut(),
location: u32::default(),
binding: u32::default(),
format: Format::default(),
offset: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVertexInputBindingDescription.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct VertexInputBindingDescription {
pub binding: u32,
pub stride: u32,
pub input_rate: VertexInputRate,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVertexInputBindingDescription2EXT.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct VertexInputBindingDescription2EXT {
pub s_type: StructureType,
pub next: *mut c_void,
pub binding: u32,
pub stride: u32,
pub input_rate: VertexInputRate,
pub divisor: u32,
}
impl Default for VertexInputBindingDescription2EXT {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT,
next: ptr::null_mut(),
binding: u32::default(),
stride: u32::default(),
input_rate: VertexInputRate::default(),
divisor: u32::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVertexInputBindingDivisorDescriptionEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct VertexInputBindingDivisorDescriptionEXT {
pub binding: u32,
pub divisor: u32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkViSurfaceCreateInfoNN.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ViSurfaceCreateInfoNN {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: ViSurfaceCreateFlagsNN,
pub window: *mut c_void,
}
impl Default for ViSurfaceCreateInfoNN {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::VI_SURFACE_CREATE_INFO_NN,
next: ptr::null(),
flags: ViSurfaceCreateFlagsNN::default(),
window: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkViewport.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, PartialEq)]
pub struct Viewport {
pub x: f32,
pub y: f32,
pub width: f32,
pub height: f32,
pub min_depth: f32,
pub max_depth: f32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkViewportSwizzleNV.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ViewportSwizzleNV {
pub x: ViewportCoordinateSwizzleNV,
pub y: ViewportCoordinateSwizzleNV,
pub z: ViewportCoordinateSwizzleNV,
pub w: ViewportCoordinateSwizzleNV,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkViewportWScalingNV.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, PartialEq)]
pub struct ViewportWScalingNV {
pub xcoeff: f32,
pub ycoeff: f32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkWaylandSurfaceCreateInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct WaylandSurfaceCreateInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: WaylandSurfaceCreateFlagsKHR,
pub display: *mut wl_display,
pub surface: *mut wl_surface,
}
impl Default for WaylandSurfaceCreateInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::WAYLAND_SURFACE_CREATE_INFO_KHR,
next: ptr::null(),
flags: WaylandSurfaceCreateFlagsKHR::default(),
display: ptr::null_mut(),
surface: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkWin32KeyedMutexAcquireReleaseInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct Win32KeyedMutexAcquireReleaseInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub acquire_count: u32,
pub acquire_syncs: *const DeviceMemory,
pub acquire_keys: *const u64,
pub acquire_timeouts: *const u32,
pub release_count: u32,
pub release_syncs: *const DeviceMemory,
pub release_keys: *const u64,
}
impl Default for Win32KeyedMutexAcquireReleaseInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR,
next: ptr::null(),
acquire_count: u32::default(),
acquire_syncs: ptr::null(),
acquire_keys: ptr::null(),
acquire_timeouts: ptr::null(),
release_count: u32::default(),
release_syncs: ptr::null(),
release_keys: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkWin32KeyedMutexAcquireReleaseInfoNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct Win32KeyedMutexAcquireReleaseInfoNV {
pub s_type: StructureType,
pub next: *const c_void,
pub acquire_count: u32,
pub acquire_syncs: *const DeviceMemory,
pub acquire_keys: *const u64,
pub acquire_timeout_milliseconds: *const u32,
pub release_count: u32,
pub release_syncs: *const DeviceMemory,
pub release_keys: *const u64,
}
impl Default for Win32KeyedMutexAcquireReleaseInfoNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV,
next: ptr::null(),
acquire_count: u32::default(),
acquire_syncs: ptr::null(),
acquire_keys: ptr::null(),
acquire_timeout_milliseconds: ptr::null(),
release_count: u32::default(),
release_syncs: ptr::null(),
release_keys: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkWin32SurfaceCreateInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct Win32SurfaceCreateInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: Win32SurfaceCreateFlagsKHR,
pub hinstance: HINSTANCE,
pub hwnd: HWND,
}
impl Default for Win32SurfaceCreateInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::WIN32_SURFACE_CREATE_INFO_KHR,
next: ptr::null(),
flags: Win32SurfaceCreateFlagsKHR::default(),
hinstance: ptr::null_mut(),
hwnd: ptr::null_mut(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkWriteDescriptorSet.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct WriteDescriptorSet {
pub s_type: StructureType,
pub next: *const c_void,
pub dst_set: DescriptorSet,
pub dst_binding: u32,
pub dst_array_element: u32,
pub descriptor_count: u32,
pub descriptor_type: DescriptorType,
pub image_info: *const DescriptorImageInfo,
pub buffer_info: *const DescriptorBufferInfo,
pub texel_buffer_view: *const BufferView,
}
impl Default for WriteDescriptorSet {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::WRITE_DESCRIPTOR_SET,
next: ptr::null(),
dst_set: DescriptorSet::default(),
dst_binding: u32::default(),
dst_array_element: u32::default(),
descriptor_count: u32::default(),
descriptor_type: DescriptorType::default(),
image_info: ptr::null(),
buffer_info: ptr::null(),
texel_buffer_view: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkWriteDescriptorSetAccelerationStructureKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct WriteDescriptorSetAccelerationStructureKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub acceleration_structure_count: u32,
pub acceleration_structures: *const AccelerationStructureKHR,
}
impl Default for WriteDescriptorSetAccelerationStructureKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
next: ptr::null(),
acceleration_structure_count: u32::default(),
acceleration_structures: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkWriteDescriptorSetAccelerationStructureNV.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct WriteDescriptorSetAccelerationStructureNV {
pub s_type: StructureType,
pub next: *const c_void,
pub acceleration_structure_count: u32,
pub acceleration_structures: *const AccelerationStructureNV,
}
impl Default for WriteDescriptorSetAccelerationStructureNV {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV,
next: ptr::null(),
acceleration_structure_count: u32::default(),
acceleration_structures: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkWriteDescriptorSetInlineUniformBlock.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct WriteDescriptorSetInlineUniformBlock {
pub s_type: StructureType,
pub next: *const c_void,
pub data_size: u32,
pub data: *const c_void,
}
impl Default for WriteDescriptorSetInlineUniformBlock {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
next: ptr::null(),
data_size: u32::default(),
data: ptr::null(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkXYColorEXT.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, PartialEq)]
pub struct XYColorEXT {
pub x: f32,
pub y: f32,
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkXcbSurfaceCreateInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct XcbSurfaceCreateInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: XcbSurfaceCreateFlagsKHR,
pub connection: *mut xcb_connection_t,
pub window: xcb_window_t,
}
impl Default for XcbSurfaceCreateInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::XCB_SURFACE_CREATE_INFO_KHR,
next: ptr::null(),
flags: XcbSurfaceCreateFlagsKHR::default(),
connection: ptr::null_mut(),
window: xcb_window_t::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkXlibSurfaceCreateInfoKHR.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct XlibSurfaceCreateInfoKHR {
pub s_type: StructureType,
pub next: *const c_void,
pub flags: XlibSurfaceCreateFlagsKHR,
pub dpy: *mut Display,
pub window: Window,
}
impl Default for XlibSurfaceCreateInfoKHR {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::XLIB_SURFACE_CREATE_INFO_KHR,
next: ptr::null(),
flags: XlibSurfaceCreateFlagsKHR::default(),
dpy: ptr::null_mut(),
window: Window::default(),
}
}
}
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAabbPositionsNV.html>
pub type AabbPositionsNV = AabbPositionsKHR;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureInstanceNV.html>
pub type AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAttachmentDescription2KHR.html>
pub type AttachmentDescription2KHR = AttachmentDescription2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAttachmentDescriptionStencilLayoutKHR.html>
pub type AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAttachmentReference2KHR.html>
pub type AttachmentReference2KHR = AttachmentReference2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAttachmentReferenceStencilLayoutKHR.html>
pub type AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAttachmentSampleCountInfoNV.html>
pub type AttachmentSampleCountInfoNV = AttachmentSampleCountInfoAMD;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBindBufferMemoryDeviceGroupInfoKHR.html>
pub type BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBindBufferMemoryInfoKHR.html>
pub type BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBindImageMemoryDeviceGroupInfoKHR.html>
pub type BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBindImageMemoryInfoKHR.html>
pub type BindImageMemoryInfoKHR = BindImageMemoryInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBindImagePlaneMemoryInfoKHR.html>
pub type BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBlitImageInfo2KHR.html>
pub type BlitImageInfo2KHR = BlitImageInfo2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferCopy2KHR.html>
pub type BufferCopy2KHR = BufferCopy2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferDeviceAddressInfoEXT.html>
pub type BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferDeviceAddressInfoKHR.html>
pub type BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferImageCopy2KHR.html>
pub type BufferImageCopy2KHR = BufferImageCopy2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferMemoryBarrier2KHR.html>
pub type BufferMemoryBarrier2KHR = BufferMemoryBarrier2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferMemoryRequirementsInfo2KHR.html>
pub type BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferOpaqueCaptureAddressCreateInfoKHR.html>
pub type BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCommandBufferInheritanceRenderingInfoKHR.html>
pub type CommandBufferInheritanceRenderingInfoKHR = CommandBufferInheritanceRenderingInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCommandBufferSubmitInfoKHR.html>
pub type CommandBufferSubmitInfoKHR = CommandBufferSubmitInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkConformanceVersionKHR.html>
pub type ConformanceVersionKHR = ConformanceVersion;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyBufferInfo2KHR.html>
pub type CopyBufferInfo2KHR = CopyBufferInfo2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyBufferToImageInfo2KHR.html>
pub type CopyBufferToImageInfo2KHR = CopyBufferToImageInfo2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyImageInfo2KHR.html>
pub type CopyImageInfo2KHR = CopyImageInfo2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyImageToBufferInfo2KHR.html>
pub type CopyImageToBufferInfo2KHR = CopyImageToBufferInfo2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDependencyInfoKHR.html>
pub type DependencyInfoKHR = DependencyInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorPoolInlineUniformBlockCreateInfoEXT.html>
pub type DescriptorPoolInlineUniformBlockCreateInfoEXT = DescriptorPoolInlineUniformBlockCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetLayoutBindingFlagsCreateInfoEXT.html>
pub type DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetLayoutSupportKHR.html>
pub type DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetVariableDescriptorCountAllocateInfoEXT.html>
pub type DescriptorSetVariableDescriptorCountAllocateInfoEXT =
DescriptorSetVariableDescriptorCountAllocateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetVariableDescriptorCountLayoutSupportEXT.html>
pub type DescriptorSetVariableDescriptorCountLayoutSupportEXT =
DescriptorSetVariableDescriptorCountLayoutSupport;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplateCreateInfoKHR.html>
pub type DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplateEntryKHR.html>
pub type DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceBufferMemoryRequirementsKHR.html>
pub type DeviceBufferMemoryRequirementsKHR = DeviceBufferMemoryRequirements;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupBindSparseInfoKHR.html>
pub type DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupCommandBufferBeginInfoKHR.html>
pub type DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupDeviceCreateInfoKHR.html>
pub type DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupRenderPassBeginInfoKHR.html>
pub type DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupSubmitInfoKHR.html>
pub type DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceImageMemoryRequirementsKHR.html>
pub type DeviceImageMemoryRequirementsKHR = DeviceImageMemoryRequirements;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceMemoryOpaqueCaptureAddressInfoKHR.html>
pub type DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDevicePrivateDataCreateInfoEXT.html>
pub type DevicePrivateDataCreateInfoEXT = DevicePrivateDataCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceQueueGlobalPriorityCreateInfoEXT.html>
pub type DeviceQueueGlobalPriorityCreateInfoEXT = DeviceQueueGlobalPriorityCreateInfoKHR;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportFenceCreateInfoKHR.html>
pub type ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportMemoryAllocateInfoKHR.html>
pub type ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExportSemaphoreCreateInfoKHR.html>
pub type ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExternalBufferPropertiesKHR.html>
pub type ExternalBufferPropertiesKHR = ExternalBufferProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExternalFencePropertiesKHR.html>
pub type ExternalFencePropertiesKHR = ExternalFenceProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExternalImageFormatPropertiesKHR.html>
pub type ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryBufferCreateInfoKHR.html>
pub type ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryImageCreateInfoKHR.html>
pub type ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryPropertiesKHR.html>
pub type ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphorePropertiesKHR.html>
pub type ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFormatProperties2KHR.html>
pub type FormatProperties2KHR = FormatProperties2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFormatProperties3KHR.html>
pub type FormatProperties3KHR = FormatProperties3;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFramebufferAttachmentImageInfoKHR.html>
pub type FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFramebufferAttachmentsCreateInfoKHR.html>
pub type FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageBlit2KHR.html>
pub type ImageBlit2KHR = ImageBlit2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageCopy2KHR.html>
pub type ImageCopy2KHR = ImageCopy2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageFormatListCreateInfoKHR.html>
pub type ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageFormatProperties2KHR.html>
pub type ImageFormatProperties2KHR = ImageFormatProperties2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageMemoryBarrier2KHR.html>
pub type ImageMemoryBarrier2KHR = ImageMemoryBarrier2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageMemoryRequirementsInfo2KHR.html>
pub type ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImagePlaneMemoryRequirementsInfoKHR.html>
pub type ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageResolve2KHR.html>
pub type ImageResolve2KHR = ImageResolve2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageSparseMemoryRequirementsInfo2KHR.html>
pub type ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageStencilUsageCreateInfoEXT.html>
pub type ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageViewUsageCreateInfoKHR.html>
pub type ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkInputAttachmentAspectReferenceKHR.html>
pub type InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryAllocateFlagsInfoKHR.html>
pub type MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryBarrier2KHR.html>
pub type MemoryBarrier2KHR = MemoryBarrier2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryDedicatedAllocateInfoKHR.html>
pub type MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryDedicatedRequirementsKHR.html>
pub type MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryOpaqueCaptureAddressAllocateInfoKHR.html>
pub type MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryRequirements2KHR.html>
pub type MemoryRequirements2KHR = MemoryRequirements2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMutableDescriptorTypeCreateInfoVALVE.html>
pub type MutableDescriptorTypeCreateInfoVALVE = MutableDescriptorTypeCreateInfoEXT;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMutableDescriptorTypeListVALVE.html>
pub type MutableDescriptorTypeListVALVE = MutableDescriptorTypeListEXT;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevice16BitStorageFeaturesKHR.html>
pub type PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevice8BitStorageFeaturesKHR.html>
pub type PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceBufferAddressFeaturesEXT.html>
pub type PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceBufferDeviceAddressFeaturesKHR.html>
pub type PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDepthStencilResolvePropertiesKHR.html>
pub type PhysicalDeviceDepthStencilResolvePropertiesKHR =
PhysicalDeviceDepthStencilResolveProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDescriptorIndexingFeaturesEXT.html>
pub type PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDescriptorIndexingPropertiesEXT.html>
pub type PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDriverPropertiesKHR.html>
pub type PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDynamicRenderingFeaturesKHR.html>
pub type PhysicalDeviceDynamicRenderingFeaturesKHR = PhysicalDeviceDynamicRenderingFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExternalBufferInfoKHR.html>
pub type PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExternalFenceInfoKHR.html>
pub type PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExternalImageFormatInfoKHR.html>
pub type PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExternalSemaphoreInfoKHR.html>
pub type PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFeatures2KHR.html>
pub type PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFloat16Int8FeaturesKHR.html>
pub type PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFloatControlsPropertiesKHR.html>
pub type PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV.html>
pub type PhysicalDeviceFragmentShaderBarycentricFeaturesNV =
PhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT.html>
pub type PhysicalDeviceGlobalPriorityQueryFeaturesEXT =
PhysicalDeviceGlobalPriorityQueryFeaturesKHR;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceGroupPropertiesKHR.html>
pub type PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceHostQueryResetFeaturesEXT.html>
pub type PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceIDPropertiesKHR.html>
pub type PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceImageFormatInfo2KHR.html>
pub type PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceImageRobustnessFeaturesEXT.html>
pub type PhysicalDeviceImageRobustnessFeaturesEXT = PhysicalDeviceImageRobustnessFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceImagelessFramebufferFeaturesKHR.html>
pub type PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceInlineUniformBlockFeaturesEXT.html>
pub type PhysicalDeviceInlineUniformBlockFeaturesEXT = PhysicalDeviceInlineUniformBlockFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceInlineUniformBlockPropertiesEXT.html>
pub type PhysicalDeviceInlineUniformBlockPropertiesEXT = PhysicalDeviceInlineUniformBlockProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMaintenance3PropertiesKHR.html>
pub type PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMaintenance4FeaturesKHR.html>
pub type PhysicalDeviceMaintenance4FeaturesKHR = PhysicalDeviceMaintenance4Features;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMaintenance4PropertiesKHR.html>
pub type PhysicalDeviceMaintenance4PropertiesKHR = PhysicalDeviceMaintenance4Properties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMemoryProperties2KHR.html>
pub type PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMultiviewFeaturesKHR.html>
pub type PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMultiviewPropertiesKHR.html>
pub type PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE.html>
pub type PhysicalDeviceMutableDescriptorTypeFeaturesVALVE =
PhysicalDeviceMutableDescriptorTypeFeaturesEXT;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT.html>
pub type PhysicalDevicePipelineCreationCacheControlFeaturesEXT =
PhysicalDevicePipelineCreationCacheControlFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePointClippingPropertiesKHR.html>
pub type PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePrivateDataFeaturesEXT.html>
pub type PhysicalDevicePrivateDataFeaturesEXT = PhysicalDevicePrivateDataFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceProperties2KHR.html>
pub type PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM.html>
pub type PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM =
PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT.html>
pub type PhysicalDeviceSamplerFilterMinmaxPropertiesEXT =
PhysicalDeviceSamplerFilterMinmaxProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR.html>
pub type PhysicalDeviceSamplerYcbcrConversionFeaturesKHR =
PhysicalDeviceSamplerYcbcrConversionFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceScalarBlockLayoutFeaturesEXT.html>
pub type PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR.html>
pub type PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR =
PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderAtomicInt64FeaturesKHR.html>
pub type PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT.html>
pub type PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT =
PhysicalDeviceShaderDemoteToHelperInvocationFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderDrawParameterFeatures.html>
pub type PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderFloat16Int8FeaturesKHR.html>
pub type PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR.html>
pub type PhysicalDeviceShaderIntegerDotProductFeaturesKHR =
PhysicalDeviceShaderIntegerDotProductFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR.html>
pub type PhysicalDeviceShaderIntegerDotProductPropertiesKHR =
PhysicalDeviceShaderIntegerDotProductProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR.html>
pub type PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR =
PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR.html>
pub type PhysicalDeviceShaderTerminateInvocationFeaturesKHR =
PhysicalDeviceShaderTerminateInvocationFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSparseImageFormatInfo2KHR.html>
pub type PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSubgroupSizeControlFeaturesEXT.html>
pub type PhysicalDeviceSubgroupSizeControlFeaturesEXT = PhysicalDeviceSubgroupSizeControlFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSubgroupSizeControlPropertiesEXT.html>
pub type PhysicalDeviceSubgroupSizeControlPropertiesEXT =
PhysicalDeviceSubgroupSizeControlProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSynchronization2FeaturesKHR.html>
pub type PhysicalDeviceSynchronization2FeaturesKHR = PhysicalDeviceSynchronization2Features;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT.html>
pub type PhysicalDeviceTexelBufferAlignmentPropertiesEXT =
PhysicalDeviceTexelBufferAlignmentProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT.html>
pub type PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT =
PhysicalDeviceTextureCompressionASTCHDRFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceTimelineSemaphoreFeaturesKHR.html>
pub type PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceTimelineSemaphorePropertiesKHR.html>
pub type PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceToolPropertiesEXT.html>
pub type PhysicalDeviceToolPropertiesEXT = PhysicalDeviceToolProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR.html>
pub type PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR =
PhysicalDeviceUniformBufferStandardLayoutFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVariablePointerFeatures.html>
pub type PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVariablePointerFeaturesKHR.html>
pub type PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVariablePointersFeaturesKHR.html>
pub type PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVulkanMemoryModelFeaturesKHR.html>
pub type PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR.html>
pub type PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR =
PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineCreationFeedbackCreateInfoEXT.html>
pub type PipelineCreationFeedbackCreateInfoEXT = PipelineCreationFeedbackCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineCreationFeedbackEXT.html>
pub type PipelineCreationFeedbackEXT = PipelineCreationFeedback;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineInfoEXT.html>
pub type PipelineInfoEXT = PipelineInfoKHR;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineRenderingCreateInfoKHR.html>
pub type PipelineRenderingCreateInfoKHR = PipelineRenderingCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT.html>
pub type PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT =
PipelineShaderStageRequiredSubgroupSizeCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineTessellationDomainOriginStateCreateInfoKHR.html>
pub type PipelineTessellationDomainOriginStateCreateInfoKHR =
PipelineTessellationDomainOriginStateCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPrivateDataSlotCreateInfoEXT.html>
pub type PrivateDataSlotCreateInfoEXT = PrivateDataSlotCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueryPoolCreateInfoINTEL.html>
pub type QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueueFamilyGlobalPriorityPropertiesEXT.html>
pub type QueueFamilyGlobalPriorityPropertiesEXT = QueueFamilyGlobalPriorityPropertiesKHR;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueueFamilyProperties2KHR.html>
pub type QueueFamilyProperties2KHR = QueueFamilyProperties2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPassAttachmentBeginInfoKHR.html>
pub type RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPassCreateInfo2KHR.html>
pub type RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPassInputAttachmentAspectCreateInfoKHR.html>
pub type RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPassMultiviewCreateInfoKHR.html>
pub type RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderingAttachmentInfoKHR.html>
pub type RenderingAttachmentInfoKHR = RenderingAttachmentInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderingInfoKHR.html>
pub type RenderingInfoKHR = RenderingInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkResolveImageInfo2KHR.html>
pub type ResolveImageInfo2KHR = ResolveImageInfo2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerReductionModeCreateInfoEXT.html>
pub type SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrConversionCreateInfoKHR.html>
pub type SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrConversionImageFormatPropertiesKHR.html>
pub type SamplerYcbcrConversionImageFormatPropertiesKHR =
SamplerYcbcrConversionImageFormatProperties;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrConversionInfoKHR.html>
pub type SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSemaphoreSignalInfoKHR.html>
pub type SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSemaphoreSubmitInfoKHR.html>
pub type SemaphoreSubmitInfoKHR = SemaphoreSubmitInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSemaphoreTypeCreateInfoKHR.html>
pub type SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSemaphoreWaitInfoKHR.html>
pub type SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSparseImageFormatProperties2KHR.html>
pub type SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSparseImageMemoryRequirements2KHR.html>
pub type SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubmitInfo2KHR.html>
pub type SubmitInfo2KHR = SubmitInfo2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubpassBeginInfoKHR.html>
pub type SubpassBeginInfoKHR = SubpassBeginInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubpassDependency2KHR.html>
pub type SubpassDependency2KHR = SubpassDependency2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubpassDescription2KHR.html>
pub type SubpassDescription2KHR = SubpassDescription2;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubpassDescriptionDepthStencilResolveKHR.html>
pub type SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubpassEndInfoKHR.html>
pub type SubpassEndInfoKHR = SubpassEndInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkTimelineSemaphoreSubmitInfoKHR.html>
pub type TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkTransformMatrixNV.html>
pub type TransformMatrixNV = TransformMatrixKHR;
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkWriteDescriptorSetInlineUniformBlockEXT.html>
pub type WriteDescriptorSetInlineUniformBlockEXT = WriteDescriptorSetInlineUniformBlock;